[英]Mailchimp_List_AlreadySubscribed Fatal Error using Mailchimp API 2 and PHP
我試圖在我的網站上使用Mailchimp API,以允許人們通過自定義表單訂閱我的Mailchimp新聞。
工作代碼如下:
$message="";
if(isset($_POST) & !empty($_POST)){
$emailsanit=filter_var($_POST['email'],FILTER_SANITIZE_EMAIL);
$email=filter_var($emailsanit,FILTER_VALIDATE_EMAIL);
$api_key = "my api key";
$list_id = "my list id";
require("Mailchimp.php");
$Mailchimp = new Mailchimp( $api_key );
$Mailchimp_Lists = new Mailchimp_Lists( $Mailchimp );
$subscriber = $Mailchimp_Lists->subscribe( $list_id, array( 'email' => $email ) );
if ( ! empty( $subscriber['leid'] ) ) {
$message="<div id='message' class='text-success'>Please check your email inbox to complete your subscription</div>";
}
else
{
$message="<div id='message' class='text-danger'>Failed to add email to database. Please try again or email</div>";
}
}
?>
就像我說的那樣,這很好,我遇到的問題是,如果有人輸入已經注冊的電子郵件地址,我會收到以下錯誤,並且顯然沒有其他加載:
致命錯誤:消息“ example@example.com”的未捕獲異常“ Mailchimp_List_AlreadySubscribed”已訂閱列表XX。
關於如何制定規則的任何建議,以便如果已經注冊了電子郵件,則更新消息變量(在同一頁面上處理表單)?
這篇文章的MailChimp API 2.0和PHP訂閱表單有一個同樣的問題,但是我並不真正了解該解決方案。
我用代碼捕獲了錯誤:
try {
$api->lists->subscribe('[LIST_ID]', array('email' => $_POST['email']));
echo 'success';
} catch(Mailchimp_Error $e) {
echo 'fail';
//echo $e->getMessage();
}
現在看來有點老了,但是由於我正在使用MailChimp,捕獲錯誤的方法如下:
begin
# code for subscribing email to the list
rescue Mailchimp::ListAlreadySubscribedError
# code with flash error and redirection
end
假定使用以下gem:
gem 'mailchimp-api', require: 'mailchimp'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.