Automattic\WooCommerce\Internal\Admin\Settings
SettingsUISchema::assert_field_value
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() 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'] ) );
}
}