PluginProbe
PostNL for WooCommerce / 4.0.1
PostNL for WooCommerce v4.0.1
5.9.12 5.9.11 5.9.10 5.9.9 5.9.8 5.9.7 5.9.6 trunk 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 3.1.4 3.1.5 3.1.6 3.1.7 4.0.0 4.0.1 4.0.2 4.3.2 4.3.3 4.4.0 4.4.1 All 72 releases
woo-postnl / includes / admin / class-wcpn-country-codes.php

class-wcpn-country-codes.php in PostNL for WooCommerce 4.0.1, at includes/admin/class-wcpn-country-codes.php

277 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (! defined("ABSPATH")) {
4 exit;
5 } // Exit if accessed directly
6
7 if (class_exists("WCPN_Country_Codes")) {
8 return new WCPN_Country_Codes();
9 }
10
11 class WCPN_Country_Codes
12 {
13 private const EURO_COUNTRIES = [
14 "AT",
15 "NL",
16 "BG",
17 "CZ",
18 "DK",
19 "EE",
20 "FI",
21 "FR",
22 "DE",
23 "GR",
24 "HU",
25 "IE",
26 "IT",
27 "LV",
28 "LT",
29 "LU",
30 "PL",
31 "PT",
32 "RO",
33 "SK",
34 "SI",
35 "ES",
36 "SE",
37 "MC",
38 "AL",
39 "AD",
40 "BA",
41 "IC",
42 "FO",
43 "GI",
44 "GL",
45 "GG",
46 "JE",
47 "LI",
48 "MK",
49 "MD",
50 "ME",
51 "UA",
52 "SM",
53 "RS",
54 "VA",
55 "BY",
56 "BE",
57 ];
58
59 private const WORLD_COUNTRIES = [
60 "AF",
61 "AQ",
62 "DZ",
63 "VI",
64 "AO",
65 "AG",
66 "AR",
67 "AM",
68 "AW",
69 "AU",
70 "AZ",
71 "BS",
72 "BH",
73 "BD",
74 "BB",
75 "BZ",
76 "BJ",
77 "BM",
78 "BT",
79 "BO",
80 "BW",
81 "BR",
82 "VG",
83 "BN",
84 "BF",
85 "BI",
86 "KH",
87 "CA",
88 "KY",
89 "CF",
90 "CL",
91 "CN",
92 "CO",
93 "KM",
94 "CG",
95 "CD",
96 "CR",
97 "CU",
98 "DJ",
99 "DM",
100 "DO",
101 "EC",
102 "EG",
103 "SV",
104 "GQ",
105 "ER",
106 "ET",
107 "FK",
108 "FJ",
109 "PH",
110 "GF",
111 "PF",
112 "GA",
113 "GB",
114 "GM",
115 "GE",
116 "GH",
117 "GD",
118 "GP",
119 "GT",
120 "GN",
121 "GW",
122 "GY",
123 "HT",
124 "HN",
125 "HK",
126 "HR",
127 "IN",
128 "ID",
129 "IS",
130 "IQ",
131 "IR",
132 "IL",
133 "CI",
134 "JM",
135 "JP",
136 "YE",
137 "JO",
138 "CV",
139 "CM",
140 "KZ",
141 "KE",
142 "KG",
143 "KI",
144 "KW",
145 "LA",
146 "LS",
147 "LB",
148 "LR",
149 "LY",
150 "MO",
151 "MG",
152 "MW",
153 "MV",
154 "MY",
155 "ML",
156 "MA",
157 "MQ",
158 "MR",
159 "MU",
160 "MX",
161 "MN",
162 "MS",
163 "MZ",
164 "MM",
165 "NA",
166 "NR",
167 "NP",
168 "NI",
169 "NC",
170 "NZ",
171 "NE",
172 "NG",
173 "KP",
174 "UZ",
175 "OM",
176 "TL",
177 "PK",
178 "PA",
179 "PG",
180 "PY",
181 "PE",
182 "PN",
183 "PR",
184 "QA",
185 "RE",
186 "RU",
187 "RW",
188 "KN",
189 "LC",
190 "VC",
191 "PM",
192 "WS",
193 "ST",
194 "SA",
195 "SN",
196 "SC",
197 "SL",
198 "SG",
199 "SO",
200 "LK",
201 "SD",
202 "SR",
203 "SZ",
204 "SY",
205 "TJ",
206 "TW",
207 "TZ",
208 "TH",
209 "TG",
210 "TO",
211 "TT",
212 "TD",
213 "TN",
214 "TM",
215 "TC",
216 "TV",
217 "UG",
218 "UY",
219 "VU",
220 "VE",
221 "AE",
222 "US",
223 "VN",
224 "ZM",
225 "ZW",
226 "ZA",
227 "KR",
228 "AN",
229 "BQ",
230 "CW",
231 "SX",
232 "XK",
233 "IM",
234 "MT",
235 "CY",
236 "CH",
237 "TR",
238 "NO",
239 ];
240
241 /**
242 * @param string $countryCode
243 *
244 * @return bool
245 */
246 public static function isEuCountry(string $countryCode): bool
247 {
248 return in_array($countryCode, self::EURO_COUNTRIES);
249 }
250
251 /**
252 * @param $countryCode
253 *
254 * @return bool
255 */
256 public static function isWorldShipmentCountry(string $countryCode): bool
257 {
258 return in_array($countryCode, self::WORLD_COUNTRIES);
259 }
260
261 /**
262 * @param $countryCode
263 *
264 * @return bool
265 */
266 public static function isAllowedDestination(string $countryCode): bool
267 {
268 $isHomeCountry = WCPN_Data::isHomeCountry($countryCode);
269 $isEuCountry = self::isEuCountry($countryCode);
270 $isWorldShipmentCountry = self::isWorldShipmentCountry($countryCode);
271
272 return $isHomeCountry || $isEuCountry || $isWorldShipmentCountry;
273 }
274 }
275
276 return new WCPN_Country_Codes();
277