Wordpress - 在回复后调用电子邮件功能

时间:2016-02-24 11:24:30

标签: wordpress email

我已经在home.php wordpress文件上发送了电子邮件功能,功能在

之下
$("#sendmailbtn").click(function(e) {
    var dataString = $(".pricing").html();
    e.preventDefault();
    var grandTotal = localStorage.getItem("GrandTotal");
    $.ajax({
    type: "POST",
    url: "/wp-admin/admin-ajax.php",
    datatype: "html",
    data: {'action': 'fahadsending_mail', 'more': dataString, 'grandTotal': grandTotal},
    success: function(response) {
        alert("success is " + response);
    },error:function(response){
        alert("error is " + response);
    }
    });
});

和我的functions.php文件中的电子邮件代码在我发送邮件到fahadsending_mail函数的下方,但是它提醒成功的ajax成功函数是0

add_action('wp_ajax_fahadsending_mail', 'fahadsending_mail');
add_action('wp_ajax_fahadsending_mail', 'fahadsending_mail');

function fahadsending_mail(){

        $to = "asadkhan6164995@gmail.com";
        $subject = "Donation";
        $message = "message message message message message message message "; 

        if(wp_mail($to, $subject, $message))
        {
            echo "mail sent";
    } else {
        echo "mail not sent";
    }

}

并且响应来自成功功能,它提醒成功为0 和ajax帖子显示以下内容 行动
wplc_call_to_server_visitor CID 213 安全
2f40c8e66f 状态
五 wplc_email
没有电子邮件集 wplc_name
客人 wplcsession 1456325128583

2 个答案:

答案 0 :(得分:1)

除了@Andrew M回答:

您没有在email JSON对象中传递data,因此未设置$_POST['email']。它应该是这样的:

data: {'action': 'mail_action', 'email': 'email@domain.com', 'more': dataString, 'grandTotal': grandTotal},

除此之外,您应该使用wp_mail(可插入)并且应该使用wp_die()结束函数;

问候!

答案 1 :(得分:0)

这里的一个问题是您在代码中指定admin ajax url的方式。而不是

url : "<?php echo admin_url('admin-ajax.php'); ?>",

你应该可以使用

url: "/wp-admin/admin-ajax.php",

您还没有正确指定操作的名称。在上述操作的声明中,名称将是 mail_action 而不是 fahadsending_mail

因此,如果您将上面的ajax声明更改为以下内容,您应该能够进行ajax调用

$.ajax({
    type: "POST",
    url : "/wp-admin/admin-ajax.php",
    datatype: "html",
    data: {'action': 'mail_action', 'more': dataString, 'grandTotal': grandTotal},
    success: function(response) {
        alert(response);
    }
});