[英]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.