如何从当前订单中获取 WooCommerce 订单 ID?
Posted
技术标签:
【中文标题】如何从当前订单中获取 WooCommerce 订单 ID?【英文标题】:How can I get the WooCommerce order id from current order? 【发布时间】:2020-05-08 19:06:09 【问题描述】:我目前正在尝试在自定义类中接收当前订单 ID。首先,我正在检查我是否在查看订单页面上。如果是,我正在尝试接收 ID。问题是,返回的 id 是 19
但它应该是 6456
,真的很奇怪。我正在我的子主题的functions.php
中初始化我的课程:
public function __construct()
if ( is_view_order_page() )
error_log( get_the_ID() );
有人知道我该如何解决这个问题吗?
更新:
我的另一个想法是阅读以下请求 uri:
https://localhost/dashboard/view-order/6264/
所以我想出了这个主意:
public function __construct()
if ( is_view_order_page() )
$uri_path = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
$uri_segments = explode( '/', $uri_path );
error_log( $uri_segments[3] );
但这并不是我认为的安全和好。如果有更好的方法来做到这一点,请告诉我。非常感谢!
【问题讨论】:
您是否尝试过此解决方案来获取订单 ID? ***.com/a/27963922/3623080 这正是我认为的get_the_ID()
函数。我只跳过了获取订单的部分,因为我什至无法获得正确的 ID developer.wordpress.org/reference/functions/get_the_id
【参考方案1】:
你可以试试这个方法:
public function __construct()
if ( is_view_order_page() )
global $wp;
$order_id = wc_clean( $wp->query_vars['view-order'] );
$_order = wc_get_order($order_id);
// some logic
error_log( $_order->get_id() );
我查过了。没问题
【讨论】:
以上是关于如何从当前订单中获取 WooCommerce 订单 ID?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 WooCommerce 中的订单中获取客户详细信息?