type(), self::TYPES, true ) ) { return false; } return (int) $field->setting( 'min_length', 0 ) > 0 || (int) $field->setting( 'max_length', 0 ) > 0; } /** * Checks the length. * * @param Field $field Field being validated. * @param mixed $value Sanitised value. * * @return ValidationError|null The failure, or null when the value passes. */ public function validate( Field $field, mixed $value ): ?ValidationError { $length = mb_strlen( (string) $value ); $min = (int) $field->setting( 'min_length', 0 ); $max = (int) $field->setting( 'max_length', 0 ); if ( $min > 0 && $length < $min ) { return new ValidationError( '', 'too_short', sprintf( /* translators: %s: Smallest number of characters required. */ _n( 'Please enter at least %s character.', 'Please enter at least %s characters.', $min, 'devplugins-custom-form-builder' ), number_format_i18n( $min ) ), array( 'min' => $min, 'length' => $length, ) ); } if ( $max > 0 && $length > $max ) { return new ValidationError( '', 'too_long', sprintf( /* translators: %s: Largest number of characters allowed. */ _n( 'Please enter no more than %s character.', 'Please enter no more than %s characters.', $max, 'devplugins-custom-form-builder' ), number_format_i18n( $max ) ), array( 'max' => $max, 'length' => $length, ) ); } return null; } }