我想打电话wp_mail() 从一个非模板PHP文件,但当我这样做时,它失败了,我不明白为什么。例如,假设我有一个PHP文件,它只包含以下内容:
<?php
echo \'hi\';
$mail_sent = wp_mail(\'example@example.com\', \'subject\', \'message\');
echo $mail_sent;
?>
如果我直接在浏览器中加载该PHP文件,则只会打印“hi”。如果我删除
echo \'hi\'; 总之,没有打印任何内容,这向我表明
wp_mail() 无法在此特定上下文中调用。但是,如果我添加
/* Template Name: SomeName */ 并使用创建新页面
SomeName 作为其模板,
wp_mail() 正确执行。很明显,我缺少一些关于如何正确调用的关键信息
wp_mail().
我之所以要这样做,是因为我使用的主题附带了一个通过ajax请求提交电子邮件的联系人表单,大致如下所示:
form.submit(function() {
$j.ajax({
type: \'GET\',
url: "http://www.example.com/wp-content/themes/themeX/send_mail.php",
data: form.serialize(),
});
});
目前,
send_mail.php 调用PHP
mail() “有效”但极其脆弱的功能。我想让它打电话
wp_mail() 所以我可以利用
this plugin 它使用SMTP服务器发送邮件。所以我的问题是:我怎样才能
wp_mail() 在这种情况下工作?
谢谢