Получить идентификатор заказа в хуке woocommerce_new_order - PullRequest
0 голосов
/ 05 марта 2019

почему нельзя получить идентификатор заказа в новом порядке?

Этот код не работает

add_action( 'woocommerce_new_order', 'get_order_details_woo',  1, 1  );
function get_order_details_woo ($order_id)
{

    $order = wc_get_order( $order_id );

    foreach ($order->get_items() as $item_key => $item_values):

        $item_id = $item_values->get_id();

        $item_data = $item_values->get_data();

        $product_name = $item_data['name'];

        //echo $product_name;
    endforeach;

}

Но этот код работает

 add_action( 'woocommerce_new_order', 'get_order_details_woo',  1, 1  );

    function get_order_details_woo ()
    {

        $order = wc_get_order( 100);

        foreach ($order->get_items() as $item_key => $item_values):


            $item_data = $item_values->get_data();

            $product_name = $item_data['name'];

            //echo $product_name;
endforeach;

    }

Как получить идентификатор в новом заказе?

Получить новые данные заказа, если у меня нет идентификатора заказа?

Ответы [ 2 ]

0 голосов
/ 25 марта 2019

add_action ('woocommerce_checkout_update_order_meta', 'get_order_details_woo', 10, 2); функция get_order_details_woo ($ order_id, $ data) { }

0 голосов
/ 06 марта 2019

Вы получаете идентификатор заказа с этим хуком, но кажется, что заказ только что создан в данный момент без элементов товара. Вы можете проверить это с помощью var_dump.

попробуйте другой крючок:

add_action( 'woocommerce_checkout_create_order', 'get_order_details_woo',  1, 1  );

этот срабатывает сразу после того, как объект заказа получает свои данные и до того, как он будет сохранен в базе данных. Вам не нужно извлекать идентификатор заказа здесь, потому что вы получаете объект заказа напрямую.

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