WooCommerce无法替换电子邮件标题中的模板字符串

时间:2018-05-10 作者:Ro L

我正在使用Woocommerce并尝试自定义电子邮件。在我尝试使用的电子邮件标题中{customer_first_name}{customer_name} 没有运气。它们不会被替换。这是一个bug还是我使用的字符串不正确?

1 个回复
最合适的回答,由SO网友:Mat 整理而成

电子邮件模板变量只能在电子邮件正文中使用。如果要更改电子邮件标题/主题行,则需要使用相应的过滤器,并向子主题函数添加一些自定义代码。php文件或通过自定义插件。

WooCommerce文档中有一段代码可以实现这一点:https://docs.woocommerce.com/document/change-email-subject-lines/

作为处理顺序的示例,您将使用:

add_filter( \'woocommerce_email_subject_customer_processing_order\', \'change_processing_email_subject\', 1, 2 );

function change_processing_email_subject( $subject, $order ) {
    global $woocommerce;

    $blogname = wp_specialchars_decode(get_option(\'blogname\'), ENT_QUOTES);

    $subject = sprintf( \'Hi %s, thanks for your order on %s\', $order->billing_first_name, $blogname );

    return $subject;
}
这会将主题更改为:

\'嗨{客户名},感谢您在{网站名}上的订单\'

结束