У меня есть повторяющаяся проблема в настройках WooCommerce: как получить текущий идентификатор заказа внутри функции.
Некоторые перехватчики могут передавать его с помощью $ order_id, но, например, в контексте страницы учетной записи пользователя для определенного порядка, нижеследующее не работает.
Проблема в том, что $order_id
пуст, конечно. Но как бы передать идентификатор заказа в эту функцию?
add_action( 'woocommerce_order_items_table', 'xcsn_woocommerce_order_items_table'); function xcsn_woocommerce_order_items_table ( $order_id ) { $order = new WC_Order( $order_id ); echo 'The order ID is: ' . $order->get_order_number(); // or echo '<br>The order ID is: ' . $order->id; }
Я попробовал это, но он возвращает номер идентификатора пользователя, а не порядок:
global $woocommerce; $order = new WC_Order($post->ID); echo 'The Order ID: ' . $order->get_order_number();
Какие-либо предложения?
Это решает конкретный вопрос выше (хотя и не общий вопрос):
add_action( 'woocommerce_order_items_table', 'xcsn_woocommerce_order_items_table'); function xcsn_woocommerce_order_items_table ( $order ) { echo $order->id; //This is the order id, even in the user Accounts>Order page }
add_action( 'woocommerce_order_items_table', 'xcsn_woocommerce_order_items_table',10,2); function xcsn_woocommerce_order_items_table ( $order_id ) { $order = new WC_Order( $order_id ); echo 'The order ID is: ' . $order->get_order_number(); // or echo '<br> The order ID is: ' . $order_id; }
проверьте это, вам нужно добавить 10,2 на действие, чтобы он возвращал идентификатор заказа после успешной подачи заявки, без этого функция запускается перед отправкой заказа, поэтому идентификатор заказа может быть 0
или null