/** * Get the list saved in the remote MailChimp service */ public static function get_mailchimp_list() { $errors = array(); $key = Settings::findbyParam("MailChimp_key", "Admin"); if (empty($key)) { $data = array('MailChimp Api Key has been not set yet. Subscribe a Mailchimp.com account and then go to Configuration > MailChimp to fill up the API key'); return $data; } $api = new Shineisp_Plugins_Newsletters_Mailchimp_Main(); $api->setApi_key($key); $lists = $api->lists(); $data = array(); if (!empty($lists['data'])) { foreach ($lists['data'] as $list) { $data[$list['id']] = $list['name'] . " - (" . $list['stats']['member_count'] . " members)"; } } return $data; }
/** * OptOut MailChimp * @param array * @return Boolean */ public static function bulk_mailchimp_optout($items, $parameters) { $errors = array(); if (!empty($items)) { $key = Settings::findbyParam("MailChimp_key", "Admin"); $confirm = Settings::findbyParam("MailChimp_confirm", "Admin"); if (empty($key)) { die('MailChimp Api Key has been not set yet. Go to Configuration > MailChimp'); } $list_id = $parameters['list']; $api = new Shineisp_Plugins_Newsletters_Mailchimp_Main(); $api->setApi_key($key); foreach ($items as $id) { $email = self::getSubscriberEmail($id); $result = $api->listUnsubscribe($list_id, $email, true, $confirm); if (!empty($api->errorCode)) { $errors[] = $api->errorMessage; } } if (!empty($errors)) { die(json_encode(array('mex' => implode("<br/>", $errors)))); } return true; } return false; }