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.

Метод класса: Abstract_WC_Order_Data_Store_CPT{}

Хуков нет.

Возвращает

int[].

Использование

$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) (обязательный)
Order object.
$type(строка|null)
Order item type, or null for every type.
По умолчанию: null

Список изменений

С версии 11.1.0 Введена.

Код Abstract_WC_Order_Data_Store_CPT::get_item_ids() WC 11.2.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 );
}