因此,我想将所有外发电子邮件从我的 wordpress 站点密件抄送到两个静态、硬编码的电子邮件地址。
我转到pluggable.php 文件并将BCC 标头硬编码到wp_mail() 函数中,如下所示:
function wp_mail( $to, $subject, $message, $headers = ['Bcc: example@mail.com', "bcc: maik@gmail.com"], $attachments = array() ) {
但似乎什么都没有发生。
我错过了什么?
答案 0 :(得分:0)
相反,在您的情况下使用相关的钩子,如 wp_mail
。
这是一个示例,此代码将添加到 theme functions file 中,或者您可以将其添加为 Must Use plugin:
add_filter( 'wp_mail', 'my_wp_mail_args' );
function my_wp_mail_args( $args ) {
// Just replace the email addresses with the correct ones. And note that you
// don't have to add multiple Bcc: entries - just use one Bcc: with one or
// more email addresses separated by a comma - Bcc: <email>, <email>, ...
if ( is_array( $args['headers'] ) ) {
$args['headers'][] = 'Bcc: example@mail.com, maik@gmail.com';
} else {
$args['headers'] .= "Bcc: example@mail.com, maik@gmail.com\r\n";
}
return $args;
}
PS:如果您将其添加为 Must Use 插件,请不要忘记在顶部添加 <?php
。
顺便说一句,只是为了解释“似乎没有发生任何事情”,这是因为调用函数时可以覆盖 $headers
(第四个参数)值,例如wp_mail( 'foo@example.com', 'test', 'test', [ 'From: no-reply@example2.com' ] )
— 设置了 $headers
,因此不使用默认值。
所以我希望这个答案有帮助,并记住,永远不要编辑任何核心 WordPress 文件!首先,因为在许多 WordPress 函数(以及模板)中都有可用于修改函数/模板输出的钩子,其次,当 WordPress 更新时,您的编辑将消失。 ?