Automattic\WooCommerce\Internal\Admin\Settings

SettingsUISchema::assert_field_value │ private static │ WC 1.0

Assert a field value when supplied.

Method of the class: SettingsUISchema{}

No Hooks.

Returns

null. Nothing (null).

Usage

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

SettingsUISchema::assert_field_value() code WC 11.2.1

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

	$value = $field['value'];
	switch ( $field['type'] ) {
		case 'array':
			$valid = is_array( $value ) && self::is_form_value( $value );
			break;
		case 'checkbox':
			$valid = is_bool( $value );
			break;
		case 'number':
			$valid = self::is_canonical_number( $value );
			break;
		case 'integer':
			$valid = null === $value || ( is_int( $value ) && self::is_canonical_number( $value ) );
			break;
		case 'datetime-local':
			$valid = null === $value || ( is_string( $value ) && 1 === preg_match( '/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}[+-]\d{2}:\d{2}$/', $value ) );
			break;
		default:
			$valid = in_array( $field['type'], self::SUPPORTED_FIELD_TYPES, true )
				? is_string( $value )
				: self::is_settings_value( $value );
			break;
	}

	if ( ! $valid ) {
		throw self::invalid_schema( sprintf( 'Field "%s" value is invalid for type "%s".', $field['id'], $field['type'] ) );
	}
}