问题描述
我在静态网页上有两步式的新闻简报注册表单,该表单以登录页面上的简单文本字段以及电子邮件文本字段和按钮开头。
我向自定义Mailchimp表单的POST端点发出JSONP请求以订阅用户。
当用户点击注册时,即使用户决定不向我提供任何更多信息,我也已经希望触发该请求以确保正确完成,但是它还会打开一个弹出窗口,提示您提供更多详细信息关于他们的兴趣,我想在Mailchimp中分组讨论。如果我只是尝试重新订阅电子邮件地址,则会失败并显示以下错误:
[xxx @ yyy]已订阅列表[zzz]
所以这种方法似乎行不通。我可以做些什么来获得这种用户体验,而不必延迟请求和可能会丢失的注册。
解决方法
第二个表单上的附加信息请求应为PATCH / PUT,以更新您创建的用户
,您可以将PHP Curl与“ PATCH”方法一起使用。一个例子:
<?php
$url = 'https://us2.api.mailchimp.com/3.0/lists/<LIST_ID>/members/<MEMBER_ID (= MD5 of subscriber's e-mail)>';
$data = ['merge_fields' => ['FNAME' => $name]]; // If you want to add his/her name
$ch = curl_init($url);
curl_setopt_array($ch,[
CURLOPT_CUSTOMREQUEST => 'PATCH',CURLOPT_HTTPHEADER => ['Authorization: Basic <YOUR_API_KEY>','Content-Type: application/json'],CURLOPT_POSTFIELDS => json_encode($data),CURLOPT_RETURNTRANSFER => 1,CURLOPT_SSL_VERIFYPEER => 0,CURLOPT_TIMEOUT => 10
]);
curl_exec($ch);
$httpcode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpcode;
Mailchimp API参考:https://mailchimp.com/developer/api