Abstract_WC_Order_Data_Store_CPT::get_item_ids
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() 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 );
}