我们最近将客户端的WordPress WooCommerce安装更新到3.1.x.随后,我们不得不更新一些自定义代码,因为现在使用的方法已被弃用并且正在抛出警告 .

该代码在订单完成时将货件跟踪代码和自定义优惠券的元数据添加到发送给客户的电子邮件中 . 这是更新前的代码:

<h2 style="color:#464446">Tracking Code: <?php echo get_post_meta( $order->id, 'parzel_tracking_code', true ); ?></h2> <?$custom_coupon = get_post_meta( $order->id, 'custom_coupon_message', true );

并在更新后:

<h2 style="color:#464446">Tracking Code: <?php echo $order->get_meta( 'parzel_tracking_code', true ); ?></h2> <?$custom_coupon = $order->get_meta( 'custom_coupon_message', true );

但是,这现在引发了一个新问题:发送给客户的自动电子邮件不再显示元数据 . 如果在WooCommerce中手动重新发送相同的按订单完成的邮件(即使在订单生成后立即),新发送的电子邮件中的所有数据都会正常显示,就像更新之前一样 .

有关如何将电子邮件恢复正常工作的任何想法?

更新:

我们在“customer-completed-order.php”中使用此代码,作为我们自定义wordpress主题中的重写模板文件 . 我们的代码就在之后插入

`do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, 
$plain_text, $email );`

该文件是版本2.5.0除了上述添加之外没有其他任何更改

这是文件的链接:https://github.com/woocommerce/woocommerce/blob/release/3.1/templates/emails/customer-completed-order.php