【问题标题】:How can I get the WooCommerce order id from current order?如何从当前订单中获取 WooCommerce 订单 ID?
【发布时间】: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] );
    }
}

但这并不是我认为的安全和好。如果有更好的方法来做到这一点,请告诉我。非常感谢!

【问题讨论】:

标签: php wordpress woocommerce


【解决方案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() );
    }
}

我查过了。没问题

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 2021-07-14
    • 2019-09-08
    • 2014-03-05
    • 2017-10-11
    • 1970-01-01
    • 2018-03-16
    • 2017-07-08
    • 2017-08-26
    相关资源
    最近更新 更多