/** * Unsubscribe an e-mail to a list. * * @param int $listId The id of the list to unsubscribe from * @param string $email The email address to unsubscribe from. * @return bool True if email was unsubscribed successfully. */ public function unsubscribe($listId, $email) { // Clear the cache for members in list $cacheName = $this->__getCacheName('list_subscribed_members', array($listId)); $this->__clearMailchimpCache($cacheName); return $this->__api->listUnsubscribe($listId, $email); }
function mc_remove_email($email_address) { require_once DIR_WS_CLASSES . 'MCAPI.class.php'; $api = new MCAPI(MAILCHIMP_API); $email = $newsletter['customers_email_address']; $retval = $api->listUnsubscribe(MAILCHIMP_ID, $email, MAILCHIMP_DELETE, MAILCHIMP_SEND_GOODBYE, MAILCHIMP_SEND_NOTIFY); }
public function moveSubscriber() { $api = new MCAPI($this->_apiKey); $retval = $api->lists(); if ($api->errorCode) { Mage::getSingleton('core/session')->addError($this->__('Error: %s', $api->errorMessage)); } else { foreach ($retval['data'] as $val) { if ($val['name'] === "Prospects") { $prospectListId = $val['id']; } elseif ($val['name'] === "Fashion Eyewear Customers") { $customerListId = $val['id']; } } if ($api->errorCode != '') { // an error occurred while logging in Mage::log('Error Code: ' . $api->errorCode); Mage::log('Error Message: ' . $api->errorMessage); die; } $retval = $api->listMembers($prospectListId, 'subscribed', null, 0, 10000); //var_dump($retval);die; if (!$retval) { Mage::log('Error Code: ' . $api->errorCode); Mage::log('Error Message: ' . $api->errorMessage); } else { foreach ($retval['data'] as $member) { //echo $member['email']." - ".$member['timestamp']."<br />"; $customerModel = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('*')->addAttributeToFilter('email', $member['email'])->setPage(1, 1); $customers = $customerModel->getData(); $customerId = $customers[0]['entity_id']; $orders = Mage::getResourceModel('sales/order_collection')->addFieldToSelect('*')->addFieldToFilter('customer_id', $customerId)->getData(); if (!empty($orders)) { //if ($member['email'] === '*****@*****.**') { $memInfo = $api->listMemberInfo($prospectListId, array($member['email'])); $firstname = $memInfo['data'][0]['merges']['FNAME']; if (empty($firstname)) { $firstname = Mage::getModel('customer/customer')->load($customerId)->getFirstname(); } $retuns = $api->listUnsubscribe($prospectListId, $member['email'], 1); if (!$retuns) { Mage::log('Unsubscribe Error Code: ' . $api->errorCode); Mage::log('Unsubscribe Error Message: ' . $api->errorMessage); } $merge_vars = array('FNAME' => $firstname); $retsub = $api->listSubscribe($customerListId, $member['email'], $merge_vars); if (!$retsub) { Mage::log('Subscribe Error Code: ' . $api->errorCode); Mage::log('Subscribe Error Message: ' . $api->errorMessage); } //} } } } } }
function unSubscribe($userId = null, $listId = null, $email = null) { App::import('Vendor', 'MCAPI', array('file' => 'MCAPI.class.php')); $MCapi = new MCAPI(MCLOGIN, MCPASSWORD); $mcListId = $this->field('chimpid', array('id' => $listId)); if (!$mcListId) { return false; } $this->MailinglistUser->deleteAll("mailinglist_id = {$listId} AND user_id = {$userId}"); /*Remove from the list*/ $result = $MCapi->listUnsubscribe($mcListId, $email, true, true, false); //pr($MCapi->errorCode); }
function unsubscribe() { $api_key = $this->EE->TMPL->fetch_param('api_key'); $list_id = $this->EE->TMPL->fetch_param('list_id'); $email_address = $this->EE->TMPL->fetch_param('email_address'); if (!$api_key or !$list_id or !$email_address) { return; } $api = new MCAPI($api_key); $result = $api->listUnsubscribe($list_id, $email_address); if ($api->errorCode) { $this->EE->TMPL->log_item('Mailchimp EE: Unsubscribe failed, Mailchimp API complained - ' . $api->errorMessage . ' (' . $api->errorCode . ')'); } }
public function mailChimpUnsubscribe($data) { if (!$data['email']) { return "No email address provided"; } if (!preg_match("/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\$/i", $data['email'])) { return "Email address is invalid"; } require_once '/var/www/system/library/MCAPI.class.php'; $api = new MCAPI('YOUR_API_KEY'); if ($api->listUnsubscribe("YOUR_LIST", $data['email'])) { echo 'Success! Check your email to confirm sign up.'; return 'Success! Check your email to confirm sign up.'; } else { echo 'Error: ' . $api->errorMessage; return 'Error: ' . $api->errorMessage; } }
public static function cancel($params) { $result = array(); $result['success'] = true; if(empty($params['allow_work'])) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_("Error"); return $result; } unset($params['allow_work']); $db = oseDB::instance(); $msc_id =$params['msc_id']; $member_id = $params['member_id']; // get the list id of msc $query = "SELECT * FROM `#__osemsc_ext` WHERE `id` = '{$msc_id}' AND `type` = 'mailchimp'"; $db->setQuery($query); $data = $db->loadObject(); $data = oseJson::decode($data->params); if(empty($data->list_id) || empty($data->enable) || empty($data->unsubscribe_enable)) { $result['success'] = true; $result['title'] = JText::_('Done'); $result['content'] = JText::_("Done"); return $result; } require_once(OSEMSC_B_LIB.DS.'MCAPI.class.php'); $oseMscConfig= oseRegistry :: call('msc')->getConfig(null, 'obj'); $APIKey = $oseMscConfig->mailchimp_api_key; $api = new MCAPI($APIKey); $query = "SELECT email FROM `#__users` WHERE `id` = ".(int) $member_id; $db->setQuery($query); $email = $db->loadResult(); $MC_MemInfo = $api->listMemberInfo($data->list_id,$email); if($MC_MemInfo['success']) { $api->listUnsubscribe($data->list_id,$email,$data->delete,$data->sendGoodbye,$data->sendNotify); } return $result; }
public function onAfterDelete() { // If Deletion Is Triggered By A Sync Where The Record Has Already Been Deleted In MC The Sync Flag Will Be False if ($this->getSyncMailChimp()) { $apikey = SiteConfig::current_site_config()->getMCAPIKey(); $api = new MCAPI($apikey); // Define Related MCList Object $list = $this->getComponent("MCList"); // Execute the Unsubscribe Call $result = $api->listUnsubscribe($list->ListID, $this->getMailChimpIdentifier(), true); if ($result) { SS_Log::log("API Call Success: listUnsubscribe(" . $list->ListID . ", " . $this->getMailChimpIdentifier() . ", \$delete_member = true); for Subscription ID " . $this->ID, SS_Log::NOTICE); } else { SS_Log::log("API Call Failed: listUnsubscribe(" . $list->ListID . ", " . $this->getMailChimpIdentifier() . ", \$delete_member = true); for Subscription ID " . $this->ID . " | Error Code = " . $api->errorCode . " | Error Message = " . $api->errorMessage, SS_Log::ERR); } } }
function sendMailChimpNotification() { $mainframe = JFactory::getApplication(); // listSubscribe(string apikey, string id, string email_address, array merge_vars, string email_type, boolean double_optin, boolean update_existing, boolean replace_interests, boolean send_welcome) if (!class_exists('MCAPI')) { require_once JPATH_SITE . '/administrator/components/com_breezingforms/libraries/mailchimp/MCAPI.class.php'; } if (trim($this->formrow->mailchimp_email_field) != '' && trim($this->formrow->mailchimp_api_key) != '' && trim($this->formrow->mailchimp_list_id) != '' && count($this->maildata)) { $email = ''; $htmlTextMobile = 'text'; $checked = true; $unsubsribe = false; $mergeVars = array(); $htmlTextMobileField = trim($this->formrow->mailchimp_text_html_mobile_field); $checkboxField = trim($this->formrow->mailchimp_checkbox_field); $unsubscribeField = trim($this->formrow->mailchimp_unsubscribe_field); $emailField = trim($this->formrow->mailchimp_email_field); $mergeVarFields = explode(',', str_replace(' ', '', $this->formrow->mailchimp_mergevars)); $api = new MCAPI(trim($this->formrow->mailchimp_api_key)); $list_id = trim($this->formrow->mailchimp_list_id); if ($checkboxField != '') { $box = JRequest::getVar('ff_nm_' . $checkboxField, array('')); if (isset($box[0]) && $box[0] != '') { $checked = true; } else { $checked = false; } } if ($unsubscribeField != '') { $box = JRequest::getVar('ff_nm_' . $unsubscribeField, array('')); if (isset($box[0]) && $box[0] != '') { $unsubsribe = true; } } if ($htmlTextMobileField != '') { $selection = JRequest::getVar('ff_nm_' . $htmlTextMobileField, array('')); if (isset($selection[0]) && $selection[0] != '') { $htmlTextMobile = $selection[0]; } } else { $htmlTextMobile = $this->formrow->mailchimp_default_type; } foreach ($this->maildata as $data) { switch ($data[_FF_DATA_NAME]) { case $emailField: $email = bf_is_email(trim($data[_FF_DATA_VALUE])) ? trim($data[_FF_DATA_VALUE]) : ''; break; default: if (in_array($data[_FF_DATA_NAME], $mergeVarFields)) { $mergeVars[$data[_FF_DATA_NAME]] = $data[_FF_DATA_VALUE]; } } } if ($email != '' && $checked) { if ($api->listSubscribe($list_id, $email, count($mergeVars) == 0 ? '' : $mergeVars, $htmlTextMobile, $this->formrow->mailchimp_double_optin, $this->formrow->mailchimp_update_existing, $this->formrow->mailchimp_replace_interests, $this->formrow->mailchimp_send_welcome) !== true) { if ($this->formrow->mailchimp_send_errors) { $from = $this->formrow->alt_mailfrom != '' ? $this->formrow->alt_mailfrom : $mainframe->getCfg('mailfrom'); $fromname = $this->formrow->alt_fromname != '' ? $this->formrow->alt_fromname : $mainframe->getCfg('fromname'); $this->sendMail($from, $fromname, $from, 'MailChimp API Error', 'Could not send data to MailChimp for email: ' . $email . "\n\nReason (code " . $api->errorCode . "): " . $api->errorMessage); } } } if ($email != '' && $unsubsribe) { if ($api->listUnsubscribe($list_id, $email, $this->formrow->mailchimp_delete_member, $this->formrow->mailchimp_send_goodbye, $this->formrow->mailchimp_send_notify) !== true) { if ($this->formrow->mailchimp_send_errors) { $from = $this->formrow->alt_mailfrom != '' ? $this->formrow->alt_mailfrom : $mainframe->getCfg('mailfrom'); $fromname = $this->formrow->alt_fromname != '' ? $this->formrow->alt_fromname : $mainframe->getCfg('fromname'); $this->sendMail($from, $fromname, $from, 'MailChimp API Error', 'Could not send unsubscribe data to MailChimp for email: ' . $email . "\n\nReason (code " . $api->errorCode . "): " . $api->errorMessage); } } } } }
public function setMemberSubscription($subscribe = true, $groups = array(), $send_confirmation = false) { /* * Subscribe or Unsubscribe member to MailChimp list, setting Interest Group preferences */ require_once 'mailchimp-api/MCAPI.class.php'; require_once 'mailchimp-api/config.inc.php'; $mc_api = new MCAPI($mailchimp_api_key); if ($subscribe) { $merge_vars = array(''); // '' necessary if (isset($this->nameFirst)) { $merge_vars['FNAME'] = $this->nameFirst; } if (isset($this->nameLast)) { $merge_vars['LNAME'] = $this->nameLast; } $groups_str = implode(', ', $groups); $merge_vars['INTERESTS'] = $groups_str; $retval = array(); // Subscribe // By default this sends a confirmation email ($double_optin=true); // you will not see new members until the link contained in it is clicked! $retval['success'] = $mc_api->listSubscribe($mailchimp_list_id, $this->emailAddress, $merge_vars, 'html', $send_confirmation, true, true, false); // listSubscribe($id, $email_address, $merge_vars, $email_type='html', $double_optin=true, $update_existing=false, $replace_interests=true, $send_welcome=false) $retval['msg'] = "Subscription for {$this->emailAddress} successfully applied. Groups: { {$groups_str} }."; } else { $retval['success'] = $mc_api->listUnsubscribe($mailchimp_list_id, $this->emailAddress, true); // listUnsubscribe($id, $email_address, $delete_member=false, $send_goodbye=true, $send_notify=true) $retval['msg'] = "{$this->emailAddress} successfuly unsubscribed (fully)."; } if (!$retval['success']) { if ($mc_api->errorCode) { $retval['msg'] = "MailChimp Error (subscribing): " . $mc_api->errorMessage . " (Code: " . $mc_api->errorCode . ")"; } else { $retval['msg'] = "Unknown MailChimp Error (subscribing)."; } } return $retval; }
function unSubscribeLender($email) { require_once 'mail_chimp/MCAPI.class.php'; require_once 'mail_chimp/config.inc.php'; //contains apikey $api = new MCAPI($apikey); $retval = $api->listUnsubscribe($listId, $email); if ($api->errorCode) { Logger_Array("Unable to load listSubscribe", 'Error Code, Error Message', $api->errorCode, $api->errorMessage); } else { Logger_Array("Unsubscribed", 'retval', $retval); } }
<?php /** This Example shows how to pull the Info for a Member of a List using the MCAPI.php class and do some basic error checking. **/ require_once 'inc/MCAPI.class.php'; require_once 'inc/config.inc.php'; //contains apikey $api = new MCAPI($apikey); $retval = $api->listUnsubscribe($listId, $my_email); if ($api->errorCode) { echo "Unable to load listUnsubscribe()!\n"; echo "\tCode=" . $api->errorCode . "\n"; echo "\tMsg=" . $api->errorMessage . "\n"; } else { echo "Returned: " . $retval . "\n"; }
$newsletter_general = '0'; } if ($newsletter_general != $newsletter['customers_newsletter']) { $newsletter_general = $newsletter['customers_newsletter'] == '1' ? '0' : '1'; tep_db_query("update " . TABLE_CUSTOMERS . " set customers_newsletter = '" . (int) $newsletter_general . "' where customers_id = '" . (int) $customer_id . "'"); //Mail Chimp if (MAILCHIMP_ENABLE == true) { require_once DIR_WS_CLASSES . 'MCAPI.class.php'; require DIR_WS_FUNCTIONS . 'mailchimp_functions.php'; $api = new MCAPI(MAILCHIMP_API); $list_id = MAILCHIMP_ID; $email_address = $newsletter['customers_email_address']; $email_format = $newsletter['customers_newsletter_type']; if ($newsletter['customers_newsletter'] == '1') { //unsubscribe $retval = $api->listUnsubscribe($list_id, $email_address, MAILCHIMP_DELETE, MAILCHIMP_SEND_GOODBYE, MAILCHIMP_SEND_NOTIFY); } else { //subscribe $merge_vars = array(''); if ($email_format == 'TEXT') { $format = 'text'; } else { $format = 'html'; } $retval = $api->listSubscribe($list_id, $email_address, $merge_vars, $format, MAILCHIMP_OPT_IN, true); } // end if } // end if MAILCHIMP_ENABLE } // end if
function unsubscribe_mailchimp_user($email_address, $list) { global $premise_base; require_once PREMISE_LIB_DIR . 'mailchimp_api/MCAPI.class.php'; $settings = $premise_base->get_settings(); $mailchimp = new MCAPI($settings['optin']['mailchimp-api']); $mailchimp->listUnsubscribe($list, $email_address, false, false, empty($settings['optin']['mailchimp-single-optin'])); }
function mailchimp_hook_check($vars) { // Load config $data = select_query("tblmailchimpconf", "name, value", array()); while ($r = mysql_fetch_array($data)) { switch ($r['name']) { case "apikey": $apikey = $r['value']; break; case "clientfield": $clientfield = $r['value']; break; } } if ($apikey && $clientfield) { $d = select_query("tblcustomfieldsvalues", "value", array("fieldid" => $clientfield, "relid" => $vars['userid'])); if (mysql_num_rows($d)) { $r = mysql_fetch_array($d); $res = explode("|", $r[0]); $listid = $res[0]; $listname = $res[1]; } $api = new MCAPI($apikey); $lst = $api->lists(); $lists = $lst['data']; if (isset($vars['olddata'])) { $cfarr = array($vars['olddata']['customfields1'], $vars['olddata']['customfields2'], $vars['olddata']['customfields3'], $vars['olddata']['customfields4'], $vars['olddata']['customfields5'], $vars['olddata']['customfields6'], $vars['olddata']['customfields7'], $vars['olddata']['customfields8'], $vars['olddata']['customfields9'], $vars['olddata']['customfields10']); $firstname = $vars['olddata']['firstname']; $lastname = $vars['olddata']['lastname']; foreach ($lists as $k => $v) { if (in_array($v['name'], $cfarr)) { $oldlist = array('name' => $v['name'], 'id' => $v['id']); break; } } } else { $firstname = $vars['firstname']; $lastname = $vars['lastname']; } $email = $vars['email']; if ($listid != 'none' && $listid != '') { $merge_vars = array('FNAME' => $firstname, 'LNAME' => $lastname); $retval = $api->listSubscribe($listid, $email, $merge_vars, null, False); if ($api->errorCode) { $desc = $api->errorMessage; $userid = $vars['userid']; $query = "INSERT INTO tblactivitylog (date, description, user, userid) VALUES(now(), '{$desc}', 'System', '{$userid}')"; full_query($query); } } else { $retval = $api->listUnsubscribe($listid, $email, False, False); if ($api->errorCode) { $desc = $api->errorMessage; $userid = $vars['userid']; $query = "INSERT INTO tblactivitylog (date, description, user, userid) VALUES(now(), '{$desc}', 'System', '{$userid}')"; full_query($query); } } if (isset($oldlist) && $oldlist['id'] != $listid) { $retval = $api->listUnsubscribe($oldlist['id'], $email, False, False); if ($api->errorCode) { $desc = $api->errorMessage; $userid = $vars['userid']; $query = "INSERT INTO tblactivitylog (date, description, user, userid) VALUES(now(), '{$desc}', 'System', '{$userid}')"; full_query($query); } } } }