Files
wp-multisite-waas/inc/helpers/validation-rules/class-city.php
2024-11-30 18:24:12 -07:00

65 lines
1.2 KiB
PHP

<?php
/**
* Adds a validation rules for cities
*
* @package WP_Ultimo
* @subpackage Helpers/Validation_Rules
* @since 2.0.11
*/
namespace WP_Ultimo\Helpers\Validation_Rules;
// Exit if accessed directly
defined('ABSPATH') || exit;
use WP_Ultimo\Dependencies\Rakit\Validation\Rule;
/**
* Validates template sites.
*
* @since 2.0.4
*/
class City extends Rule {
/**
* Parameters that this rule accepts.
*
* @since 2.0.4
* @var array
*/
protected $fillableParams = array('country', 'state'); // phpcs:ignore
/**
* Performs the actual check.
*
* @since 2.0.11
*
* @param mixed $city The city value detected.
*/
public function check($city) : bool { // phpcs:ignore
$check = true;
$country = $this->parameter('country') ?? wu_request('billing_country');
$state = $this->parameter('state') ?? wu_request('billing_state');
if ($country && $state && $city) {
$state = strtoupper((string) $state);
$allowed_cities = wu_get_country_cities(strtoupper((string) $country), $state, false);
if (!empty($allowed_cities)) {
$check = in_array($city, $allowed_cities, true);
} // end if;
} // end if;
return $check;
} // end check;
} // end class City;