Automattic\WooCommerce\Admin\Features\Fulfillments

OrderFulfillmentsRestController::apply_request_meta_dataprivateWC 10.8.0

Apply request-supplied meta data to a fulfillment, routing _date_fulfilled through Fulfillment::set_date_fulfilled() so the UTC normalization contract is preserved regardless of input path.

Method of the class: OrderFulfillmentsRestController{}

No Hooks.

Returns

Array. string> Normalized meta keys present in the request.

Usage

// private - for code of main (parent) class only
$result = $this->apply_request_meta_data( $meta_data, $fulfillment ): array;
$meta_data(mixed) (required)
Raw meta data from the request (non-array values are ignored).
$fulfillment(Fulfillment) (required)
Target fulfillment.

Changelog

Since 10.8.0 Introduced.

OrderFulfillmentsRestController::apply_request_meta_data() code WC 10.9.4

private function apply_request_meta_data( $meta_data, Fulfillment $fulfillment ): array {
	if ( ! is_array( $meta_data ) ) {
		return array();
	}

	$normalized = MetaDataUtil::normalize( $meta_data, 0 );
	foreach ( $normalized as $meta ) {
		if ( '_date_fulfilled' === $meta['key'] && is_string( $meta['value'] ) ) {
			$fulfillment->set_date_fulfilled( $meta['value'] );
			continue;
		}
		$fulfillment->update_meta_data( $meta['key'], $meta['value'], $meta['id'] );
	}

	return array_column( $normalized, 'key' );
}