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