Automattic\WooCommerce\Internal\RestApi\Routes\V4\Customers

UpdateUtils::update_additional_fields_for_objectprivateWC 1.0

Update additional fields for object.

Method of the class: UpdateUtils{}

No Hooks.

Returns

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->update_additional_fields_for_object( $item, $request ): void;
$item(mixed) (required)
Object to update.
$request(WP_REST_Request) (required)
Request object.

UpdateUtils::update_additional_fields_for_object() code WC 10.4.3

private function update_additional_fields_for_object( $item, WP_REST_Request $request ): void {
	$additional_fields = $this->get_additional_fields();

	foreach ( $additional_fields as $field_name => $field_options ) {
		if ( ! $field_options['update_callback'] || ! is_callable( $field_options['update_callback'] ) ) {
			continue;
		}

		if ( ! isset( $request[ $field_name ] ) ) {
			continue;
		}

		$result = call_user_func( $field_options['update_callback'], $request[ $field_name ], $item, $field_name, $request );

		if ( is_wp_error( $result ) ) {
			throw new WC_REST_Exception( 'woocommerce_rest_cannot_update', esc_html( $result->get_error_message() ), 400 );
		}
	}
}