You are here

function mailchimp_campaign_get_campaigns in Mailchimp 7.2

Same name and namespace in other branches
  1. 8 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
  2. 7.5 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
  3. 7.3 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
  4. 7.4 modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()
  5. 2.x modules/mailchimp_campaign/mailchimp_campaign.module \mailchimp_campaign_get_campaigns()

Return MailChimp campaigns.

Parameters

Array $mc_campaign_ids: Array of MailChimp campaign IDs.

Return value

array Keyed by campaign ID.

2 calls to mailchimp_campaign_get_campaigns()
MailChimpCampaignController::attachLoad in modules/mailchimp_campaign/mailchimp_campaign.entity.inc
Implement in order to attach MC 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 557

Code

function mailchimp_campaign_get_campaigns($mc_campaign_ids, $reset = FALSE) {
  $mc_campaigns = array();
  $cached_campaigns = cache_get('mailchimp_campaigns');
  foreach ($mc_campaign_ids as $id) {
    if (!isset($cached_campaigns->data[$id]) || $reset) {
      $to_refresh[] = $id;
    }
    else {
      $mc_campaigns[$id] = $cached_campaigns->data[$id];
    }
  }
  if (!empty($to_refresh)) {
    $mcapi = mailchimp_get_api_object();
    $response = $mcapi
      ->campaigns(array(
      'campaign_id' => implode(',', $to_refresh),
    ));
    if (isset($response['total']) && $response['total'] > 0) {
      foreach ($response['data'] as $mc_campaign) {
        $mc_campaigns[$mc_campaign['id']] = $mc_campaign;
      }
    }
    cache_set('mailchimp_campaigns', $mc_campaigns);
  }
  return $mc_campaigns;
}