Программная подписка всех пользователей на список Mailchimp с модулем


Я установил плагин Mailchimp и добавил поле в свой профиль пользователя под названием field_mailchimp_test, и я пытаюсь программно подписаться на всех текущих пользователей Drupal в этот список (поскольку, похоже, эта функция была удалена из ветки 7.3 по какой-либо причине).

Я попытался использовать этот код:

function module_mailchimp_subscribe() {
  $users = entity_load('user');
  foreach ($users as $key => $user) {
    if ($user->uid != 1 && !empty($user->mail)) {
      $edit = array(
        'field_mailchimp_test' => array(
          'und' => array(
            0 => array(
              'value' => true
              )
            )
          )
        );
      var_dump(user_save($user, $edit)); exit;
    }
  }
}

, который возвращает объект пользователя с полем field_mailchimp_test, установленным в значение true, что, я думаю, будет подписываться на них, но при проверке страницы пользователей и/или var_dump в объект пользователя, поле больше не имеет значения true.

Итак, мой вопрос заключается либо в том, что не так с моим кодом, что он не подписывает пользователей, либо в том, что это другой (более простой/более разумный) способ сделать это?

 2
Author: Samsquanch, 2014-11-12

1 answers

Я почти уверен, что модуль MailChimp на самом деле не хранит подписки пользователей в базе данных Drupal, он собирает данные из API MailChimp, когда это необходимо.

Что сработало для меня, так это экспортировать всех моих пользователей Drupal и импортировать их в MailChimp через их веб-сайт. Это нормально для одноразового использования, и вы должны иметь возможность обрабатывать новых и обновленных пользователей непосредственно через модуль.

 2
Author: Darvanen, 2014-11-13 01:36:09