Abstract_WC_Order_Data_Store_CPT::read_items( WC_Order $order, string $type )
Read order items of a specific type from the database for this order.
Description Description
Parameters Parameters
- $order
-
(Required) Order object.
- $type
-
(Required) Order item type.
Return Return
(array)
Source Source
File: includes/data-stores/abstract-wc-order-data-store-cpt.php
public function read_items( $order, $type ) { global $wpdb; // Get from cache if available. $items = 0 < $order->get_id() ? wp_cache_get( 'order-items-' . $order->get_id(), 'orders' ) : false; if ( false === $items ) { $items = $wpdb->get_results( $wpdb->prepare( "SELECT order_item_type, order_item_id, order_id, order_item_name FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = %d ORDER BY order_item_id;", $order->get_id() ) ); foreach ( $items as $item ) { wp_cache_set( 'item-' . $item->order_item_id, $item, 'order-items' ); } if ( 0 < $order->get_id() ) { wp_cache_set( 'order-items-' . $order->get_id(), $items, 'orders' ); } } $items = wp_list_filter( $items, array( 'order_item_type' => $type ) ); if ( ! empty( $items ) ) { $items = array_map( array( 'WC_Order_Factory', 'get_order_item' ), array_combine( wp_list_pluck( $items, 'order_item_id' ), $items ) ); } else { $items = array(); } return $items; }