You are here

function mailchimp_get_list in Mailchimp 7.5

Same name and namespace in other branches
  1. 8 mailchimp.module \mailchimp_get_list()
  2. 7.2 mailchimp.module \mailchimp_get_list()
  3. 7.3 mailchimp.module \mailchimp_get_list()
  4. 7.4 mailchimp.module \mailchimp_get_list()
  5. 2.x mailchimp.module \mailchimp_get_list()

Gets a single MailChimp list/audience by ID.

Parameters

string $list_id: The unique ID of the list/audience provided by MailChimp.

bool $use_interest_groups: TRUE to load interest groups for the list/audience.

bool $reset: TRUE to reset list/audience cache and load from MailChimp.

bool $exclude_hidden_interest_groups: TRUE to exclude hidden interest groups for the list/audience.

Return value

object A MailChimp list object.

9 calls to mailchimp_get_list()
MailChimpCampaignController::attachLoad in modules/mailchimp_campaign/includes/mailchimp_campaign.controller.inc
Implement in order to attach MailChimp data to campaign entities.
MailchimpListsTestCase::testGetList in modules/mailchimp_lists/tests/mailchimp_lists.test
Tests retrieval of a specific list.
mailchimp_lists_field_formatter_view in modules/mailchimp_lists/includes/mailchimp_lists.field.inc
Implements hook_field_formatter_view().
mailchimp_lists_field_get in modules/mailchimp_lists/includes/mailchimp_lists.field.inc
Entity field data callback for MailChimp subscription fields.
mailchimp_lists_field_widget_form in modules/mailchimp_lists/includes/mailchimp_lists.field.inc
Implements hook_field_widget_form().

... See full list

File

./mailchimp.module, line 242
Mailchimp module.

Code

function mailchimp_get_list($list_id, $use_interest_groups = TRUE, $reset = FALSE, $exclude_hidden_interest_groups = TRUE) {
  if (empty($list_id)) {
    return NULL;
  }
  $cache = $reset ? NULL : cache_get('list-' . $list_id, 'cache_mailchimp');
  if (!empty($cache)) {

    // Use cached list only if interest group requirement is met.
    if (!$use_interest_groups || $use_interest_groups && isset($cache->data->intgroups)) {
      return $cache->data;
    }
  }
  $list = NULL;
  try {

    /* @var \Mailchimp\MailchimpLists $mc_lists */
    $mc_lists = mailchimp_get_api_object('MailchimpLists');
    if (!$mc_lists) {
      throw new MailchimpException('Cannot get list without MailChimp API. Check API key has been entered.');
    }
    $list = $mc_lists
      ->getList($list_id);
    if (!empty($list)) {

      // Add interest categories to the list.
      $list->intgroups = mailchimp_get_interest_categories($list->id, $exclude_hidden_interest_groups, $reset);

      // Add mergefields to the list.
      $mergefields = $mc_lists
        ->getMergeFields($list->id, array(
        'count' => 500,
      ));
      if ($mergefields->total_items > 0) {
        $list->mergevars = $mergefields->merge_fields;
      }
    }
    cache_set('list-' . $list_id, $list, 'cache_mailchimp', CACHE_PERMANENT);
  } catch (Exception $e) {
    watchdog('mailchimp', 'An error occurred requesting list information from MailChimp. "%message"', array(
      '%message' => $e
        ->getMessage(),
    ), WATCHDOG_ERROR);
  }
  return $list;
}