Automattic\WooCommerce\Internal\Admin\Settings
SettingsUISchema::is_form_value_for_field
Whether a value can be replayed safely for a field through classic form-post semantics.
Method of the class: SettingsUISchema{}
No Hooks.
Returns
bool.
Usage
$result = SettingsUISchema::is_form_value_for_field( $value, $field ): bool;
- $value(mixed) (required)
- Candidate form value.
- $field(array) (required)
- Canonical field definition.
SettingsUISchema::is_form_value_for_field() SettingsUISchema::is form value for field code WC 11.2.1
private static function is_form_value_for_field( $value, array $field ): bool {
if ( ! self::is_form_value( $value ) ) {
return false;
}
if ( 'array' !== ( $field['type'] ?? null ) && ! is_string( $value ) ) {
return false;
}
$type = $field['type'] ?? null;
if ( ! is_string( $type ) || ! in_array( $type, self::TYPED_VALUE_FIELD_TYPES, true ) ) {
return array_key_exists( 'value', $field ) && $value === $field['value'];
}
if ( ! array_key_exists( 'value', $field ) ) {
return false;
}
try {
switch ( $type ) {
case 'array':
$canonical_value = self::canonicalize_array_value( $value, $field['id'] );
break;
case 'checkbox':
$canonical_value = '1' === $value || 'yes' === $value;
break;
case 'number':
$canonical_value = self::canonicalize_number( $value, false, $field['id'], 'save.initialValue' );
break;
case 'integer':
$canonical_value = self::canonicalize_number( $value, true, $field['id'], 'save.initialValue' );
break;
case 'datetime-local':
$canonical_value = self::canonicalize_datetime( $value, $field['id'] );
break;
default:
return true;
}
} catch ( \InvalidArgumentException $exception ) {
unset( $exception );
return false;
}
$current_value = $field['value'];
if ( 'number' === $type && null !== $canonical_value && null !== $current_value ) {
return self::numeric_values_agree( $canonical_value, $current_value );
}
return $canonical_value === $current_value;
}