如何检查在mailchimp列表中输入的电子邮件地址是否存在


How to check if email address entered in an input field exists in mailchimp list

不知是否有人可以帮助我。我正在为客户设计一个wordpress网站,我需要一些帮助。我已经安装了Woocommerce 2.1.6,并想知道如何编写一个php脚本,当用户进入单个产品页面时,而不是给出默认的"添加到购物车"按钮,它显示了一个输入字段和一个提交按钮。然后,我希望php脚本检查输入的电子邮件是否在mailchimp '成员列表'中,我已经制作。

如果它存在于列表中,则出现添加到购物车按钮并可以继续购买。如果没有,他们将显示一条消息,表示他们没有注册会员资格等。

谢谢大家。

一个合理的方法是使用mailchimp的REST api。您正在寻找的方法是listMemberInfo。Mailchimp为api提供了一个PHP包装器,您可以在这里找到下载。在你安装了包装器之后,你将需要你的api密钥和你在你的帐户中找到的列表密钥。

当然你也可以卷曲api端点

https://<dc>.api.mailchimp.com/2.0/

将API键、列表和电子邮件数据作为json编码数组发布。

基本上,查询api的函数可能看起来像这样,作为一个例子,我们将us2作为适当的数据中心(您可以在api密钥中找到它):

function queryMailChimp($email){
    $url = 'https://us2.api.mailchimp.com/2.0/lists/member-info.json';
    $arguments = json_encode(array('apikey'=>'your_api_key','id'=>'your_list_id','emails'=>array('email'=$email)));
    $contentType ='Content-Type: application/json';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array($contentType));
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $arguments);
    $response = curl_exec($ch);
    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
    $header = substr($response, 0, $header_size);
    $body = substr($response, $header_size);
    curl_close($ch);
    return array('status' => $status, 'header' => $header, 'response' => json_decode($body, true), 'request'=>array('url'=>$url,'content'=>$contentType,'data'=>$arguments));
}

从3.0版本开始,这位于http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/read-get_lists_list_id_members_subscriber_hash

where subscriber_hash =列表成员电子邮件地址的小写版本的MD5哈希值

相关文章: