Automattic\WooCommerce\Internal\RestApi\Routes\V4\Orders

OrderLineMetaValidator::validate_request_arg │ public static │ WC 11.1.0

Validates an order line request argument (line_items, shipping_lines or fee_lines).

Method of the class: OrderLineMetaValidator{}

No Hooks.

Returns

true|WP_Error. Error when a line posts a serialized value under the guarded key.

Usage

$result = OrderLineMetaValidator::validate_request_arg( $value, $request, $param );
$value(mixed) (required)
Value of the argument.
$request(required)
.
$param(string) (required)
Name of the argument.

Changelog

Since 11.1.0 Introduced.

OrderLineMetaValidator::validate_request_arg() code WC 11.1.2

public static function validate_request_arg( $value, $request, $param ) {
	$valid = rest_validate_request_arg( $value, $request, $param );

	if ( is_wp_error( $valid ) ) {
		return $valid;
	}

	if ( ! is_array( $value ) ) {
		return true;
	}

	foreach ( $value as $line ) {
		if ( is_array( $line ) && self::has_serialized_meta_value( $line['meta_data'] ?? null ) ) {
			return new WP_Error(
				'woocommerce_rest_invalid_order_item_meta_key',
				self::get_serialized_meta_value_error_message(),
				array( 'status' => 400 )
			);
		}
	}

	return true;
}