Идентификатор клиента равен 0 в хуке woocommerce_process_shop_order_meta - PullRequest
2 голосов
/ 13 января 2020

При создании заказа Woocommerce с использованием экрана «Добавить заказ» в администраторе Wordpress, если я получаю заказ с помощью wc_get_order () в обратном вызове, прикрепленном к woocommerce_process_shop_order_meta, я заметил, что идентификатор клиента равен 0, несмотря на тот факт, что Я выбрал клиента. Код, который я пишу, использует эти данные для синхронизации c с внешним API, поэтому мой вопрос: почему этот идентификатор пуст и есть ли способ получить правильный идентификатор?

Упрощенная версия кода будет:

add_action('woocommerce_process_shop_order_meta', 'processOrder', 10, 1);

function processOrder($order_id){
    $order = wc_get_order($order_id);
    die(print_r($order->get_customer_id(),1));
}

1 Ответ

1 голос
/ 14 января 2020

Это из-за приоритета, который вы используете. См. Прикрепленное изображение: enter image description here

Идентификатор клиента сохраняется в add_action( 'woocommerce_process_shop_order_meta', 'WC_Meta_Box_Order_Data::save', 40, 2 );, где приоритет 40. Если установить приоритет выше 40, он должен работать.

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