如何获取 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 以在 functions.php 中的函数中使用?