user2903890
user2903890

Reputation: 141

How to get order_item_id WooCommerce

I need to be able to get order_item_id, the unique value applied to each item in each order. This is what I have so far:

        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'];

The last line in the above code gets order_item_id. It normally wouldn't work but it works because I've edited get_items in class-wc-order and included:

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

What I want to know is how can I get order_item_id without having to edit class-wc-order. Is there any easy way?

Thanks!

Upvotes: 14

Views: 36260

Answers (2)

user3481396
user3481396

Reputation: 49

The index/key of the array returned by $order->get_items() is the order_item_id... so try this:

foreach ($order_items as $order_item_id => $order_item) { 
}

Upvotes: 2

user3367143
user3367143

Reputation: 271

This may be already too late for your project but may be useful for others:

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

The $key variable is the item_idyou are looking for.

Upvotes: 27

Related Questions