วิธีรับ 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