用于更改所有wp邮件内容的挂钩

时间:2015-07-28 作者:ron r

嗨,我想为我的网站的所有邮件设置电子邮件模板。我知道如何设置邮件模板,我通过编辑代码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的内容]

现在,我需要为我所有的电子邮件执行操作,而不是为单独的邮件编辑此代码。如何做到这一点?是否有可用的挂钩或过滤器?请帮忙。

1 个回复
最合适的回答,由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\');

结束

相关推荐

Functions.php中的入队样式

这对我没用functions.php: if( is_page_template( \'template-flat.php\' ) ) { function flatsome_scripts() { wp_enqueue_style( \'flatsome-style\', get_template_directory_uri() .\'/flatash/css/foundation.css\', array(), \'2.1\', \'all\'); }