如何在电子邮件注册表单中实现mailchimp API ?


How do I implement a mailchimp API in a email signup form?

这是一个html片段,来自一个网站模板,有一个MailChimp API表单。

<div class="row">
  <div class="col-md-6 col-sm-12 col-md-offset-3 subscribe">
    <form class="form-horizontal" role="form" action="subscribe.php" id="subscribeForm" method="POST">
      <div class="form-group">
        <div class="col-md-7 col-sm-6 col-sm-offset-1 col-md-offset-0">
          <input class="form-control input-lg" name="email" type="email" id="address" placeholder="Enter your email" data-validate="validate(required, email)" required="required">
        </div>
        <div class="col-md-5 col-sm-4">
          <button type="submit" class="btn btn-success btn-lg">SIGN UP TO BE NOTIFIED</button>
        </div>
      </div>
    </form>
    <span id="result" class="alertMsg"></span> </div>
</div>

这是我目前正在使用的网站模板的电子邮件提交表单。此表格直接将电子邮件发送到我的帐户;我的问题是:如何将以下表单转换为mailchimp API表单?我主要想使用它,因为它的格式已经正确的网站我制作-也就是说,它与我的css工作,它的大小合适,等。

<div class="newsletter">
 <form action="subscribe.php" method="post" id="newsletter-form">
  <p class="form-field">
   <label for="newsletter_email" class="visually-hidden">Your email address</label>
   <i class="icon ion-paper-airplane" aria-hidden="true"></i>
   <input type="text" name="newsletter_email" id="newsletter_email" value="" placeholder="Your email address" />
  </p>
  <p class="form-submit">
   <input type="submit" name="newsletter_submit" id="newsletter_submit" value="Get Notified" />
  </p>
 </form>
</div>

谢谢你的帮助!很抱歉写了这么长时间。我不确定stackoverflow的礼仪是什么,所以如果我问了一个糟糕的问题,请告诉我。

编辑:

https://i.stack.imgur.com/tCZ7S.png

这是我当前模板上的两个表单的截图。上面一个是原始表单,它直接将订阅者的电子邮件发送到我的电子邮件,下面是mailchimp表单。除了格式不正确之外,mailchimp表单还会在我输入电子邮件后将我发送到一个空白页面,而不是在页面上返回一个简单的感谢信息(如:

)。
} else {
    echo "Thanks! We'll keep you updated on the conference :)";
}

)

下面是来自mailchimp模板的subscribe.php:

<?php
$apiKey = '';
$listId = '';
$double_optin=true;
$send_welcome=true;
$email_type = 'html';
$email = $_POST['email'];
//replace us2 with your actual datacenter
$submit_url = "http://us1.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 "Thanks! We'll keep you updated on the conference :)";
}
?>

他们在表单上使用了Twitter Bootstrap。如果你目前没有使用twitter bootstrap,你需要添加twitter bootstrap相关的css和js文件到你的页面。相反,如果您想使用mailchimp使用的样式,您可以使用他们的订阅小部件。