2011-05-06 132 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'];