Я прочитал несколько тем здесь и на нескольких других сайтах. Все они сказали, что для того, чтобы отключить двойную подписку, мне нужно зарегистрировать пользователя как «подписанного». Это не сработало. Вот мой код:
$data = [
'email' => $_GET['email'],
'status' => 'subscribed'
];
syncMailchimp($data);
static function syncMailchimp($data) {
$apiKey = 'XXXXXXXXXXX-us3';
$listId = 'XXXXXXXXXX';
$memberId = md5(strtolower($data['email']));
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://' . $dataCenter . '.api.mailchimp.com/3.0/lists/' . $listId . '/members/' . $memberId;
$json = json_encode([
'email_address' => $data['email'],
'status' => $data['status'], // "subscribed","unsubscribed","cleaned","pending"
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
Когда я пытаюсь отключить двойную подписку из учетной записи, она неактивна и не позволяет мне ее снять:

Если у вас есть идеи, я бы хотел их услышать. Спасибо!






Похоже, что учетная запись MailChimp находится в состоянии соответствия. Иногда для этого может потребоваться, чтобы списки были в режиме двойного согласия. Я бы зашел в эту учетную запись и поищу любые уведомления в верхнем правом углу, которые указали бы на то, что это так.
Надеюсь, это поможет!
Это действительно правильно. Я понял, что добавил туда много писем из предыдущего списка, и они отскочили, что испортило аккаунт. В итоге я открыл новую учетную запись, и все работало нормально. Спасибо