Exemple #1
0
 /**
  * Checking subscribers data and getting 'merges' array for Mailchimp sync (names, segments_codes)
  * @param <type> $subscriber
  * @return <type> 
  */
 protected function checkAndGetMerges($subscriber)
 {
     $merges = array();
     if (!$this->getSkipChangesCheck()) {
         $namesChanged = $segmentsChanged = $storeChanged = $emailChanged = false;
         if ($subscriber->getOrigData('store_id') != $subscriber->getData('store_id')) {
             $storeChanged = true;
         }
         if ($subscriber->getOrigData('email') != $subscriber->getData('email')) {
             $emailChanged = true;
         }
         if ($subscriber->getOrigData('first_name') != $subscriber->getData('first_name') || $subscriber->getOrigData('last_name') != $subscriber->getData('last_name')) {
             $namesChanged = true;
         }
         $subscriberOldSegments = implode(',', $subscriber->getOrigData('segments_codes'));
         $subscriberCurrentSegments = implode(',', $subscriber->getData('segments_codes'));
         if ($subscriberOldSegments != $subscriberCurrentSegments) {
             $segmentsChanged = true;
         }
         if ($subscriber->getIsNew()) {
             $storeChanged = $emailChanged = false;
             $namesChanged = $segmentsChanged = true;
         }
         /*
          * If subscriber store id changed, we remove it from his previous list and set
          * $namesChanged and $segmentsChanged to true to upload this params to this customer
          * in the new list
          */
         if ($storeChanged || $emailChanged) {
             $this->deleteOptional($subscriber->getOrigData('email'), $subscriber->getOrigData('store_id'));
             $namesChanged = $segmentsChanged = true;
         }
         if ($segmentsChanged) {
             $merges['INTERESTS'] = $subscriberCurrentSegments;
         }
         if ($namesChanged) {
             $merges['FNAME'] = $subscriber->getData('first_name');
             $merges['LNAME'] = $subscriber->getData('last_name');
         }
     } else {
         $merges['INTERESTS'] = $subscriber->getData('segments_codes');
         if ($this->getIncludeNames()) {
             $merges['FNAME'] = $subscriber->getData('first_name');
             $merges['LNAME'] = $subscriber->getData('last_name');
         }
     }
     return $merges;
 }
 /**
  * Call registerMail and check if it is a customer or guest
  * @param <type> $subscriber
  */
 public function callRegisterMailForSubscriber($subscriber)
 {
     if ($subscriber->getData('customer_id') > 0) {
         $customer = Mage::getModel('customer/customer')->load($subscriber->getData('customer_id'));
         $addressId = $customer->getData('default_shipping');
         $address = Mage::getModel('customer/address')->load($addressId);
         Mage::helper('rapidmail')->registerMail($subscriber->getEmail(), $customer->getFirstname(), $customer->getLastname(), Mage::helper('rapidmail')->convertGender($customer->getGender()), $address->getPostcode(), Mage::helper('rapidmail')->convertDob($customer->getData('dob')));
     } else {
         Mage::helper('rapidmail')->registerMail($subscriber->getEmail(), '');
     }
 }