/** * 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; }
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 }
/** * 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; }