У меня есть файл. php, который подписывает пользователя на мой список в MailChimp. Я получаю почту с URL-адреса следующим образом: https://example.com/subscribe-NLL.php?email=myemail@gmail.com
Пока работает, но теперь я хочу проверить, есть ли пользователь в моей аудитории. Если почта существует, я хочу продолжить как в моем коде ниже. Если письмо не в моей аудитории, я хочу подписать его с ожидающим статусом, а также отправить doubele optin. Есть идеи, как это сделать?
Я попробовал следующее, но это не работает.
if ($url->{'status'} == 400) {
$json = json_encode([
'email_address' => $email,
'status' => 'pending', //pass 'subscribed' or 'pending'
'interests' => array(
'1234' => true,
),
]);
} else {
$json = json_encode([
'email_address' => $email,
'status' => 'subscribed', //pass 'subscribed' or 'pending'
'interests' => array(
'1234' => true,
),
]);
}
Вот мой полный рабочий код:
<?php
$email = $_GET['email'];
$memberId = md5(strtolower($email));
$list_id = '1234';
$api_key = '1234-us19';
$data_center = substr($api_key,strpos($api_key,'-')+1);
$url = 'https://'. $data_center .'.api.mailchimp.com/3.0/lists/'. $list_id .'/members/' . $memberId;
$json = json_encode([
'email_address' => $email,
'status' => 'subscribed', //pass 'subscribed' or 'pending'
'interests' => array(
'1234' => true,
),
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $api_key);
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);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status_code;
header( "HTTP/1.0 302 Found" );
header( "Status: 302" ); # this is for chrome compliance
header ('Location: https://thankyoupage.com');
die();
?>