Я выполняю вызов curl через php для Mailchimp API v3.0.
Когда пользователь подписывается на мои cms, я отправляю ему электронное письмо с подтверждением и добавляю участника в определенный список Mailchimp, вызывая этот URL:
'https://us11.api.mailchimp.com/3.0/lists/'.$list_id.'/members/';
передавая эти параметры:
$data = array(
'apikey' => $apikey,
'email_address' => $mailchimp_user['email'],
'status' => 'pending',
'update_existing' => true,
'send_welcome' => false,
'double_optin' => false,
'merge_fields' => array(
'FNAME' => $mailchimp_user['FNAME'],
'LNAME' => $mailchimp_user['LNAME']
)
);
Ожидающая подписка Mailchimp прошла успешно.
Когда пользователь нажимает на электронное письмо с подтверждением, отправленное с моего cms, с другим вызовом curl (метод PATCH), я могу легко обновить статус участника на «подписан».
Таким образом, я могу управлять всей подпиской Mailchimp из моей cms, без какого-либо поведения и разметки Mailchimp по умолчанию.
Но электронное письмо с подтверждением Mailchimp никогда не отправляется пользователю, даже если параметр ‘double_optin’ имеет значение false.
Я заметил, что, если я установил статус участника как «отписался», пользователь не получил подтверждение по электронной почте. Но это логически неправильно!
Я хотел бы, чтобы два шага для подписки на Mailchimp были
в ожидании -> подписался
и не
отписался -> подписался.
Могу ли я что-нибудь с этим сделать?
Вы, кажется, смешиваете API v2.0 и API v3.0. В v3.0 вы не должны передавать свой ключ API в теле запроса, и нет флага double_opt_in. В MailChimp, если вы установите для пользователя режим ожидания, ему всегда будет отправлено электронное письмо с подтверждением. v2.0 и v3.0 справляются с этим по-разному. В версии 2.0 передача double_opt_in как true
приводит к ожиданию участника, который получает подтверждение по электронной почте. Передав это как false
приводит к подписке участника.
В версии 3.0 настройка status
в pending
отправляет подтверждение по электронной почте.
внутренний pending
Статус mailchimp API v3 отсутствует, поэтому вы можете настроить двойной выбор вручную для своих пользователей. Именно так mailchimp может отправлять пользователям свои собственные автоматические письма с двойной подпиской.
Для получения двойного согласия вручную необходимо выполнить следующие действия:
когда пользователь отправляет вашу форму на стороне клиента, сделайте POST
запросите mailchimp api v3 и добавьте нового пользователя в свой список как unsubscribed
отправить пользователю электронное письмо, используя mandrill
или какой-то другой сервис. Целью этого письма будет то, что он принимает subscribed
в ваш список.
когда пользователь нажимает на почту сделать PATCH
запросите mailchimp api v3 и обновите пользователя до subscribed
,
Вы можете найти более подробную информацию Вот,
а также Вот.