2016-10-20 39 views
1

我正在使用Mailchimp v.2 API PHP包裝器來處理訂閱... https://bitbucket.org/mailchimp/mailchimp-api-php但是,如果訂戶已經存在於列表中或訂閱者已取消訂閱,它會返回一個錯誤,並且我想知道一種方法,我可以將其編碼到存在這些情況的任何一種情況下,它將繼續運行代碼而不顯示錯誤。如果這是一個簡單的問題,我很抱歉。Mailchimp PHP api v.2,用戶已存在或取消訂閱返回錯誤

$api_key = "XXXXXXXXX"; 
$list_id = "XXXXXX"; 
require('Mailchimp.php'); 
$Mailchimp = new Mailchimp($api_key); 
$Mailchimp_Lists = new Mailchimp_Lists($Mailchimp); 
$merge_vars = array('FNAME'=>htmlentities($_POST['stripeFirstName']), 'LNAME'=>htmlentities($_POST['stripeLastName'])); 
    $subscriber = $Mailchimp_Lists->subscribe($list_id, array('email' => htmlentities($_POST['stripeEmail'])), $merge_vars); 

回答

0

你會想利用trycatch。 Mailchimp對於出錯的地方非常詳細。

try { 
    $result = $Mailchimp_Lists->subscribe(
     $list_id, 
     array(/* ... */), // primary subscriber data 
     array(/* ... */), // merge fields 
     'html', // email-type preference 
     false // double-opt-in 
    ); 
    // Action for successful subscribe attempt. 
} catch (\Exception $e) { 
    if ($e instanceof \Mailchimp_List_AlreadySubscribed) { 
     // In case they are already subscribed: 
     $errors[] = $e->getMessage(); 
    } else { 
     // In case something else went wrong. 
     $errors[] = 'There was an error adding your email to the list. Would you mind trying again?'; 
    } 

    // Debug time! 
    var_dump($errors); 
} 
+0

好吧,現在如何跳過錯誤與迴應它?我也需要它通過header()重定向到不同的頁面,而不是回顯錯誤。謝謝! – Ben

+0

刪除echo/var_dump語句,轉而使用header()函數。儘管如此,保重沒有輸出。 –

+0

雖然這聽起來像是你在移動球門柱。如果您有最初的問題回答,請將其標記爲已接受。或者,修改你的問題,提供更多關於你想要達到什麼的細節,以及你的嘗試。 –