<?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 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;