Woocommerce: получить идентификатор заказа после оформления заказа

Я приобрел плагин Woocommerce Subscriptions и хочу получить идентификатор заказа на странице оформления заказа. Я хочу этого, потому что, когда подписка подходит к концу, клиенту отправляется электронное письмо со ссылкой для оплаты, и автоматически добавляется заказ. Когда покупатель нажимает на ссылку, он перенаправляет на страницу оформления заказа для оплаты заказа. Мне нужен идентификатор заказа, чтобы получить метаданные из определенного заказа, используя некоторую функцию, например wc_get_order_item_meta().


person Nikos    schedule 09.11.2015    source источник
comment
Предполагается, что идентификатор заказа находится в параметрах URL? Если это есть в документах, поищите сами. docs.woothemes.com/wc-apidocs   -  person Matt The Ninja    schedule 09.11.2015
comment
@MattTheNinja Идентификатор заказа находится в параметрах URL-адреса ссылки «Оплатить сейчас», содержащейся в электронном письме, отправленном клиенту. Но когда вы нажимаете на эту ссылку, она перенаправляет на страницу оформления заказа без параметров в URL-адресе. Было бы неплохо получить идентификатор заказа по этой ссылке, но я не знаю, как это сделать. Спасибо.   -  person Nikos    schedule 09.11.2015
comment
НЕВОЗМОЖНО ПОЛУЧИТЬ ИДЕНТИФИКАТОР ЗАКАЗА НА СТРАНИЦЕ ПРОВЕРКИ… ЕЕ ЕЩЕ НЕ СУЩЕСТВУЕТ. Поэтому я немного изменил заголовок темы в отношении ответов здесь и сделал ее дублированной веткой существующей.   -  person LoicTheAztec    schedule 08.04.2019
comment
Это не дублирующий вопрос связанного вопроса: stackoverflow.com/q/21633120/2540235. Обратите внимание, что принятый ответ на связанный вопрос здесь НЕ работает.   -  person design.garden    schedule 21.08.2019


Ответы (3)


Вы можете получить это следующим образом:

    global $wp;
    $order_id = $wp->query_vars['order-pay'];
    $order = new WC_Order( $order_id );
person ababak    schedule 08.06.2016
comment
Не могли бы вы уточнить свой ответ, добавив немного больше описания решения, которое вы предоставляете? - person abarisone; 08.06.2016
comment
Это просто способ получить идентификатор заказа. Затем идентификатор используется для заполнения заказа. Если есть конкретные вопросы, постараюсь ответить. - person ababak; 09.06.2016
comment
Если на страницеthankyou.php, используйте: $order_id = $wp-›query_vars['order-received']; - person design.garden; 21.08.2019
comment
Спасибо... @ababak - person Pranav Patel; 06.04.2021

Это хранится в классе WC_Order как свойство. Это означает, что вы можете использовать:

WC()->order->id;
person rnevius    schedule 09.11.2015
comment
К сожалению, когда я выполняю echo WC()->order->id; , я получаю это уведомление: Попытка получить свойство не-объекта. @rnevius - person Nikos; 09.11.2015

Получите заказ на странице оформления заказа, ммм, не думаю, что заказ существует на данный момент, только корзина.

person user25794    schedule 22.01.2018