Exemple #1
0
 /**
  * Deletion of segment
  */
 public function delete()
 {
     AW_Advancednewsletter_Model_Sync_Mailchimpclient::$disableAutosync = true;
     $segmentCode = $this->getCode();
     parent::delete();
     Mage::getModel('advancednewsletter/subscriber')->getCollection()->removeSegment($segmentCode);
     Mage::dispatchEvent('an_segment_delete', array('segment_code' => $segmentCode));
 }
 public function massUnsubscribeAction()
 {
     $segment = $this->getRequest()->getParam('segment');
     $customersIds = $this->getRequest()->getParam('customer');
     if (!is_array($customersIds)) {
         Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select customer(s)'));
     } else {
         try {
             AW_Advancednewsletter_Model_Sync_Mailchimpclient::$disableAutosync = true;
             foreach ($customersIds as $customerId) {
                 $customer = Mage::getModel('customer/customer')->load($customerId);
                 Mage::getModel('advancednewsletter/subscriber')->loadByEmail($customer->getEmail())->unsubscribe($segment);
             }
             Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Total of %d record(s) were successfully updated', count($customersIds)));
         } catch (Exception $e) {
             Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
         }
     }
     $this->_redirect('*/*/index');
 }
 public function saveAction()
 {
     $request = $this->getRequest();
     $template = Mage::getModel('advancednewsletter/template');
     if ($id = (int) $request->getParam('id')) {
         $template->load($id);
     }
     try {
         $template->addData($request->getParams())->setTemplateSubject($request->getParam('subject'))->setTemplateCode($request->getParam('code'))->setTemplateSenderEmail($request->getParam('sender_email'))->setTemplateSenderName($request->getParam('sender_name'))->setTemplateText($request->getParam('text'))->setTemplateStyles($request->getParam('styles'))->setModifiedAt(Mage::getSingleton('core/date')->gmtDate());
         if (!$template->getId()) {
             $template->setTemplateType(Mage_Newsletter_Model_Template::TYPE_HTML);
         }
         if ($this->getRequest()->getParam('_change_type_flag')) {
             $template->setTemplateType(Mage_Newsletter_Model_Template::TYPE_TEXT);
             $template->setTemplateStyles('');
         }
         /* Market Segmentation Suite compatibility */
         if ($request->getParam('mss_rule_id')) {
             $rule = Mage::getModel('marketsuite/filter')->load($request->getParam('mss_rule_id'));
             if ($rule->getId()) {
                 $newSegmentCode = 'MSS_' . str_replace(array(' ', ',', '<', '>'), array('_', '', '_less_', '_more_'), $rule->getName());
                 Mage::getModel('advancednewsletter/segment')->createNewSegment($newSegmentCode);
                 $template->setData('segments_codes', array($newSegmentCode));
                 foreach (Mage::getModel('marketsuite/api')->exportCustomers($rule->getId()) as $customer) {
                     AW_Advancednewsletter_Model_Sync_Mailchimpclient::$disableAutosync = true;
                     Mage::getModel('advancednewsletter/subscriber')->setCustomer(Mage::getModel('customer/customer')->load($customer->getId()))->subscribe($customer->getEmail(), array($newSegmentCode));
                 }
             }
         }
         if ($this->getRequest()->getParam('_save_as_flag')) {
             $template->setId(null);
         }
         $template->preprocess();
         $this->_redirect('*/*');
     } catch (Mage_Core_Exception $e) {
         $this->_getSession()->addError(nl2br($e->getMessage()));
         $this->_getSession()->setData('advancednewsletter_template_form_data', $this->getRequest()->getParams());
     } catch (Exception $e) {
         $this->_getSession()->addException($e, Mage::helper('adminhtml')->__('An error occurred while saving this template.'));
         $this->_getSession()->setData('advancednewsletter_template_form_data', $this->getRequest()->getParams());
     }
     $this->_forward('new');
 }