PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.17.0
GiveWP – Donation Plugin and Fundraising Platform v4.17.0
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 All 256 releases
give / src / DonationForms / Rules / PhoneIntlInputRule.php

PhoneIntlInputRule.php in GiveWP – Donation Plugin and Fundraising Platform 4.17.0, at src/DonationForms/Rules/PhoneIntlInputRule.php

53 lines 1.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\DonationForms\Rules;
4
5 use Closure;
6 use Give\Helpers\IntlTelInput;
7 use Give\Vendors\StellarWP\Validation\Contracts\ValidationRule;
8
9 /**
10 * @since 3.9.0
11 */
12 class PhoneIntlInputRule implements ValidationRule
13 {
14 /**
15 * @since 3.9.0
16 */
17 public static function id(): string
18 {
19 return 'intl-input';
20 }
21
22 /**
23 * @since 4.17.0 Declare the nullable parameter explicitly.
24 * @since 3.9.0
25 */
26 public static function fromString(?string $options = null): ValidationRule
27 {
28 return new self();
29 }
30
31 /**
32 * It handles the possible error codes returned by the getValidationError() intl function.
33 *
34 * 0|4 = Invalid number
35 * 1 = Invalid country code
36 * 2 = Too short
37 * 3 = Too long
38 *
39 * @see https://intl-tel-input.com/examples/validation.html
40 *
41 * @since 3.9.0
42 */
43 public function __invoke($value, Closure $fail, string $key, array $values)
44 {
45 $errorMap = IntlTelInput::getErrorMap();
46
47 if ($value && 1 === strlen($value) && array_key_exists(absint($value), $errorMap)) {
48 $errorCode = absint($value) ?? 0;
49 $fail($errorMap[$errorCode]);
50 }
51 }
52 }
53