WC_Abstract_Order::delete_items_by_ids
Deletes items in bulk if the data store supports it, otherwise deletes them one by one.
Method of the class: WC_Abstract_Order{}
No Hooks.
Returns
void. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->delete_items_by_ids( $item_ids ): void;
- $item_ids(array
) (required) - IDs of the items to delete.
WC_Abstract_Order::delete_items_by_ids() WC Abstract Order::delete items by ids code WC 11.1.2
private function delete_items_by_ids( array $item_ids ): void {
/**
* Data store wrapper.
*
* @var WC_Data_Store $data_store
*/
$data_store = $this->data_store;
if ( $data_store->has_callable( 'delete_items_by_ids' ) ) {
// @phpstan-ignore-next-line -- Optional data store method checked above.
$data_store->delete_items_by_ids( $this, $item_ids );
} else {
// Custom data stores may not support bulk deletion by IDs, so delete the snapshotted items individually
// so that items added *after* remove_order_items() are preserved.
foreach ( array_unique( $item_ids ) as $item_id ) {
$item = WC_Order_Factory::get_order_item( $item_id );
if ( $item && $this->get_id() === $item->get_order_id() ) {
$item->delete();
}
}
}
}