WooCommerce-如何将自定义域仅添加到特定电子邮件模板

时间:2016-08-26 作者:Ultra_charge

What I am trying to do

我正在向WooCommerce电子邮件模板添加一个自定义字段,但我试图使自定义字段仅出现在一个自定义电子邮件模板中,而不是所有模板中,但我正在努力实现这一点。该模板称为:customer-completed-order.php

What I have so far

使用我的子主题,我已将模板从原始WooCommerce文件夹复制到soulmedic-child/woocommerce/emails/customer-completed-order.php

我已使用中的以下代码成功地将自定义字段显示在所有原始电子邮件模板中functions.php:

add_filter( \'woocommerce_email_order_meta_keys\', \'my_custom_checkout_field_order_meta_keys\');

function my_custom_checkout_field_order_meta_keys( $keys ) {
$keys[] = \'Postage Tracking Number\';
return $keys;
}
我已经检查了可用的挂钩,并尝试将以下内容添加到过滤器列表中,但是,这不起作用:woocommerce_email_heading_customer_completed_order

我已经搜索了大量其他帖子,但没有找到其他人能够做到这一点。

我试图直接向电子邮件模板添加代码,但我已经在中指定了自定义字段functions.php 它仍然会将该字段添加到所有电子邮件模板中。我试着只把代码放在电子邮件模板中,但这破坏了模板。

有人能告诉我需要做什么才能让自定义字段中的信息只显示在该特定模板上,而不显示在其他地方吗?

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

我发现我创建的原始方法实际上可以满足我的需要,原因是我想在电子邮件中显示的自定义字段实际上只有在字段已填充数据时才会出现,如果字段为空,则不会包含在任何其他电子邮件模板中。

由于我们只是在发送了其他订单电子邮件之后才使用数据填充自定义字段,因此我不需要再添加任何过滤器。

SO网友:stevenkellow

最好的方法是将主题模板的自定义版本保存到主题文件夹中。这样,您就可以自定义单个电子邮件并包含自定义字段。

可以通过复制customer-completed-order.php 从WooCommerce到/woocommerce/templates/ 主题中的文件夹。

WooCommerce文档的更多信息:Template Structure + Overriding Templates via a Theme

相关推荐

如何将外部变量传递给wp_new_User_Notify_Email过滤器?

我们正在尝试自定义新用户在我们的网站上注册时收到的默认电子邮件。为此,我们使用WP4.9.0中添加的wp\\u new\\u user\\u notification\\u email筛选器对于我们的功能。php文件不要凌乱,我们在“templates/email\\u welcome.php”中有电子邮件模板。我们需要加载此文件来构建$message变量,但返回的内容始终为空。下面是我们在子主题函数中添加的内容。php// ========================================