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

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

我希望能够在以下时间检查订单的 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_的建议。

标签: php wordpress wordpress-theming woocommerce


【解决方案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?
猜你喜欢
  • 2020-04-10
  • 2019-09-08
  • 2014-03-05
  • 2021-07-14
  • 2020-05-08
  • 2018-03-23
  • 2017-10-27
  • 2017-07-02
  • 1970-01-01
相关资源
最近更新 更多