function mailchimp_campaign_get_campaigns in Mailchimp 7.4
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.3 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 $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 876 - Module file for mailchimp_campaign.
Code
function mailchimp_campaign_get_campaigns($campaign_ids, $reset = FALSE) {
$campaigns = array();
$cached_campaigns = cache_get('campaigns', 'cache_mailchimp');
foreach ($campaign_ids as $id) {
if (!isset($cached_campaigns->data[$id]) || $cached_campaigns->data[$id]->status == MAILCHIMP_STATUS_SENDING || $reset) {
$to_refresh[] = $id;
}
else {
$campaigns[$id] = $cached_campaigns->data[$id];
}
}
if (!empty($to_refresh)) {
/* @var \Mailchimp\MailchimpCampaigns $mc_campaigns */
$mc_campaigns = mailchimp_get_api_object('MailchimpCampaigns');
try {
if (!$mc_campaigns) {
throw new MailchimpException('Cannot get list without Mailchimp API. Check API key has been entered.');
}
foreach ($to_refresh as $campaign_id) {
try {
$response = $mc_campaigns
->getCampaign($campaign_id);
} catch (Exception $e) {
$message = t('An error occurred while getting campaign %campaign_id. Would you like to <a href="@administer-page">delete it</a>?', array(
'%campaign_id' => $campaign_id,
'@administer-page' => url('admin/config/services/mailchimp/campaigns/' . $campaign_id . '/delete'),
));
drupal_set_message($message, 'error');
watchdog('mailchimp_campaign', 'An error occurred while getting campaign %campaign_id: %message', array(
'%campaign_id' => $campaign_id,
'%message' => $e
->getMessage(),
), WATCHDOG_ERROR);
}
if (!empty($response->id)) {
$campaigns[$response->id] = $response;
}
}
} catch (Exception $e) {
drupal_set_message($e
->getMessage(), 'error');
watchdog('mailchimp_campaign', 'An error occurred while getting campaigns: %message', array(
'%message' => $e
->getMessage(),
), WATCHDOG_ERROR);
return NULL;
}
cache_set('campaigns', $campaigns, 'cache_mailchimp');
}
return $campaigns;
}