当用户从列表中取消订阅时,他无法使用相同的电子邮件地址再次订阅。如何允许用户重新订阅列表?
$unsubscribe = $mailChimp->call('lists/unsubscribe',array(
'id' => $list_id,
'email' => array('email' => $email),
true,
true
));
答案 0 :(得分:4)
如果您想稍后重新订阅该用户,则需要将其删除,请参阅documentation:
当您需要删除一些订阅者时,请确定是否要删除 他们自己或取消订阅他们。可以添加已删除的订阅者 回到你的清单,所以如果你需要确保订户不是 意外重新添加,取消订阅。
如果您使用的是最新的mailchimp-api,则可以按如下方式删除用户:
include 'Mailchimp.php';
use \DrewM\MailChimp\MailChimp;
$MailChimp = new MailChimp('your**api***key');
function deleteUser($email){
global $MailChimp;
//your list_id from Mailchimp
$list_id = 'your***list**id';
$subscriber_hash = $MailChimp->subscriberHash($email);
$MailChimp->delete("lists/$list_id/members/$subscriber_hash");
}
如果没有该电子邮件的用户,则$MailChimp->delete()
将返回如下数组:
Array ( [type] => http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/ [title] => Resource Not Found [status] => 404 [detail] => The requested resource could not be found. [instance] => )
如果找到了用户,则该方法不会返回任何内容。请注意,这并不意味着用户已被删除,因为如果用户之前已取消订阅,则无法删除用户。
如果您不想使用api,那么您也可以使用delete verb编写自己的自定义curl命令。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以通过将用户更新为“待处理”状态来实现
不幸的是,我的代码是Python api,但是您应该能够理解。
def mcResendSubscriptionSignup(self,email,audienceId):
# calculate the hash of the email address
emailHash = hashlib.md5(email.lower().encode()).hexdigest()
# get existing user, and all their data
data = self.mcClient.lists.members.get(list_id=audienceId, subscriber_hash=emailHash)
# set the user status to pending to resend subscription email
data['status'] = 'pending'
# update the data back to the user record in the audience
data = self.mcClient.lists.members.update(list_id=audienceId, subscriber_hash=emailHash, data=data)
print(f'Sent a resubscription email to {email}')
此功能将向用户重新发送确认电子邮件,该用户必须单击以重新订阅。请注意,您还需要找到您的AudienceId。
这是Mailchimp允许您在取消订阅后从2020年开始将用户重新添加到受众群体的唯一方法。
是的,这在测试时很痛苦,这就是我从事此功能的原因。比在GUI界面中做得更好。