使用带有 AJAX 的 API 向 Mailchimp 发送/包含“名称”字段

Posted

技术标签:

【中文标题】使用带有 AJAX 的 API 向 Mailchimp 发送/包含“名称”字段【英文标题】:Send/Include 'name' field to Mailchimp using API with AJAX 【发布时间】:2013-03-18 22:44:22 【问题描述】:

我需要知道如何将“姓名”字段发送到 Mailchimp,以便它显示用户在 Mailchimp 的“订阅者”页面上的姓名列下提交的“姓名”。

表单如下所示:

<div id="email">
<form action="subscribe.php" id="invite" method="POST">
            <input type="text" placeholder="Enter your name.." name="name" id="name" class="name" data-validate="validate(name)"/>
            <input type="email" placeholder="and your email address.." name="email" id="MCE-email" class="email" data-validate="validate(required, email)"/>
<p>If you agree with the Terms and Privacy, please press the submit button below.</p>

<div class="clear"><input type="submit" value="Submit" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</form>
<div id="clear"></div>
<div id="result"></div>
</div>
</div>

<script type="text/javascript">
$(document).ready(function() 
$('#invite').ketchup().submit(function() 
if ($(this).ketchup('isValid')) 
var action = $(this).attr('action');
$.ajax(
url: action,
type: 'POST',
data: 
email: $('#MCE-email').val()
,
success: function(data)
$('#result').html(data).css('color', '#a1a1a1', 'padding', '10px 0px 0px 0px');
,
error: function() 
$('#result').html('Sorry, an error occurred.').css('color', 'white');

);

return false;
);
);
v</script>

subscribe.php 脚本如下所示:

<?php
$apiKey = 'MYAPIKEY';
$listId = 'MYLISTID';
$double_optin=false;
$send_welcome=false;
$email_type = 'html';
$email = $_POST['email'];
$name = $_POST['name'];
//replace us2 with your actual datacenter
$submit_url = "http://us5.api.mailchimp.com/1.3/?method=listSubscribe";
$data = array(
'email_address'=>$email,
'apikey'=>$apiKey,
'id' => $listId,
'double_optin' => $double_optin,
'send_welcome' => $send_welcome,
'email_type' => $email_type
);
$payload = json_encode($data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $submit_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($payload));

$result = curl_exec($ch);
curl_close ($ch);
$data = json_decode($result);
if ($data->error)
echo $data->error;
 else 
    echo "Thank you for your email. We'll keep you up to date..";


?>

我在 Mailchimp 中的表单上的“姓名”字段的字段标记是“姓名”

我希望这是您需要的所有信息,并且有意义..

非常感谢。

【问题讨论】:

【参考方案1】:

退出 Mailchimp listSubscribe 函数文档,可在此处找到: http://apidocs.mailchimp.com/api/1.3/listsubscribe.func.php

您只需要创建一个 merge_vars 数组,该数组将包含与订阅电子邮件关联的任何其他字段。例如:

$merge_vars = array('FNAME'=>'first name', 'LNAME'=>'last name');

然后在你的 $data 中传递那个数组。

【讨论】:

以上是关于使用带有 AJAX 的 API 向 Mailchimp 发送/包含“名称”字段的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 向购物车添加变体 - WooCommerce API?

带有 AJAX 和自动播放/排队的 Youtube iframe API

向 web api 发送 ajax 请求时出现 401 Unauthorized

带有 jQ​​uery Ajax 的 JWT 令牌

select2 向控制器发送空参数

带有自定义标头的 Ajax 请求发送到启用 CORS 的 Web API 服务器