Automattic\WooCommerce\Internal\DataStores\Orders

OrdersTableDataStore::update()publicWC 1.0

Method to update an order in the database.

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

Возвращает

null. Ничего.

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

$OrdersTableDataStore = new OrdersTableDataStore();
$OrdersTableDataStore->update( $order );
$order(\WC_Order) (обязательный) (передается по ссылке — &)
-

Код OrdersTableDataStore::update() WC 7.3.0

public function update( &$order ) {
	// Before updating, ensure date paid is set if missing.
	if (
		! $order->get_date_paid( 'edit' )
		&& version_compare( $order->get_version( 'edit' ), '3.0', '<' )
		&& $order->has_status( apply_filters( 'woocommerce_payment_complete_order_status', $order->needs_processing() ? 'processing' : 'completed', $order->get_id(), $order ) ) // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
	) {
		$order->set_date_paid( $order->get_date_created( 'edit' ) );
	}

	if ( null === $order->get_date_created( 'edit' ) ) {
		$order->set_date_created( time() );
	}

	$order->set_version( Constants::get_constant( 'WC_VERSION' ) );

	// Fetch changes.
	$changes = $order->get_changes();
	$this->persist_updates( $order );

	// Update download permissions if necessary.
	if ( array_key_exists( 'billing_email', $changes ) || array_key_exists( 'customer_id', $changes ) ) {
		$data_store = \WC_Data_Store::load( 'customer-download' );
		$data_store->update_user_by_order_id( $order->get_id(), $order->get_customer_id(), $order->get_billing_email() );
	}

	// Mark user account as active.
	if ( array_key_exists( 'customer_id', $changes ) ) {
		wc_update_user_last_active( $order->get_customer_id() );
	}

	$order->apply_changes();
	$this->clear_caches( $order );

	do_action( 'woocommerce_update_order', $order->get_id(), $order ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
}