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.


Top ↑

Return Return

(array)


Top ↑

Source Source

File: includes/data-stores/abstract-wc-order-data-store-cpt.php

371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
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;
}

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.