1

我是 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);
4

2 回答 2

0

WordPress 提供了使用 AJAX 进行开发的功能和挂钩,使其变得非常简单。参见法典

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

请记住,WordPress 在无冲突模式下加载 jQuery,因此您的 $ 选择器应该是 'jQuery'。

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

我认为这是一篇很好的参考文章,一旦你有骨头

于 2013-08-01T12:41:57.520 回答
0
url: "<?php bloginfo('template_url'); ?>/qoute-sent.php", 

URL 应该是“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。

于 2013-08-01T13:55:26.587 回答