63 lines
1.1 KiB
PHP
63 lines
1.1 KiB
PHP
<?php
|
|
/**
|
|
* Adds a validation rules for states
|
|
*
|
|
* @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 State extends Rule {
|
|
|
|
/**
|
|
* Parameters that this rule accepts.
|
|
*
|
|
* @since 2.0.4
|
|
* @var array
|
|
*/
|
|
protected $fillableParams = array('country'); // phpcs:ignore
|
|
/**
|
|
* Performs the actual check.
|
|
*
|
|
* @since 2.0.11
|
|
*
|
|
* @param mixed $state The state value detected.
|
|
*/
|
|
public function check($state) : bool { // phpcs:ignore
|
|
|
|
$check = true;
|
|
|
|
$country = $this->parameter('country') ?? wu_request('billing_country');
|
|
|
|
if ($country && $state) {
|
|
|
|
$state = strtoupper((string) $state);
|
|
|
|
$allowed_states = array_keys(wu_get_country_states(strtoupper((string) $country), false));
|
|
|
|
if (!empty($allowed_states)) {
|
|
|
|
$check = in_array($state, $allowed_states, true);
|
|
|
|
} // end if;
|
|
|
|
} // end if;
|
|
|
|
return $check;
|
|
|
|
} // end check;
|
|
|
|
} // end class State;
|