You are here

function mailchimp_lists_update_member_merge_values in Mailchimp 8

Same name and namespace in other branches
  1. 7.5 modules/mailchimp_lists/mailchimp_lists.module \mailchimp_lists_update_member_merge_values()
  2. 7.3 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()
MailchimpListsUpdateMergevarsForm::submitForm in modules/mailchimp_lists/src/Form/MailchimpListsUpdateMergevarsForm.php
Form submission handler.

File

modules/mailchimp_lists/mailchimp_lists.module, line 355
Mailchimp lists/audiences module.

Code

function mailchimp_lists_update_member_merge_values($entity_type, $bundle_name, $field_name) {
  $field = FieldConfig::loadByName($entity_type, $bundle_name, $field_name);
  $mc_list_id = $field
    ->getFieldStorageDefinition()
    ->getSetting('mc_list_id');
  $merge_fields = $field
    ->getSetting('merge_fields');

  // 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 = [
    'operations' => [
      [
        'mailchimp_lists_get_subscribers',
        [
          $field,
        ],
      ],
      [
        'mailchimp_lists_populate_member_batch',
        [
          $entity_type,
          $bundle_name,
          $field,
          $merge_fields,
        ],
      ],
      [
        'mailchimp_lists_execute_mergevar_batch_update',
        [
          $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);
}