Abstract_WC_Order_Data_Store_CPT::get_item_ids │ public │ WC 11.1.0

Get persisted order item IDs, optionally limited to an item type.

Method of the class: Abstract_WC_Order_Data_Store_CPT{}

No Hooks.

Returns

int[].

Usage

$Abstract_WC_Order_Data_Store_CPT = new Abstract_WC_Order_Data_Store_CPT();
$Abstract_WC_Order_Data_Store_CPT->get_item_ids( $order, $type );
$order(WC_Order) (required)
Order object.
$type(string|null)
Order item type, or null for every type.
Default: null

Changelog

Since 11.1.0 Introduced.

Abstract_WC_Order_Data_Store_CPT::get_item_ids() code WC 11.1.2

public function get_item_ids( $order, $type = null ) {
	global $wpdb;

	if ( ! $order->get_id() ) {
		return array();
	}

	if ( null === $type ) {
		$item_ids = $wpdb->get_col(
			$wpdb->prepare(
				"SELECT order_item_id FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = %d",
				$order->get_id()
			)
		);
	} else {
		$item_ids = $wpdb->get_col(
			$wpdb->prepare(
				"SELECT order_item_id FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = %d AND order_item_type = %s",
				$order->get_id(),
				$type
			)
		);
	}

	if ( '' !== $wpdb->last_error ) {
		wc_get_logger()->error(
			'Failed to retrieve persisted order item IDs.',
			array(
				'source'   => 'order-data-store',
				'order_id' => $order->get_id(),
				'error'    => $wpdb->last_error,
			)
		);
		throw new Exception( esc_html__( 'Unable to retrieve persisted order item IDs.', 'woocommerce' ) );
	}

	return array_map( 'intval', $item_ids );
}