Как получить order_item_id WooCommerce

Мне нужно иметь возможность получить order_item_id, уникальное значение, применяемое к каждому элементу в каждом заказе. Это то, что у меня есть до сих пор:

        global $wpdb;
    $order = new WC_Order( $order_id );
    $items = $order->get_items(); 
        foreach ( $items as $item ) {
            $product_id = $item['product_id'];
            $item_id = $item['item_id'];

Последняя строка в приведенном выше коде получает order_item_id. Обычно это не работает, но работает, потому что я отредактировал get_items в class-wc-order и включил:

        $items[ $item->order_item_id ]['item_id'] = $item->order_item_id;

Я хочу знать, как я могу получить order_item_id без необходимости редактирования class-wc-order. Есть ли простой способ?

Спасибо!


person user2903890    schedule 21.10.2013    source источник


Ответы (2)


Это может быть уже слишком поздно для вашего проекта, но может быть полезно для других:

foreach ($items as $key => $product ) 

Переменная $key — это item_id, которую вы ищете.

person user3367143    schedule 05.03.2014

Индекс/ключ массива, возвращаемого $order->get_items(), равен order_item_id... поэтому попробуйте следующее:

foreach ($order_items as $order_item_id => $order_item) { 
}
person user3481396    schedule 02.10.2015
comment
Это говорит то же самое, что и ответ user3367143 уже здесь. Другой ответ использует переменную $items из вопроса, созданного с использованием $order->get_items(). - person icc97; 30.05.2016