如何获取 woocommerce 订单的订单 ID 以在 functions.php 中的函数中使用?

Posted

技术标签:

【中文标题】如何获取 woocommerce 订单的订单 ID 以在 functions.php 中的函数中使用?【英文标题】:How can I get the order id of a woocommerce order to use in a function in functions.php? 【发布时间】:2014-09-30 00:22:59 【问题描述】:

我希望能够在以下时间检查订单的 ID:

woocommerce 我的帐户页面(针对每个订单): http://example.com/my-account

woocommerce 结帐页面(针对当前订单): http://example.com/checkout/order-pay/210?pay_for_order=true&key=order_53df9a0e8116a

我知道在结账页面,可以通过$order->id来访问订单id;在 form-pay.php 模板(位于 plugins/woocommerce/templates/checkout/form-pay.php)中,我希望能够从主题的 functions.php 文件中执行相同的操作。

【问题讨论】:

尝试var_dump($GLOBALS) 以查看此 ID 在全局范围内是否可用。否则,检查$_POST$_GET 如果订单还没有下,你无法获取order_id,因为它还不存在。结帐完成后,您可以使用woocommerce_order_status_completed 操作立即获取订单号。 在这种情况下确实存在订单 ID,因为它们是使用 oscommerce 的“添加订单”功能创建的。当您创建订单时,客户可以在“我的帐户”部分单击“付款”按钮。在上面的示例中,210 是订单的订单号/帖子 ID。 $_POST 为空,而 $_GET 没有。 var_dump($GLOBALS) 有大量数据需要排序。由于某种原因,我无法使用 echo '
'.var_dump($GLOBALS).'
';
使 var_dump 可读 get_query_var('order-pay');成功了,感谢this.lau_的建议。 【参考方案1】:

答案是:get_query_var('order-pay');

我通过查看 var_dump($GLOBALS) 找到了这个 - 感谢 this.lau_'s 的建议

【讨论】:

我能够在 var_dump($GLOBALS) 中看到 order-pay,但是当我添加 $order_id = get_query_var('order-pay') 时,$order_id 显示为 null。有没有其他方法获取订单ID?

以上是关于如何获取 woocommerce 订单的订单 ID 以在 functions.php 中的函数中使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何从当前订单中获取 WooCommerce 订单 ID?

如何获取 woocommerce 订单的订单 ID 以在 functions.php 中的函数中使用?

如何在 Woocommerce 中获取最新的订单 ID

在woocommerce下订单后获取最新的订单ID

WooCommerce 在订单接收端点获取订单 ID 和订单密钥 [重复]

Woocommerce:结帐页面后获取订单ID [重复]