You are here

function mailchimp_lists_update_member_merge_values in Mailchimp 7.3

Same name and namespace in other branches
  1. 8 modules/mailchimp_lists/mailchimp_lists.module \mailchimp_lists_update_member_merge_values()
  2. 7.5 modules/mailchimp_lists/mailchimp_lists.module \mailchimp_lists_update_member_merge_values()
  3. 7.4 modules/mailchimp_lists/mailchimp_lists.module \mailchimp_lists_update_member_merge_values()
  4. 2.x modules/mailchimp_lists/mailchimp_lists.module \mailchimp_lists_update_member_merge_values()

Triggers an update of all merge field values for appropriate entities.

1 call to mailchimp_lists_update_member_merge_values()
mailchimp_lists_update_mergevars_form_submit in modules/mailchimp_lists/includes/mailchimp_lists.admin.inc
Submit handler for mailchimp_lists_update_mergevars_form().

File

modules/mailchimp_lists/mailchimp_lists.module, line 372

Code

function mailchimp_lists_update_member_merge_values($entity_type, $bundle_name, $field) {
  $instance = field_info_instance($entity_type, $field['field_name'], $bundle_name);
  $mergefields = $instance['settings']['mergefields'];

  // Assemble a list of current subscription statuses so we don't alter them.
  // Because of cacheing we don't want to use the standard checks. Expiring the
  // cache would kill the point of doing this as a batch API operation.
  $batch = array(
    'operations' => array(
      array(
        'mailchimp_lists_get_subscribers',
        array(
          $field,
        ),
      ),
      array(
        'mailchimp_lists_populate_member_batch',
        array(
          $entity_type,
          $bundle_name,
          $field,
          $mergefields,
        ),
      ),
      array(
        'mailchimp_lists_execute_mergevar_batch_update',
        array(
          $field['settings']['mc_list_id'],
        ),
      ),
    ),
    'finished' => 'mailchimp_lists_populate_member_batch_complete',
    'title' => t('Processing Merge Variable Updates'),
    'init_message' => t('Starting MailChimp Merge Variable Update.'),
    'progress_message' => t('Processed @current out of @total.'),
    'error_message' => t('MailChimp Merge Variable Update Failed.'),
  );
  batch_set($batch);
}