Automattic\WooCommerce\Internal\DataStores\Orders

DataSynchronizer::delete_trashed_orders()privateWC 8.5.0

Handles deletion of trashed orders after EMPTY_TRASH_DAYS as defined by WordPress.

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

Хуков нет.

Возвращает

null. Ничего (null).

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

// private - только в коде основоного (родительского) класса
$result = $this->delete_trashed_orders();

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

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

Код DataSynchronizer::delete_trashed_orders() WC 8.7.0

private function delete_trashed_orders() {
	if ( ! $this->custom_orders_table_is_authoritative() ) {
		return;
	}

	$delete_timestamp = $this->legacy_proxy->call_function( 'time' ) - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
	$args             = array(
		'status'        => 'trash',
		'limit'         => self::ORDERS_SYNC_BATCH_SIZE,
		'date_modified' => '<' . $delete_timestamp,
	);

	$orders = wc_get_orders( $args );
	if ( ! $orders || ! is_array( $orders ) ) {
		return;
	}

	foreach ( $orders as $order ) {
		if ( $order->get_status() !== 'trash' ) {
			continue;
		}
		if ( $order->get_date_modified()->getTimestamp() >= $delete_timestamp ) {
			continue;
		}
		$order->delete( true );
	}
}