2017-08-02 95 views
0

我试图插入数据到mailchip使用下面的代码,但它不工作,问题与我的新领域'Q1' => "50000",当我将删除这然后能够成功添加,但我需要插入额外领域。我需要插入电子邮件,姓名,Q1,Q2,Q3,Q4和Q5。Mailchimp插入自定义表单域

这里是mailchimp形式Q1字段设置

enter image description here

而且我的PHP代码:

$data = [ 
      'email'  => '[email protected]', 
      'status' => 'subscribed', 
      'firstname' => 'john', 
      'lastname' => 'doe' 
     ]; 

     Mailchimp($data); 


    function Mailchimp($data) { 
     $apiKey = 'XXXXXXXXXXXXXXXXX'; 
     $listId = 'XXXXXXXX'; 
     $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" 
      'merge_fields' => [ 
       'FNAME'  => $data['firstname'], 
       'LNAME'  => $data['lastname'], 
       'Q1'  => "50000", 
      ], 

     ]); 
     $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; 
    } 

任何帮助将不胜感激

+0

尝试下探后'“50000”'最后一个逗号,看看列是mailchimp? – Syfer

+0

尝试但没有结果相同的问题 –

+0

当您在'merge_fields'中包含'Q1'时,您从MailChimp API收到的回复是什么?如果出现错误,则响应可能会包含一条消息,说明可能发生了什么问题。另外,你确定'Q1'的合并域是否被创建? – Terry

回答

0

在“添加您的Q1领域列表字段和| MERGE |标签“&在“50000”之后移除“,”。

不能动态地创建像Q1,Q2,Q3领域....首先,你必须建立在这些领域的“表字段和| MERGE |标签”。然后,你可以调用API和插入值。以下为图片以便更好地理解。

enter image description here