繁体   English   中英

使用 JavaScript fetch 在 WordPress 中通过 wp_mail 发送 email

[英]Send email via wp_mail in WordPress using JavaScript fetch

我创建了小型反应应用程序,我在主页 header 中使用氧气生成器(wordpress),我需要向所有者 email 发送通知。

按钮触发器 function:

<button onClick={submitMail}>Send email to owner</button>

function:

const submitMail = async () => { 

const rawResponse = await fetch('https://mywordpressinstallation.com/wp-admin/admin-ajax.php?action=mail_before_submit', {
    method: 'POST',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({to: 'my-email@gmail.com', title: 'Some title', text: 'some text'}),
//i would like to get something back but i get nothing
    success: function(data, textStatus, jqXHR) { 
            console.log(data)
           console.log(textStatus)
        }
 });
  const content = await rawResponse;
//returns promise, status fullfiled
}

然后通过代码片段插件我创建了 function:

add_action('wp_ajax_nopriv_mail_before_submit', 'mail_before_submit');
add_action('wp_ajax_mail_before_submit', 'mail_before_submit');
function mail_before_submit() {
     $to     = $_POST['to'];
   $title = $_POST['title'];
    $text = $_POST['text'];

    wp_mail($to, $title, 'body text');
    return 'email sent';
    die();
}

而且它不起作用。 但如果我把

wp_mail('some-email@gmail.com', 'title', 'text')

它的工作。 所以我进展顺利,email 已发送到该地址。 主题为“标题”,消息为“文本”,但是如果我使用变量 $to. $title 和 $text - 什么都没有。

我真的在用这个传播我所知道的。 我建了一个纸牌屋。 请指教。

亲切的问候,伊万科

我想使用 wordpress 发送 email,从通过 wp_mail() 发送邮件的 javascript 手动调用 php function

如果您将 json 发布到 PHP,它不会出现在 $_POST 全局中。 使用FormData而不是普通'application/x-www-form-urlencoded; charset=UTF-8' 'application/x-www-form-urlencoded; charset=UTF-8'帖子

const data = new FormData();
data.append( 'action', 'mail_before_submit' );
data.append( 'to', 'my-email@gmail.com' );
data.append( 'title', 'Some title');
data.append( 'text', 'Some text' );

const rawResponse = await fetch('https://mywordpressinstallation.com/wp-admin/admin-ajax.php', {
    method: 'POST',
    body: data,
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM