public function massUnsubscribeAction()
 {
     Mage::log("Fontis_CampaignMonitor: massUnsubscribeAction");
     $subscribersIds = $this->getRequest()->getParam('subscriber');
     if (!is_array($subscribersIds)) {
         Mage::getSingleton('adminhtml/session')->addError(Mage::helper('newsletter')->__('Please select subscriber(s)'));
         $this->_redirect('*/*/index');
     } else {
         try {
             $apiKey = trim(Mage::getStoreConfig('newsletter/campaignmonitor/api_key'));
             $listID = trim(Mage::getStoreConfig('newsletter/campaignmonitor/list_id'));
             try {
                 $client = new SoapClient("http://api.createsend.com/api/api.asmx?wsdl", array("trace" => true));
             } catch (Exception $e) {
                 Mage::log("Fontis_CampaignMonitor: Error connecting to CampaignMonitor server: " . $e->getMessage());
                 Mage::getSingleton('admin/session')->addException($e, $this->__('There was a problem with the subscription'));
                 $this->_redirectReferer();
             }
             foreach ($subscribersIds as $subscriberId) {
                 $subscriber = Mage::getModel('newsletter/subscriber')->load($subscriberId);
                 $email = $subscriber->getEmail();
                 Mage::log("Fontis_CampaignMonitor: Unsubscribing: {$email}");
                 try {
                     $result = $client->Unsubscribe(array("ApiKey" => $apiKey, "ListID" => $listID, "Email" => $email));
                 } catch (Exception $e) {
                     Mage::log("Fontis_CampaignMonitor: Error in CampaignMonitor SOAP call: " . $e->getMessage());
                 }
             }
         } catch (Exception $e) {
             Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
         }
     }
     parent::massUnsubscribeAction();
 }
 public function customer_deleted($observer)
 {
     $event = $observer->getEvent();
     $customer = $event->getCustomer();
     $apiKey = trim(Mage::getStoreConfig('newsletter/campaignmonitor/api_key'));
     $listID = trim(Mage::getStoreConfig('newsletter/campaignmonitor/list_id'));
     $email = $customer->getEmail();
     if ($apiKey and $listID) {
         Mage::log("Fontis_CampaignMonitor: Customer deleted, unsubscribing: {$email}");
         try {
             $client = new SoapClient("http://api.createsend.com/api/api.asmx?wsdl");
             $result = $client->Unsubscribe(array("ApiKey" => $apiKey, "ListID" => $listID, "Email" => $email));
         } catch (Exception $e) {
             Mage::log("Fontis_CampaignMonitor: Error in SOAP call: " . $e->getMessage());
             return;
         }
     }
 }