Программная подписка всех пользователей на список 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.
Итак, мой вопрос заключается либо в том, что не так с моим кодом, что он не подписывает пользователей, либо в том, что это другой (более простой/более разумный) способ сделать это?
1 answers
Я почти уверен, что модуль MailChimp на самом деле не хранит подписки пользователей в базе данных Drupal, он собирает данные из API MailChimp, когда это необходимо.
Что сработало для меня, так это экспортировать всех моих пользователей Drupal и импортировать их в MailChimp через их веб-сайт. Это нормально для одноразового использования, и вы должны иметь возможность обрабатывать новых и обновленных пользователей непосредственно через модуль.