在Woocommerce电子邮件模板中获取订单详细信息

时间:2019-03-19 13:32:18

标签: php wordpress woocommerce orders email-notifications

我正在尝试自定义Woocommerce电子邮件,并且已经为其创建了html模板,该模板已经可以使用。

我遇到的问题是它没有显示woocommerce变量,例如:

  • 以这种方式{order_number}
  • 或以这种方式{order_shipping_address}

我总是必须这样放置它们:

<?php echo $order->billing_last_name; ?>

以下是HTML代码的摘要:

<span data-key="1468270_order_number">Bestellnr.:</span> #<?php echo $order->id; ?>

所以它是纯html文件,带有此php变量,位于我需要的位置。我将html文件放入 Woocommerce>设置>电子邮件>新订单

我是否必须将其全部包装到一个php文件中,或者如何使{order_number}之类的变量正常工作。在related Woocommerce documentation上有很多没有变量的变量,但是我无法使它们起作用。

如何使用它们?

1 个答案:

答案 0 :(得分:2)

占位符{order_number}(或其他一些占位符)仅在电子邮件主题设置中使用。看看Get custom email placeholder value on Woocommerce custom email content相关的答案线程…

因此,它不是变量,而是占位符,并且不能在Woocommerce电子邮件模板(或可用的挂钩)上使用。

>

自Woocommerce 3以来,由于对象属性受保护且不再可以直接访问,因此您的问题代码已经过时了……您需要改用可用方法(请参见CRUD Objects):

  • 对于订单ID ,请使用$order->get_id()
  • 对于订单号,请使用$order->get_order_number()

所以在您的代码中:

<span data-key="1468270_order_number">Bestellnr.:</span> #<?php echo $order->get_order_number(); ?>

但是要使用这些方法,需要在模板(或挂钩)中定义 $order 对象。


相关线程: