function mailchimp_campaign_get_campaigns in Mailchimp 7.3
Same name and namespace in other branches
- 8 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
- 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
- 7.2 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
- 7.4 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
- 2.x modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
Get MailChimp campaigns.
Parameters
array $mc_campaign_ids: Array of MailChimp campaign IDs.
bool $reset: Set to TRUE if campaigns should not be loaded from cache.
Return value
array Associative array of MailChimp campaigns indexed by campaign ID.
2 calls to mailchimp_campaign_get_campaigns()
- MailChimpCampaignController::attachLoad in modules/
mailchimp_campaign/ includes/ mailchimp_campaign.controller.inc - Implement in order to attach MailChimp data to campaign entities.
- mailchimp_campaign_save_campaign in modules/
mailchimp_campaign/ mailchimp_campaign.module - Save a campaign in MailChimp and as a Drupal entity.
File
- modules/
mailchimp_campaign/ mailchimp_campaign.module, line 841 - Module file for mailchimp_campaign.
Code
function mailchimp_campaign_get_campaigns($mc_campaign_ids, $reset = FALSE) {
$mc_campaigns = array();
$cached_campaigns = cache_get('campaigns', 'cache_mailchimp');
foreach ($mc_campaign_ids as $id) {
if (!isset($cached_campaigns->data[$id]) || $cached_campaigns->data[$id]['status'] == MAILCHIMP_STATUS_SENDING || $reset) {
$to_refresh[] = $id;
}
else {
$mc_campaigns[$id] = $cached_campaigns->data[$id];
}
}
if (!empty($to_refresh)) {
$mcapi = mailchimp_get_api_object();
try {
if (!$mcapi) {
throw new MailchimpException('Cannot get list without MailChimp API. Check API key has been entered.');
}
$response = $mcapi->campaigns
->getList(array(
'campaign_id' => implode(',', $to_refresh),
));
} catch (Mailchimp_Error $e) {
drupal_set_message($e
->getMessage(), 'error');
watchdog('mailchimp_campaign', 'An error occurred while getting campaigns: @msg', array(
'@msg' => $e
->getMessage(),
), WATCHDOG_ERROR);
return NULL;
}
if (isset($response['total']) && $response['total'] > 0) {
foreach ($response['data'] as $mc_campaign) {
$mc_campaigns[$mc_campaign['id']] = $mc_campaign;
}
}
cache_set('campaigns', $mc_campaigns, 'cache_mailchimp');
}
return $mc_campaigns;
}