2011-05-06 111 views
1

我試圖在提交wordpress頁面中的表單之前發送電子郵件。我能夠成功完成AJAX部分併發送電子郵件。但是,電子郵件並非100%交付。我想知道爲什麼?WordPress的AJAX發送電子郵件

這是代碼

 

    var data = {}; 
    data.donorEmail = $("#email").val(); 
    data.action = "mail_action"; 
    $("#donorSubmit").click(function(e){ 
     $.post('http://www.myurl.com/wp-admin/admin-ajax.php',data, onSuccess); 
    }); 

    function onSuccess(results) 
    { 
     if(results == "00") 
      document.forms['donorForm'].submit() // After the email is sent then submit the form to another website. 
    } 

而且這是在functions.php的

 
add_action('wp_ajax_mail_action', 'sending_mail'); 
add_action('wp_ajax_nopriv_mail_action', 'sending_mail'); 

function sending_mail(){ 
    if(isset($_POST['email'])) 
    { 
     $to = "[email protected]"; 
     $subject = "Donation"; 
     $message = $_POST['email']; 

     if(mail($to, $subject, $message)) 
     { 
      echo "0"; 
     } 
    } 
} 

代碼有了這個代碼,我收到的電子郵件的所有時間。但是,應該是用戶電子郵件的電子郵件的內容並不總是隨電子郵件一起提供。有時它只是一個空白的內容。

+0

出興趣的玩具,哪一頁做你的如果Javascript被禁用,形式發佈到? – addedlovely 2011-06-06 18:35:27

回答

2

正如你看到你做:

vardata = {'donorEmail':$('#email').val(),'action':'mail_action' };

,但在你的PHP文件,你要求的$_POST['email']代替$_POST['donorEmail'];

嘗試調用$_POST['donorEmail'];