嗨,我想为我的网站的所有邮件设置电子邮件模板。我知道如何设置邮件模板,我通过编辑代码ie为每封邮件设置邮件模板
wp_mail( $recipient, $subject, $body, $headers, $attachments );
是邮件代码,然后我将其替换为
ob_start();
require_once (get_template_directory() . \'/mail-templates/contacemail.php\');
$html2 = ob_get_contents();
ob_end_clean();
return wp_mail( $recipient, $subject, $html2, $headers, $attachments );
现在已为此邮件设置了电子邮件模板。[这里是contacemail.php echo$body;获取body的内容]
现在,我需要为我所有的电子邮件执行操作,而不是为单独的邮件编辑此代码。如何做到这一点?是否有可用的挂钩或过滤器?请帮忙。
最合适的回答,由SO网友:Hendrik Luehrsen 整理而成
是的,这有一个过滤器。
正确的过滤器为wp_mail
定义于/wp-includes/pluggable.php Line 135
因此代码(可能在functions.php中)应该如下所示:
function mail_template($args){
ob_start();
require_once (get_template_directory() . \'/mail-templates/contacemail.php\');
$args[\'message\'] = ob_get_contents();
ob_end_clean();
return $args;
}
add_filter(\'wp_mail\', \'mail_template\');