编辑WooCommerce订单电子邮件中每个详细信息的标题

时间:2016-02-19 作者:zhie

我正在使用flatsome主题,woocommerce插件。在我的感谢页面上,我获得了银行详细信息、订单详细信息和客户详细信息等。但在客户订单电子邮件上,这些详细信息的标题与感谢页面上显示的标题不同。是否有任何方法可以更改电子邮件上详细信息的标题?我已经更改了订单详细信息客户的标题。php,它会正确反映在感谢页面上,但不会反映在电子邮件中。

提前感谢您!

希望有人能真正帮助我!T-T型

1 个回复
SO网友:Adam

要更改电子邮件模板正文(消息)中显示的标题,可以使用以下筛选器:\'woocommerce_email_heading_\' . $this->id 哪里$this->id 等于id 在指定类型的电子邮件类中设置的类属性。

例如,要更改“新订单”电子邮件的标题,请执行以下操作:

function filter_heading_new_order($heading) {
    return \'My New Heading\';
}

add_filter(\'woocommerce_email_heading_new_order\', \'filter_heading_new_order\');
获取$this->id 属性,您可以查看其中的类:

plugins/woocommerce/includes/emails

为了根据您的评论进行进一步阐述,如果您想编辑电子邮件正文(消息)中的一些特定元素,您需要查看相关模板文件中使用的一些hoosk,因为这些挂钩用于将数据注入模板。

例如,要编辑客户详细信息标题:

function filter_custom_details_header($heading) {
    return \'My Customer Details Heading\';
}

add_filter(\'woocommerce_email_custom_details_header\', \'filter_custom_details_header\');
要过滤标题中的银行详细信息,通常是“我们的银行详细信息”,链接到woocommerce_email_before_order_table 并从回调函数调用email_instructions() 在里面class-wc-gateway-bacs.php 您需要使用gettext 过滤,因为它们回显此值,并且不为其提供直接过滤器。

function filter_bank_details_headin($translated_text, $text, $domain) {

    if ( did_action(\'woocommerce_email_before_order_table\') ) {

        switch ( $translated_text ) {

            case \'Our Bank Details\' :

                $translated_text = __( \'My Bank Details Are...\', \'woocommerce\' );
                break;

        }

    }

    return $translated_text;
}

add_filter( \'gettext\', \'filter_bank_details_heading\', 20, 3 );