在Wordpress中使用Ajax发送电子邮件

时间:2013-08-01 12:34:45

标签: php ajax wordpress

我是wordpress主题开发的新手,我需要在wordpress中发送带有ajax / PHP的电子邮件

var dataString =    'name=' + name + 
        '&email=' + email + 
        '&contact=' + contact + 
        '&technology=' + technology +
        '&budget=' + budget +
        '&details=' + details;          

   alert(dataString);


   $.ajax({  
   type: "POST",  
   url: "<?php bloginfo('template_url'); ?>/qoute-sent.php",  
   data: {name:'anas', Email: 'anas@yahoo.com'},
   datatype: "html",  
   success: function() {  
   alert(sent);
   } 

所有代码一直工作到alert(dataString);但之后ajax不起作用....

这是我的php文件代码

    $name=$_POST['name'];
    $email=$_POST['email'];
   // $contact=$_POST['contact'];
   //$technology=$_POST['technology'];
  // $budget=$_POST['budget'];
  //$details=$_POST['details'];

   //-------------for email setup----------------------------
   $to = "stylegurupk@gmail.com";
   //------------------------------------------
   $message = " \n " .

   "Name ".$name." \n " .
   "Email : ".$email." \n " ;

    //---------------------------------- 
    $subject = "MWM Qoute Request"; 
    $headers =  'From: '.$email . "\r\n" .
    'Reply-To: '.$to . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
    //echo "TO : ".$to."<br>";
    //echo "FROM : ".$email."<br>";
    //echo "<br>".$message;
    mail($to, $subject,$message,$headers);

2 个答案:

答案 0 :(得分:0)

WordPress提供了使用AJAX进行开发的功能和钩子,使其变得非常简单。请参阅the Codex

您还应该查看wp_mail发送电子邮件。

请记住,WordPress在noconflict模式下加载jQuery,因此你的$ selector应该是'jQuery'。

为防止滥用,您应该考虑在脚本中添加nonce。 WordPress也会处理:)请参阅wp_create_nonce

我认为this is a good reference article一旦你在地方有骨头

答案 1 :(得分:0)

url: "<?php bloginfo('template_url'); ?>/qoute-sent.php", 

网址应该是“quote-sent.php”吗?只是检查。

另外,您是否为WP设置了AJAX操作?没有它们就行不通。我通常会这样做:

<?php
    function my_send_email(){
        doStuff(); // etc..
        echo 'sent!';
        die();
    }
    add_action('wp_ajax_my_send_email', 'my_send_email');
    add_action('wp_ajax_nopriv_my_send_email', 'my_send_email');
?>
像马克说的那样,我也建议使用wp_mail。