Automattic\WooCommerce\Admin\Features\Fulfillments

FulfillmentsManager::update_order_fulfillment_status_on_fulfillment_updatepublicWC 1.0

Update order fulfillment status after a fulfillment is created, updated, or deleted.

Method of the class: FulfillmentsManager{}

No Hooks.

Returns

null. Nothing (null).

Usage

$FulfillmentsManager = new FulfillmentsManager();
$FulfillmentsManager->update_order_fulfillment_status_on_fulfillment_update( $data );
$data(Fulfillment) (required)
The fulfillment data.

FulfillmentsManager::update_order_fulfillment_status_on_fulfillment_update() code WC 10.9.4

public function update_order_fulfillment_status_on_fulfillment_update( Fulfillment $data ) {
	if ( ! $data instanceof Fulfillment ) {
		return;
	}

	$order = $data->get_order();
	if ( ! $order instanceof \WC_Order ) {
		return;
	}

	try {
		/**
		 * Fulfillments data store.
		 *
		 * @var \Automattic\WooCommerce\Admin\Features\Fulfillments\DataStore\FulfillmentsDataStore $fulfillments_data_store
		 */
		$fulfillments_data_store = \WC_Data_Store::load( 'order-fulfillment' );
		$fulfillments            = $fulfillments_data_store->read_fulfillments( \WC_Order::class, (string) $order->get_id() );
	} catch ( \Throwable $e ) {
		wc_get_logger()->error(
			sprintf( 'Failed to load fulfillments for order %d: %s', $order->get_id(), $e->getMessage() ),
			array( 'source' => 'fulfillments' )
		);
		return;
	}

	$this->update_fulfillment_status( $order, $fulfillments );
}