Пример #1
0
 /**
  * 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;
 }