我无法弄清楚这个问题:当woocommerce将订单处理邮件发送给客户时,客户的元属性在$ order对象中被定价,并且通过执行动作woocommerce_email_order_meta来完成定价(至少,我想):
do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text );
一切都很好,但是当我想为该电子邮件创建自定义模板时,结果中不会显示任何元值,尽管是相同的调用。
我已经检查了传递给“woocommerce_email_order_meta”调用的参数值(路由到我的costum模板的plugins / woocommerce / includes / class-wc-emails.php中的order_meta()函数),这些值是同样的。
在两种情况下调试order_meta()函数都没有给我提供线索,函数的行为总是相同,但邮件中的结果是不同的。那么......我可以为这封邮件中的插入订单元信息做些什么呢?
很抱歉,如果这个问题是重复的,我的英文不好。
如果您能帮我解决这个问题,请提前致谢。
答案 0 :(得分:2)
结算地址和其他详细信息(如名字和姓氏)将存储为订单明细(在“postmeta”表中)。然而,订单中的产品,其数量,价格存储为订单元。
因此,“woocommerce_email_order_meta”操作将显示订单元详细信息。
请确保您已在自定义电子邮件模板中添加以下行,以获取结算地址和其他详细信息。
<?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
有关电子邮件模板自定义的详细信息,请参阅我们的博客
http://wisdmlabs.com/blog/customize-woocommerce-order-emails/