Пример #1
0
 /**
  * Preapares data for saving of subscriber
  * Add the line for rapidmail status
  *
  * @param  Mage_Newsletter_Model_Subscriber $subscriber
  * @return array
  */
 protected function _prepareSave(Mage_Newsletter_Model_Subscriber $subscriber)
 {
     $data = array();
     $data['customer_id'] = $subscriber->getCustomerId();
     $data['store_id'] = $subscriber->getStoreId() ? $subscriber->getStoreId() : 0;
     $data['subscriber_status'] = $subscriber->getStatus();
     $data['subscriber_email'] = $subscriber->getEmail();
     $data['subscriber_confirm_code'] = $subscriber->getCode();
     $data['rapidmail_status'] = $subscriber->getRapidmailStatus();
     if ($subscriber->getIsStatusChanged()) {
         $data['change_status_at'] = Mage::getSingleton('core/date')->gmtDate();
     }
     $validators = array('subscriber_email' => 'EmailAddress');
     $filters = array();
     $input = new Zend_Filter_Input($filters, $validators, $data);
     $session = Mage::getSingleton($this->_messagesScope);
     if ($input->hasInvalid() || $input->hasMissing()) {
         foreach ($input->getMessages() as $message) {
             if (is_array($message)) {
                 foreach ($message as $error) {
                     $session->addError($error);
                 }
             } else {
                 $session->addError($message);
             }
         }
         Mage::throwException(Mage::helper('newsletter')->__('Form was filled incorrectly'));
     }
     return $data;
 }
Пример #2
0
 protected function _prepareSave(Mage_Newsletter_Model_Subscriber $subscriber)
 {
     $data = array();
     $data['customer_id'] = $subscriber->getCustomerId();
     $data['store_id'] = $subscriber->getStoreId() ? $subscriber->getStoreId() : 0;
     $data['subscriber_status'] = $subscriber->getStatus();
     $data['subscriber_email'] = $subscriber->getEmail();
     $data['subscriber_confirm_code'] = $subscriber->getCode();
     $data['salutation'] = $subscriber->getSalutation();
     $data['firstname'] = $subscriber->getFirstname();
     $data['lastname'] = $subscriber->getLastname();
     $data['company'] = $subscriber->getCompany();
     $data['address'] = $subscriber->getAddress();
     $data['country_id'] = $subscriber->getCountryId();
     $data['city'] = $subscriber->getCity();
     $data['state'] = $subscriber->getState();
     $data['phoneno'] = $subscriber->getPhoneno();
     $data['fax'] = $subscriber->getFax();
     $data['zipcode'] = $subscriber->getZipcode();
     //ADD A NEW FIELD END
 }
Пример #3
0
 /**
  * Add Subscriber to Bronto Newsletter Opt-in queue
  *
  * @param Mage_Newsletter_Model_Subscriber $subscriber
  * @param int                              $storeId
  *
  * @return $this|bool
  */
 private function _saveToQueue(Mage_Newsletter_Model_Subscriber $subscriber, $storeId)
 {
     // Get e-mail address we are working with
     $email = $subscriber->getEmail();
     if (empty($email)) {
         $this->_helper->writeError('Subscriber does not have an email address.');
         return false;
     }
     // Get Calculated Status
     $status = Mage::helper('bronto_newsletter/contact')->getQueueStatus($subscriber);
     /* @var $contactQueue Bronto_Newsletter_Model_Queue */
     $contactQueue = Mage::getModel('bronto_newsletter/queue')->getContactRow($subscriber->getId(), $storeId);
     // If ContactQueue status doesn't match subscriber status, replace it
     if ($status != $contactQueue->getStatus()) {
         if ($subscriber->getSubscribeSource() == 'popup') {
             $contactQueue->setImported(2);
         } else {
             $contactQueue->setImported(0);
         }
         $contactQueue->setSubscriberEmail($subscriber->getEmail())->setStatus($status)->setMessagePreference('html')->setSource('api')->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate())->save();
     }
     return $this;
 }