Как я могу получить идентификатор заказа WooCommerce из текущего заказа? - PullRequest
1 голос
/ 22 января 2020

В настоящее время я пытаюсь получить текущий идентификатор заказа в пользовательском классе. Сначала я проверяю, нахожусь ли я на странице заказа вида. Если да, я пытаюсь получить идентификатор. Проблема в том, что возвращаемый идентификатор - 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 голосов
/ 22 января 2020

Вы можете попробовать так:

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

Я проверял. Это нормально работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...