Automattic\WooCommerce\Blocks\Domain\Services
DraftOrders::delete_expired_draft_orders
Delete draft orders older than a day in batches of 20.
Ran on a daily cron schedule.
Метод класса: DraftOrders{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
$DraftOrders = new DraftOrders(); $DraftOrders->delete_expired_draft_orders();
Код DraftOrders::delete_expired_draft_orders() DraftOrders::delete expired draft orders WC 10.5.2
public function delete_expired_draft_orders() {
$count = 0;
$batch_size = 20;
$this->ensure_draft_status_registered();
$orders = wc_get_orders(
[
'date_modified' => '<=' . strtotime( '-1 DAY' ),
'limit' => $batch_size,
'status' => self::DB_STATUS,
'type' => 'shop_order',
]
);
// do we bail because the query results are unexpected?
try {
$this->assert_order_results( $orders, $batch_size );
if ( $orders ) {
foreach ( $orders as $order ) {
$order->delete( true );
++$count;
}
}
if ( $batch_size === $count && function_exists( 'as_enqueue_async_action' ) ) {
as_enqueue_async_action( self::DRAFT_CLEANUP_EVENT_HOOK );
}
} catch ( Exception $error ) {
wc_caught_exception( $error, __METHOD__ );
}
}