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