/** * Synchronize the status of the subscriber with Rapidmail * @param <type> $subscriber */ public function syncSubscriber($subscriber) { // There is a new Subscriber if ($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE) { // Create a new address in Rapidmail if (!Mage::helper('rapidmail')->checkRecipientExists($subscriber->getEmail())) { // Load for Customer or guest Mage::helper('rapidmail')->callRegisterMailForSubscriber($subscriber); } else { $subscriber->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_NEW); $subscriber->save(); } } // Already exists so just activate it if ($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) { if (!Mage::helper('rapidmail')->checkRecipientExists($subscriber->getEmail())) { Mage::helper('rapidmail')->callRegisterMailForSubscriber($subscriber); } Mage::helper('rapidmail')->activateMail($subscriber->getEmail()); } // If he should be deactivated delete the subscriber if ($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED) { if (Mage::helper('rapidmail')->checkRecipientExists($subscriber->getEmail())) { Mage::helper('rapidmail')->unregisterMail($subscriber->getEmail()); } else { $subscriber->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_DELETED); $subscriber->save(); } } }