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

时间:2020-01-22 15:14:10

标签: php wordpress woocommerce

我当前正在尝试在自定义类中接收当前的订单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] );
    }
}

但是我认为这不是那么安全和良好。如果有更好的方法可以进行此操作,请告诉我。非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试这种方式:

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() );
    }
}

我检查了。很好

相关问题