/** * Synchronize the status as the following table shows * Mage = Rapidmail Statuslist * <ul> * <li>NOT_ACTIVE = NEW</li> * <li>SUBSCRIBED = ACTIVE</li> * <li>UNSUBSCRIBED = DELETED</li> * </ul> * @param <type> $value * @return <type> */ public function setStatus($value) { // Set Rapidmail Status to new if ($value == Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE) { $this->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_NEW); $this->save(); // Set Rapidmail Status to active } else { if ($value == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED && $this->getEmail() != "") { Mage::helper('rapidmail')->activateMail($this->getEmail()); $this->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_ACTIVE); $this->save(); // Set Rapidmail Status as deleted } else { if ($value == Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED) { $this->setRapidmailStatus(Narfstudios_Rapidmail_Model_Status::STATUS_DELETED); $this->save(); } } } return parent::setStatus($value); }
/** * Handle setting subscriber as transactional in bronto queue and * removing from magento subscription * * @param Mage_Newsletter_Model_Subscriber $subscriber * @param string $email * * @return boolean|Mage_Newsletter_Model_Subscriber */ private function _makeTransactional(Mage_Newsletter_Model_Subscriber $subscriber, $email) { /* @var $contact Bronto_Api_Contact_Row */ if (!($contact = $this->_getBrontoContact($email))) { $this->_helper->writeError('Unable to create contact object'); return false; } // Get Customer using the email provided $customerId = Mage::getModel('customer/customer')->setWebsiteId(Mage::app()->getStore()->getWebsiteId())->loadByEmail($email)->getId(); if (!$customerId) { $customerId = Mage::getSingleton('customer/session')->getId(); } // Set Magento Subscriber and Status $subscriber->setCustomerId($customerId)->setSubscriberEmail($email)->setStoreId(Mage::app()->getStore()->getId())->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE)->save(); if ($contact->status == Bronto_Api_Contact::STATUS_UNSUBSCRIBED) { $subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED); } else { $subscriber->setStatus(Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE); } $subscriber->save(); return $subscriber; }