Automattic\WooCommerce\Internal\DataStores\Orders

DataSynchronizer::delete_auto_draft_orderspublicWC 7.7.0

Handles deletion of auto-draft orders in sync with WP's own auto-draft deletion.

Method of the class: DataSynchronizer{}

Returns

null. Nothing (null).

Usage

$DataSynchronizer = new DataSynchronizer();
$DataSynchronizer->delete_auto_draft_orders();

Changelog

Since 7.7.0 Introduced.

DataSynchronizer::delete_auto_draft_orders() code WC 9.9.5

public function delete_auto_draft_orders() {
	if ( ! $this->custom_orders_table_is_authoritative() ) {
		return;
	}

	// Fetch auto-draft orders older than 1 week.
	$to_delete = wc_get_orders(
		array(
			'date_query' => array(
				array(
					'column' => 'date_created',
					'before' => '-1 week',
				),
			),
			'orderby'    => 'date',
			'order'      => 'ASC',
			'status'     => 'auto-draft',
		)
	);

	foreach ( $to_delete as $order ) {
		$order->delete( true );
	}

	/**
	 * Fires after schedueld deletion of auto-draft orders has been completed.
	 *
	 * @since 7.7.0
	 */
	do_action( 'woocommerce_scheduled_auto_draft_delete' );
}