/** * 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; }
public function save() { parent::save(); Mage::dispatchEvent($this->_eventPrefix . '_save_after', array('subscriber' => $this)); }