在自定义 WooCommerce 谢谢模板中输出订单号

Output the order number in custom WooCommerce thankyou template

制作自定义感谢页面模板,我想显示订单号如果我 echo $order = new WC_Order($post_id);它 returns 值为 0 或空字符串:但固定链接具有订单 ID 想知道是什么原因造成的吗?

<strong><?php echo $order = new WC_Order($post_id); echo $order->get_order_number(); ?></strong>

完整代码如下:

<p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); ?></p>

<ul class="order_details">
<li class="order">
    <?php _e( 'Order number:', 'woocommerce' ); ?>
    <strong><?php echo $order = new WC_Order($post_id); echo $order->get_order_number(); ?></strong>
</li>

</ul>

您与 WooCommerce checkout/thankyou.php 模板相关的问题是:

  • 首先,您不能将 echo$order = new WC_Order($post_id); 一起使用,因为它是一个 对象,但不是字符串。
  • 其次,$order对象已经存在于感谢模板中,无需再次获取。您可以在第一行代码中看到:
<p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); ?></p>

因此您的代码将很简单:

<p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); ?></p>

<ul class="order_details">

    <li class="order">
        <?php _e( 'Order number:', 'woocommerce' ); ?>
        <strong><?php echo $order->get_order_number(); ?></strong>
    </li>

</ul>

这应该有效……