Esempio n. 1
0
 /**
  * updating names for subscriber after customer names update
  * @param Mage_Customer_Model_Customer $customer 
  */
 protected function updateNames($customer)
 {
     $subscriber = Mage::getModel('advancednewsletter/subscriber')->load($customer->getEntityId(), 'customer_id');
     if (!$subscriber->getId()) {
         return;
     }
     if ($subscriber->getData('last_name') != $customer->getLastname() || $subscriber->getData('first_name') != $customer->getFirstname()) {
         $subscriber->forceWrite(array('first_name' => $customer->getFirstname(), 'last_name' => $customer->getLastname()));
     }
     if ($subscriber->getEmail() != $customer->getEmail()) {
         $duplicate = Mage::getModel('advancednewsletter/subscriber')->load($customer->getEmail(), 'email');
         if (!$duplicate->getId()) {
             $subscriber->forceWrite(array('email' => $customer->getEmail()));
         }
     }
 }
Esempio n. 2
0
 /**
  * Wraps post, customer, store data into Varien_Object
  *
  * @param array $postData
  * @param Mage_Customer_Model_Customer $customer
  * @param Mage_Core_Model_Store $store
  *
  * @return Varien_Object
  */
 private function _getWrapped($postData, $customer, $store)
 {
     $objToReturn = new Varien_Object();
     $storeId = $store->getStoreId();
     $message = isset($postData['message']) ? htmlspecialchars($postData['message']) : '';
     $emailAddresses = $postData['email'];
     foreach ($emailAddresses as $key => $emailAddress) {
         if (empty($emailAddress) || !Zend_Validate::is($emailAddress, 'EmailAddress')) {
             unset($emailAddresses[$key]);
         }
     }
     $objToReturn->setData(array('emails' => $emailAddresses, 'customer_id' => $customer->getEntityId(), 'message' => $message, 'store_id' => $storeId));
     return $objToReturn;
 }
 /**
  * Send login data through API
  *
  * @param Mage_Customer_Model_Customer $customer
  * @throws Sailthru_Email_Model_Client_Exception
  * @return boolean
  */
 public function login(Mage_Customer_Model_Customer $customer)
 {
     try {
         $this->_eventType = 'login';
         $data = array('id' => $customer->getEmail(), 'key' => 'email', 'fields' => array('keys' => 1, 'engagement' => 1, 'activity' => 1, 'email' => $customer->getEmail(), 'extid' => $customer->getEntityId()), 'login' => array('site' => Mage::helper('core/url')->getHomeUrl(), 'ip' => Mage::helper('core/http')->getRemoteAddr(true), 'user_agent' => Mage::helper('core/http')->getHttpUserAgent(true)));
         if ($response = $this->apiPost('user', $data)) {
             return $this->setCookie($response);
         } else {
             throw new Sailthru_Email_Model_Client_Exception("Response: {$response} is not a valid JSON");
         }
     } catch (Sailthru_Email_Model_Client_Exception $e) {
         Mage::logException($e);
     } catch (Exception $e) {
         Mage::logException($e);
     }
 }