簡體   English   中英

使用Mailchimp API 2和PHP的Mailchimp_List_AlreadySubscribed致命錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM