Automattic\WooCommerce\Internal\Admin\Settings

SettingsUISchema::assert_field_validation │ private static │ WC 1.0

Assert canonical field validation metadata.

Method of the class: SettingsUISchema{}

No Hooks.

Returns

null. Nothing (null).

Usage

$result = SettingsUISchema::assert_field_validation( $field ): void;
$field(array) (required)
Field definition.

SettingsUISchema::assert_field_validation() code WC 11.2.1

private static function assert_field_validation( array $field ): void {
	if ( ! array_key_exists( 'validation', $field ) ) {
		return;
	}

	if ( ! is_array( $field['validation'] ) || ! in_array( $field['type'], array( 'number', 'integer' ), true ) ) {
		throw self::invalid_schema( sprintf( 'Field "%s" validation is supported only for numeric fields.', $field['id'] ) );
	}

	foreach ( $field['validation'] as $rule => $value ) {
		if ( ! in_array( $rule, array( 'min', 'max' ), true ) || null === $value || ! self::is_canonical_number( $value ) ) {
			throw self::invalid_schema( sprintf( 'Field "%1$s" validation rule "%2$s" must be a finite numeric bound.', $field['id'], (string) $rule ) );
		}

		if ( 'integer' === $field['type'] && ! is_int( $value ) ) {
			throw self::invalid_schema( sprintf( 'Field "%1$s" validation rule "%2$s" must be an integer.', $field['id'], $rule ) );
		}
	}
}