Automattic\WooCommerce\Internal\DataStores\Orders

OrdersTableDataStore::persist_updates()protectedWC 1.0

Helper method that is responsible for persisting order updates to the database.

This is expected to be reused by other order types, and should not contain any specific metadata updates or actions.

Method of the class: OrdersTableDataStore{}

No Hooks.

Return

Array. $changes Array of changes.

Usage

// protected - for code of main (parent) or child class
$result = $this->persist_updates( $order, $backfill );
$order(\WC_Order) (required) (passed by reference — &)
Order object.
$backfill(true|false)
Whether to backfill data to post tables.
Default: true

OrdersTableDataStore::persist_updates() code WC 8.7.0

protected function persist_updates( &$order, $backfill = true ) {
	// Fetch changes.
	$changes = $order->get_changes();

	if ( ! isset( $changes['date_modified'] ) ) {
		$order->set_date_modified( current_time( 'mysql' ) );
	}

	$this->persist_order_to_db( $order );

	$this->update_order_meta( $order );

	$order->save_meta_data();

	if ( $backfill ) {
		self::$backfilling_order_ids[] = $order->get_id();
		$this->clear_caches( $order );
		$r_order = wc_get_order( $order->get_id() ); // Refresh order to account for DB changes from post hooks.
		$this->maybe_backfill_post_record( $r_order );
		self::$backfilling_order_ids = array_diff( self::$backfilling_order_ids, array( $order->get_id() ) );
	}

	return $changes;
}