Reputation: 141
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
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
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_id
you are looking for.
Upvotes: 27