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

Posted

技术标签:

【中文标题】Woocommerce:结帐页面后获取订单ID [重复]【英文标题】:Woocommerce: Get order id after checkout page [duplicate] 【发布时间】:2016-02-10 04:47:31 【问题描述】:

我已经购买了 Woocommerce 订阅插件,我希望能够在结帐页面中获取订单 ID。 我想要这个,因为当订阅即将结束时,会向客户发送一封带有付款链接的电子邮件,并自动添加订单。当客户单击该链接时,它会重定向到结帐页面以支付订单。 我需要订单 ID 来使用 wc_get_order_item_meta() 等函数从特定订单中检索元数据。

【问题讨论】:

订单 ID 假设在 URL 参数中?如果它在文档中,请自行查找。 docs.woothemes.com/wc-apidocs @MattTheNinja 订单 ID 位于发送给客户的电子邮件中“立即付款”链接的 URL 参数中。但是,当您单击此链接时,它会重定向到 URL 中没有参数的结帐页面。从此链接获取订单 ID 是个好主意,但我不知道该怎么做。谢谢。 IS 无法在结帐页面中获取订单 ID ...它还不存在。因此,我对此处的答案稍微更改了主题标题,并将其作为现有主题的重复主题。 这不是链接问题的重复问题:***.com/q/21633120/2540235。请注意,链接问题的已接受答案在这里不起作用。 【参考方案1】:

你可以这样得到:

    global $wp;
    $order_id = $wp->query_vars['order-pay'];
    $order = new WC_Order( $order_id );

【讨论】:

能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述? 这就是获取订单id的方式。然后 id 用于填充订单。如果您有一些具体问题,我会尽力回答。 如果在“thankyou.php”页面上然后使用:$order_id = $wp->query_vars['order-received']; 谢谢...@ababak【参考方案2】:

这作为属性存储在WC_Order 类中。这意味着您可以使用:

WC()->order->id;

【讨论】:

不幸的是,当我执行 echo WC()->order->id; 时,我收到此通知:“尝试获取非对象的属性”。 @rnevius【参考方案3】:

在结账页面下单,嗯嗯,不要以为此时有订单,只有购物车。

【讨论】:

以上是关于Woocommerce:结帐页面后获取订单ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 在结帐页面下订单后替换购物车中的产品

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

结帐页面上的 Woocommerce 更改结帐总数

成功结帐钩子后获取订单数据

如何在 WooCommerce 的订单支付页面上检索订单 ID

Woocommerce在下订单后更新order_comments