PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 2.0.3
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v2.0.3
3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / includes / evf-core-functions.php
everest-forms / includes Last commit date
abstracts 2 years ago admin 2 years ago elementor 4 years ago export 3 years ago fields 2 years ago interfaces 8 years ago libraries 2 years ago log-handlers 4 years ago shortcodes 2 years ago stats 3 years ago templates 5 years ago class-everest-forms.php 2 years ago class-evf-ajax.php 2 years ago class-evf-autoloader.php 7 years ago class-evf-background-updater.php 7 years ago class-evf-cache-helper.php 6 years ago class-evf-cron.php 3 years ago class-evf-deprecated-action-hooks.php 6 years ago class-evf-deprecated-filter-hooks.php 5 years ago class-evf-emails.php 2 years ago class-evf-fields.php 2 years ago class-evf-form-block.php 4 years ago class-evf-form-handler.php 3 years ago class-evf-form-task.php 2 years ago class-evf-forms-features.php 2 years ago class-evf-frontend-scripts.php 2 years ago class-evf-install.php 2 years ago class-evf-integrations.php 7 years ago class-evf-log-levels.php 8 years ago class-evf-logger.php 5 years ago class-evf-post-types.php 5 years ago class-evf-privacy.php 6 years ago class-evf-session-handler.php 7 years ago class-evf-shortcodes.php 4 years ago class-evf-smart-tags.php 2 years ago class-evf-template-loader.php 2 years ago class-evf-validation.php 6 years ago evf-conditional-functions.php 6 years ago evf-core-functions.php 2 years ago evf-deprecated-functions.php 6 years ago evf-entry-functions.php 3 years ago evf-formatting-functions.php 4 years ago evf-notice-functions.php 4 years ago evf-template-functions.php 4 years ago evf-template-hooks.php 7 years ago evf-update-functions.php 5 years ago
evf-core-functions.php
4830 lines
1 <?php
2 /**
3 * EverestForms Core Functions
4 *
5 * General core functions available on both the front-end and admin.
6 *
7 * @package EverestForms/Functions
8 * @version 1.0.0
9 */
10
11 defined( 'ABSPATH' ) || exit;
12
13 // Include core functions (available in both admin and frontend).
14 require EVF_ABSPATH . 'includes/evf-conditional-functions.php';
15 require EVF_ABSPATH . 'includes/evf-deprecated-functions.php';
16 require EVF_ABSPATH . 'includes/evf-formatting-functions.php';
17 require EVF_ABSPATH . 'includes/evf-entry-functions.php';
18
19 /**
20 * Define a constant if it is not already defined.
21 *
22 * @since 1.0.0
23 * @param string $name Constant name.
24 * @param mixed $value Value.
25 */
26 function evf_maybe_define_constant( $name, $value ) {
27 if ( ! defined( $name ) ) {
28 define( $name, $value );
29 }
30 }
31
32 /**
33 * Get template part.
34 *
35 * EVF_TEMPLATE_DEBUG_MODE will prevent overrides in themes from taking priority.
36 *
37 * @param mixed $slug Template slug.
38 * @param string $name Template name (default: '').
39 */
40 function evf_get_template_part( $slug, $name = '' ) {
41 $cache_key = sanitize_key( implode( '-', array( 'template-part', $slug, $name, EVF_VERSION ) ) );
42 $template = (string) wp_cache_get( $cache_key, 'everest-forms' );
43
44 if ( ! $template ) {
45 if ( $name ) {
46 $template = EVF_TEMPLATE_DEBUG_MODE ? '' : locate_template(
47 array(
48 "{$slug}-{$name}.php",
49 evf()->template_path() . "{$slug}-{$name}.php",
50 )
51 );
52
53 if ( ! $template ) {
54 $fallback = evf()->plugin_path() . "/templates/{$slug}-{$name}.php";
55 $template = file_exists( $fallback ) ? $fallback : '';
56 }
57 }
58
59 if ( ! $template ) {
60 // If template file doesn't exist, look in yourtheme/slug.php and yourtheme/everest-forms/slug.php.
61 $template = EVF_TEMPLATE_DEBUG_MODE ? '' : locate_template(
62 array(
63 "{$slug}.php",
64 evf()->template_path() . "{$slug}.php",
65 )
66 );
67 }
68
69 wp_cache_set( $cache_key, $template, 'everest-forms' );
70 }
71
72 // Allow 3rd party plugins to filter template file from their plugin.
73 $template = apply_filters( 'evf_get_template_part', $template, $slug, $name );
74
75 if ( $template ) {
76 load_template( $template, false );
77 }
78 }
79
80 /**
81 * Get other templates passing attributes and including the file.
82 *
83 * @param string $template_name Template name.
84 * @param array $args Arguments. (default: array).
85 * @param string $template_path Template path. (default: '').
86 * @param string $default_path Default path. (default: '').
87 */
88 function evf_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
89 $cache_key = sanitize_key( implode( '-', array( 'template', $template_name, $template_path, $default_path, EVF_VERSION ) ) );
90 $template = (string) wp_cache_get( $cache_key, 'everest-forms' );
91
92 if ( ! $template ) {
93 $template = evf_locate_template( $template_name, $template_path, $default_path );
94 wp_cache_set( $cache_key, $template, 'everest-forms' );
95 }
96
97 // Allow 3rd party plugin filter template file from their plugin.
98 $filter_template = apply_filters( 'evf_get_template', $template, $template_name, $args, $template_path, $default_path );
99
100 if ( $filter_template !== $template ) {
101 if ( ! file_exists( $filter_template ) ) {
102 /* translators: %s template */
103 evf_doing_it_wrong( __FUNCTION__, sprintf( __( '%s does not exist.', 'everest-forms' ), '<code>' . $filter_template . '</code>' ), '1.0.0' );
104 return;
105 }
106 $template = $filter_template;
107 }
108
109 $action_args = array(
110 'template_name' => $template_name,
111 'template_path' => $template_path,
112 'located' => $template,
113 'args' => $args,
114 );
115
116 if ( ! empty( $args ) && is_array( $args ) ) {
117 if ( isset( $args['action_args'] ) ) {
118 evf_doing_it_wrong(
119 __FUNCTION__,
120 __( 'action_args should not be overwritten when calling evf_get_template.', 'everest-forms' ),
121 '1.4.9'
122 );
123 unset( $args['action_args'] );
124 }
125 extract( $args ); // @codingStandardsIgnoreLine
126 }
127
128 do_action( 'everest_forms_before_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args'] );
129
130 include $action_args['located'];
131
132 do_action( 'everest_forms_after_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args'] );
133 }
134
135 /**
136 * Like evf_get_template, but returns the HTML instead of outputting.
137 *
138 * @see evf_get_template
139 * @since 1.0.0
140 * @param string $template_name Template name.
141 * @param array $args Arguments. (default: array).
142 * @param string $template_path Template path. (default: '').
143 * @param string $default_path Default path. (default: '').
144 * @return string
145 */
146 function evf_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
147 ob_start();
148 evf_get_template( $template_name, $args, $template_path, $default_path );
149 return ob_get_clean();
150 }
151
152 /**
153 * Locate a template and return the path for inclusion.
154 *
155 * This is the load order:
156 *
157 * yourtheme/$template_path/$template_name
158 * yourtheme/$template_name
159 * $default_path/$template_name
160 *
161 * @param string $template_name Template name.
162 * @param string $template_path Template path. (default: '').
163 * @param string $default_path Default path. (default: '').
164 * @return string
165 */
166 function evf_locate_template( $template_name, $template_path = '', $default_path = '' ) {
167 if ( ! $template_path ) {
168 $template_path = evf()->template_path();
169 }
170
171 if ( ! $default_path ) {
172 $default_path = evf()->plugin_path() . '/templates/';
173 }
174
175 // Look within passed path within the theme - this is priority.
176 $template = locate_template(
177 array(
178 trailingslashit( $template_path ) . $template_name,
179 $template_name,
180 )
181 );
182
183 // Get default template/.
184 if ( ! $template || EVF_TEMPLATE_DEBUG_MODE ) {
185 $template = $default_path . $template_name;
186 }
187
188 // Return what we found.
189 return apply_filters( 'everest_forms_locate_template', $template, $template_name, $template_path );
190 }
191
192 /**
193 * Send HTML emails from EverestForms.
194 *
195 * @param mixed $to Receiver.
196 * @param mixed $subject Subject.
197 * @param mixed $message Message.
198 * @param string $headers Headers. (default: "Content-Type: text/html\r\n").
199 * @param string $attachments Attachments. (default: "").
200 */
201 function evf_mail( $to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = '' ) {
202 $mailer = evf()->mailer();
203
204 $mailer->send( $to, $subject, $message, $headers, $attachments );
205 }
206
207 /**
208 * Queue some JavaScript code to be output in the footer.
209 *
210 * @param string $code Code.
211 */
212 function evf_enqueue_js( $code ) {
213 global $evf_queued_js;
214
215 if ( empty( $evf_queued_js ) ) {
216 $evf_queued_js = '';
217 }
218
219 $evf_queued_js .= "\n" . $code . "\n";
220 }
221
222 /**
223 * Output any queued javascript code in the footer.
224 */
225 function evf_print_js() {
226 global $evf_queued_js;
227
228 if ( ! empty( $evf_queued_js ) ) {
229 // Sanitize.
230 $evf_queued_js = wp_check_invalid_utf8( $evf_queued_js );
231 $evf_queued_js = preg_replace( '/&#(x)?0*(?(1)27|39);?/i', "'", $evf_queued_js );
232 $evf_queued_js = str_replace( "\r", '', $evf_queued_js );
233
234 $js = "<!-- Everest Forms JavaScript -->\n<script type=\"text/javascript\">\njQuery(function($) { $evf_queued_js });\n</script>\n";
235
236 /**
237 * Queued jsfilter.
238 *
239 * @since 1.0.0
240 * @param string $js JavaScript code.
241 */
242 echo wp_kses( apply_filters( 'everest_forms_queued_js', $js ), array( 'script' => array( 'type' => true ) ) );
243 unset( $evf_queued_js );
244 }
245 }
246
247 /**
248 * Set a cookie - wrapper for setcookie using WP constants.
249 *
250 * @param string $name Name of the cookie being set.
251 * @param string $value Value of the cookie.
252 * @param integer $expire Expiry of the cookie.
253 * @param bool $secure Whether the cookie should be served only over https.
254 * @param bool $httponly Whether the cookie is only accessible over HTTP, not scripting languages like JavaScript. @since 1.4.9.
255 */
256 function evf_setcookie( $name, $value, $expire = 0, $secure = false, $httponly = false ) {
257 if ( ! headers_sent() ) {
258 setcookie( $name, $value, $expire, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, $secure, apply_filters( 'everest_forms_cookie_httponly', $httponly, $name, $value, $expire, $secure ) );
259 } elseif ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
260 headers_sent( $file, $line );
261 trigger_error( "{$name} cookie cannot be set - headers already sent by {$file} on line {$line}", E_USER_NOTICE ); // @codingStandardsIgnoreLine
262 }
263 }
264
265 /**
266 * Get a log file path.
267 *
268 * @since 1.0.0
269 *
270 * @param string $handle name.
271 * @return string the log file path.
272 */
273 function evf_get_log_file_path( $handle ) {
274 return EVF_Log_Handler_File::get_log_file_path( $handle );
275 }
276
277 /**
278 * Get a csv file name.
279 *
280 * File names consist of the handle, followed by the date, followed by a hash, .csv.
281 *
282 * @since 1.3.0
283 *
284 * @param string $handle Name.
285 * @param string $extension Extension Type.
286 * @return bool|string The csv file name or false if cannot be determined.
287 */
288 function evf_get_entry_export_file_name( $handle, $extension = 'csv' ) {
289 if ( function_exists( 'wp_hash' ) ) {
290 $date_suffix = date_i18n( 'Y-m-d', time() );
291 $hash_suffix = wp_hash( $handle );
292 return sanitize_file_name( implode( '-', array( 'evf-entry-export', $handle, $date_suffix, $hash_suffix ) ) . '.' . $extension );
293 } else {
294 evf_doing_it_wrong( __METHOD__, __( 'This method should not be called before plugins_loaded.', 'everest-forms' ), '1.3.0' );
295 return false;
296 }
297 }
298
299 /**
300 * Recursively get page children.
301 *
302 * @param int $page_id Page ID.
303 * @return int[]
304 */
305 function evf_get_page_children( $page_id ) {
306 $page_ids = get_posts(
307 array(
308 'post_parent' => $page_id,
309 'post_type' => 'page',
310 'numberposts' => - 1,
311 'post_status' => 'any',
312 'fields' => 'ids',
313 )
314 );
315
316 if ( ! empty( $page_ids ) ) {
317 foreach ( $page_ids as $page_id ) {
318 $page_ids = array_merge( $page_ids, evf_get_page_children( $page_id ) );
319 }
320 }
321
322 return $page_ids;
323 }
324
325 /**
326 * Get user agent string.
327 *
328 * @since 1.0.0
329 * @return string
330 */
331 function evf_get_user_agent() {
332 return isset( $_SERVER['HTTP_USER_AGENT'] ) ? evf_clean( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : ''; // @codingStandardsIgnoreLine
333 }
334
335 // This function can be removed when WP 3.9.2 or greater is required.
336 if ( ! function_exists( 'hash_equals' ) ) :
337 /**
338 * Compare two strings in constant time.
339 *
340 * This function was added in PHP 5.6.
341 * It can leak the length of a string.
342 *
343 * @since 1.0.0
344 *
345 * @param string $a Expected string.
346 * @param string $b Actual string.
347 * @return bool Whether strings are equal.
348 */
349 function hash_equals( $a, $b ) {
350 $a_length = strlen( $a );
351 if ( strlen( $b ) !== $a_length ) {
352 return false;
353 }
354 $result = 0;
355
356 // Do not attempt to "optimize" this.
357 for ( $i = 0; $i < $a_length; $i ++ ) {
358 $result |= ord( $a[ $i ] ) ^ ord( $b[ $i ] );
359 }
360
361 return 0 === $result;
362 }
363 endif;
364
365 /**
366 * Generate a rand hash.
367 *
368 * @since 1.0.0
369 * @return string
370 */
371 function evf_rand_hash() {
372 if ( ! function_exists( 'openssl_random_pseudo_bytes' ) ) {
373 return sha1( wp_rand() );
374 }
375
376 return bin2hex( openssl_random_pseudo_bytes( 20 ) ); // @codingStandardsIgnoreLine
377 }
378
379 /**
380 * Find all possible combinations of values from the input array and return in a logical order.
381 *
382 * @since 1.0.0
383 * @param array $input Input.
384 * @return array
385 */
386 function evf_array_cartesian( $input ) {
387 $input = array_filter( $input );
388 $results = array();
389 $indexes = array();
390 $index = 0;
391
392 // Generate indexes from keys and values so we have a logical sort order.
393 foreach ( $input as $key => $values ) {
394 foreach ( $values as $value ) {
395 $indexes[ $key ][ $value ] = $index++;
396 }
397 }
398
399 // Loop over the 2D array of indexes and generate all combinations.
400 foreach ( $indexes as $key => $values ) {
401 // When result is empty, fill with the values of the first looped array.
402 if ( empty( $results ) ) {
403 foreach ( $values as $value ) {
404 $results[] = array( $key => $value );
405 }
406 } else {
407 // Second and subsequent input sub-array merging.
408 foreach ( $results as $result_key => $result ) {
409 foreach ( $values as $value ) {
410 // If the key is not set, we can set it.
411 if ( ! isset( $results[ $result_key ][ $key ] ) ) {
412 $results[ $result_key ][ $key ] = $value;
413 } else {
414 // If the key is set, we can add a new combination to the results array.
415 $new_combination = $results[ $result_key ];
416 $new_combination[ $key ] = $value;
417 $results[] = $new_combination;
418 }
419 }
420 }
421 }
422 }
423
424 // Sort the indexes.
425 arsort( $results );
426
427 // Convert indexes back to values.
428 foreach ( $results as $result_key => $result ) {
429 $converted_values = array();
430
431 // Sort the values.
432 arsort( $results[ $result_key ] );
433
434 // Convert the values.
435 foreach ( $results[ $result_key ] as $key => $value ) {
436 $converted_values[ $key ] = array_search( $value, $indexes[ $key ], true );
437 }
438
439 $results[ $result_key ] = $converted_values;
440 }
441
442 return $results;
443 }
444
445 /**
446 * Run a MySQL transaction query, if supported.
447 *
448 * @since 1.0.0
449 * @param string $type Types: start (default), commit, rollback.
450 * @param bool $force use of transactions.
451 */
452 function evf_transaction_query( $type = 'start', $force = false ) {
453 global $wpdb;
454
455 $wpdb->hide_errors();
456
457 evf_maybe_define_constant( 'EVF_USE_TRANSACTIONS', true );
458
459 if ( EVF_USE_TRANSACTIONS || $force ) {
460 switch ( $type ) {
461 case 'commit':
462 $wpdb->query( 'COMMIT' );
463 break;
464 case 'rollback':
465 $wpdb->query( 'ROLLBACK' );
466 break;
467 default:
468 $wpdb->query( 'START TRANSACTION' );
469 break;
470 }
471 }
472 }
473
474 /**
475 * Outputs a "back" link so admin screens can easily jump back a page.
476 *
477 * @param string $label Title of the page to return to.
478 * @param string $url URL of the page to return to.
479 */
480 function evf_back_link( $label, $url ) {
481 echo '<small class="evf-admin-breadcrumb"><a href="' . esc_url( $url ) . '" aria-label="' . esc_attr( $label ) . '">&#x2934;</a></small>';
482 }
483
484 /**
485 * Display a EverestForms help tip.
486 *
487 * @since 1.0.0
488 *
489 * @param string $tip Help tip text.
490 * @param bool $allow_html Allow sanitized HTML if true or escape.
491 * @return string
492 */
493 function evf_help_tip( $tip, $allow_html = false ) {
494 if ( $allow_html ) {
495 $tip = evf_sanitize_tooltip( $tip );
496 } else {
497 $tip = esc_attr( $tip );
498 }
499
500 return '<span class="everest-forms-help-tip" data-tip="' . $tip . '"></span>';
501 }
502
503 /**
504 * Wrapper for set_time_limit to see if it is enabled.
505 *
506 * @since 1.0.0
507 * @param int $limit Time limit.
508 */
509 function evf_set_time_limit( $limit = 0 ) {
510 if ( function_exists( 'set_time_limit' ) && false === strpos( ini_get( 'disable_functions' ), 'set_time_limit' ) && ! ini_get( 'safe_mode' ) ) { // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.safe_modeDeprecatedRemoved
511 @set_time_limit( $limit ); // @codingStandardsIgnoreLine
512 }
513 }
514
515 /**
516 * Wrapper for nocache_headers which also disables page caching.
517 *
518 * @since 1.2.0
519 */
520 function evf_nocache_headers() {
521 EVF_Cache_Helper::set_nocache_constants();
522 nocache_headers();
523 }
524
525 /**
526 * Get a shared logger instance.
527 *
528 * Use the everest_forms_logging_class filter to change the logging class. You may provide one of the following:
529 * - a class name which will be instantiated as `new $class` with no arguments
530 * - an instance which will be used directly as the logger
531 * In either case, the class or instance *must* implement EVF_Logger_Interface.
532 *
533 * @see EVF_Logger_Interface
534 *
535 * @return EVF_Logger
536 */
537 function evf_get_logger() {
538 static $logger = null;
539
540 $class = apply_filters( 'everest_forms_logging_class', 'EVF_Logger' );
541
542 if ( null !== $logger && is_string( $class ) && is_a( $logger, $class ) ) {
543 return $logger;
544 }
545
546 $implements = class_implements( $class );
547
548 if ( is_array( $implements ) && in_array( 'EVF_Logger_Interface', $implements, true ) ) {
549 $logger = is_object( $class ) ? $class : new $class();
550 } else {
551 evf_doing_it_wrong(
552 __FUNCTION__,
553 sprintf(
554 /* translators: 1: class name 2: everest_forms_logging_class 3: EVF_Logger_Interface */
555 __( 'The class %1$s provided by %2$s filter must implement %3$s.', 'everest-forms' ),
556 '<code>' . esc_html( is_object( $class ) ? get_class( $class ) : $class ) . '</code>',
557 '<code>everest_forms_logging_class</code>',
558 '<code>EVF_Logger_Interface</code>'
559 ),
560 '1.2'
561 );
562 $logger = is_a( $logger, 'EVF_Logger' ) ? $logger : new EVF_Logger();
563 }
564
565 return $logger;
566 }
567
568 /**
569 * Prints human-readable information about a variable.
570 *
571 * Some server environments blacklist some debugging functions. This function provides a safe way to
572 * turn an expression into a printable, readable form without calling blacklisted functions.
573 *
574 * @since 1.0.0
575 *
576 * @param mixed $expression The expression to be printed.
577 * @param bool $return Optional. Default false. Set to true to return the human-readable string.
578 *
579 * @return string|bool False if expression could not be printed. True if the expression was printed.
580 * If $return is true, a string representation will be returned.
581 */
582 function evf_print_r( $expression, $return = false ) {
583 $alternatives = array(
584 array(
585 'func' => 'print_r',
586 'args' => array( $expression, true ),
587 ),
588 array(
589 'func' => 'var_export',
590 'args' => array( $expression, true ),
591 ),
592 array(
593 'func' => 'json_encode',
594 'args' => array( $expression ),
595 ),
596 array(
597 'func' => 'serialize',
598 'args' => array( $expression ),
599 ),
600 );
601
602 $alternatives = apply_filters( 'everest_forms_print_r_alternatives', $alternatives, $expression );
603
604 foreach ( $alternatives as $alternative ) {
605 if ( function_exists( $alternative['func'] ) ) {
606 $res = call_user_func_array( $alternative['func'], $alternative['args'] );
607 if ( $return ) {
608 return $res;
609 }
610
611 echo wp_kses_post( $res );
612 return true;
613 }
614 }
615
616 return false;
617 }
618
619 /**
620 * Registers the default log handler.
621 *
622 * @since 1.0.0
623 * @param array $handlers Handlers.
624 * @return array
625 */
626 function evf_register_default_log_handler( $handlers ) {
627 if ( defined( 'EVF_LOG_HANDLER' ) && class_exists( EVF_LOG_HANDLER ) ) {
628 $handler_class = EVF_LOG_HANDLER;
629 $default_handler = new $handler_class();
630 } else {
631 $default_handler = new EVF_Log_Handler_File();
632 }
633
634 array_push( $handlers, $default_handler );
635
636 return $handlers;
637 }
638
639 add_filter( 'everest_forms_register_log_handlers', 'evf_register_default_log_handler' );
640
641 /**
642 * Based on wp_list_pluck, this calls a method instead of returning a property.
643 *
644 * @since 1.0.0
645 * @param array $list List of objects or arrays.
646 * @param int|string $callback_or_field Callback method from the object to place instead of the entire object.
647 * @param int|string $index_key Optional. Field from the object to use as keys for the new array.
648 * Default null.
649 * @return array Array of values.
650 */
651 function evf_list_pluck( $list, $callback_or_field, $index_key = null ) {
652 // Use wp_list_pluck if this isn't a callback.
653 $first_el = current( $list );
654 if ( ! is_object( $first_el ) || ! is_callable( array( $first_el, $callback_or_field ) ) ) {
655 return wp_list_pluck( $list, $callback_or_field, $index_key );
656 }
657 if ( ! $index_key ) {
658 /*
659 * This is simple. Could at some point wrap array_column()
660 * if we knew we had an array of arrays.
661 */
662 foreach ( $list as $key => $value ) {
663 $list[ $key ] = $value->{$callback_or_field}();
664 }
665 return $list;
666 }
667
668 /*
669 * When index_key is not set for a particular item, push the value
670 * to the end of the stack. This is how array_column() behaves.
671 */
672 $newlist = array();
673 foreach ( $list as $value ) {
674 // Get index.
675 if ( is_callable( array( $value, $index_key ) ) ) {
676 $newlist[ $value->{$index_key}() ] = $value->{$callback_or_field}();
677 } elseif ( isset( $value->$index_key ) ) {
678 $newlist[ $value->$index_key ] = $value->{$callback_or_field}();
679 } else {
680 $newlist[] = $value->{$callback_or_field}();
681 }
682 }
683 return $newlist;
684 }
685
686 /**
687 * Switch EverestForms to site language.
688 *
689 * @since 1.0.0
690 */
691 function evf_switch_to_site_locale() {
692 if ( function_exists( 'switch_to_locale' ) ) {
693 switch_to_locale( get_locale() );
694
695 // Filter on plugin_locale so load_plugin_textdomain loads the correct locale.
696 add_filter( 'plugin_locale', 'get_locale' );
697
698 // Init EVF locale.
699 evf()->load_plugin_textdomain();
700 }
701 }
702
703 /**
704 * Switch EverestForms language to original.
705 *
706 * @since 1.0.0
707 */
708 function evf_restore_locale() {
709 if ( function_exists( 'restore_previous_locale' ) ) {
710 restore_previous_locale();
711
712 // Remove filter.
713 remove_filter( 'plugin_locale', 'get_locale' );
714
715 // Init EVF locale.
716 evf()->load_plugin_textdomain();
717 }
718 }
719
720 /**
721 * Get an item of post data if set, otherwise return a default value.
722 *
723 * @since 1.0.0
724 * @param string $key Key.
725 * @param string $default Default.
726 * @return mixed value sanitized by evf_clean
727 */
728 function evf_get_post_data_by_key( $key, $default = '' ) {
729 return evf_clean( evf_get_var( $_POST[ $key ], $default ) ); // @codingStandardsIgnoreLine
730 }
731
732 /**
733 * Get data if set, otherwise return a default value or null. Prevents notices when data is not set.
734 *
735 * @since 1.0.0
736 * @param mixed $var Variable.
737 * @param string $default Default value.
738 * @return mixed
739 */
740 function evf_get_var( &$var, $default = null ) {
741 return isset( $var ) ? $var : $default;
742 }
743
744 /**
745 * Read in EverestForms headers when reading plugin headers.
746 *
747 * @since 1.2.0
748 * @param array $headers Headers.
749 * @return array
750 */
751 function evf_enable_evf_plugin_headers( $headers ) {
752 if ( ! class_exists( 'EVF_Plugin_Updates' ) ) {
753 include_once dirname( __FILE__ ) . '/admin/plugin-updates/class-evf-plugin-updates.php';
754 }
755
756 // EVF requires at least - allows developers to define which version of Everest Forms the plugin requires to run.
757 $headers[] = EVF_Plugin_Updates::VERSION_REQUIRED_HEADER;
758
759 // EVF tested up to - allows developers to define which version of Everest Forms they have tested up to.
760 $headers[] = EVF_Plugin_Updates::VERSION_TESTED_HEADER;
761
762 return $headers;
763 }
764 add_filter( 'extra_theme_headers', 'evf_enable_evf_plugin_headers' );
765 add_filter( 'extra_plugin_headers', 'evf_enable_evf_plugin_headers' );
766
767 /**
768 * Delete expired transients.
769 *
770 * Deletes all expired transients. The multi-table delete syntax is used.
771 * to delete the transient record from table a, and the corresponding.
772 * transient_timeout record from table b.
773 *
774 * Based on code inside core's upgrade_network() function.
775 *
776 * @since 1.0.0
777 * @return int Number of transients that were cleared.
778 */
779 function evf_delete_expired_transients() {
780 global $wpdb;
781
782 $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b
783 WHERE a.option_name LIKE %s
784 AND a.option_name NOT LIKE %s
785 AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) )
786 AND b.option_value < %d";
787 $rows = $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_transient_' ) . '%', $wpdb->esc_like( '_transient_timeout_' ) . '%', time() ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
788
789 $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b
790 WHERE a.option_name LIKE %s
791 AND a.option_name NOT LIKE %s
792 AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) )
793 AND b.option_value < %d";
794 $rows2 = $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like( '_site_transient_timeout_' ) . '%', time() ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
795
796 return absint( $rows + $rows2 );
797 }
798 add_action( 'everest_forms_installed', 'evf_delete_expired_transients' );
799
800 /**
801 * Make a URL relative, if possible.
802 *
803 * @since 1.0.0
804 * @param string $url URL to make relative.
805 * @return string
806 */
807 function evf_get_relative_url( $url ) {
808 return evf_is_external_resource( $url ) ? $url : str_replace( array( 'http://', 'https://' ), '//', $url );
809 }
810
811 /**
812 * See if a resource is remote.
813 *
814 * @since 1.0.0
815 * @param string $url URL to check.
816 * @return bool
817 */
818 function evf_is_external_resource( $url ) {
819 $wp_base = str_replace( array( 'http://', 'https://' ), '//', get_home_url( null, '/', 'http' ) );
820 return strstr( $url, '://' ) && strstr( $wp_base, $url );
821 }
822
823 /**
824 * See if theme/s is activate or not.
825 *
826 * @since 1.0.0
827 * @param string|array $theme Theme name or array of theme names to check.
828 * @return boolean
829 */
830 function evf_is_active_theme( $theme ) {
831 return is_array( $theme ) ? in_array( get_template(), $theme, true ) : get_template() === $theme;
832 }
833
834 /**
835 * Cleans up session data - cron callback.
836 *
837 * @since 1.0.0
838 */
839 function evf_cleanup_session_data() {
840 $session_class = apply_filters( 'everest_forms_session_handler', 'EVF_Session_Handler' );
841 $session = new $session_class();
842
843 if ( is_callable( array( $session, 'cleanup_sessions' ) ) ) {
844 $session->cleanup_sessions();
845 }
846 }
847 add_action( 'everest_forms_cleanup_sessions', 'evf_cleanup_session_data' );
848
849 /**
850 * Return the html selected attribute if stringified $value is found in array of stringified $options
851 * or if stringified $value is the same as scalar stringified $options.
852 *
853 * @param string|int $value Value to find within options.
854 * @param string|int|array $options Options to go through when looking for value.
855 * @return string
856 */
857 function evf_selected( $value, $options ) {
858 if ( is_array( $options ) ) {
859 $options = array_map( 'strval', $options );
860 return selected( in_array( (string) $value, $options, true ), true, false );
861 }
862
863 return selected( $value, $options, false );
864 }
865
866 /**
867 * Retrieve actual fields from a form.
868 *
869 * Non-posting elements such as section divider, page break, and HTML are
870 * automatically excluded. Optionally a white list can be provided.
871 *
872 * @since 1.0.0
873 *
874 * @param mixed $form Form data.
875 * @param array $whitelist Whitelist args.
876 *
877 * @return mixed boolean or array
878 */
879 function evf_get_form_fields( $form = false, $whitelist = array() ) {
880 // Accept form (post) object or form ID.
881 if ( is_object( $form ) ) {
882 $form = json_decode( $form->post_content );
883 } elseif ( is_numeric( $form ) ) {
884 $form = evf()->form->get(
885 $form,
886 array(
887 'content_only' => true,
888 )
889 );
890 }
891
892 if ( ! is_array( $form ) || empty( $form['form_fields'] ) ) {
893 return false;
894 }
895
896 // White list of field types to allow.
897 $allowed_form_fields = array(
898 'first-name',
899 'last-name',
900 'text',
901 'textarea',
902 'select',
903 'radio',
904 'checkbox',
905 'email',
906 'address',
907 'country',
908 'url',
909 'name',
910 'hidden',
911 'date',
912 'phone',
913 'number',
914 'file-upload',
915 'image-upload',
916 'payment-single',
917 'payment-multiple',
918 'payment-checkbox',
919 'payment-total',
920 );
921 $allowed_form_fields = apply_filters( 'everest_forms_allowed_form_fields', $allowed_form_fields );
922
923 $whitelist = ! empty( $whitelist ) ? $whitelist : $allowed_form_fields;
924
925 $form_fields = $form['form_fields'];
926
927 foreach ( $form_fields as $id => $form_field ) {
928 if ( ! in_array( $form_field['type'], $whitelist, true ) ) {
929 unset( $form_fields[ $id ] );
930 }
931 }
932
933 return $form_fields;
934 }
935
936 /**
937 * Sanitize a string, that can be a multiline.
938 * If WP core `sanitize_textarea_field()` exists (after 4.7.0) - use it.
939 * Otherwise - split onto separate lines, sanitize each one, merge again.
940 *
941 * @since 1.4.1
942 *
943 * @param string $string Raw string to sanitize.
944 *
945 * @return string If empty var is passed, or not a string - return unmodified. Otherwise - sanitize.
946 */
947 function evf_sanitize_textarea_field( $string ) {
948 if ( empty( $string ) || ! is_string( $string ) ) {
949 return $string;
950 }
951
952 if ( function_exists( 'sanitize_textarea_field' ) ) {
953 $string = sanitize_textarea_field( $string );
954 } else {
955 $string = implode( "\n", array_map( 'sanitize_text_field', explode( "\n", $string ) ) );
956 }
957
958 return $string;
959 }
960
961 /**
962 * Formats, sanitizes, and returns/echos HTML element ID, classes, attributes,
963 * and data attributes.
964 *
965 * @param string $id Element ID.
966 * @param array $class Class args.
967 * @param array $datas Data args.
968 * @param array $atts Attributes.
969 * @param bool $echo True to echo else return.
970 *
971 * @return string
972 */
973 function evf_html_attributes( $id = '', $class = array(), $datas = array(), $atts = array(), $echo = false ) {
974 $id = trim( $id );
975 $parts = array();
976
977 if ( ! empty( $id ) ) {
978 $id = sanitize_html_class( $id );
979 if ( ! empty( $id ) ) {
980 $parts[] = 'id="' . $id . '"';
981 }
982 }
983
984 if ( ! empty( $class ) ) {
985 $class = evf_sanitize_classes( $class, true );
986 if ( ! empty( $class ) ) {
987 $parts[] = 'class="' . $class . '"';
988 }
989 }
990
991 if ( ! empty( $datas ) ) {
992 foreach ( $datas as $data => $val ) {
993 $parts[] = 'data-' . sanitize_html_class( $data ) . '="' . esc_attr( $val ) . '"';
994 }
995 }
996
997 if ( ! empty( $atts ) ) {
998 foreach ( $atts as $att => $val ) {
999 if ( '0' === $val || ! empty( $val ) ) {
1000 if ( $att[0] === '[' ) { //phpcs:ignore
1001 // Handle special case for bound attributes in AMP.
1002 $escaped_att = '[' . sanitize_html_class( trim( $att, '[]' ) ) . ']';
1003 } else {
1004 $escaped_att = sanitize_html_class( $att );
1005 }
1006 $parts[] = $escaped_att . '="' . esc_attr( $val ) . '"';
1007 }
1008 }
1009 }
1010
1011 $output = implode( ' ', $parts );
1012
1013 if ( $echo ) {
1014 echo esc_html( trim( $output ) );
1015 } else {
1016 return trim( $output );
1017 }
1018 }
1019
1020 /**
1021 * Sanitize string of CSS classes.
1022 *
1023 * @param array|string $classes Class names.
1024 * @param bool $convert True will convert strings to array and vice versa.
1025 *
1026 * @return string|array
1027 */
1028 function evf_sanitize_classes( $classes, $convert = false ) {
1029 $css = array();
1030 $array = is_array( $classes );
1031
1032 if ( ! empty( $classes ) ) {
1033 if ( ! $array ) {
1034 $classes = explode( ' ', trim( $classes ) );
1035 }
1036 foreach ( $classes as $class ) {
1037 $css[] = sanitize_html_class( $class );
1038 }
1039 }
1040
1041 if ( $array ) {
1042 return $convert ? implode( ' ', $css ) : $css;
1043 } else {
1044 return $convert ? $css : implode( ' ', $css );
1045 }
1046 }
1047
1048 /**
1049 * Performs json_decode and unslash.
1050 *
1051 * @since 1.0.0
1052 *
1053 * @param string $data Data to decode.
1054 *
1055 * @return array|bool
1056 */
1057 function evf_decode( $data ) {
1058 if ( ! $data || empty( $data ) ) {
1059 return false;
1060 }
1061
1062 return json_decode( $data, true );
1063 }
1064
1065 /**
1066 * Performs json_encode and wp_slash.
1067 *
1068 * @since 1.0.0
1069 *
1070 * @param mixed $data Data to encode.
1071 *
1072 * @return string
1073 */
1074 function evf_encode( $data = false ) {
1075 if ( empty( $data ) ) {
1076 return false;
1077 }
1078
1079 return wp_slash( wp_json_encode( $data ) );
1080 }
1081
1082 /**
1083 * Crypto rand secure.
1084 *
1085 * @param int $min Min value.
1086 * @param int $max Max value.
1087 *
1088 * @return mixed
1089 */
1090 function evf_crypto_rand_secure( $min, $max ) {
1091 $range = $max - $min;
1092 if ( $range < 1 ) {
1093 return $min;
1094 } // not so random...
1095 $log = ceil( log( $range, 2 ) );
1096 $bytes = (int) ( $log / 8 ) + 1; // Length in bytes.
1097 $bits = (int) $log + 1; // Length in bits.
1098 $filter = (int) ( 1 << $bits ) - 1; // Set all lower bits to 1.
1099 do {
1100 $rnd = hexdec( bin2hex( openssl_random_pseudo_bytes( $bytes ) ) );
1101 $rnd = $rnd & $filter; // Discard irrelevant bits.
1102 } while ( $rnd > $range );
1103
1104 return $min + $rnd;
1105 }
1106
1107 /**
1108 * Generate random string.
1109 *
1110 * @param int $length Length of string.
1111 *
1112 * @return string
1113 */
1114 function evf_get_random_string( $length = 10 ) {
1115 $string = '';
1116 $code_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
1117 $code_alphabet .= 'abcdefghijklmnopqrstuvwxyz';
1118 $code_alphabet .= '0123456789';
1119 $max = strlen( $code_alphabet );
1120 for ( $i = 0; $i < $length; $i ++ ) {
1121 $string .= $code_alphabet[ evf_crypto_rand_secure( 0, $max - 1 ) ];
1122 }
1123
1124 return $string;
1125 }
1126
1127 /**
1128 * Get all forms.
1129 *
1130 * @param bool $skip_disabled_entries True to skip disabled entries.
1131 * @param bool $check_disable_storing_entry_info Check disable storing entry.
1132 * @return array of form data.
1133 */
1134 function evf_get_all_forms( $skip_disabled_entries = false, $check_disable_storing_entry_info = true ) {
1135 $forms = array();
1136 $form_ids = wp_parse_id_list(
1137 evf()->form->get_multiple(
1138 array(
1139 'fields' => 'ids',
1140 'status' => 'publish',
1141 'order' => 'DESC',
1142 'numberposts' => -1, // @codingStandardsIgnoreLine
1143 )
1144 )
1145 );
1146
1147 if ( ! empty( $form_ids ) ) {
1148 foreach ( $form_ids as $form_id ) {
1149 $form = evf()->form->get( $form_id );
1150 $entries = evf_get_entries_ids( $form_id );
1151 $form_data = ! empty( $form->post_content ) ? evf_decode( $form->post_content ) : '';
1152
1153 if ( ! $form || ( $skip_disabled_entries && count( $entries ) < 1 ) && ( isset( $form_data['settings']['disabled_entries'] ) && '1' === $form_data['settings']['disabled_entries'] ) ) {
1154 if ( ! $form || $check_disable_storing_entry_info ) {
1155 continue;
1156 }
1157 }
1158
1159 // Check permissions for forms with viewable.
1160 if ( current_user_can( 'everest_forms_view_form_entries', $form_id ) ) {
1161 $forms[ $form_id ] = $form->post_title;
1162 }
1163 }
1164 }
1165
1166 return $forms;
1167 }
1168
1169 /**
1170 * Get random meta-key for field option.
1171 *
1172 * @param array $field Field data array.
1173 * @return string
1174 */
1175 function evf_get_meta_key_field_option( $field ) {
1176 return str_replace( ' ', '_', preg_replace( '/[^a-zA-Z0-9\s`_]/', '', strtolower( $field['label'] ) ) ) . '_' . rand( pow( 10, 3 ), pow( 10, 4 ) - 1 ); // phpcs:ignore WordPress.WP.AlternativeFunctions.rand_rand.
1177 }
1178
1179 /**
1180 * Get current user IP Address.
1181 *
1182 * @return string
1183 */
1184 function evf_get_ip_address() {
1185 if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) { // WPCS: input var ok, CSRF ok.
1186 return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) ); // WPCS: input var ok, CSRF ok.
1187 } elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { // WPCS: input var ok, CSRF ok.
1188 // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2
1189 // Make sure we always only send through the first IP in the list which should always be the client IP.
1190 return (string) rest_is_ip_address( trim( current( preg_split( '/[,:]/', sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) ) ) ); // WPCS: input var ok, CSRF ok.
1191 } elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) { // @codingStandardsIgnoreLine
1192 return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ); // @codingStandardsIgnoreLine
1193 }
1194 return '';
1195 }
1196
1197 /**
1198 * Get User Agent browser and OS type
1199 *
1200 * @since 1.1.0
1201 * @return array
1202 */
1203 function evf_get_browser() {
1204 $u_agent = ! empty( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) : '';
1205 $bname = 'Unknown';
1206 $platform = 'Unknown';
1207 $version = '';
1208
1209 // First get the platform.
1210 if ( preg_match( '/linux/i', $u_agent ) ) {
1211 $platform = 'Linux';
1212 } elseif ( preg_match( '/macintosh|mac os x/i', $u_agent ) ) {
1213 $platform = 'MAC OS';
1214 } elseif ( preg_match( '/windows|win32/i', $u_agent ) ) {
1215 $platform = 'Windows';
1216 }
1217
1218 // Next get the name of the useragent yes seperately and for good reason.
1219 if ( preg_match( '/MSIE/i', $u_agent ) && ! preg_match( '/Opera/i', $u_agent ) ) {
1220 $bname = 'Internet Explorer';
1221 $ub = 'MSIE';
1222 } elseif ( preg_match( '/Trident/i', $u_agent ) ) {
1223 // this condition is for IE11.
1224 $bname = 'Internet Explorer';
1225 $ub = 'rv';
1226 } elseif ( preg_match( '/Firefox/i', $u_agent ) ) {
1227 $bname = 'Mozilla Firefox';
1228 $ub = 'Firefox';
1229 } elseif ( preg_match( '/Chrome/i', $u_agent ) ) {
1230 $bname = 'Google Chrome';
1231 $ub = 'Chrome';
1232 } elseif ( preg_match( '/Safari/i', $u_agent ) ) {
1233 $bname = 'Apple Safari';
1234 $ub = 'Safari';
1235 } elseif ( preg_match( '/Opera/i', $u_agent ) ) {
1236 $bname = 'Opera';
1237 $ub = 'Opera';
1238 } elseif ( preg_match( '/Netscape/i', $u_agent ) ) {
1239 $bname = 'Netscape';
1240 $ub = 'Netscape';
1241 }
1242
1243 // Finally get the correct version number.
1244 // Added "|:".
1245 $known = array( 'Version', $ub, 'other' );
1246 $pattern = '#(?<browser>' . join( '|', $known ) . ')[/|: ]+(?<version>[0-9.|a-zA-Z.]*)#';
1247 if ( ! preg_match_all( $pattern, $u_agent, $matches ) ) { // @codingStandardsIgnoreLine
1248 // We have no matching number just continue.
1249 }
1250
1251 // See how many we have.
1252 $i = count( $matches['browser'] );
1253
1254 if ( 1 !== $i ) {
1255 // we will have two since we are not using 'other' argument yet.
1256 // see if version is before or after the name.
1257 if ( strripos( $u_agent, 'Version' ) < strripos( $u_agent, $ub ) ) {
1258 $version = $matches['version'][0];
1259 } else {
1260 $version = $matches['version'][1];
1261 }
1262 } else {
1263 $version = $matches['version'][0];
1264 }
1265
1266 // Check if we have a number.
1267 if ( null === $version || '' === $version ) {
1268 $version = '';
1269 }
1270
1271 return array(
1272 'userAgent' => $u_agent,
1273 'name' => $bname,
1274 'version' => $version,
1275 'platform' => $platform,
1276 'pattern' => $pattern,
1277 );
1278 }
1279
1280 /**
1281 * Get the certain date of a specified day in a specified format.
1282 *
1283 * @since 1.1.0
1284 *
1285 * @param string $period Supported values: start, end.
1286 * @param string $timestamp Default is the current timestamp, if left empty.
1287 * @param string $format Default is a MySQL format.
1288 *
1289 * @return string
1290 */
1291 function evf_get_day_period_date( $period, $timestamp = '', $format = 'Y-m-d H:i:s' ) {
1292 $date = '';
1293
1294 if ( empty( $timestamp ) ) {
1295 $timestamp = time();
1296 }
1297
1298 switch ( $period ) {
1299 case 'start_of_day':
1300 $date = date( $format, strtotime( 'today', $timestamp ) ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date
1301 break;
1302
1303 case 'end_of_day':
1304 $date = date( $format, strtotime( 'tomorrow', $timestamp ) - 1 ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date
1305 break;
1306
1307 }
1308
1309 return $date;
1310 }
1311
1312 /**
1313 * Get field label by meta key
1314 *
1315 * @param int $form_id Form ID.
1316 * @param string $meta_key Field's meta key.
1317 * @param array $fields Entry Field Data.
1318 *
1319 * @return string|false True if field label exists in form.
1320 */
1321 function evf_get_form_data_by_meta_key( $form_id, $meta_key, $fields = array() ) {
1322 $get_post = get_post( $form_id );
1323 $post_content = json_decode( $get_post->post_content, true );
1324 $form_fields = isset( $post_content['form_fields'] ) ? $post_content['form_fields'] : array();
1325
1326 if ( ! empty( $form_fields ) ) {
1327 foreach ( $form_fields as $field ) {
1328 if ( isset( $field['meta-key'] ) && $meta_key === $field['meta-key'] ) {
1329 return $field['label'];
1330 }
1331 }
1332 }
1333
1334 if ( ! empty( $fields ) ) {
1335 foreach ( $fields as $field ) {
1336 if ( isset( $field->meta_key ) && $meta_key === $field->meta_key ) {
1337 return isset( $field->name ) ? $field->name : $field->value->name;
1338 }
1339 }
1340 }
1341
1342 return false;
1343 }
1344
1345 /**
1346 * Get field type by meta key
1347 *
1348 * @param int $form_id Form ID.
1349 * @param string $meta_key Field's meta key.
1350 *
1351 * @return string|false True if field type exists in form.
1352 */
1353 function evf_get_field_type_by_meta_key( $form_id, $meta_key ) {
1354 $get_post = get_post( $form_id );
1355 $post_content = json_decode( $get_post->post_content, true );
1356 $form_fields = isset( $post_content['form_fields'] ) ? $post_content['form_fields'] : array();
1357
1358 if ( ! empty( $form_fields ) ) {
1359 foreach ( $form_fields as $field ) {
1360 if ( isset( $field['meta-key'] ) && $meta_key === $field['meta-key'] ) {
1361 return $field['type'];
1362 }
1363 }
1364 }
1365
1366 return false;
1367 }
1368
1369 /**
1370 * Get all the email fields of a Form.
1371 *
1372 * @param int $form_id Form ID.
1373 */
1374 function evf_get_all_email_fields_by_form_id( $form_id ) {
1375 $user_emails = array();
1376 $form_obj = evf()->form->get( $form_id );
1377 $form_data = ! empty( $form_obj->post_content ) ? evf_decode( $form_obj->post_content ) : '';
1378
1379 if ( ! empty( $form_data['form_fields'] ) ) {
1380 foreach ( $form_data['form_fields'] as $form_fields ) {
1381 if ( 'email' === $form_fields['type'] ) {
1382 $user_emails[ $form_fields['meta-key'] ] = $form_fields['label'];
1383 }
1384 }
1385 }
1386
1387 return $user_emails;
1388 }
1389
1390 /**
1391 * Get all the field's meta-key label pair.
1392 *
1393 * @param int $form_id Form ID.
1394 * @return array
1395 */
1396 function evf_get_all_form_fields_by_form_id( $form_id ) {
1397 $data = array();
1398 $form_obj = evf()->form->get( $form_id );
1399 $form_data = ! empty( $form_obj->post_content ) ? evf_decode( $form_obj->post_content ) : '';
1400
1401 if ( ! empty( $form_data['form_fields'] ) ) {
1402 foreach ( $form_data['form_fields'] as $form_fields ) {
1403 if ( isset( $form_fields['meta-key'], $form_fields['label'] ) ) {
1404 $data[ $form_fields['meta-key'] ] = $form_fields['label'];
1405 }
1406 }
1407 }
1408
1409 return $data;
1410 }
1411
1412 /**
1413 * Check if the string JSON.
1414 *
1415 * @param string $string String to check.
1416 * @return bool
1417 */
1418 function evf_isJson( $string ) {
1419 json_decode( $string );
1420 return ( json_last_error() == JSON_ERROR_NONE ); // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
1421 }
1422
1423 /**
1424 * Checks whether the content passed contains a specific short code.
1425 *
1426 * @since 1.1.4
1427 * @param string $tag Shortcode tag to check.
1428 * @return bool
1429 */
1430 function evf_post_content_has_shortcode( $tag = '' ) {
1431 global $post;
1432
1433 return is_singular() && is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, $tag );
1434 }
1435
1436 /**
1437 * Convert a file size provided, such as "2M", to bytes.
1438 *
1439 * @since 1.2.0
1440 * @link http://stackoverflow.com/a/22500394
1441 *
1442 * @param string $size Size to convert to bytes.
1443 *
1444 * @return int
1445 */
1446 function evf_size_to_bytes( $size ) {
1447 if ( is_numeric( $size ) ) {
1448 return $size;
1449 }
1450
1451 $suffix = substr( $size, - 1 );
1452 $value = substr( $size, 0, - 1 );
1453
1454 // @codingStandardsIgnoreStart
1455 switch ( strtoupper( $suffix ) ) {
1456 case 'P':
1457 $value *= 1024;
1458 case 'T':
1459 $value *= 1024;
1460 case 'G':
1461 $value *= 1024;
1462 case 'M':
1463 $value *= 1024;
1464 case 'K':
1465 $value *= 1024;
1466 break;
1467 }
1468 // @codingStandardsIgnoreEnd
1469
1470 return $value;
1471 }
1472
1473 /**
1474 * Convert bytes to megabytes (or in some cases KB).
1475 *
1476 * @since 1.2.0
1477 *
1478 * @param int $bytes Bytes to convert to a readable format.
1479 *
1480 * @return string
1481 */
1482 function evf_size_to_megabytes( $bytes ) {
1483 if ( $bytes < 1048676 ) {
1484 return number_format( $bytes / 1024, 1 ) . ' KB';
1485 } else {
1486 return round( (float) number_format( $bytes / 1048576, 1 ) ) . ' MB';
1487 }
1488 }
1489
1490 /**
1491 * Convert a file size provided, such as "2M", to bytes.
1492 *
1493 * @since 1.2.0
1494 * @link http://stackoverflow.com/a/22500394
1495 *
1496 * @param bool $bytes Whether to convert Bytes to a readable format.
1497 * @return mixed
1498 */
1499 function evf_max_upload( $bytes = false ) {
1500 $max = wp_max_upload_size();
1501
1502 if ( $bytes ) {
1503 return $max;
1504 } else {
1505 return evf_size_to_megabytes( $max );
1506 }
1507 }
1508
1509 /**
1510 * Get the required label text, with a filter.
1511 *
1512 * @since 1.2.0
1513 * @return string
1514 */
1515 function evf_get_required_label() {
1516 return apply_filters( 'everest_forms_required_label', esc_html__( 'This field is required.', 'everest-forms' ) );
1517 }
1518
1519 /**
1520 * Get a PRO license plan.
1521 *
1522 * @since 1.2.0
1523 * @return bool|string Plan on success, false on failure.
1524 */
1525 function evf_get_license_plan() {
1526 $license_key = get_option( 'everest-forms-pro_license_key' );
1527
1528 if ( ! function_exists( 'is_plugin_active' ) ) {
1529 include_once ABSPATH . 'wp-admin/includes/plugin.php';
1530 }
1531
1532 if ( $license_key && is_plugin_active( 'everest-forms-pro/everest-forms-pro.php' ) ) {
1533 $license_data = get_transient( 'evf_pro_license_plan' );
1534
1535 if ( false === $license_data ) {
1536 $license_data = json_decode(
1537 EVF_Updater_Key_API::check(
1538 array(
1539 'license' => $license_key,
1540 )
1541 )
1542 );
1543
1544 if ( ! empty( $license_data->item_plan ) ) {
1545 set_transient( 'evf_pro_license_plan', $license_data, WEEK_IN_SECONDS );
1546 }
1547 }
1548
1549 return isset( $license_data->item_plan ) ? $license_data->item_plan : false;
1550 }
1551
1552 return false;
1553 }
1554
1555 /**
1556 * Decode special characters, both alpha- (<) and numeric-based (').
1557 *
1558 * @since 1.2.0
1559 *
1560 * @param string $string Raw string to decode.
1561 *
1562 * @return string
1563 */
1564 function evf_decode_string( $string ) {
1565 if ( ! is_string( $string ) ) {
1566 return $string;
1567 }
1568
1569 return wp_kses_decode_entities( html_entity_decode( $string, ENT_QUOTES ) );
1570 }
1571 add_filter( 'everest_forms_email_message', 'evf_decode_string' );
1572
1573 /**
1574 * Get Countries.
1575 *
1576 * @since 1.2.0
1577 * @return array
1578 */
1579 function evf_get_countries() {
1580 $countries = array(
1581 'AF' => esc_html__( 'Afghanistan', 'everest-forms' ),
1582 'AX' => esc_html__( '�
1583 land Islands', 'everest-forms' ),
1584 'AL' => esc_html__( 'Albania', 'everest-forms' ),
1585 'DZ' => esc_html__( 'Algeria', 'everest-forms' ),
1586 'AS' => esc_html__( 'American Samoa', 'everest-forms' ),
1587 'AD' => esc_html__( 'Andorra', 'everest-forms' ),
1588 'AO' => esc_html__( 'Angola', 'everest-forms' ),
1589 'AI' => esc_html__( 'Anguilla', 'everest-forms' ),
1590 'AQ' => esc_html__( 'Antarctica', 'everest-forms' ),
1591 'AG' => esc_html__( 'Antigua and Barbuda', 'everest-forms' ),
1592 'AR' => esc_html__( 'Argentina', 'everest-forms' ),
1593 'AM' => esc_html__( 'Armenia', 'everest-forms' ),
1594 'AW' => esc_html__( 'Aruba', 'everest-forms' ),
1595 'AU' => esc_html__( 'Australia', 'everest-forms' ),
1596 'AT' => esc_html__( 'Austria', 'everest-forms' ),
1597 'AZ' => esc_html__( 'Azerbaijan', 'everest-forms' ),
1598 'BS' => esc_html__( 'Bahamas', 'everest-forms' ),
1599 'BH' => esc_html__( 'Bahrain', 'everest-forms' ),
1600 'BD' => esc_html__( 'Bangladesh', 'everest-forms' ),
1601 'BB' => esc_html__( 'Barbados', 'everest-forms' ),
1602 'BY' => esc_html__( 'Belarus', 'everest-forms' ),
1603 'BE' => esc_html__( 'Belgium', 'everest-forms' ),
1604 'PW' => esc_html__( 'Belau', 'everest-forms' ),
1605 'BZ' => esc_html__( 'Belize', 'everest-forms' ),
1606 'BJ' => esc_html__( 'Benin', 'everest-forms' ),
1607 'BM' => esc_html__( 'Bermuda', 'everest-forms' ),
1608 'BT' => esc_html__( 'Bhutan', 'everest-forms' ),
1609 'BO' => esc_html__( 'Bolivia', 'everest-forms' ),
1610 'BQ' => esc_html__( 'Bonaire, Saint Eustatius and Saba', 'everest-forms' ),
1611 'BA' => esc_html__( 'Bosnia and Herzegovina', 'everest-forms' ),
1612 'BW' => esc_html__( 'Botswana', 'everest-forms' ),
1613 'BV' => esc_html__( 'Bouvet Island', 'everest-forms' ),
1614 'BR' => esc_html__( 'Brazil', 'everest-forms' ),
1615 'IO' => esc_html__( 'British Indian Ocean Territory', 'everest-forms' ),
1616 'BN' => esc_html__( 'Brunei', 'everest-forms' ),
1617 'BG' => esc_html__( 'Bulgaria', 'everest-forms' ),
1618 'BF' => esc_html__( 'Burkina Faso', 'everest-forms' ),
1619 'BI' => esc_html__( 'Burundi', 'everest-forms' ),
1620 'KH' => esc_html__( 'Cambodia', 'everest-forms' ),
1621 'CM' => esc_html__( 'Cameroon', 'everest-forms' ),
1622 'CA' => esc_html__( 'Canada', 'everest-forms' ),
1623 'CV' => esc_html__( 'Cape Verde', 'everest-forms' ),
1624 'KY' => esc_html__( 'Cayman Islands', 'everest-forms' ),
1625 'CF' => esc_html__( 'Central African Republic', 'everest-forms' ),
1626 'TD' => esc_html__( 'Chad', 'everest-forms' ),
1627 'CL' => esc_html__( 'Chile', 'everest-forms' ),
1628 'CN' => esc_html__( 'China', 'everest-forms' ),
1629 'CX' => esc_html__( 'Christmas Island', 'everest-forms' ),
1630 'CC' => esc_html__( 'Cocos (Keeling) Islands', 'everest-forms' ),
1631 'CO' => esc_html__( 'Colombia', 'everest-forms' ),
1632 'KM' => esc_html__( 'Comoros', 'everest-forms' ),
1633 'CG' => esc_html__( 'Congo (Brazzaville)', 'everest-forms' ),
1634 'CD' => esc_html__( 'Congo (Kinshasa)', 'everest-forms' ),
1635 'CK' => esc_html__( 'Cook Islands', 'everest-forms' ),
1636 'CR' => esc_html__( 'Costa Rica', 'everest-forms' ),
1637 'HR' => esc_html__( 'Croatia', 'everest-forms' ),
1638 'CU' => esc_html__( 'Cuba', 'everest-forms' ),
1639 'CW' => esc_html__( 'Cura&ccedil;ao', 'everest-forms' ),
1640 'CY' => esc_html__( 'Cyprus', 'everest-forms' ),
1641 'CZ' => esc_html__( 'Czech Republic', 'everest-forms' ),
1642 'DK' => esc_html__( 'Denmark', 'everest-forms' ),
1643 'DJ' => esc_html__( 'Djibouti', 'everest-forms' ),
1644 'DM' => esc_html__( 'Dominica', 'everest-forms' ),
1645 'DO' => esc_html__( 'Dominican Republic', 'everest-forms' ),
1646 'EC' => esc_html__( 'Ecuador', 'everest-forms' ),
1647 'EG' => esc_html__( 'Egypt', 'everest-forms' ),
1648 'SV' => esc_html__( 'El Salvador', 'everest-forms' ),
1649 'GQ' => esc_html__( 'Equatorial Guinea', 'everest-forms' ),
1650 'ER' => esc_html__( 'Eritrea', 'everest-forms' ),
1651 'EE' => esc_html__( 'Estonia', 'everest-forms' ),
1652 'ET' => esc_html__( 'Ethiopia', 'everest-forms' ),
1653 'FK' => esc_html__( 'Falkland Islands', 'everest-forms' ),
1654 'FO' => esc_html__( 'Faroe Islands', 'everest-forms' ),
1655 'FJ' => esc_html__( 'Fiji', 'everest-forms' ),
1656 'FI' => esc_html__( 'Finland', 'everest-forms' ),
1657 'FR' => esc_html__( 'France', 'everest-forms' ),
1658 'GF' => esc_html__( 'French Guiana', 'everest-forms' ),
1659 'PF' => esc_html__( 'French Polynesia', 'everest-forms' ),
1660 'TF' => esc_html__( 'French Southern Territories', 'everest-forms' ),
1661 'GA' => esc_html__( 'Gabon', 'everest-forms' ),
1662 'GM' => esc_html__( 'Gambia', 'everest-forms' ),
1663 'GE' => esc_html__( 'Georgia', 'everest-forms' ),
1664 'DE' => esc_html__( 'Germany', 'everest-forms' ),
1665 'GH' => esc_html__( 'Ghana', 'everest-forms' ),
1666 'GI' => esc_html__( 'Gibraltar', 'everest-forms' ),
1667 'GR' => esc_html__( 'Greece', 'everest-forms' ),
1668 'GL' => esc_html__( 'Greenland', 'everest-forms' ),
1669 'GD' => esc_html__( 'Grenada', 'everest-forms' ),
1670 'GP' => esc_html__( 'Guadeloupe', 'everest-forms' ),
1671 'GU' => esc_html__( 'Guam', 'everest-forms' ),
1672 'GT' => esc_html__( 'Guatemala', 'everest-forms' ),
1673 'GG' => esc_html__( 'Guernsey', 'everest-forms' ),
1674 'GN' => esc_html__( 'Guinea', 'everest-forms' ),
1675 'GW' => esc_html__( 'Guinea-Bissau', 'everest-forms' ),
1676 'GY' => esc_html__( 'Guyana', 'everest-forms' ),
1677 'HT' => esc_html__( 'Haiti', 'everest-forms' ),
1678 'HM' => esc_html__( 'Heard Island and McDonald Islands', 'everest-forms' ),
1679 'HN' => esc_html__( 'Honduras', 'everest-forms' ),
1680 'HK' => esc_html__( 'Hong Kong', 'everest-forms' ),
1681 'HU' => esc_html__( 'Hungary', 'everest-forms' ),
1682 'IS' => esc_html__( 'Iceland', 'everest-forms' ),
1683 'IN' => esc_html__( 'India', 'everest-forms' ),
1684 'ID' => esc_html__( 'Indonesia', 'everest-forms' ),
1685 'IR' => esc_html__( 'Iran', 'everest-forms' ),
1686 'IQ' => esc_html__( 'Iraq', 'everest-forms' ),
1687 'IE' => esc_html__( 'Ireland', 'everest-forms' ),
1688 'IM' => esc_html__( 'Isle of Man', 'everest-forms' ),
1689 'IL' => esc_html__( 'Israel', 'everest-forms' ),
1690 'IT' => esc_html__( 'Italy', 'everest-forms' ),
1691 'CI' => esc_html__( 'Ivory Coast', 'everest-forms' ),
1692 'JM' => esc_html__( 'Jamaica', 'everest-forms' ),
1693 'JP' => esc_html__( 'Japan', 'everest-forms' ),
1694 'JE' => esc_html__( 'Jersey', 'everest-forms' ),
1695 'JO' => esc_html__( 'Jordan', 'everest-forms' ),
1696 'KZ' => esc_html__( 'Kazakhstan', 'everest-forms' ),
1697 'KE' => esc_html__( 'Kenya', 'everest-forms' ),
1698 'KI' => esc_html__( 'Kiribati', 'everest-forms' ),
1699 'KW' => esc_html__( 'Kuwait', 'everest-forms' ),
1700 'XK' => esc_html__( 'Kosovo', 'everest-forms' ),
1701 'KG' => esc_html__( 'Kyrgyzstan', 'everest-forms' ),
1702 'LA' => esc_html__( 'Laos', 'everest-forms' ),
1703 'LV' => esc_html__( 'Latvia', 'everest-forms' ),
1704 'LB' => esc_html__( 'Lebanon', 'everest-forms' ),
1705 'LS' => esc_html__( 'Lesotho', 'everest-forms' ),
1706 'LR' => esc_html__( 'Liberia', 'everest-forms' ),
1707 'LY' => esc_html__( 'Libya', 'everest-forms' ),
1708 'LI' => esc_html__( 'Liechtenstein', 'everest-forms' ),
1709 'LT' => esc_html__( 'Lithuania', 'everest-forms' ),
1710 'LU' => esc_html__( 'Luxembourg', 'everest-forms' ),
1711 'MO' => esc_html__( 'Macao', 'everest-forms' ),
1712 'MK' => esc_html__( 'North Macedonia', 'everest-forms' ),
1713 'MG' => esc_html__( 'Madagascar', 'everest-forms' ),
1714 'MW' => esc_html__( 'Malawi', 'everest-forms' ),
1715 'MY' => esc_html__( 'Malaysia', 'everest-forms' ),
1716 'MV' => esc_html__( 'Maldives', 'everest-forms' ),
1717 'ML' => esc_html__( 'Mali', 'everest-forms' ),
1718 'MT' => esc_html__( 'Malta', 'everest-forms' ),
1719 'MH' => esc_html__( 'Marshall Islands', 'everest-forms' ),
1720 'MQ' => esc_html__( 'Martinique', 'everest-forms' ),
1721 'MR' => esc_html__( 'Mauritania', 'everest-forms' ),
1722 'MU' => esc_html__( 'Mauritius', 'everest-forms' ),
1723 'YT' => esc_html__( 'Mayotte', 'everest-forms' ),
1724 'MX' => esc_html__( 'Mexico', 'everest-forms' ),
1725 'FM' => esc_html__( 'Micronesia', 'everest-forms' ),
1726 'MD' => esc_html__( 'Moldova', 'everest-forms' ),
1727 'MC' => esc_html__( 'Monaco', 'everest-forms' ),
1728 'MN' => esc_html__( 'Mongolia', 'everest-forms' ),
1729 'ME' => esc_html__( 'Montenegro', 'everest-forms' ),
1730 'MS' => esc_html__( 'Montserrat', 'everest-forms' ),
1731 'MA' => esc_html__( 'Morocco', 'everest-forms' ),
1732 'MZ' => esc_html__( 'Mozambique', 'everest-forms' ),
1733 'MM' => esc_html__( 'Myanmar', 'everest-forms' ),
1734 'NA' => esc_html__( 'Namibia', 'everest-forms' ),
1735 'NR' => esc_html__( 'Nauru', 'everest-forms' ),
1736 'NP' => esc_html__( 'Nepal', 'everest-forms' ),
1737 'NL' => esc_html__( 'Netherlands', 'everest-forms' ),
1738 'NC' => esc_html__( 'New Caledonia', 'everest-forms' ),
1739 'NZ' => esc_html__( 'New Zealand', 'everest-forms' ),
1740 'NI' => esc_html__( 'Nicaragua', 'everest-forms' ),
1741 'NE' => esc_html__( 'Niger', 'everest-forms' ),
1742 'NG' => esc_html__( 'Nigeria', 'everest-forms' ),
1743 'NU' => esc_html__( 'Niue', 'everest-forms' ),
1744 'NF' => esc_html__( 'Norfolk Island', 'everest-forms' ),
1745 'MP' => esc_html__( 'Northern Mariana Islands', 'everest-forms' ),
1746 'KP' => esc_html__( 'North Korea', 'everest-forms' ),
1747 'NO' => esc_html__( 'Norway', 'everest-forms' ),
1748 'OM' => esc_html__( 'Oman', 'everest-forms' ),
1749 'PK' => esc_html__( 'Pakistan', 'everest-forms' ),
1750 'PS' => esc_html__( 'Palestinian Territory', 'everest-forms' ),
1751 'PA' => esc_html__( 'Panama', 'everest-forms' ),
1752 'PG' => esc_html__( 'Papua New Guinea', 'everest-forms' ),
1753 'PY' => esc_html__( 'Paraguay', 'everest-forms' ),
1754 'PE' => esc_html__( 'Peru', 'everest-forms' ),
1755 'PH' => esc_html__( 'Philippines', 'everest-forms' ),
1756 'PN' => esc_html__( 'Pitcairn', 'everest-forms' ),
1757 'PL' => esc_html__( 'Poland', 'everest-forms' ),
1758 'PT' => esc_html__( 'Portugal', 'everest-forms' ),
1759 'PR' => esc_html__( 'Puerto Rico', 'everest-forms' ),
1760 'QA' => esc_html__( 'Qatar', 'everest-forms' ),
1761 'RE' => esc_html__( 'Reunion', 'everest-forms' ),
1762 'RO' => esc_html__( 'Romania', 'everest-forms' ),
1763 'RU' => esc_html__( 'Russia', 'everest-forms' ),
1764 'RW' => esc_html__( 'Rwanda', 'everest-forms' ),
1765 'BL' => esc_html__( 'Saint Barth&eacute;lemy', 'everest-forms' ),
1766 'SH' => esc_html__( 'Saint Helena', 'everest-forms' ),
1767 'KN' => esc_html__( 'Saint Kitts and Nevis', 'everest-forms' ),
1768 'LC' => esc_html__( 'Saint Lucia', 'everest-forms' ),
1769 'MF' => esc_html__( 'Saint Martin (French part)', 'everest-forms' ),
1770 'SX' => esc_html__( 'Saint Martin (Dutch part)', 'everest-forms' ),
1771 'PM' => esc_html__( 'Saint Pierre and Miquelon', 'everest-forms' ),
1772 'VC' => esc_html__( 'Saint Vincent and the Grenadines', 'everest-forms' ),
1773 'SM' => esc_html__( 'San Marino', 'everest-forms' ),
1774 'ST' => esc_html__( 'S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'everest-forms' ),
1775 'SA' => esc_html__( 'Saudi Arabia', 'everest-forms' ),
1776 'SN' => esc_html__( 'Senegal', 'everest-forms' ),
1777 'RS' => esc_html__( 'Serbia', 'everest-forms' ),
1778 'SC' => esc_html__( 'Seychelles', 'everest-forms' ),
1779 'SL' => esc_html__( 'Sierra Leone', 'everest-forms' ),
1780 'SG' => esc_html__( 'Singapore', 'everest-forms' ),
1781 'SK' => esc_html__( 'Slovakia', 'everest-forms' ),
1782 'SI' => esc_html__( 'Slovenia', 'everest-forms' ),
1783 'SB' => esc_html__( 'Solomon Islands', 'everest-forms' ),
1784 'SO' => esc_html__( 'Somalia', 'everest-forms' ),
1785 'ZA' => esc_html__( 'South Africa', 'everest-forms' ),
1786 'GS' => esc_html__( 'South Georgia/Sandwich Islands', 'everest-forms' ),
1787 'KR' => esc_html__( 'South Korea', 'everest-forms' ),
1788 'SS' => esc_html__( 'South Sudan', 'everest-forms' ),
1789 'ES' => esc_html__( 'Spain', 'everest-forms' ),
1790 'LK' => esc_html__( 'Sri Lanka', 'everest-forms' ),
1791 'SD' => esc_html__( 'Sudan', 'everest-forms' ),
1792 'SR' => esc_html__( 'Suriname', 'everest-forms' ),
1793 'SJ' => esc_html__( 'Svalbard and Jan Mayen', 'everest-forms' ),
1794 'SZ' => esc_html__( 'Swaziland', 'everest-forms' ),
1795 'SE' => esc_html__( 'Sweden', 'everest-forms' ),
1796 'CH' => esc_html__( 'Switzerland', 'everest-forms' ),
1797 'SY' => esc_html__( 'Syria', 'everest-forms' ),
1798 'TW' => esc_html__( 'Taiwan', 'everest-forms' ),
1799 'TJ' => esc_html__( 'Tajikistan', 'everest-forms' ),
1800 'TZ' => esc_html__( 'Tanzania', 'everest-forms' ),
1801 'TH' => esc_html__( 'Thailand', 'everest-forms' ),
1802 'TL' => esc_html__( 'Timor-Leste', 'everest-forms' ),
1803 'TG' => esc_html__( 'Togo', 'everest-forms' ),
1804 'TK' => esc_html__( 'Tokelau', 'everest-forms' ),
1805 'TO' => esc_html__( 'Tonga', 'everest-forms' ),
1806 'TT' => esc_html__( 'Trinidad and Tobago', 'everest-forms' ),
1807 'TN' => esc_html__( 'Tunisia', 'everest-forms' ),
1808 'TR' => esc_html__( 'Turkey', 'everest-forms' ),
1809 'TM' => esc_html__( 'Turkmenistan', 'everest-forms' ),
1810 'TC' => esc_html__( 'Turks and Caicos Islands', 'everest-forms' ),
1811 'TV' => esc_html__( 'Tuvalu', 'everest-forms' ),
1812 'UG' => esc_html__( 'Uganda', 'everest-forms' ),
1813 'UA' => esc_html__( 'Ukraine', 'everest-forms' ),
1814 'AE' => esc_html__( 'United Arab Emirates', 'everest-forms' ),
1815 'GB' => esc_html__( 'United Kingdom (UK)', 'everest-forms' ),
1816 'US' => esc_html__( 'United States (US)', 'everest-forms' ),
1817 'UM' => esc_html__( 'United States (US) Minor Outlying Islands', 'everest-forms' ),
1818 'UY' => esc_html__( 'Uruguay', 'everest-forms' ),
1819 'UZ' => esc_html__( 'Uzbekistan', 'everest-forms' ),
1820 'VU' => esc_html__( 'Vanuatu', 'everest-forms' ),
1821 'VA' => esc_html__( 'Vatican', 'everest-forms' ),
1822 'VE' => esc_html__( 'Venezuela', 'everest-forms' ),
1823 'VN' => esc_html__( 'Vietnam', 'everest-forms' ),
1824 'VG' => esc_html__( 'Virgin Islands (British)', 'everest-forms' ),
1825 'VI' => esc_html__( 'Virgin Islands (US)', 'everest-forms' ),
1826 'WF' => esc_html__( 'Wallis and Futuna', 'everest-forms' ),
1827 'EH' => esc_html__( 'Western Sahara', 'everest-forms' ),
1828 'WS' => esc_html__( 'Samoa', 'everest-forms' ),
1829 'YE' => esc_html__( 'Yemen', 'everest-forms' ),
1830 'ZM' => esc_html__( 'Zambia', 'everest-forms' ),
1831 'ZW' => esc_html__( 'Zimbabwe', 'everest-forms' ),
1832 );
1833
1834 return (array) apply_filters( 'everest_forms_countries', $countries );
1835 }
1836
1837 /**
1838 * Get U.S. States.
1839 *
1840 * @since 1.7.0
1841 * @return array
1842 */
1843 function evf_get_states() {
1844 $states = array(
1845 'AF' => array(),
1846 'AL' => array( // Albanian states.
1847 'AL-01' => __( 'Berat', 'everest-forms' ),
1848 'AL-09' => __( 'Dibër', 'everest-forms' ),
1849 'AL-02' => __( 'Durrës', 'everest-forms' ),
1850 'AL-03' => __( 'Elbasan', 'everest-forms' ),
1851 'AL-04' => __( 'Fier', 'everest-forms' ),
1852 'AL-05' => __( 'Gjirokastër', 'everest-forms' ),
1853 'AL-06' => __( 'Korçë', 'everest-forms' ),
1854 'AL-07' => __( 'Kukës', 'everest-forms' ),
1855 'AL-08' => __( 'Lezhë', 'everest-forms' ),
1856 'AL-10' => __( 'Shkodër', 'everest-forms' ),
1857 'AL-11' => __( 'Tirana', 'everest-forms' ),
1858 'AL-12' => __( 'Vlorë', 'everest-forms' ),
1859 ),
1860 'AO' => array( // Angolan states.
1861 'BGO' => __( 'Bengo', 'everest-forms' ),
1862 'BLU' => __( 'Benguela', 'everest-forms' ),
1863 'BIE' => __( 'Bié', 'everest-forms' ),
1864 'CAB' => __( 'Cabinda', 'everest-forms' ),
1865 'CNN' => __( 'Cunene', 'everest-forms' ),
1866 'HUA' => __( 'Huambo', 'everest-forms' ),
1867 'HUI' => __( 'Huíla', 'everest-forms' ),
1868 'CCU' => __( 'Kuando Kubango', 'everest-forms' ),
1869 'CNO' => __( 'Kwanza-Norte', 'everest-forms' ),
1870 'CUS' => __( 'Kwanza-Sul', 'everest-forms' ),
1871 'LUA' => __( 'Luanda', 'everest-forms' ),
1872 'LNO' => __( 'Lunda-Norte', 'everest-forms' ),
1873 'LSU' => __( 'Lunda-Sul', 'everest-forms' ),
1874 'MAL' => __( 'Malanje', 'everest-forms' ),
1875 'MOX' => __( 'Moxico', 'everest-forms' ),
1876 'NAM' => __( 'Namibe', 'everest-forms' ),
1877 'UIG' => __( 'Uíge', 'everest-forms' ),
1878 'ZAI' => __( 'Zaire', 'everest-forms' ),
1879 ),
1880 'AR' => array( // Argentinian provinces.
1881 'C' => __( 'Ciudad Autónoma de Buenos Aires', 'everest-forms' ),
1882 'B' => __( 'Buenos Aires', 'everest-forms' ),
1883 'K' => __( 'Catamarca', 'everest-forms' ),
1884 'H' => __( 'Chaco', 'everest-forms' ),
1885 'U' => __( 'Chubut', 'everest-forms' ),
1886 'X' => __( 'Córdoba', 'everest-forms' ),
1887 'W' => __( 'Corrientes', 'everest-forms' ),
1888 'E' => __( 'Entre Ríos', 'everest-forms' ),
1889 'P' => __( 'Formosa', 'everest-forms' ),
1890 'Y' => __( 'Jujuy', 'everest-forms' ),
1891 'L' => __( 'La Pampa', 'everest-forms' ),
1892 'F' => __( 'La Rioja', 'everest-forms' ),
1893 'M' => __( 'Mendoza', 'everest-forms' ),
1894 'N' => __( 'Misiones', 'everest-forms' ),
1895 'Q' => __( 'Neuquén', 'everest-forms' ),
1896 'R' => __( 'Río Negro', 'everest-forms' ),
1897 'A' => __( 'Salta', 'everest-forms' ),
1898 'J' => __( 'San Juan', 'everest-forms' ),
1899 'D' => __( 'San Luis', 'everest-forms' ),
1900 'Z' => __( 'Santa Cruz', 'everest-forms' ),
1901 'S' => __( 'Santa Fe', 'everest-forms' ),
1902 'G' => __( 'Santiago del Estero', 'everest-forms' ),
1903 'V' => __( 'Tierra del Fuego', 'everest-forms' ),
1904 'T' => __( 'Tucumán', 'everest-forms' ),
1905 ),
1906 'AT' => array(),
1907 'AU' => array( // Australian states.
1908 'ACT' => __( 'Australian Capital Territory', 'everest-forms' ),
1909 'NSW' => __( 'New South Wales', 'everest-forms' ),
1910 'NT' => __( 'Northern Territory', 'everest-forms' ),
1911 'QLD' => __( 'Queensland', 'everest-forms' ),
1912 'SA' => __( 'South Australia', 'everest-forms' ),
1913 'TAS' => __( 'Tasmania', 'everest-forms' ),
1914 'VIC' => __( 'Victoria', 'everest-forms' ),
1915 'WA' => __( 'Western Australia', 'everest-forms' ),
1916 ),
1917 'AX' => array(),
1918 'BD' => array( // Bangladeshi districts.
1919 'BD-05' => __( 'Bagerhat', 'everest-forms' ),
1920 'BD-01' => __( 'Bandarban', 'everest-forms' ),
1921 'BD-02' => __( 'Barguna', 'everest-forms' ),
1922 'BD-06' => __( 'Barishal', 'everest-forms' ),
1923 'BD-07' => __( 'Bhola', 'everest-forms' ),
1924 'BD-03' => __( 'Bogura', 'everest-forms' ),
1925 'BD-04' => __( 'Brahmanbaria', 'everest-forms' ),
1926 'BD-09' => __( 'Chandpur', 'everest-forms' ),
1927 'BD-10' => __( 'Chattogram', 'everest-forms' ),
1928 'BD-12' => __( 'Chuadanga', 'everest-forms' ),
1929 'BD-11' => __( "Cox's Bazar", 'everest-forms' ),
1930 'BD-08' => __( 'Cumilla', 'everest-forms' ),
1931 'BD-13' => __( 'Dhaka', 'everest-forms' ),
1932 'BD-14' => __( 'Dinajpur', 'everest-forms' ),
1933 'BD-15' => __( 'Faridpur ', 'everest-forms' ),
1934 'BD-16' => __( 'Feni', 'everest-forms' ),
1935 'BD-19' => __( 'Gaibandha', 'everest-forms' ),
1936 'BD-18' => __( 'Gazipur', 'everest-forms' ),
1937 'BD-17' => __( 'Gopalganj', 'everest-forms' ),
1938 'BD-20' => __( 'Habiganj', 'everest-forms' ),
1939 'BD-21' => __( 'Jamalpur', 'everest-forms' ),
1940 'BD-22' => __( 'Jashore', 'everest-forms' ),
1941 'BD-25' => __( 'Jhalokati', 'everest-forms' ),
1942 'BD-23' => __( 'Jhenaidah', 'everest-forms' ),
1943 'BD-24' => __( 'Joypurhat', 'everest-forms' ),
1944 'BD-29' => __( 'Khagrachhari', 'everest-forms' ),
1945 'BD-27' => __( 'Khulna', 'everest-forms' ),
1946 'BD-26' => __( 'Kishoreganj', 'everest-forms' ),
1947 'BD-28' => __( 'Kurigram', 'everest-forms' ),
1948 'BD-30' => __( 'Kushtia', 'everest-forms' ),
1949 'BD-31' => __( 'Lakshmipur', 'everest-forms' ),
1950 'BD-32' => __( 'Lalmonirhat', 'everest-forms' ),
1951 'BD-36' => __( 'Madaripur', 'everest-forms' ),
1952 'BD-37' => __( 'Magura', 'everest-forms' ),
1953 'BD-33' => __( 'Manikganj ', 'everest-forms' ),
1954 'BD-39' => __( 'Meherpur', 'everest-forms' ),
1955 'BD-38' => __( 'Moulvibazar', 'everest-forms' ),
1956 'BD-35' => __( 'Munshiganj', 'everest-forms' ),
1957 'BD-34' => __( 'Mymensingh', 'everest-forms' ),
1958 'BD-48' => __( 'Naogaon', 'everest-forms' ),
1959 'BD-43' => __( 'Narail', 'everest-forms' ),
1960 'BD-40' => __( 'Narayanganj', 'everest-forms' ),
1961 'BD-42' => __( 'Narsingdi', 'everest-forms' ),
1962 'BD-44' => __( 'Natore', 'everest-forms' ),
1963 'BD-45' => __( 'Nawabganj', 'everest-forms' ),
1964 'BD-41' => __( 'Netrakona', 'everest-forms' ),
1965 'BD-46' => __( 'Nilphamari', 'everest-forms' ),
1966 'BD-47' => __( 'Noakhali', 'everest-forms' ),
1967 'BD-49' => __( 'Pabna', 'everest-forms' ),
1968 'BD-52' => __( 'Panchagarh', 'everest-forms' ),
1969 'BD-51' => __( 'Patuakhali', 'everest-forms' ),
1970 'BD-50' => __( 'Pirojpur', 'everest-forms' ),
1971 'BD-53' => __( 'Rajbari', 'everest-forms' ),
1972 'BD-54' => __( 'Rajshahi', 'everest-forms' ),
1973 'BD-56' => __( 'Rangamati', 'everest-forms' ),
1974 'BD-55' => __( 'Rangpur', 'everest-forms' ),
1975 'BD-58' => __( 'Satkhira', 'everest-forms' ),
1976 'BD-62' => __( 'Shariatpur', 'everest-forms' ),
1977 'BD-57' => __( 'Sherpur', 'everest-forms' ),
1978 'BD-59' => __( 'Sirajganj', 'everest-forms' ),
1979 'BD-61' => __( 'Sunamganj', 'everest-forms' ),
1980 'BD-60' => __( 'Sylhet', 'everest-forms' ),
1981 'BD-63' => __( 'Tangail', 'everest-forms' ),
1982 'BD-64' => __( 'Thakurgaon', 'everest-forms' ),
1983 ),
1984 'BE' => array(),
1985 'BG' => array( // Bulgarian states.
1986 'BG-01' => __( 'Blagoevgrad', 'everest-forms' ),
1987 'BG-02' => __( 'Burgas', 'everest-forms' ),
1988 'BG-08' => __( 'Dobrich', 'everest-forms' ),
1989 'BG-07' => __( 'Gabrovo', 'everest-forms' ),
1990 'BG-26' => __( 'Haskovo', 'everest-forms' ),
1991 'BG-09' => __( 'Kardzhali', 'everest-forms' ),
1992 'BG-10' => __( 'Kyustendil', 'everest-forms' ),
1993 'BG-11' => __( 'Lovech', 'everest-forms' ),
1994 'BG-12' => __( 'Montana', 'everest-forms' ),
1995 'BG-13' => __( 'Pazardzhik', 'everest-forms' ),
1996 'BG-14' => __( 'Pernik', 'everest-forms' ),
1997 'BG-15' => __( 'Pleven', 'everest-forms' ),
1998 'BG-16' => __( 'Plovdiv', 'everest-forms' ),
1999 'BG-17' => __( 'Razgrad', 'everest-forms' ),
2000 'BG-18' => __( 'Ruse', 'everest-forms' ),
2001 'BG-27' => __( 'Shumen', 'everest-forms' ),
2002 'BG-19' => __( 'Silistra', 'everest-forms' ),
2003 'BG-20' => __( 'Sliven', 'everest-forms' ),
2004 'BG-21' => __( 'Smolyan', 'everest-forms' ),
2005 'BG-23' => __( 'Sofia', 'everest-forms' ),
2006 'BG-22' => __( 'Sofia-Grad', 'everest-forms' ),
2007 'BG-24' => __( 'Stara Zagora', 'everest-forms' ),
2008 'BG-25' => __( 'Targovishte', 'everest-forms' ),
2009 'BG-03' => __( 'Varna', 'everest-forms' ),
2010 'BG-04' => __( 'Veliko Tarnovo', 'everest-forms' ),
2011 'BG-05' => __( 'Vidin', 'everest-forms' ),
2012 'BG-06' => __( 'Vratsa', 'everest-forms' ),
2013 'BG-28' => __( 'Yambol', 'everest-forms' ),
2014 ),
2015 'BH' => array(),
2016 'BI' => array(),
2017 'BJ' => array( // Beninese states.
2018 'AL' => __( 'Alibori', 'everest-forms' ),
2019 'AK' => __( 'Atakora', 'everest-forms' ),
2020 'AQ' => __( 'Atlantique', 'everest-forms' ),
2021 'BO' => __( 'Borgou', 'everest-forms' ),
2022 'CO' => __( 'Collines', 'everest-forms' ),
2023 'KO' => __( 'Kouffo', 'everest-forms' ),
2024 'DO' => __( 'Donga', 'everest-forms' ),
2025 'LI' => __( 'Littoral', 'everest-forms' ),
2026 'MO' => __( 'Mono', 'everest-forms' ),
2027 'OU' => __( 'Ouémé', 'everest-forms' ),
2028 'PL' => __( 'Plateau', 'everest-forms' ),
2029 'ZO' => __( 'Zou', 'everest-forms' ),
2030 ),
2031 'BO' => array( // Bolivian states.
2032 'BO-B' => __( 'Beni', 'everest-forms' ),
2033 'BO-H' => __( 'Chuquisaca', 'everest-forms' ),
2034 'BO-C' => __( 'Cochabamba', 'everest-forms' ),
2035 'BO-L' => __( 'La Paz', 'everest-forms' ),
2036 'BO-O' => __( 'Oruro', 'everest-forms' ),
2037 'BO-N' => __( 'Pando', 'everest-forms' ),
2038 'BO-P' => __( 'Potosí', 'everest-forms' ),
2039 'BO-S' => __( 'Santa Cruz', 'everest-forms' ),
2040 'BO-T' => __( 'Tarija', 'everest-forms' ),
2041 ),
2042 'BR' => array( // Brazilian states.
2043 'AC' => __( 'Acre', 'everest-forms' ),
2044 'AL' => __( 'Alagoas', 'everest-forms' ),
2045 'AP' => __( 'Amapá', 'everest-forms' ),
2046 'AM' => __( 'Amazonas', 'everest-forms' ),
2047 'BA' => __( 'Bahia', 'everest-forms' ),
2048 'CE' => __( 'Ceará', 'everest-forms' ),
2049 'DF' => __( 'Distrito Federal', 'everest-forms' ),
2050 'ES' => __( 'Espírito Santo', 'everest-forms' ),
2051 'GO' => __( 'Goiás', 'everest-forms' ),
2052 'MA' => __( 'Maranhão', 'everest-forms' ),
2053 'MT' => __( 'Mato Grosso', 'everest-forms' ),
2054 'MS' => __( 'Mato Grosso do Sul', 'everest-forms' ),
2055 'MG' => __( 'Minas Gerais', 'everest-forms' ),
2056 'PA' => __( 'Pará', 'everest-forms' ),
2057 'PB' => __( 'Paraíba', 'everest-forms' ),
2058 'PR' => __( 'Paraná', 'everest-forms' ),
2059 'PE' => __( 'Pernambuco', 'everest-forms' ),
2060 'PI' => __( 'Piauí', 'everest-forms' ),
2061 'RJ' => __( 'Rio de Janeiro', 'everest-forms' ),
2062 'RN' => __( 'Rio Grande do Norte', 'everest-forms' ),
2063 'RS' => __( 'Rio Grande do Sul', 'everest-forms' ),
2064 'RO' => __( 'Rondônia', 'everest-forms' ),
2065 'RR' => __( 'Roraima', 'everest-forms' ),
2066 'SC' => __( 'Santa Catarina', 'everest-forms' ),
2067 'SP' => __( 'São Paulo', 'everest-forms' ),
2068 'SE' => __( 'Sergipe', 'everest-forms' ),
2069 'TO' => __( 'Tocantins', 'everest-forms' ),
2070 ),
2071 'CA' => array( // Canadian states.
2072 'AB' => __( 'Alberta', 'everest-forms' ),
2073 'BC' => __( 'British Columbia', 'everest-forms' ),
2074 'MB' => __( 'Manitoba', 'everest-forms' ),
2075 'NB' => __( 'New Brunswick', 'everest-forms' ),
2076 'NL' => __( 'Newfoundland and Labrador', 'everest-forms' ),
2077 'NT' => __( 'Northwest Territories', 'everest-forms' ),
2078 'NS' => __( 'Nova Scotia', 'everest-forms' ),
2079 'NU' => __( 'Nunavut', 'everest-forms' ),
2080 'ON' => __( 'Ontario', 'everest-forms' ),
2081 'PE' => __( 'Prince Edward Island', 'everest-forms' ),
2082 'QC' => __( 'Quebec', 'everest-forms' ),
2083 'SK' => __( 'Saskatchewan', 'everest-forms' ),
2084 'YT' => __( 'Yukon Territory', 'everest-forms' ),
2085 ),
2086 'CH' => array( // Swiss cantons.
2087 'AG' => __( 'Aargau', 'everest-forms' ),
2088 'AR' => __( 'Appenzell Ausserrhoden', 'everest-forms' ),
2089 'AI' => __( 'Appenzell Innerrhoden', 'everest-forms' ),
2090 'BL' => __( 'Basel-Landschaft', 'everest-forms' ),
2091 'BS' => __( 'Basel-Stadt', 'everest-forms' ),
2092 'BE' => __( 'Bern', 'everest-forms' ),
2093 'FR' => __( 'Fribourg', 'everest-forms' ),
2094 'GE' => __( 'Geneva', 'everest-forms' ),
2095 'GL' => __( 'Glarus', 'everest-forms' ),
2096 'GR' => __( 'Graubünden', 'everest-forms' ),
2097 'JU' => __( 'Jura', 'everest-forms' ),
2098 'LU' => __( 'Luzern', 'everest-forms' ),
2099 'NE' => __( 'Neuchâtel', 'everest-forms' ),
2100 'NW' => __( 'Nidwalden', 'everest-forms' ),
2101 'OW' => __( 'Obwalden', 'everest-forms' ),
2102 'SH' => __( 'Schaffhausen', 'everest-forms' ),
2103 'SZ' => __( 'Schwyz', 'everest-forms' ),
2104 'SO' => __( 'Solothurn', 'everest-forms' ),
2105 'SG' => __( 'St. Gallen', 'everest-forms' ),
2106 'TG' => __( 'Thurgau', 'everest-forms' ),
2107 'TI' => __( 'Ticino', 'everest-forms' ),
2108 'UR' => __( 'Uri', 'everest-forms' ),
2109 'VS' => __( 'Valais', 'everest-forms' ),
2110 'VD' => __( 'Vaud', 'everest-forms' ),
2111 'ZG' => __( 'Zug', 'everest-forms' ),
2112 'ZH' => __( 'Zürich', 'everest-forms' ),
2113 ),
2114 'CL' => array( // Chilean states.
2115 'CL-AI' => __( 'Aisén del General Carlos Ibañez del Campo', 'everest-forms' ),
2116 'CL-AN' => __( 'Antofagasta', 'everest-forms' ),
2117 'CL-AP' => __( 'Arica y Parinacota', 'everest-forms' ),
2118 'CL-AR' => __( 'La Araucanía', 'everest-forms' ),
2119 'CL-AT' => __( 'Atacama', 'everest-forms' ),
2120 'CL-BI' => __( 'Biobío', 'everest-forms' ),
2121 'CL-CO' => __( 'Coquimbo', 'everest-forms' ),
2122 'CL-LI' => __( 'Libertador General Bernardo O\'Higgins', 'everest-forms' ),
2123 'CL-LL' => __( 'Los Lagos', 'everest-forms' ),
2124 'CL-LR' => __( 'Los Ríos', 'everest-forms' ),
2125 'CL-MA' => __( 'Magallanes', 'everest-forms' ),
2126 'CL-ML' => __( 'Maule', 'everest-forms' ),
2127 'CL-NB' => __( 'Ñuble', 'everest-forms' ),
2128 'CL-RM' => __( 'Región Metropolitana de Santiago', 'everest-forms' ),
2129 'CL-TA' => __( 'Tarapacá', 'everest-forms' ),
2130 'CL-VS' => __( 'Valparaíso', 'everest-forms' ),
2131 ),
2132 'CN' => array( // Chinese states.
2133 'CN1' => __( 'Yunnan / 云南', 'everest-forms' ),
2134 'CN2' => __( 'Beijing / 北京', 'everest-forms' ),
2135 'CN3' => __( 'Tianjin / 天津', 'everest-forms' ),
2136 'CN4' => __( 'Hebei / 河北', 'everest-forms' ),
2137 'CN5' => __( 'Shanxi / 山西', 'everest-forms' ),
2138 'CN6' => __( 'Inner Mongolia / �
2139 �蒙古', 'everest-forms' ),
2140 'CN7' => __( 'Liaoning / 辽宁', 'everest-forms' ),
2141 'CN8' => __( 'Jilin / 吉林', 'everest-forms' ),
2142 'CN9' => __( 'Heilongjiang / 黑龙江', 'everest-forms' ),
2143 'CN10' => __( 'Shanghai / 上海', 'everest-forms' ),
2144 'CN11' => __( 'Jiangsu / 江苏', 'everest-forms' ),
2145 'CN12' => __( 'Zhejiang / 浙江', 'everest-forms' ),
2146 'CN13' => __( 'Anhui / 安徽', 'everest-forms' ),
2147 'CN14' => __( 'Fujian / 福建', 'everest-forms' ),
2148 'CN15' => __( 'Jiangxi / 江西', 'everest-forms' ),
2149 'CN16' => __( 'Shandong / 山东', 'everest-forms' ),
2150 'CN17' => __( 'Henan / 河南', 'everest-forms' ),
2151 'CN18' => __( 'Hubei / 湖北', 'everest-forms' ),
2152 'CN19' => __( 'Hunan / 湖南', 'everest-forms' ),
2153 'CN20' => __( 'Guangdong / 广东', 'everest-forms' ),
2154 'CN21' => __( 'Guangxi Zhuang / 广西壮族', 'everest-forms' ),
2155 'CN22' => __( 'Hainan / 海南', 'everest-forms' ),
2156 'CN23' => __( 'Chongqing / 重庆', 'everest-forms' ),
2157 'CN24' => __( 'Sichuan / 四川', 'everest-forms' ),
2158 'CN25' => __( 'Guizhou / 贵州', 'everest-forms' ),
2159 'CN26' => __( 'Shaanxi / 陕西', 'everest-forms' ),
2160 'CN27' => __( 'Gansu / 甘肃', 'everest-forms' ),
2161 'CN28' => __( 'Qinghai / 青海', 'everest-forms' ),
2162 'CN29' => __( 'Ningxia Hui / 宁夏', 'everest-forms' ),
2163 'CN30' => __( 'Macao / 澳门', 'everest-forms' ),
2164 'CN31' => __( 'Tibet / 西藏', 'everest-forms' ),
2165 'CN32' => __( 'Xinjiang / 新疆', 'everest-forms' ),
2166 ),
2167 'CO' => array( // Colombian states.
2168 'CO-AMA' => __( 'Amazonas', 'everest-forms' ),
2169 'CO-ANT' => __( 'Antioquia', 'everest-forms' ),
2170 'CO-ARA' => __( 'Arauca', 'everest-forms' ),
2171 'CO-ATL' => __( 'Atlántico', 'everest-forms' ),
2172 'CO-BOL' => __( 'Bolívar', 'everest-forms' ),
2173 'CO-BOY' => __( 'Boyacá', 'everest-forms' ),
2174 'CO-CAL' => __( 'Caldas', 'everest-forms' ),
2175 'CO-CAQ' => __( 'Caquetá', 'everest-forms' ),
2176 'CO-CAS' => __( 'Casanare', 'everest-forms' ),
2177 'CO-CAU' => __( 'Cauca', 'everest-forms' ),
2178 'CO-CES' => __( 'Cesar', 'everest-forms' ),
2179 'CO-CHO' => __( 'Chocó', 'everest-forms' ),
2180 'CO-COR' => __( 'Córdoba', 'everest-forms' ),
2181 'CO-CUN' => __( 'Cundinamarca', 'everest-forms' ),
2182 'CO-DC' => __( 'Capital District', 'everest-forms' ),
2183 'CO-GUA' => __( 'Guainía', 'everest-forms' ),
2184 'CO-GUV' => __( 'Guaviare', 'everest-forms' ),
2185 'CO-HUI' => __( 'Huila', 'everest-forms' ),
2186 'CO-LAG' => __( 'La Guajira', 'everest-forms' ),
2187 'CO-MAG' => __( 'Magdalena', 'everest-forms' ),
2188 'CO-MET' => __( 'Meta', 'everest-forms' ),
2189 'CO-NAR' => __( 'Nariño', 'everest-forms' ),
2190 'CO-NSA' => __( 'Norte de Santander', 'everest-forms' ),
2191 'CO-PUT' => __( 'Putumayo', 'everest-forms' ),
2192 'CO-QUI' => __( 'Quindío', 'everest-forms' ),
2193 'CO-RIS' => __( 'Risaralda', 'everest-forms' ),
2194 'CO-SAN' => __( 'Santander', 'everest-forms' ),
2195 'CO-SAP' => __( 'San Andrés & Providencia', 'everest-forms' ),
2196 'CO-SUC' => __( 'Sucre', 'everest-forms' ),
2197 'CO-TOL' => __( 'Tolima', 'everest-forms' ),
2198 'CO-VAC' => __( 'Valle del Cauca', 'everest-forms' ),
2199 'CO-VAU' => __( 'Vaupés', 'everest-forms' ),
2200 'CO-VID' => __( 'Vichada', 'everest-forms' ),
2201 ),
2202 'CR' => array( // Costa Rican states.
2203 'CR-A' => __( 'Alajuela', 'everest-forms' ),
2204 'CR-C' => __( 'Cartago', 'everest-forms' ),
2205 'CR-G' => __( 'Guanacaste', 'everest-forms' ),
2206 'CR-H' => __( 'Heredia', 'everest-forms' ),
2207 'CR-L' => __( 'Limón', 'everest-forms' ),
2208 'CR-P' => __( 'Puntarenas', 'everest-forms' ),
2209 'CR-SJ' => __( 'San José', 'everest-forms' ),
2210 ),
2211 'CZ' => array(),
2212 'DE' => array( // German states.
2213 'DE-BW' => __( 'Baden-Württemberg', 'everest-forms' ),
2214 'DE-BY' => __( 'Bavaria', 'everest-forms' ),
2215 'DE-BE' => __( 'Berlin', 'everest-forms' ),
2216 'DE-BB' => __( 'Brandenburg', 'everest-forms' ),
2217 'DE-HB' => __( 'Bremen', 'everest-forms' ),
2218 'DE-HH' => __( 'Hamburg', 'everest-forms' ),
2219 'DE-HE' => __( 'Hesse', 'everest-forms' ),
2220 'DE-MV' => __( 'Mecklenburg-Vorpommern', 'everest-forms' ),
2221 'DE-NI' => __( 'Lower Saxony', 'everest-forms' ),
2222 'DE-NW' => __( 'North Rhine-Westphalia', 'everest-forms' ),
2223 'DE-RP' => __( 'Rhineland-Palatinate', 'everest-forms' ),
2224 'DE-SL' => __( 'Saarland', 'everest-forms' ),
2225 'DE-SN' => __( 'Saxony', 'everest-forms' ),
2226 'DE-ST' => __( 'Saxony-Anhalt', 'everest-forms' ),
2227 'DE-SH' => __( 'Schleswig-Holstein', 'everest-forms' ),
2228 'DE-TH' => __( 'Thuringia', 'everest-forms' ),
2229 ),
2230 'DK' => array(),
2231 'DO' => array( // Dominican states.
2232 'DO-01' => __( 'Distrito Nacional', 'everest-forms' ),
2233 'DO-02' => __( 'Azua', 'everest-forms' ),
2234 'DO-03' => __( 'Baoruco', 'everest-forms' ),
2235 'DO-04' => __( 'Barahona', 'everest-forms' ),
2236 'DO-33' => __( 'Cibao Nordeste', 'everest-forms' ),
2237 'DO-34' => __( 'Cibao Noroeste', 'everest-forms' ),
2238 'DO-35' => __( 'Cibao Norte', 'everest-forms' ),
2239 'DO-36' => __( 'Cibao Sur', 'everest-forms' ),
2240 'DO-05' => __( 'Dajabón', 'everest-forms' ),
2241 'DO-06' => __( 'Duarte', 'everest-forms' ),
2242 'DO-08' => __( 'El Seibo', 'everest-forms' ),
2243 'DO-37' => __( 'El Valle', 'everest-forms' ),
2244 'DO-07' => __( 'Elías Piña', 'everest-forms' ),
2245 'DO-38' => __( 'Enriquillo', 'everest-forms' ),
2246 'DO-09' => __( 'Espaillat', 'everest-forms' ),
2247 'DO-30' => __( 'Hato Mayor', 'everest-forms' ),
2248 'DO-19' => __( 'Hermanas Mirabal', 'everest-forms' ),
2249 'DO-39' => __( 'Higüamo', 'everest-forms' ),
2250 'DO-10' => __( 'Independencia', 'everest-forms' ),
2251 'DO-11' => __( 'La Altagracia', 'everest-forms' ),
2252 'DO-12' => __( 'La Romana', 'everest-forms' ),
2253 'DO-13' => __( 'La Vega', 'everest-forms' ),
2254 'DO-14' => __( 'María Trinidad Sánchez', 'everest-forms' ),
2255 'DO-28' => __( 'Monseñor Nouel', 'everest-forms' ),
2256 'DO-15' => __( 'Monte Cristi', 'everest-forms' ),
2257 'DO-29' => __( 'Monte Plata', 'everest-forms' ),
2258 'DO-40' => __( 'Ozama', 'everest-forms' ),
2259 'DO-16' => __( 'Pedernales', 'everest-forms' ),
2260 'DO-17' => __( 'Peravia', 'everest-forms' ),
2261 'DO-18' => __( 'Puerto Plata', 'everest-forms' ),
2262 'DO-20' => __( 'Samaná', 'everest-forms' ),
2263 'DO-21' => __( 'San Cristóbal', 'everest-forms' ),
2264 'DO-31' => __( 'San José de Ocoa', 'everest-forms' ),
2265 'DO-22' => __( 'San Juan', 'everest-forms' ),
2266 'DO-23' => __( 'San Pedro de Macorís', 'everest-forms' ),
2267 'DO-24' => __( 'Sánchez Ramírez', 'everest-forms' ),
2268 'DO-25' => __( 'Santiago', 'everest-forms' ),
2269 'DO-26' => __( 'Santiago Rodríguez', 'everest-forms' ),
2270 'DO-32' => __( 'Santo Domingo', 'everest-forms' ),
2271 'DO-41' => __( 'Valdesia', 'everest-forms' ),
2272 'DO-27' => __( 'Valverde', 'everest-forms' ),
2273 'DO-42' => __( 'Yuma', 'everest-forms' ),
2274 ),
2275 'DZ' => array( // Algerian states.
2276 'DZ-01' => __( 'Adrar', 'everest-forms' ),
2277 'DZ-02' => __( 'Chlef', 'everest-forms' ),
2278 'DZ-03' => __( 'Laghouat', 'everest-forms' ),
2279 'DZ-04' => __( 'Oum El Bouaghi', 'everest-forms' ),
2280 'DZ-05' => __( 'Batna', 'everest-forms' ),
2281 'DZ-06' => __( 'Béjaïa', 'everest-forms' ),
2282 'DZ-07' => __( 'Biskra', 'everest-forms' ),
2283 'DZ-08' => __( 'Béchar', 'everest-forms' ),
2284 'DZ-09' => __( 'Blida', 'everest-forms' ),
2285 'DZ-10' => __( 'Bouira', 'everest-forms' ),
2286 'DZ-11' => __( 'Tamanghasset', 'everest-forms' ),
2287 'DZ-12' => __( 'Tébessa', 'everest-forms' ),
2288 'DZ-13' => __( 'Tlemcen', 'everest-forms' ),
2289 'DZ-14' => __( 'Tiaret', 'everest-forms' ),
2290 'DZ-15' => __( 'Tizi Ouzou', 'everest-forms' ),
2291 'DZ-16' => __( 'Algiers', 'everest-forms' ),
2292 'DZ-17' => __( 'Djelfa', 'everest-forms' ),
2293 'DZ-18' => __( 'Jijel', 'everest-forms' ),
2294 'DZ-19' => __( 'Sétif', 'everest-forms' ),
2295 'DZ-20' => __( 'Saïda', 'everest-forms' ),
2296 'DZ-21' => __( 'Skikda', 'everest-forms' ),
2297 'DZ-22' => __( 'Sidi Bel Abbès', 'everest-forms' ),
2298 'DZ-23' => __( 'Annaba', 'everest-forms' ),
2299 'DZ-24' => __( 'Guelma', 'everest-forms' ),
2300 'DZ-25' => __( 'Constantine', 'everest-forms' ),
2301 'DZ-26' => __( 'Médéa', 'everest-forms' ),
2302 'DZ-27' => __( 'Mostaganem', 'everest-forms' ),
2303 'DZ-28' => __( 'M’Sila', 'everest-forms' ),
2304 'DZ-29' => __( 'Mascara', 'everest-forms' ),
2305 'DZ-30' => __( 'Ouargla', 'everest-forms' ),
2306 'DZ-31' => __( 'Oran', 'everest-forms' ),
2307 'DZ-32' => __( 'El Bayadh', 'everest-forms' ),
2308 'DZ-33' => __( 'Illizi', 'everest-forms' ),
2309 'DZ-34' => __( 'Bordj Bou Arréridj', 'everest-forms' ),
2310 'DZ-35' => __( 'Boumerdès', 'everest-forms' ),
2311 'DZ-36' => __( 'El Tarf', 'everest-forms' ),
2312 'DZ-37' => __( 'Tindouf', 'everest-forms' ),
2313 'DZ-38' => __( 'Tissemsilt', 'everest-forms' ),
2314 'DZ-39' => __( 'El Oued', 'everest-forms' ),
2315 'DZ-40' => __( 'Khenchela', 'everest-forms' ),
2316 'DZ-41' => __( 'Souk Ahras', 'everest-forms' ),
2317 'DZ-42' => __( 'Tipasa', 'everest-forms' ),
2318 'DZ-43' => __( 'Mila', 'everest-forms' ),
2319 'DZ-44' => __( 'Aïn Defla', 'everest-forms' ),
2320 'DZ-45' => __( 'Naama', 'everest-forms' ),
2321 'DZ-46' => __( 'Aïn Témouchent', 'everest-forms' ),
2322 'DZ-47' => __( 'Ghardaïa', 'everest-forms' ),
2323 'DZ-48' => __( 'Relizane', 'everest-forms' ),
2324 ),
2325 'EE' => array(),
2326 'EC' => array( // Ecuadorian states.
2327 'EC-A' => __( 'Azuay', 'everest-forms' ),
2328 'EC-B' => __( 'Bolívar', 'everest-forms' ),
2329 'EC-F' => __( 'Cañar', 'everest-forms' ),
2330 'EC-C' => __( 'Carchi', 'everest-forms' ),
2331 'EC-H' => __( 'Chimborazo', 'everest-forms' ),
2332 'EC-X' => __( 'Cotopaxi', 'everest-forms' ),
2333 'EC-O' => __( 'El Oro', 'everest-forms' ),
2334 'EC-E' => __( 'Esmeraldas', 'everest-forms' ),
2335 'EC-W' => __( 'Galápagos', 'everest-forms' ),
2336 'EC-G' => __( 'Guayas', 'everest-forms' ),
2337 'EC-I' => __( 'Imbabura', 'everest-forms' ),
2338 'EC-L' => __( 'Loja', 'everest-forms' ),
2339 'EC-R' => __( 'Los Ríos', 'everest-forms' ),
2340 'EC-M' => __( 'Manabí', 'everest-forms' ),
2341 'EC-S' => __( 'Morona-Santiago', 'everest-forms' ),
2342 'EC-N' => __( 'Napo', 'everest-forms' ),
2343 'EC-D' => __( 'Orellana', 'everest-forms' ),
2344 'EC-Y' => __( 'Pastaza', 'everest-forms' ),
2345 'EC-P' => __( 'Pichincha', 'everest-forms' ),
2346 'EC-SE' => __( 'Santa Elena', 'everest-forms' ),
2347 'EC-SD' => __( 'Santo Domingo de los Tsáchilas', 'everest-forms' ),
2348 'EC-U' => __( 'Sucumbíos', 'everest-forms' ),
2349 'EC-T' => __( 'Tungurahua', 'everest-forms' ),
2350 'EC-Z' => __( 'Zamora-Chinchipe', 'everest-forms' ),
2351 ),
2352 'EG' => array( // Egyptian states.
2353 'EGALX' => __( 'Alexandria', 'everest-forms' ),
2354 'EGASN' => __( 'Aswan', 'everest-forms' ),
2355 'EGAST' => __( 'Asyut', 'everest-forms' ),
2356 'EGBA' => __( 'Red Sea', 'everest-forms' ),
2357 'EGBH' => __( 'Beheira', 'everest-forms' ),
2358 'EGBNS' => __( 'Beni Suef', 'everest-forms' ),
2359 'EGC' => __( 'Cairo', 'everest-forms' ),
2360 'EGDK' => __( 'Dakahlia', 'everest-forms' ),
2361 'EGDT' => __( 'Damietta', 'everest-forms' ),
2362 'EGFYM' => __( 'Faiyum', 'everest-forms' ),
2363 'EGGH' => __( 'Gharbia', 'everest-forms' ),
2364 'EGGZ' => __( 'Giza', 'everest-forms' ),
2365 'EGIS' => __( 'Ismailia', 'everest-forms' ),
2366 'EGJS' => __( 'South Sinai', 'everest-forms' ),
2367 'EGKB' => __( 'Qalyubia', 'everest-forms' ),
2368 'EGKFS' => __( 'Kafr el-Sheikh', 'everest-forms' ),
2369 'EGKN' => __( 'Qena', 'everest-forms' ),
2370 'EGLX' => __( 'Luxor', 'everest-forms' ),
2371 'EGMN' => __( 'Minya', 'everest-forms' ),
2372 'EGMNF' => __( 'Monufia', 'everest-forms' ),
2373 'EGMT' => __( 'Matrouh', 'everest-forms' ),
2374 'EGPTS' => __( 'Port Said', 'everest-forms' ),
2375 'EGSHG' => __( 'Sohag', 'everest-forms' ),
2376 'EGSHR' => __( 'Al Sharqia', 'everest-forms' ),
2377 'EGSIN' => __( 'North Sinai', 'everest-forms' ),
2378 'EGSUZ' => __( 'Suez', 'everest-forms' ),
2379 'EGWAD' => __( 'New Valley', 'everest-forms' ),
2380 ),
2381 'ES' => array( // Spanish states.
2382 'C' => __( 'A Coruña', 'everest-forms' ),
2383 'VI' => __( 'Araba/Álava', 'everest-forms' ),
2384 'AB' => __( 'Albacete', 'everest-forms' ),
2385 'A' => __( 'Alicante', 'everest-forms' ),
2386 'AL' => __( 'Almería', 'everest-forms' ),
2387 'O' => __( 'Asturias', 'everest-forms' ),
2388 'AV' => __( 'Ávila', 'everest-forms' ),
2389 'BA' => __( 'Badajoz', 'everest-forms' ),
2390 'PM' => __( 'Baleares', 'everest-forms' ),
2391 'B' => __( 'Barcelona', 'everest-forms' ),
2392 'BU' => __( 'Burgos', 'everest-forms' ),
2393 'CC' => __( 'Cáceres', 'everest-forms' ),
2394 'CA' => __( 'Cádiz', 'everest-forms' ),
2395 'S' => __( 'Cantabria', 'everest-forms' ),
2396 'CS' => __( 'Castellón', 'everest-forms' ),
2397 'CE' => __( 'Ceuta', 'everest-forms' ),
2398 'CR' => __( 'Ciudad Real', 'everest-forms' ),
2399 'CO' => __( 'Córdoba', 'everest-forms' ),
2400 'CU' => __( 'Cuenca', 'everest-forms' ),
2401 'GI' => __( 'Girona', 'everest-forms' ),
2402 'GR' => __( 'Granada', 'everest-forms' ),
2403 'GU' => __( 'Guadalajara', 'everest-forms' ),
2404 'SS' => __( 'Gipuzkoa', 'everest-forms' ),
2405 'H' => __( 'Huelva', 'everest-forms' ),
2406 'HU' => __( 'Huesca', 'everest-forms' ),
2407 'J' => __( 'Jaén', 'everest-forms' ),
2408 'LO' => __( 'La Rioja', 'everest-forms' ),
2409 'GC' => __( 'Las Palmas', 'everest-forms' ),
2410 'LE' => __( 'León', 'everest-forms' ),
2411 'L' => __( 'Lleida', 'everest-forms' ),
2412 'LU' => __( 'Lugo', 'everest-forms' ),
2413 'M' => __( 'Madrid', 'everest-forms' ),
2414 'MA' => __( 'Málaga', 'everest-forms' ),
2415 'ML' => __( 'Melilla', 'everest-forms' ),
2416 'MU' => __( 'Murcia', 'everest-forms' ),
2417 'NA' => __( 'Navarra', 'everest-forms' ),
2418 'OR' => __( 'Ourense', 'everest-forms' ),
2419 'P' => __( 'Palencia', 'everest-forms' ),
2420 'PO' => __( 'Pontevedra', 'everest-forms' ),
2421 'SA' => __( 'Salamanca', 'everest-forms' ),
2422 'TF' => __( 'Santa Cruz de Tenerife', 'everest-forms' ),
2423 'SG' => __( 'Segovia', 'everest-forms' ),
2424 'SE' => __( 'Sevilla', 'everest-forms' ),
2425 'SO' => __( 'Soria', 'everest-forms' ),
2426 'T' => __( 'Tarragona', 'everest-forms' ),
2427 'TE' => __( 'Teruel', 'everest-forms' ),
2428 'TO' => __( 'Toledo', 'everest-forms' ),
2429 'V' => __( 'Valencia', 'everest-forms' ),
2430 'VA' => __( 'Valladolid', 'everest-forms' ),
2431 'BI' => __( 'Biscay', 'everest-forms' ),
2432 'ZA' => __( 'Zamora', 'everest-forms' ),
2433 'Z' => __( 'Zaragoza', 'everest-forms' ),
2434 ),
2435 'FI' => array(),
2436 'FR' => array(),
2437 'GF' => array(),
2438 'GH' => array( // Ghanaian regions.
2439 'AF' => __( 'Ahafo', 'everest-forms' ),
2440 'AH' => __( 'Ashanti', 'everest-forms' ),
2441 'BA' => __( 'Brong-Ahafo', 'everest-forms' ),
2442 'BO' => __( 'Bono', 'everest-forms' ),
2443 'BE' => __( 'Bono East', 'everest-forms' ),
2444 'CP' => __( 'Central', 'everest-forms' ),
2445 'EP' => __( 'Eastern', 'everest-forms' ),
2446 'AA' => __( 'Greater Accra', 'everest-forms' ),
2447 'NE' => __( 'North East', 'everest-forms' ),
2448 'NP' => __( 'Northern', 'everest-forms' ),
2449 'OT' => __( 'Oti', 'everest-forms' ),
2450 'SV' => __( 'Savannah', 'everest-forms' ),
2451 'UE' => __( 'Upper East', 'everest-forms' ),
2452 'UW' => __( 'Upper West', 'everest-forms' ),
2453 'TV' => __( 'Volta', 'everest-forms' ),
2454 'WP' => __( 'Western', 'everest-forms' ),
2455 'WN' => __( 'Western North', 'everest-forms' ),
2456 ),
2457 'GP' => array(),
2458 'GR' => array( // Greek regions.
2459 'I' => __( 'Attica', 'everest-forms' ),
2460 'A' => __( 'East Macedonia and Thrace', 'everest-forms' ),
2461 'B' => __( 'Central Macedonia', 'everest-forms' ),
2462 'C' => __( 'West Macedonia', 'everest-forms' ),
2463 'D' => __( 'Epirus', 'everest-forms' ),
2464 'E' => __( 'Thessaly', 'everest-forms' ),
2465 'F' => __( 'Ionian Islands', 'everest-forms' ),
2466 'G' => __( 'West Greece', 'everest-forms' ),
2467 'H' => __( 'Central Greece', 'everest-forms' ),
2468 'J' => __( 'Peloponnese', 'everest-forms' ),
2469 'K' => __( 'North Aegean', 'everest-forms' ),
2470 'L' => __( 'South Aegean', 'everest-forms' ),
2471 'M' => __( 'Crete', 'everest-forms' ),
2472 ),
2473 'GT' => array( // Guatemalan states.
2474 'GT-AV' => __( 'Alta Verapaz', 'everest-forms' ),
2475 'GT-BV' => __( 'Baja Verapaz', 'everest-forms' ),
2476 'GT-CM' => __( 'Chimaltenango', 'everest-forms' ),
2477 'GT-CQ' => __( 'Chiquimula', 'everest-forms' ),
2478 'GT-PR' => __( 'El Progreso', 'everest-forms' ),
2479 'GT-ES' => __( 'Escuintla', 'everest-forms' ),
2480 'GT-GU' => __( 'Guatemala', 'everest-forms' ),
2481 'GT-HU' => __( 'Huehuetenango', 'everest-forms' ),
2482 'GT-IZ' => __( 'Izabal', 'everest-forms' ),
2483 'GT-JA' => __( 'Jalapa', 'everest-forms' ),
2484 'GT-JU' => __( 'Jutiapa', 'everest-forms' ),
2485 'GT-PE' => __( 'Petén', 'everest-forms' ),
2486 'GT-QZ' => __( 'Quetzaltenango', 'everest-forms' ),
2487 'GT-QC' => __( 'Quiché', 'everest-forms' ),
2488 'GT-RE' => __( 'Retalhuleu', 'everest-forms' ),
2489 'GT-SA' => __( 'Sacatepéquez', 'everest-forms' ),
2490 'GT-SM' => __( 'San Marcos', 'everest-forms' ),
2491 'GT-SR' => __( 'Santa Rosa', 'everest-forms' ),
2492 'GT-SO' => __( 'Sololá', 'everest-forms' ),
2493 'GT-SU' => __( 'Suchitepéquez', 'everest-forms' ),
2494 'GT-TO' => __( 'Totonicapán', 'everest-forms' ),
2495 'GT-ZA' => __( 'Zacapa', 'everest-forms' ),
2496 ),
2497 'HK' => array( // Hong Kong states.
2498 'HONG KONG' => __( 'Hong Kong Island', 'everest-forms' ),
2499 'KOWLOON' => __( 'Kowloon', 'everest-forms' ),
2500 'NEW TERRITORIES' => __( 'New Territories', 'everest-forms' ),
2501 ),
2502 'HN' => array( // Honduran states.
2503 'HN-AT' => __( 'Atlántida', 'everest-forms' ),
2504 'HN-IB' => __( 'Bay Islands', 'everest-forms' ),
2505 'HN-CH' => __( 'Choluteca', 'everest-forms' ),
2506 'HN-CL' => __( 'Colón', 'everest-forms' ),
2507 'HN-CM' => __( 'Comayagua', 'everest-forms' ),
2508 'HN-CP' => __( 'Copán', 'everest-forms' ),
2509 'HN-CR' => __( 'Cortés', 'everest-forms' ),
2510 'HN-EP' => __( 'El Paraíso', 'everest-forms' ),
2511 'HN-FM' => __( 'Francisco Morazán', 'everest-forms' ),
2512 'HN-GD' => __( 'Gracias a Dios', 'everest-forms' ),
2513 'HN-IN' => __( 'Intibucá', 'everest-forms' ),
2514 'HN-LE' => __( 'Lempira', 'everest-forms' ),
2515 'HN-LP' => __( 'La Paz', 'everest-forms' ),
2516 'HN-OC' => __( 'Ocotepeque', 'everest-forms' ),
2517 'HN-OL' => __( 'Olancho', 'everest-forms' ),
2518 'HN-SB' => __( 'Santa Bárbara', 'everest-forms' ),
2519 'HN-VA' => __( 'Valle', 'everest-forms' ),
2520 'HN-YO' => __( 'Yoro', 'everest-forms' ),
2521 ),
2522 'HU' => array( // Hungarian states.
2523 'BK' => __( 'Bács-Kiskun', 'everest-forms' ),
2524 'BE' => __( 'Békés', 'everest-forms' ),
2525 'BA' => __( 'Baranya', 'everest-forms' ),
2526 'BZ' => __( 'Borsod-Abaúj-Zemplén', 'everest-forms' ),
2527 'BU' => __( 'Budapest', 'everest-forms' ),
2528 'CS' => __( 'Csongrád-Csanád', 'everest-forms' ),
2529 'FE' => __( 'Fejér', 'everest-forms' ),
2530 'GS' => __( 'Győr-Moson-Sopron', 'everest-forms' ),
2531 'HB' => __( 'Hajdú-Bihar', 'everest-forms' ),
2532 'HE' => __( 'Heves', 'everest-forms' ),
2533 'JN' => __( 'Jász-Nagykun-Szolnok', 'everest-forms' ),
2534 'KE' => __( 'Komárom-Esztergom', 'everest-forms' ),
2535 'NO' => __( 'Nógrád', 'everest-forms' ),
2536 'PE' => __( 'Pest', 'everest-forms' ),
2537 'SO' => __( 'Somogy', 'everest-forms' ),
2538 'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'everest-forms' ),
2539 'TO' => __( 'Tolna', 'everest-forms' ),
2540 'VA' => __( 'Vas', 'everest-forms' ),
2541 'VE' => __( 'Veszprém', 'everest-forms' ),
2542 'ZA' => __( 'Zala', 'everest-forms' ),
2543 ),
2544 'ID' => array( // Indonesian provinces.
2545 'AC' => __( 'Daerah Istimewa Aceh', 'everest-forms' ),
2546 'SU' => __( 'Sumatera Utara', 'everest-forms' ),
2547 'SB' => __( 'Sumatera Barat', 'everest-forms' ),
2548 'RI' => __( 'Riau', 'everest-forms' ),
2549 'KR' => __( 'Kepulauan Riau', 'everest-forms' ),
2550 'JA' => __( 'Jambi', 'everest-forms' ),
2551 'SS' => __( 'Sumatera Selatan', 'everest-forms' ),
2552 'BB' => __( 'Bangka Belitung', 'everest-forms' ),
2553 'BE' => __( 'Bengkulu', 'everest-forms' ),
2554 'LA' => __( 'Lampung', 'everest-forms' ),
2555 'JK' => __( 'DKI Jakarta', 'everest-forms' ),
2556 'JB' => __( 'Jawa Barat', 'everest-forms' ),
2557 'BT' => __( 'Banten', 'everest-forms' ),
2558 'JT' => __( 'Jawa Tengah', 'everest-forms' ),
2559 'JI' => __( 'Jawa Timur', 'everest-forms' ),
2560 'YO' => __( 'Daerah Istimewa Yogyakarta', 'everest-forms' ),
2561 'BA' => __( 'Bali', 'everest-forms' ),
2562 'NB' => __( 'Nusa Tenggara Barat', 'everest-forms' ),
2563 'NT' => __( 'Nusa Tenggara Timur', 'everest-forms' ),
2564 'KB' => __( 'Kalimantan Barat', 'everest-forms' ),
2565 'KT' => __( 'Kalimantan Tengah', 'everest-forms' ),
2566 'KI' => __( 'Kalimantan Timur', 'everest-forms' ),
2567 'KS' => __( 'Kalimantan Selatan', 'everest-forms' ),
2568 'KU' => __( 'Kalimantan Utara', 'everest-forms' ),
2569 'SA' => __( 'Sulawesi Utara', 'everest-forms' ),
2570 'ST' => __( 'Sulawesi Tengah', 'everest-forms' ),
2571 'SG' => __( 'Sulawesi Tenggara', 'everest-forms' ),
2572 'SR' => __( 'Sulawesi Barat', 'everest-forms' ),
2573 'SN' => __( 'Sulawesi Selatan', 'everest-forms' ),
2574 'GO' => __( 'Gorontalo', 'everest-forms' ),
2575 'MA' => __( 'Maluku', 'everest-forms' ),
2576 'MU' => __( 'Maluku Utara', 'everest-forms' ),
2577 'PA' => __( 'Papua', 'everest-forms' ),
2578 'PB' => __( 'Papua Barat', 'everest-forms' ),
2579 ),
2580 'IE' => array( // Irish states.
2581 'CW' => __( 'Carlow', 'everest-forms' ),
2582 'CN' => __( 'Cavan', 'everest-forms' ),
2583 'CE' => __( 'Clare', 'everest-forms' ),
2584 'CO' => __( 'Cork', 'everest-forms' ),
2585 'DL' => __( 'Donegal', 'everest-forms' ),
2586 'D' => __( 'Dublin', 'everest-forms' ),
2587 'G' => __( 'Galway', 'everest-forms' ),
2588 'KY' => __( 'Kerry', 'everest-forms' ),
2589 'KE' => __( 'Kildare', 'everest-forms' ),
2590 'KK' => __( 'Kilkenny', 'everest-forms' ),
2591 'LS' => __( 'Laois', 'everest-forms' ),
2592 'LM' => __( 'Leitrim', 'everest-forms' ),
2593 'LK' => __( 'Limerick', 'everest-forms' ),
2594 'LD' => __( 'Longford', 'everest-forms' ),
2595 'LH' => __( 'Louth', 'everest-forms' ),
2596 'MO' => __( 'Mayo', 'everest-forms' ),
2597 'MH' => __( 'Meath', 'everest-forms' ),
2598 'MN' => __( 'Monaghan', 'everest-forms' ),
2599 'OY' => __( 'Offaly', 'everest-forms' ),
2600 'RN' => __( 'Roscommon', 'everest-forms' ),
2601 'SO' => __( 'Sligo', 'everest-forms' ),
2602 'TA' => __( 'Tipperary', 'everest-forms' ),
2603 'WD' => __( 'Waterford', 'everest-forms' ),
2604 'WH' => __( 'Westmeath', 'everest-forms' ),
2605 'WX' => __( 'Wexford', 'everest-forms' ),
2606 'WW' => __( 'Wicklow', 'everest-forms' ),
2607 ),
2608 'IN' => array( // Indian states.
2609 'AP' => __( 'Andhra Pradesh', 'everest-forms' ),
2610 'AR' => __( 'Arunachal Pradesh', 'everest-forms' ),
2611 'AS' => __( 'Assam', 'everest-forms' ),
2612 'BR' => __( 'Bihar', 'everest-forms' ),
2613 'CT' => __( 'Chhattisgarh', 'everest-forms' ),
2614 'GA' => __( 'Goa', 'everest-forms' ),
2615 'GJ' => __( 'Gujarat', 'everest-forms' ),
2616 'HR' => __( 'Haryana', 'everest-forms' ),
2617 'HP' => __( 'Himachal Pradesh', 'everest-forms' ),
2618 'JK' => __( 'Jammu and Kashmir', 'everest-forms' ),
2619 'JH' => __( 'Jharkhand', 'everest-forms' ),
2620 'KA' => __( 'Karnataka', 'everest-forms' ),
2621 'KL' => __( 'Kerala', 'everest-forms' ),
2622 'LA' => __( 'Ladakh', 'everest-forms' ),
2623 'MP' => __( 'Madhya Pradesh', 'everest-forms' ),
2624 'MH' => __( 'Maharashtra', 'everest-forms' ),
2625 'MN' => __( 'Manipur', 'everest-forms' ),
2626 'ML' => __( 'Meghalaya', 'everest-forms' ),
2627 'MZ' => __( 'Mizoram', 'everest-forms' ),
2628 'NL' => __( 'Nagaland', 'everest-forms' ),
2629 'OR' => __( 'Odisha', 'everest-forms' ),
2630 'PB' => __( 'Punjab', 'everest-forms' ),
2631 'RJ' => __( 'Rajasthan', 'everest-forms' ),
2632 'SK' => __( 'Sikkim', 'everest-forms' ),
2633 'TN' => __( 'Tamil Nadu', 'everest-forms' ),
2634 'TS' => __( 'Telangana', 'everest-forms' ),
2635 'TR' => __( 'Tripura', 'everest-forms' ),
2636 'UK' => __( 'Uttarakhand', 'everest-forms' ),
2637 'UP' => __( 'Uttar Pradesh', 'everest-forms' ),
2638 'WB' => __( 'West Bengal', 'everest-forms' ),
2639 'AN' => __( 'Andaman and Nicobar Islands', 'everest-forms' ),
2640 'CH' => __( 'Chandigarh', 'everest-forms' ),
2641 'DN' => __( 'Dadra and Nagar Haveli', 'everest-forms' ),
2642 'DD' => __( 'Daman and Diu', 'everest-forms' ),
2643 'DL' => __( 'Delhi', 'everest-forms' ),
2644 'LD' => __( 'Lakshadeep', 'everest-forms' ),
2645 'PY' => __( 'Pondicherry (Puducherry)', 'everest-forms' ),
2646 ),
2647 'IR' => array( // Irania states.
2648 'KHZ' => __( 'Khuzestan (خوزستان)', 'everest-forms' ),
2649 'THR' => __( 'Tehran (تهران)', 'everest-forms' ),
2650 'ILM' => __( 'Ilaam (ایلا�
2651 )', 'everest-forms' ),
2652 'BHR' => __( 'Bushehr (بوشهر)', 'everest-forms' ),
2653 'ADL' => __( 'Ardabil (اردبیل)', 'everest-forms' ),
2654 'ESF' => __( 'Isfahan (اصفهان)', 'everest-forms' ),
2655 'YZD' => __( 'Yazd (یزد)', 'everest-forms' ),
2656 'KRH' => __( 'Kermanshah (کر�
2657 انشاه)', 'everest-forms' ),
2658 'KRN' => __( 'Kerman (کر�
2659 ان)', 'everest-forms' ),
2660 'HDN' => __( 'Hamadan (ه�
2661 دان)', 'everest-forms' ),
2662 'GZN' => __( 'Ghazvin (قزوین)', 'everest-forms' ),
2663 'ZJN' => __( 'Zanjan (زنجان)', 'everest-forms' ),
2664 'LRS' => __( 'Luristan (لرستان)', 'everest-forms' ),
2665 'ABZ' => __( 'Alborz (البرز)', 'everest-forms' ),
2666 'EAZ' => __( 'East Azarbaijan (آذربایجان شرقی)', 'everest-forms' ),
2667 'WAZ' => __( 'West Azarbaijan (آذربایجان غربی)', 'everest-forms' ),
2668 'CHB' => __( 'Chaharmahal and Bakhtiari (چهار�
2669 حال و بختیاری)', 'everest-forms' ),
2670 'SKH' => __( 'South Khorasan (خراسان جنوبی)', 'everest-forms' ),
2671 'RKH' => __( 'Razavi Khorasan (خراسان رضوی)', 'everest-forms' ),
2672 'NKH' => __( 'North Khorasan (خراسان ش�
2673 الی)', 'everest-forms' ),
2674 'SMN' => __( 'Semnan (س�
2675 نان)', 'everest-forms' ),
2676 'FRS' => __( 'Fars (فارس)', 'everest-forms' ),
2677 'QHM' => __( 'Qom (ق�
2678 )', 'everest-forms' ),
2679 'KRD' => __( 'Kurdistan / کردستان)', 'everest-forms' ),
2680 'KBD' => __( 'Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراح�
2681 د)', 'everest-forms' ),
2682 'GLS' => __( 'Golestan (گلستان)', 'everest-forms' ),
2683 'GIL' => __( 'Gilan (گیلان)', 'everest-forms' ),
2684 'MZN' => __( 'Mazandaran (�
2685 ازندران)', 'everest-forms' ),
2686 'MKZ' => __( 'Markazi (�
2687 رکزی)', 'everest-forms' ),
2688 'HRZ' => __( 'Hormozgan (هر�
2689 زگان)', 'everest-forms' ),
2690 'SBN' => __( 'Sistan and Baluchestan (سیستان و بلوچستان)', 'everest-forms' ),
2691 ),
2692 'IS' => array(),
2693 'IT' => array( // Italian provinces.
2694 'AG' => __( 'Agrigento', 'everest-forms' ),
2695 'AL' => __( 'Alessandria', 'everest-forms' ),
2696 'AN' => __( 'Ancona', 'everest-forms' ),
2697 'AO' => __( 'Aosta', 'everest-forms' ),
2698 'AR' => __( 'Arezzo', 'everest-forms' ),
2699 'AP' => __( 'Ascoli Piceno', 'everest-forms' ),
2700 'AT' => __( 'Asti', 'everest-forms' ),
2701 'AV' => __( 'Avellino', 'everest-forms' ),
2702 'BA' => __( 'Bari', 'everest-forms' ),
2703 'BT' => __( 'Barletta-Andria-Trani', 'everest-forms' ),
2704 'BL' => __( 'Belluno', 'everest-forms' ),
2705 'BN' => __( 'Benevento', 'everest-forms' ),
2706 'BG' => __( 'Bergamo', 'everest-forms' ),
2707 'BI' => __( 'Biella', 'everest-forms' ),
2708 'BO' => __( 'Bologna', 'everest-forms' ),
2709 'BZ' => __( 'Bolzano', 'everest-forms' ),
2710 'BS' => __( 'Brescia', 'everest-forms' ),
2711 'BR' => __( 'Brindisi', 'everest-forms' ),
2712 'CA' => __( 'Cagliari', 'everest-forms' ),
2713 'CL' => __( 'Caltanissetta', 'everest-forms' ),
2714 'CB' => __( 'Campobasso', 'everest-forms' ),
2715 'CE' => __( 'Caserta', 'everest-forms' ),
2716 'CT' => __( 'Catania', 'everest-forms' ),
2717 'CZ' => __( 'Catanzaro', 'everest-forms' ),
2718 'CH' => __( 'Chieti', 'everest-forms' ),
2719 'CO' => __( 'Como', 'everest-forms' ),
2720 'CS' => __( 'Cosenza', 'everest-forms' ),
2721 'CR' => __( 'Cremona', 'everest-forms' ),
2722 'KR' => __( 'Crotone', 'everest-forms' ),
2723 'CN' => __( 'Cuneo', 'everest-forms' ),
2724 'EN' => __( 'Enna', 'everest-forms' ),
2725 'FM' => __( 'Fermo', 'everest-forms' ),
2726 'FE' => __( 'Ferrara', 'everest-forms' ),
2727 'FI' => __( 'Firenze', 'everest-forms' ),
2728 'FG' => __( 'Foggia', 'everest-forms' ),
2729 'FC' => __( 'Forlì-Cesena', 'everest-forms' ),
2730 'FR' => __( 'Frosinone', 'everest-forms' ),
2731 'GE' => __( 'Genova', 'everest-forms' ),
2732 'GO' => __( 'Gorizia', 'everest-forms' ),
2733 'GR' => __( 'Grosseto', 'everest-forms' ),
2734 'IM' => __( 'Imperia', 'everest-forms' ),
2735 'IS' => __( 'Isernia', 'everest-forms' ),
2736 'SP' => __( 'La Spezia', 'everest-forms' ),
2737 'AQ' => __( "L'Aquila", 'everest-forms' ),
2738 'LT' => __( 'Latina', 'everest-forms' ),
2739 'LE' => __( 'Lecce', 'everest-forms' ),
2740 'LC' => __( 'Lecco', 'everest-forms' ),
2741 'LI' => __( 'Livorno', 'everest-forms' ),
2742 'LO' => __( 'Lodi', 'everest-forms' ),
2743 'LU' => __( 'Lucca', 'everest-forms' ),
2744 'MC' => __( 'Macerata', 'everest-forms' ),
2745 'MN' => __( 'Mantova', 'everest-forms' ),
2746 'MS' => __( 'Massa-Carrara', 'everest-forms' ),
2747 'MT' => __( 'Matera', 'everest-forms' ),
2748 'ME' => __( 'Messina', 'everest-forms' ),
2749 'MI' => __( 'Milano', 'everest-forms' ),
2750 'MO' => __( 'Modena', 'everest-forms' ),
2751 'MB' => __( 'Monza e della Brianza', 'everest-forms' ),
2752 'NA' => __( 'Napoli', 'everest-forms' ),
2753 'NO' => __( 'Novara', 'everest-forms' ),
2754 'NU' => __( 'Nuoro', 'everest-forms' ),
2755 'OR' => __( 'Oristano', 'everest-forms' ),
2756 'PD' => __( 'Padova', 'everest-forms' ),
2757 'PA' => __( 'Palermo', 'everest-forms' ),
2758 'PR' => __( 'Parma', 'everest-forms' ),
2759 'PV' => __( 'Pavia', 'everest-forms' ),
2760 'PG' => __( 'Perugia', 'everest-forms' ),
2761 'PU' => __( 'Pesaro e Urbino', 'everest-forms' ),
2762 'PE' => __( 'Pescara', 'everest-forms' ),
2763 'PC' => __( 'Piacenza', 'everest-forms' ),
2764 'PI' => __( 'Pisa', 'everest-forms' ),
2765 'PT' => __( 'Pistoia', 'everest-forms' ),
2766 'PN' => __( 'Pordenone', 'everest-forms' ),
2767 'PZ' => __( 'Potenza', 'everest-forms' ),
2768 'PO' => __( 'Prato', 'everest-forms' ),
2769 'RG' => __( 'Ragusa', 'everest-forms' ),
2770 'RA' => __( 'Ravenna', 'everest-forms' ),
2771 'RC' => __( 'Reggio Calabria', 'everest-forms' ),
2772 'RE' => __( 'Reggio Emilia', 'everest-forms' ),
2773 'RI' => __( 'Rieti', 'everest-forms' ),
2774 'RN' => __( 'Rimini', 'everest-forms' ),
2775 'RM' => __( 'Roma', 'everest-forms' ),
2776 'RO' => __( 'Rovigo', 'everest-forms' ),
2777 'SA' => __( 'Salerno', 'everest-forms' ),
2778 'SS' => __( 'Sassari', 'everest-forms' ),
2779 'SV' => __( 'Savona', 'everest-forms' ),
2780 'SI' => __( 'Siena', 'everest-forms' ),
2781 'SR' => __( 'Siracusa', 'everest-forms' ),
2782 'SO' => __( 'Sondrio', 'everest-forms' ),
2783 'SU' => __( 'Sud Sardegna', 'everest-forms' ),
2784 'TA' => __( 'Taranto', 'everest-forms' ),
2785 'TE' => __( 'Teramo', 'everest-forms' ),
2786 'TR' => __( 'Terni', 'everest-forms' ),
2787 'TO' => __( 'Torino', 'everest-forms' ),
2788 'TP' => __( 'Trapani', 'everest-forms' ),
2789 'TN' => __( 'Trento', 'everest-forms' ),
2790 'TV' => __( 'Treviso', 'everest-forms' ),
2791 'TS' => __( 'Trieste', 'everest-forms' ),
2792 'UD' => __( 'Udine', 'everest-forms' ),
2793 'VA' => __( 'Varese', 'everest-forms' ),
2794 'VE' => __( 'Venezia', 'everest-forms' ),
2795 'VB' => __( 'Verbano-Cusio-Ossola', 'everest-forms' ),
2796 'VC' => __( 'Vercelli', 'everest-forms' ),
2797 'VR' => __( 'Verona', 'everest-forms' ),
2798 'VV' => __( 'Vibo Valentia', 'everest-forms' ),
2799 'VI' => __( 'Vicenza', 'everest-forms' ),
2800 'VT' => __( 'Viterbo', 'everest-forms' ),
2801 ),
2802 'IL' => array(),
2803 'IM' => array(),
2804 'JM' => array( // Jamaican parishes.
2805 'JM-01' => __( 'Kingston', 'everest-forms' ),
2806 'JM-02' => __( 'Saint Andrew', 'everest-forms' ),
2807 'JM-03' => __( 'Saint Thomas', 'everest-forms' ),
2808 'JM-04' => __( 'Portland', 'everest-forms' ),
2809 'JM-05' => __( 'Saint Mary', 'everest-forms' ),
2810 'JM-06' => __( 'Saint Ann', 'everest-forms' ),
2811 'JM-07' => __( 'Trelawny', 'everest-forms' ),
2812 'JM-08' => __( 'Saint James', 'everest-forms' ),
2813 'JM-09' => __( 'Hanover', 'everest-forms' ),
2814 'JM-10' => __( 'Westmoreland', 'everest-forms' ),
2815 'JM-11' => __( 'Saint Elizabeth', 'everest-forms' ),
2816 'JM-12' => __( 'Manchester', 'everest-forms' ),
2817 'JM-13' => __( 'Clarendon', 'everest-forms' ),
2818 'JM-14' => __( 'Saint Catherine', 'everest-forms' ),
2819 ),
2820
2821 'JP' => array(
2822 'JP01' => __( 'Hokkaido', 'everest-forms' ),
2823 'JP02' => __( 'Aomori', 'everest-forms' ),
2824 'JP03' => __( 'Iwate', 'everest-forms' ),
2825 'JP04' => __( 'Miyagi', 'everest-forms' ),
2826 'JP05' => __( 'Akita', 'everest-forms' ),
2827 'JP06' => __( 'Yamagata', 'everest-forms' ),
2828 'JP07' => __( 'Fukushima', 'everest-forms' ),
2829 'JP08' => __( 'Ibaraki', 'everest-forms' ),
2830 'JP09' => __( 'Tochigi', 'everest-forms' ),
2831 'JP10' => __( 'Gunma', 'everest-forms' ),
2832 'JP11' => __( 'Saitama', 'everest-forms' ),
2833 'JP12' => __( 'Chiba', 'everest-forms' ),
2834 'JP13' => __( 'Tokyo', 'everest-forms' ),
2835 'JP14' => __( 'Kanagawa', 'everest-forms' ),
2836 'JP15' => __( 'Niigata', 'everest-forms' ),
2837 'JP16' => __( 'Toyama', 'everest-forms' ),
2838 'JP17' => __( 'Ishikawa', 'everest-forms' ),
2839 'JP18' => __( 'Fukui', 'everest-forms' ),
2840 'JP19' => __( 'Yamanashi', 'everest-forms' ),
2841 'JP20' => __( 'Nagano', 'everest-forms' ),
2842 'JP21' => __( 'Gifu', 'everest-forms' ),
2843 'JP22' => __( 'Shizuoka', 'everest-forms' ),
2844 'JP23' => __( 'Aichi', 'everest-forms' ),
2845 'JP24' => __( 'Mie', 'everest-forms' ),
2846 'JP25' => __( 'Shiga', 'everest-forms' ),
2847 'JP26' => __( 'Kyoto', 'everest-forms' ),
2848 'JP27' => __( 'Osaka', 'everest-forms' ),
2849 'JP28' => __( 'Hyogo', 'everest-forms' ),
2850 'JP29' => __( 'Nara', 'everest-forms' ),
2851 'JP30' => __( 'Wakayama', 'everest-forms' ),
2852 'JP31' => __( 'Tottori', 'everest-forms' ),
2853 'JP32' => __( 'Shimane', 'everest-forms' ),
2854 'JP33' => __( 'Okayama', 'everest-forms' ),
2855 'JP34' => __( 'Hiroshima', 'everest-forms' ),
2856 'JP35' => __( 'Yamaguchi', 'everest-forms' ),
2857 'JP36' => __( 'Tokushima', 'everest-forms' ),
2858 'JP37' => __( 'Kagawa', 'everest-forms' ),
2859 'JP38' => __( 'Ehime', 'everest-forms' ),
2860 'JP39' => __( 'Kochi', 'everest-forms' ),
2861 'JP40' => __( 'Fukuoka', 'everest-forms' ),
2862 'JP41' => __( 'Saga', 'everest-forms' ),
2863 'JP42' => __( 'Nagasaki', 'everest-forms' ),
2864 'JP43' => __( 'Kumamoto', 'everest-forms' ),
2865 'JP44' => __( 'Oita', 'everest-forms' ),
2866 'JP45' => __( 'Miyazaki', 'everest-forms' ),
2867 'JP46' => __( 'Kagoshima', 'everest-forms' ),
2868 'JP47' => __( 'Okinawa', 'everest-forms' ),
2869 ),
2870 'KE' => array( // Kenyan counties.
2871 'KE01' => __( 'Baringo', 'everest-forms' ),
2872 'KE02' => __( 'Bomet', 'everest-forms' ),
2873 'KE03' => __( 'Bungoma', 'everest-forms' ),
2874 'KE04' => __( 'Busia', 'everest-forms' ),
2875 'KE05' => __( 'Elgeyo-Marakwet', 'everest-forms' ),
2876 'KE06' => __( 'Embu', 'everest-forms' ),
2877 'KE07' => __( 'Garissa', 'everest-forms' ),
2878 'KE08' => __( 'Homa Bay', 'everest-forms' ),
2879 'KE09' => __( 'Isiolo', 'everest-forms' ),
2880 'KE10' => __( 'Kajiado', 'everest-forms' ),
2881 'KE11' => __( 'Kakamega', 'everest-forms' ),
2882 'KE12' => __( 'Kericho', 'everest-forms' ),
2883 'KE13' => __( 'Kiambu', 'everest-forms' ),
2884 'KE14' => __( 'Kilifi', 'everest-forms' ),
2885 'KE15' => __( 'Kirinyaga', 'everest-forms' ),
2886 'KE16' => __( 'Kisii', 'everest-forms' ),
2887 'KE17' => __( 'Kisumu', 'everest-forms' ),
2888 'KE18' => __( 'Kitui', 'everest-forms' ),
2889 'KE19' => __( 'Kwale', 'everest-forms' ),
2890 'KE20' => __( 'Laikipia', 'everest-forms' ),
2891 'KE21' => __( 'Lamu', 'everest-forms' ),
2892 'KE22' => __( 'Machakos', 'everest-forms' ),
2893 'KE23' => __( 'Makueni', 'everest-forms' ),
2894 'KE24' => __( 'Mandera', 'everest-forms' ),
2895 'KE25' => __( 'Marsabit', 'everest-forms' ),
2896 'KE26' => __( 'Meru', 'everest-forms' ),
2897 'KE27' => __( 'Migori', 'everest-forms' ),
2898 'KE28' => __( 'Mombasa', 'everest-forms' ),
2899 'KE29' => __( 'Murang’a', 'everest-forms' ),
2900 'KE30' => __( 'Nairobi County', 'everest-forms' ),
2901 'KE31' => __( 'Nakuru', 'everest-forms' ),
2902 'KE32' => __( 'Nandi', 'everest-forms' ),
2903 'KE33' => __( 'Narok', 'everest-forms' ),
2904 'KE34' => __( 'Nyamira', 'everest-forms' ),
2905 'KE35' => __( 'Nyandarua', 'everest-forms' ),
2906 'KE36' => __( 'Nyeri', 'everest-forms' ),
2907 'KE37' => __( 'Samburu', 'everest-forms' ),
2908 'KE38' => __( 'Siaya', 'everest-forms' ),
2909 'KE39' => __( 'Taita-Taveta', 'everest-forms' ),
2910 'KE40' => __( 'Tana River', 'everest-forms' ),
2911 'KE41' => __( 'Tharaka-Nithi', 'everest-forms' ),
2912 'KE42' => __( 'Trans Nzoia', 'everest-forms' ),
2913 'KE43' => __( 'Turkana', 'everest-forms' ),
2914 'KE44' => __( 'Uasin Gishu', 'everest-forms' ),
2915 'KE45' => __( 'Vihiga', 'everest-forms' ),
2916 'KE46' => __( 'Wajir', 'everest-forms' ),
2917 'KE47' => __( 'West Pokot', 'everest-forms' ),
2918 ),
2919 'KR' => array(),
2920 'KW' => array(),
2921 'LA' => array( // Laotian provinces.
2922 'AT' => __( 'Attapeu', 'everest-forms' ),
2923 'BK' => __( 'Bokeo', 'everest-forms' ),
2924 'BL' => __( 'Bolikhamsai', 'everest-forms' ),
2925 'CH' => __( 'Champasak', 'everest-forms' ),
2926 'HO' => __( 'Houaphanh', 'everest-forms' ),
2927 'KH' => __( 'Khammouane', 'everest-forms' ),
2928 'LM' => __( 'Luang Namtha', 'everest-forms' ),
2929 'LP' => __( 'Luang Prabang', 'everest-forms' ),
2930 'OU' => __( 'Oudomxay', 'everest-forms' ),
2931 'PH' => __( 'Phongsaly', 'everest-forms' ),
2932 'SL' => __( 'Salavan', 'everest-forms' ),
2933 'SV' => __( 'Savannakhet', 'everest-forms' ),
2934 'VI' => __( 'Vientiane Province', 'everest-forms' ),
2935 'VT' => __( 'Vientiane', 'everest-forms' ),
2936 'XA' => __( 'Sainyabuli', 'everest-forms' ),
2937 'XE' => __( 'Sekong', 'everest-forms' ),
2938 'XI' => __( 'Xiangkhouang', 'everest-forms' ),
2939 'XS' => __( 'Xaisomboun', 'everest-forms' ),
2940 ),
2941 'LB' => array(),
2942 'LR' => array( // Liberian provinces.
2943 'BM' => __( 'Bomi', 'everest-forms' ),
2944 'BN' => __( 'Bong', 'everest-forms' ),
2945 'GA' => __( 'Gbarpolu', 'everest-forms' ),
2946 'GB' => __( 'Grand Bassa', 'everest-forms' ),
2947 'GC' => __( 'Grand Cape Mount', 'everest-forms' ),
2948 'GG' => __( 'Grand Gedeh', 'everest-forms' ),
2949 'GK' => __( 'Grand Kru', 'everest-forms' ),
2950 'LO' => __( 'Lofa', 'everest-forms' ),
2951 'MA' => __( 'Margibi', 'everest-forms' ),
2952 'MY' => __( 'Maryland', 'everest-forms' ),
2953 'MO' => __( 'Montserrado', 'everest-forms' ),
2954 'NM' => __( 'Nimba', 'everest-forms' ),
2955 'RV' => __( 'Rivercess', 'everest-forms' ),
2956 'RG' => __( 'River Gee', 'everest-forms' ),
2957 'SN' => __( 'Sinoe', 'everest-forms' ),
2958 ),
2959 'LU' => array(),
2960 'MD' => array( // Moldovan states.
2961 'C' => __( 'Chișinău', 'everest-forms' ),
2962 'BL' => __( 'Bălți', 'everest-forms' ),
2963 'AN' => __( 'Anenii Noi', 'everest-forms' ),
2964 'BS' => __( 'Basarabeasca', 'everest-forms' ),
2965 'BR' => __( 'Briceni', 'everest-forms' ),
2966 'CH' => __( 'Cahul', 'everest-forms' ),
2967 'CT' => __( 'Cantemir', 'everest-forms' ),
2968 'CL' => __( 'Călărași', 'everest-forms' ),
2969 'CS' => __( 'Căușeni', 'everest-forms' ),
2970 'CM' => __( 'Cimișlia', 'everest-forms' ),
2971 'CR' => __( 'Criuleni', 'everest-forms' ),
2972 'DN' => __( 'Dondușeni', 'everest-forms' ),
2973 'DR' => __( 'Drochia', 'everest-forms' ),
2974 'DB' => __( 'Dubăsari', 'everest-forms' ),
2975 'ED' => __( 'Edineț', 'everest-forms' ),
2976 'FL' => __( 'Fălești', 'everest-forms' ),
2977 'FR' => __( 'Florești', 'everest-forms' ),
2978 'GE' => __( 'UTA Găgăuzia', 'everest-forms' ),
2979 'GL' => __( 'Glodeni', 'everest-forms' ),
2980 'HN' => __( 'Hîncești', 'everest-forms' ),
2981 'IL' => __( 'Ialoveni', 'everest-forms' ),
2982 'LV' => __( 'Leova', 'everest-forms' ),
2983 'NS' => __( 'Nisporeni', 'everest-forms' ),
2984 'OC' => __( 'Ocnița', 'everest-forms' ),
2985 'OR' => __( 'Orhei', 'everest-forms' ),
2986 'RZ' => __( 'Rezina', 'everest-forms' ),
2987 'RS' => __( 'Rîșcani', 'everest-forms' ),
2988 'SG' => __( 'Sîngerei', 'everest-forms' ),
2989 'SR' => __( 'Soroca', 'everest-forms' ),
2990 'ST' => __( 'Strășeni', 'everest-forms' ),
2991 'SD' => __( 'Șoldănești', 'everest-forms' ),
2992 'SV' => __( 'Ștefan Vodă', 'everest-forms' ),
2993 'TR' => __( 'Taraclia', 'everest-forms' ),
2994 'TL' => __( 'Telenești', 'everest-forms' ),
2995 'UN' => __( 'Ungheni', 'everest-forms' ),
2996 ),
2997 'MQ' => array(),
2998 'MT' => array(),
2999 'MX' => array( // Mexican states.
3000 'DF' => __( 'Ciudad de México', 'everest-forms' ),
3001 'JA' => __( 'Jalisco', 'everest-forms' ),
3002 'NL' => __( 'Nuevo León', 'everest-forms' ),
3003 'AG' => __( 'Aguascalientes', 'everest-forms' ),
3004 'BC' => __( 'Baja California', 'everest-forms' ),
3005 'BS' => __( 'Baja California Sur', 'everest-forms' ),
3006 'CM' => __( 'Campeche', 'everest-forms' ),
3007 'CS' => __( 'Chiapas', 'everest-forms' ),
3008 'CH' => __( 'Chihuahua', 'everest-forms' ),
3009 'CO' => __( 'Coahuila', 'everest-forms' ),
3010 'CL' => __( 'Colima', 'everest-forms' ),
3011 'DG' => __( 'Durango', 'everest-forms' ),
3012 'GT' => __( 'Guanajuato', 'everest-forms' ),
3013 'GR' => __( 'Guerrero', 'everest-forms' ),
3014 'HG' => __( 'Hidalgo', 'everest-forms' ),
3015 'MX' => __( 'Estado de México', 'everest-forms' ),
3016 'MI' => __( 'Michoacán', 'everest-forms' ),
3017 'MO' => __( 'Morelos', 'everest-forms' ),
3018 'NA' => __( 'Nayarit', 'everest-forms' ),
3019 'OA' => __( 'Oaxaca', 'everest-forms' ),
3020 'PU' => __( 'Puebla', 'everest-forms' ),
3021 'QT' => __( 'Querétaro', 'everest-forms' ),
3022 'QR' => __( 'Quintana Roo', 'everest-forms' ),
3023 'SL' => __( 'San Luis Potosí', 'everest-forms' ),
3024 'SI' => __( 'Sinaloa', 'everest-forms' ),
3025 'SO' => __( 'Sonora', 'everest-forms' ),
3026 'TB' => __( 'Tabasco', 'everest-forms' ),
3027 'TM' => __( 'Tamaulipas', 'everest-forms' ),
3028 'TL' => __( 'Tlaxcala', 'everest-forms' ),
3029 'VE' => __( 'Veracruz', 'everest-forms' ),
3030 'YU' => __( 'Yucatán', 'everest-forms' ),
3031 'ZA' => __( 'Zacatecas', 'everest-forms' ),
3032 ),
3033 'MY' => array( // Malaysian states.
3034 'JHR' => __( 'Johor', 'everest-forms' ),
3035 'KDH' => __( 'Kedah', 'everest-forms' ),
3036 'KTN' => __( 'Kelantan', 'everest-forms' ),
3037 'LBN' => __( 'Labuan', 'everest-forms' ),
3038 'MLK' => __( 'Malacca (Melaka)', 'everest-forms' ),
3039 'NSN' => __( 'Negeri Sembilan', 'everest-forms' ),
3040 'PHG' => __( 'Pahang', 'everest-forms' ),
3041 'PNG' => __( 'Penang (Pulau Pinang)', 'everest-forms' ),
3042 'PRK' => __( 'Perak', 'everest-forms' ),
3043 'PLS' => __( 'Perlis', 'everest-forms' ),
3044 'SBH' => __( 'Sabah', 'everest-forms' ),
3045 'SWK' => __( 'Sarawak', 'everest-forms' ),
3046 'SGR' => __( 'Selangor', 'everest-forms' ),
3047 'TRG' => __( 'Terengganu', 'everest-forms' ),
3048 'PJY' => __( 'Putrajaya', 'everest-forms' ),
3049 'KUL' => __( 'Kuala Lumpur', 'everest-forms' ),
3050 ),
3051 'MZ' => array( // Mozambican provinces.
3052 'MZP' => __( 'Cabo Delgado', 'everest-forms' ),
3053 'MZG' => __( 'Gaza', 'everest-forms' ),
3054 'MZI' => __( 'Inhambane', 'everest-forms' ),
3055 'MZB' => __( 'Manica', 'everest-forms' ),
3056 'MZL' => __( 'Maputo Province', 'everest-forms' ),
3057 'MZMPM' => __( 'Maputo', 'everest-forms' ),
3058 'MZN' => __( 'Nampula', 'everest-forms' ),
3059 'MZA' => __( 'Niassa', 'everest-forms' ),
3060 'MZS' => __( 'Sofala', 'everest-forms' ),
3061 'MZT' => __( 'Tete', 'everest-forms' ),
3062 'MZQ' => __( 'Zambézia', 'everest-forms' ),
3063 ),
3064 'NA' => array( // Namibian regions.
3065 'ER' => __( 'Erongo', 'everest-forms' ),
3066 'HA' => __( 'Hardap', 'everest-forms' ),
3067 'KA' => __( 'Karas', 'everest-forms' ),
3068 'KE' => __( 'Kavango East', 'everest-forms' ),
3069 'KW' => __( 'Kavango West', 'everest-forms' ),
3070 'KH' => __( 'Khomas', 'everest-forms' ),
3071 'KU' => __( 'Kunene', 'everest-forms' ),
3072 'OW' => __( 'Ohangwena', 'everest-forms' ),
3073 'OH' => __( 'Omaheke', 'everest-forms' ),
3074 'OS' => __( 'Omusati', 'everest-forms' ),
3075 'ON' => __( 'Oshana', 'everest-forms' ),
3076 'OT' => __( 'Oshikoto', 'everest-forms' ),
3077 'OD' => __( 'Otjozondjupa', 'everest-forms' ),
3078 'CA' => __( 'Zambezi', 'everest-forms' ),
3079 ),
3080 'NG' => array( // Nigerian provinces.
3081 'AB' => __( 'Abia', 'everest-forms' ),
3082 'FC' => __( 'Abuja', 'everest-forms' ),
3083 'AD' => __( 'Adamawa', 'everest-forms' ),
3084 'AK' => __( 'Akwa Ibom', 'everest-forms' ),
3085 'AN' => __( 'Anambra', 'everest-forms' ),
3086 'BA' => __( 'Bauchi', 'everest-forms' ),
3087 'BY' => __( 'Bayelsa', 'everest-forms' ),
3088 'BE' => __( 'Benue', 'everest-forms' ),
3089 'BO' => __( 'Borno', 'everest-forms' ),
3090 'CR' => __( 'Cross River', 'everest-forms' ),
3091 'DE' => __( 'Delta', 'everest-forms' ),
3092 'EB' => __( 'Ebonyi', 'everest-forms' ),
3093 'ED' => __( 'Edo', 'everest-forms' ),
3094 'EK' => __( 'Ekiti', 'everest-forms' ),
3095 'EN' => __( 'Enugu', 'everest-forms' ),
3096 'GO' => __( 'Gombe', 'everest-forms' ),
3097 'IM' => __( 'Imo', 'everest-forms' ),
3098 'JI' => __( 'Jigawa', 'everest-forms' ),
3099 'KD' => __( 'Kaduna', 'everest-forms' ),
3100 'KN' => __( 'Kano', 'everest-forms' ),
3101 'KT' => __( 'Katsina', 'everest-forms' ),
3102 'KE' => __( 'Kebbi', 'everest-forms' ),
3103 'KO' => __( 'Kogi', 'everest-forms' ),
3104 'KW' => __( 'Kwara', 'everest-forms' ),
3105 'LA' => __( 'Lagos', 'everest-forms' ),
3106 'NA' => __( 'Nasarawa', 'everest-forms' ),
3107 'NI' => __( 'Niger', 'everest-forms' ),
3108 'OG' => __( 'Ogun', 'everest-forms' ),
3109 'ON' => __( 'Ondo', 'everest-forms' ),
3110 'OS' => __( 'Osun', 'everest-forms' ),
3111 'OY' => __( 'Oyo', 'everest-forms' ),
3112 'PL' => __( 'Plateau', 'everest-forms' ),
3113 'RI' => __( 'Rivers', 'everest-forms' ),
3114 'SO' => __( 'Sokoto', 'everest-forms' ),
3115 'TA' => __( 'Taraba', 'everest-forms' ),
3116 'YO' => __( 'Yobe', 'everest-forms' ),
3117 'ZA' => __( 'Zamfara', 'everest-forms' ),
3118 ),
3119 'NL' => array(),
3120 'NO' => array(),
3121 'NP' => array( // Nepalese zones.
3122 'BAG' => __( 'Bagmati', 'everest-forms' ),
3123 'BHE' => __( 'Bheri', 'everest-forms' ),
3124 'DHA' => __( 'Dhaulagiri', 'everest-forms' ),
3125 'GAN' => __( 'Gandaki', 'everest-forms' ),
3126 'JAN' => __( 'Janakpur', 'everest-forms' ),
3127 'KAR' => __( 'Karnali', 'everest-forms' ),
3128 'KOS' => __( 'Koshi', 'everest-forms' ),
3129 'LUM' => __( 'Lumbini', 'everest-forms' ),
3130 'MAH' => __( 'Mahakali', 'everest-forms' ),
3131 'MEC' => __( 'Mechi', 'everest-forms' ),
3132 'NAR' => __( 'Narayani', 'everest-forms' ),
3133 'RAP' => __( 'Rapti', 'everest-forms' ),
3134 'SAG' => __( 'Sagarmatha', 'everest-forms' ),
3135 'SET' => __( 'Seti', 'everest-forms' ),
3136 ),
3137 'NI' => array( // Nicaraguan states.
3138 'NI-AN' => __( 'Atlántico Norte', 'everest-forms' ),
3139 'NI-AS' => __( 'Atlántico Sur', 'everest-forms' ),
3140 'NI-BO' => __( 'Boaco', 'everest-forms' ),
3141 'NI-CA' => __( 'Carazo', 'everest-forms' ),
3142 'NI-CI' => __( 'Chinandega', 'everest-forms' ),
3143 'NI-CO' => __( 'Chontales', 'everest-forms' ),
3144 'NI-ES' => __( 'Estelí', 'everest-forms' ),
3145 'NI-GR' => __( 'Granada', 'everest-forms' ),
3146 'NI-JI' => __( 'Jinotega', 'everest-forms' ),
3147 'NI-LE' => __( 'León', 'everest-forms' ),
3148 'NI-MD' => __( 'Madriz', 'everest-forms' ),
3149 'NI-MN' => __( 'Managua', 'everest-forms' ),
3150 'NI-MS' => __( 'Masaya', 'everest-forms' ),
3151 'NI-MT' => __( 'Matagalpa', 'everest-forms' ),
3152 'NI-NS' => __( 'Nueva Segovia', 'everest-forms' ),
3153 'NI-RI' => __( 'Rivas', 'everest-forms' ),
3154 'NI-SJ' => __( 'Río San Juan', 'everest-forms' ),
3155 ),
3156 'NZ' => array( // New Zealand states.
3157 'NL' => __( 'Northland', 'everest-forms' ),
3158 'AK' => __( 'Auckland', 'everest-forms' ),
3159 'WA' => __( 'Waikato', 'everest-forms' ),
3160 'BP' => __( 'Bay of Plenty', 'everest-forms' ),
3161 'TK' => __( 'Taranaki', 'everest-forms' ),
3162 'GI' => __( 'Gisborne', 'everest-forms' ),
3163 'HB' => __( 'Hawke’s Bay', 'everest-forms' ),
3164 'MW' => __( 'Manawatu-Wanganui', 'everest-forms' ),
3165 'WE' => __( 'Wellington', 'everest-forms' ),
3166 'NS' => __( 'Nelson', 'everest-forms' ),
3167 'MB' => __( 'Marlborough', 'everest-forms' ),
3168 'TM' => __( 'Tasman', 'everest-forms' ),
3169 'WC' => __( 'West Coast', 'everest-forms' ),
3170 'CT' => __( 'Canterbury', 'everest-forms' ),
3171 'OT' => __( 'Otago', 'everest-forms' ),
3172 'SL' => __( 'Southland', 'everest-forms' ),
3173 ),
3174 'PA' => array( // Panamanian states.
3175 'PA-1' => __( 'Bocas del Toro', 'everest-forms' ),
3176 'PA-2' => __( 'Coclé', 'everest-forms' ),
3177 'PA-3' => __( 'Colón', 'everest-forms' ),
3178 'PA-4' => __( 'Chiriquí', 'everest-forms' ),
3179 'PA-5' => __( 'Darién', 'everest-forms' ),
3180 'PA-6' => __( 'Herrera', 'everest-forms' ),
3181 'PA-7' => __( 'Los Santos', 'everest-forms' ),
3182 'PA-8' => __( 'Panamá', 'everest-forms' ),
3183 'PA-9' => __( 'Veraguas', 'everest-forms' ),
3184 'PA-10' => __( 'West Panamá', 'everest-forms' ),
3185 'PA-EM' => __( 'Emberá', 'everest-forms' ),
3186 'PA-KY' => __( 'Guna Yala', 'everest-forms' ),
3187 'PA-NB' => __( 'Ngöbe-Buglé', 'everest-forms' ),
3188 ),
3189 'PE' => array( // Peruvian states.
3190 'CAL' => __( 'El Callao', 'everest-forms' ),
3191 'LMA' => __( 'Municipalidad Metropolitana de Lima', 'everest-forms' ),
3192 'AMA' => __( 'Amazonas', 'everest-forms' ),
3193 'ANC' => __( 'Ancash', 'everest-forms' ),
3194 'APU' => __( 'Apurímac', 'everest-forms' ),
3195 'ARE' => __( 'Arequipa', 'everest-forms' ),
3196 'AYA' => __( 'Ayacucho', 'everest-forms' ),
3197 'CAJ' => __( 'Cajamarca', 'everest-forms' ),
3198 'CUS' => __( 'Cusco', 'everest-forms' ),
3199 'HUV' => __( 'Huancavelica', 'everest-forms' ),
3200 'HUC' => __( 'Huánuco', 'everest-forms' ),
3201 'ICA' => __( 'Ica', 'everest-forms' ),
3202 'JUN' => __( 'Junín', 'everest-forms' ),
3203 'LAL' => __( 'La Libertad', 'everest-forms' ),
3204 'LAM' => __( 'Lambayeque', 'everest-forms' ),
3205 'LIM' => __( 'Lima', 'everest-forms' ),
3206 'LOR' => __( 'Loreto', 'everest-forms' ),
3207 'MDD' => __( 'Madre de Dios', 'everest-forms' ),
3208 'MOQ' => __( 'Moquegua', 'everest-forms' ),
3209 'PAS' => __( 'Pasco', 'everest-forms' ),
3210 'PIU' => __( 'Piura', 'everest-forms' ),
3211 'PUN' => __( 'Puno', 'everest-forms' ),
3212 'SAM' => __( 'San Martín', 'everest-forms' ),
3213 'TAC' => __( 'Tacna', 'everest-forms' ),
3214 'TUM' => __( 'Tumbes', 'everest-forms' ),
3215 'UCA' => __( 'Ucayali', 'everest-forms' ),
3216 ),
3217 'PH' => array( // Philippine provinces.
3218 'ABR' => __( 'Abra', 'everest-forms' ),
3219 'AGN' => __( 'Agusan del Norte', 'everest-forms' ),
3220 'AGS' => __( 'Agusan del Sur', 'everest-forms' ),
3221 'AKL' => __( 'Aklan', 'everest-forms' ),
3222 'ALB' => __( 'Albay', 'everest-forms' ),
3223 'ANT' => __( 'Antique', 'everest-forms' ),
3224 'APA' => __( 'Apayao', 'everest-forms' ),
3225 'AUR' => __( 'Aurora', 'everest-forms' ),
3226 'BAS' => __( 'Basilan', 'everest-forms' ),
3227 'BAN' => __( 'Bataan', 'everest-forms' ),
3228 'BTN' => __( 'Batanes', 'everest-forms' ),
3229 'BTG' => __( 'Batangas', 'everest-forms' ),
3230 'BEN' => __( 'Benguet', 'everest-forms' ),
3231 'BIL' => __( 'Biliran', 'everest-forms' ),
3232 'BOH' => __( 'Bohol', 'everest-forms' ),
3233 'BUK' => __( 'Bukidnon', 'everest-forms' ),
3234 'BUL' => __( 'Bulacan', 'everest-forms' ),
3235 'CAG' => __( 'Cagayan', 'everest-forms' ),
3236 'CAN' => __( 'Camarines Norte', 'everest-forms' ),
3237 'CAS' => __( 'Camarines Sur', 'everest-forms' ),
3238 'CAM' => __( 'Camiguin', 'everest-forms' ),
3239 'CAP' => __( 'Capiz', 'everest-forms' ),
3240 'CAT' => __( 'Catanduanes', 'everest-forms' ),
3241 'CAV' => __( 'Cavite', 'everest-forms' ),
3242 'CEB' => __( 'Cebu', 'everest-forms' ),
3243 'COM' => __( 'Compostela Valley', 'everest-forms' ),
3244 'NCO' => __( 'Cotabato', 'everest-forms' ),
3245 'DAV' => __( 'Davao del Norte', 'everest-forms' ),
3246 'DAS' => __( 'Davao del Sur', 'everest-forms' ),
3247 'DAC' => __( 'Davao Occidental', 'everest-forms' ),
3248 'DAO' => __( 'Davao Oriental', 'everest-forms' ),
3249 'DIN' => __( 'Dinagat Islands', 'everest-forms' ),
3250 'EAS' => __( 'Eastern Samar', 'everest-forms' ),
3251 'GUI' => __( 'Guimaras', 'everest-forms' ),
3252 'IFU' => __( 'Ifugao', 'everest-forms' ),
3253 'ILN' => __( 'Ilocos Norte', 'everest-forms' ),
3254 'ILS' => __( 'Ilocos Sur', 'everest-forms' ),
3255 'ILI' => __( 'Iloilo', 'everest-forms' ),
3256 'ISA' => __( 'Isabela', 'everest-forms' ),
3257 'KAL' => __( 'Kalinga', 'everest-forms' ),
3258 'LUN' => __( 'La Union', 'everest-forms' ),
3259 'LAG' => __( 'Laguna', 'everest-forms' ),
3260 'LAN' => __( 'Lanao del Norte', 'everest-forms' ),
3261 'LAS' => __( 'Lanao del Sur', 'everest-forms' ),
3262 'LEY' => __( 'Leyte', 'everest-forms' ),
3263 'MAG' => __( 'Maguindanao', 'everest-forms' ),
3264 'MAD' => __( 'Marinduque', 'everest-forms' ),
3265 'MAS' => __( 'Masbate', 'everest-forms' ),
3266 'MSC' => __( 'Misamis Occidental', 'everest-forms' ),
3267 'MSR' => __( 'Misamis Oriental', 'everest-forms' ),
3268 'MOU' => __( 'Mountain Province', 'everest-forms' ),
3269 'NEC' => __( 'Negros Occidental', 'everest-forms' ),
3270 'NER' => __( 'Negros Oriental', 'everest-forms' ),
3271 'NSA' => __( 'Northern Samar', 'everest-forms' ),
3272 'NUE' => __( 'Nueva Ecija', 'everest-forms' ),
3273 'NUV' => __( 'Nueva Vizcaya', 'everest-forms' ),
3274 'MDC' => __( 'Occidental Mindoro', 'everest-forms' ),
3275 'MDR' => __( 'Oriental Mindoro', 'everest-forms' ),
3276 'PLW' => __( 'Palawan', 'everest-forms' ),
3277 'PAM' => __( 'Pampanga', 'everest-forms' ),
3278 'PAN' => __( 'Pangasinan', 'everest-forms' ),
3279 'QUE' => __( 'Quezon', 'everest-forms' ),
3280 'QUI' => __( 'Quirino', 'everest-forms' ),
3281 'RIZ' => __( 'Rizal', 'everest-forms' ),
3282 'ROM' => __( 'Romblon', 'everest-forms' ),
3283 'WSA' => __( 'Samar', 'everest-forms' ),
3284 'SAR' => __( 'Sarangani', 'everest-forms' ),
3285 'SIQ' => __( 'Siquijor', 'everest-forms' ),
3286 'SOR' => __( 'Sorsogon', 'everest-forms' ),
3287 'SCO' => __( 'South Cotabato', 'everest-forms' ),
3288 'SLE' => __( 'Southern Leyte', 'everest-forms' ),
3289 'SUK' => __( 'Sultan Kudarat', 'everest-forms' ),
3290 'SLU' => __( 'Sulu', 'everest-forms' ),
3291 'SUN' => __( 'Surigao del Norte', 'everest-forms' ),
3292 'SUR' => __( 'Surigao del Sur', 'everest-forms' ),
3293 'TAR' => __( 'Tarlac', 'everest-forms' ),
3294 'TAW' => __( 'Tawi-Tawi', 'everest-forms' ),
3295 'ZMB' => __( 'Zambales', 'everest-forms' ),
3296 'ZAN' => __( 'Zamboanga del Norte', 'everest-forms' ),
3297 'ZAS' => __( 'Zamboanga del Sur', 'everest-forms' ),
3298 'ZSI' => __( 'Zamboanga Sibugay', 'everest-forms' ),
3299 '00' => __( 'Metro Manila', 'everest-forms' ),
3300 ),
3301 'PK' => array( // Pakistani states.
3302 'JK' => __( 'Azad Kashmir', 'everest-forms' ),
3303 'BA' => __( 'Balochistan', 'everest-forms' ),
3304 'TA' => __( 'FATA', 'everest-forms' ),
3305 'GB' => __( 'Gilgit Baltistan', 'everest-forms' ),
3306 'IS' => __( 'Islamabad Capital Territory', 'everest-forms' ),
3307 'KP' => __( 'Khyber Pakhtunkhwa', 'everest-forms' ),
3308 'PB' => __( 'Punjab', 'everest-forms' ),
3309 'SD' => __( 'Sindh', 'everest-forms' ),
3310 ),
3311 'PL' => array(),
3312 'PR' => array(),
3313 'PT' => array(),
3314 'PY' => array( // Paraguayan states.
3315 'PY-ASU' => __( 'Asunción', 'everest-forms' ),
3316 'PY-1' => __( 'Concepción', 'everest-forms' ),
3317 'PY-2' => __( 'San Pedro', 'everest-forms' ),
3318 'PY-3' => __( 'Cordillera', 'everest-forms' ),
3319 'PY-4' => __( 'Guairá', 'everest-forms' ),
3320 'PY-5' => __( 'Caaguazú', 'everest-forms' ),
3321 'PY-6' => __( 'Caazapá', 'everest-forms' ),
3322 'PY-7' => __( 'Itapúa', 'everest-forms' ),
3323 'PY-8' => __( 'Misiones', 'everest-forms' ),
3324 'PY-9' => __( 'Paraguarí', 'everest-forms' ),
3325 'PY-10' => __( 'Alto Paraná', 'everest-forms' ),
3326 'PY-11' => __( 'Central', 'everest-forms' ),
3327 'PY-12' => __( 'Ñeembucú', 'everest-forms' ),
3328 'PY-13' => __( 'Amambay', 'everest-forms' ),
3329 'PY-14' => __( 'Canindeyú', 'everest-forms' ),
3330 'PY-15' => __( 'Presidente Hayes', 'everest-forms' ),
3331 'PY-16' => __( 'Alto Paraguay', 'everest-forms' ),
3332 'PY-17' => __( 'Boquerón', 'everest-forms' ),
3333 ),
3334 'RE' => array(),
3335 'RO' => array( // Romanian states.
3336 'AB' => __( 'Alba', 'everest-forms' ),
3337 'AR' => __( 'Arad', 'everest-forms' ),
3338 'AG' => __( 'Argeș', 'everest-forms' ),
3339 'BC' => __( 'Bacău', 'everest-forms' ),
3340 'BH' => __( 'Bihor', 'everest-forms' ),
3341 'BN' => __( 'Bistrița-Năsăud', 'everest-forms' ),
3342 'BT' => __( 'Botoșani', 'everest-forms' ),
3343 'BR' => __( 'Brăila', 'everest-forms' ),
3344 'BV' => __( 'Brașov', 'everest-forms' ),
3345 'B' => __( 'București', 'everest-forms' ),
3346 'BZ' => __( 'Buzău', 'everest-forms' ),
3347 'CL' => __( 'Călărași', 'everest-forms' ),
3348 'CS' => __( 'Caraș-Severin', 'everest-forms' ),
3349 'CJ' => __( 'Cluj', 'everest-forms' ),
3350 'CT' => __( 'Constanța', 'everest-forms' ),
3351 'CV' => __( 'Covasna', 'everest-forms' ),
3352 'DB' => __( 'Dâmbovița', 'everest-forms' ),
3353 'DJ' => __( 'Dolj', 'everest-forms' ),
3354 'GL' => __( 'Galați', 'everest-forms' ),
3355 'GR' => __( 'Giurgiu', 'everest-forms' ),
3356 'GJ' => __( 'Gorj', 'everest-forms' ),
3357 'HR' => __( 'Harghita', 'everest-forms' ),
3358 'HD' => __( 'Hunedoara', 'everest-forms' ),
3359 'IL' => __( 'Ialomița', 'everest-forms' ),
3360 'IS' => __( 'Iași', 'everest-forms' ),
3361 'IF' => __( 'Ilfov', 'everest-forms' ),
3362 'MM' => __( 'Maramureș', 'everest-forms' ),
3363 'MH' => __( 'Mehedinți', 'everest-forms' ),
3364 'MS' => __( 'Mureș', 'everest-forms' ),
3365 'NT' => __( 'Neamț', 'everest-forms' ),
3366 'OT' => __( 'Olt', 'everest-forms' ),
3367 'PH' => __( 'Prahova', 'everest-forms' ),
3368 'SJ' => __( 'Sălaj', 'everest-forms' ),
3369 'SM' => __( 'Satu Mare', 'everest-forms' ),
3370 'SB' => __( 'Sibiu', 'everest-forms' ),
3371 'SV' => __( 'Suceava', 'everest-forms' ),
3372 'TR' => __( 'Teleorman', 'everest-forms' ),
3373 'TM' => __( 'Timiș', 'everest-forms' ),
3374 'TL' => __( 'Tulcea', 'everest-forms' ),
3375 'VL' => __( 'Vâlcea', 'everest-forms' ),
3376 'VS' => __( 'Vaslui', 'everest-forms' ),
3377 'VN' => __( 'Vrancea', 'everest-forms' ),
3378 ),
3379 'SG' => array(),
3380 'SK' => array(),
3381 'SI' => array(),
3382 'SV' => array( // Salvadoran states.
3383 'SV-AH' => __( 'Ahuachapán', 'everest-forms' ),
3384 'SV-CA' => __( 'Cabañas', 'everest-forms' ),
3385 'SV-CH' => __( 'Chalatenango', 'everest-forms' ),
3386 'SV-CU' => __( 'Cuscatlán', 'everest-forms' ),
3387 'SV-LI' => __( 'La Libertad', 'everest-forms' ),
3388 'SV-MO' => __( 'Morazán', 'everest-forms' ),
3389 'SV-PA' => __( 'La Paz', 'everest-forms' ),
3390 'SV-SA' => __( 'Santa Ana', 'everest-forms' ),
3391 'SV-SM' => __( 'San Miguel', 'everest-forms' ),
3392 'SV-SO' => __( 'Sonsonate', 'everest-forms' ),
3393 'SV-SS' => __( 'San Salvador', 'everest-forms' ),
3394 'SV-SV' => __( 'San Vicente', 'everest-forms' ),
3395 'SV-UN' => __( 'La Unión', 'everest-forms' ),
3396 'SV-US' => __( 'Usulután', 'everest-forms' ),
3397 ),
3398 'TH' => array( // Thai states.
3399 'TH-37' => __( 'Amnat Charoen', 'everest-forms' ),
3400 'TH-15' => __( 'Ang Thong', 'everest-forms' ),
3401 'TH-14' => __( 'Ayutthaya', 'everest-forms' ),
3402 'TH-10' => __( 'Bangkok', 'everest-forms' ),
3403 'TH-38' => __( 'Bueng Kan', 'everest-forms' ),
3404 'TH-31' => __( 'Buri Ram', 'everest-forms' ),
3405 'TH-24' => __( 'Chachoengsao', 'everest-forms' ),
3406 'TH-18' => __( 'Chai Nat', 'everest-forms' ),
3407 'TH-36' => __( 'Chaiyaphum', 'everest-forms' ),
3408 'TH-22' => __( 'Chanthaburi', 'everest-forms' ),
3409 'TH-50' => __( 'Chiang Mai', 'everest-forms' ),
3410 'TH-57' => __( 'Chiang Rai', 'everest-forms' ),
3411 'TH-20' => __( 'Chonburi', 'everest-forms' ),
3412 'TH-86' => __( 'Chumphon', 'everest-forms' ),
3413 'TH-46' => __( 'Kalasin', 'everest-forms' ),
3414 'TH-62' => __( 'Kamphaeng Phet', 'everest-forms' ),
3415 'TH-71' => __( 'Kanchanaburi', 'everest-forms' ),
3416 'TH-40' => __( 'Khon Kaen', 'everest-forms' ),
3417 'TH-81' => __( 'Krabi', 'everest-forms' ),
3418 'TH-52' => __( 'Lampang', 'everest-forms' ),
3419 'TH-51' => __( 'Lamphun', 'everest-forms' ),
3420 'TH-42' => __( 'Loei', 'everest-forms' ),
3421 'TH-16' => __( 'Lopburi', 'everest-forms' ),
3422 'TH-58' => __( 'Mae Hong Son', 'everest-forms' ),
3423 'TH-44' => __( 'Maha Sarakham', 'everest-forms' ),
3424 'TH-49' => __( 'Mukdahan', 'everest-forms' ),
3425 'TH-26' => __( 'Nakhon Nayok', 'everest-forms' ),
3426 'TH-73' => __( 'Nakhon Pathom', 'everest-forms' ),
3427 'TH-48' => __( 'Nakhon Phanom', 'everest-forms' ),
3428 'TH-30' => __( 'Nakhon Ratchasima', 'everest-forms' ),
3429 'TH-60' => __( 'Nakhon Sawan', 'everest-forms' ),
3430 'TH-80' => __( 'Nakhon Si Thammarat', 'everest-forms' ),
3431 'TH-55' => __( 'Nan', 'everest-forms' ),
3432 'TH-96' => __( 'Narathiwat', 'everest-forms' ),
3433 'TH-39' => __( 'Nong Bua Lam Phu', 'everest-forms' ),
3434 'TH-43' => __( 'Nong Khai', 'everest-forms' ),
3435 'TH-12' => __( 'Nonthaburi', 'everest-forms' ),
3436 'TH-13' => __( 'Pathum Thani', 'everest-forms' ),
3437 'TH-94' => __( 'Pattani', 'everest-forms' ),
3438 'TH-82' => __( 'Phang Nga', 'everest-forms' ),
3439 'TH-93' => __( 'Phatthalung', 'everest-forms' ),
3440 'TH-56' => __( 'Phayao', 'everest-forms' ),
3441 'TH-67' => __( 'Phetchabun', 'everest-forms' ),
3442 'TH-76' => __( 'Phetchaburi', 'everest-forms' ),
3443 'TH-66' => __( 'Phichit', 'everest-forms' ),
3444 'TH-65' => __( 'Phitsanulok', 'everest-forms' ),
3445 'TH-54' => __( 'Phrae', 'everest-forms' ),
3446 'TH-83' => __( 'Phuket', 'everest-forms' ),
3447 'TH-25' => __( 'Prachin Buri', 'everest-forms' ),
3448 'TH-77' => __( 'Prachuap Khiri Khan', 'everest-forms' ),
3449 'TH-85' => __( 'Ranong', 'everest-forms' ),
3450 'TH-70' => __( 'Ratchaburi', 'everest-forms' ),
3451 'TH-21' => __( 'Rayong', 'everest-forms' ),
3452 'TH-45' => __( 'Roi Et', 'everest-forms' ),
3453 'TH-27' => __( 'Sa Kaeo', 'everest-forms' ),
3454 'TH-47' => __( 'Sakon Nakhon', 'everest-forms' ),
3455 'TH-11' => __( 'Samut Prakan', 'everest-forms' ),
3456 'TH-74' => __( 'Samut Sakhon', 'everest-forms' ),
3457 'TH-75' => __( 'Samut Songkhram', 'everest-forms' ),
3458 'TH-19' => __( 'Saraburi', 'everest-forms' ),
3459 'TH-91' => __( 'Satun', 'everest-forms' ),
3460 'TH-17' => __( 'Sing Buri', 'everest-forms' ),
3461 'TH-33' => __( 'Sisaket', 'everest-forms' ),
3462 'TH-90' => __( 'Songkhla', 'everest-forms' ),
3463 'TH-64' => __( 'Sukhothai', 'everest-forms' ),
3464 'TH-72' => __( 'Suphan Buri', 'everest-forms' ),
3465 'TH-84' => __( 'Surat Thani', 'everest-forms' ),
3466 'TH-32' => __( 'Surin', 'everest-forms' ),
3467 'TH-63' => __( 'Tak', 'everest-forms' ),
3468 'TH-92' => __( 'Trang', 'everest-forms' ),
3469 'TH-23' => __( 'Trat', 'everest-forms' ),
3470 'TH-34' => __( 'Ubon Ratchathani', 'everest-forms' ),
3471 'TH-41' => __( 'Udon Thani', 'everest-forms' ),
3472 'TH-61' => __( 'Uthai Thani', 'everest-forms' ),
3473 'TH-53' => __( 'Uttaradit', 'everest-forms' ),
3474 'TH-95' => __( 'Yala', 'everest-forms' ),
3475 'TH-35' => __( 'Yasothon', 'everest-forms' ),
3476 ),
3477 'TR' => array( // Turkish states.
3478 'TR01' => __( 'Adana', 'everest-forms' ),
3479 'TR02' => __( 'Adıyaman', 'everest-forms' ),
3480 'TR03' => __( 'Afyon', 'everest-forms' ),
3481 'TR04' => __( 'Ağrı', 'everest-forms' ),
3482 'TR05' => __( 'Amasya', 'everest-forms' ),
3483 'TR06' => __( 'Ankara', 'everest-forms' ),
3484 'TR07' => __( 'Antalya', 'everest-forms' ),
3485 'TR08' => __( 'Artvin', 'everest-forms' ),
3486 'TR09' => __( 'Aydın', 'everest-forms' ),
3487 'TR10' => __( 'Balıkesir', 'everest-forms' ),
3488 'TR11' => __( 'Bilecik', 'everest-forms' ),
3489 'TR12' => __( 'Bingöl', 'everest-forms' ),
3490 'TR13' => __( 'Bitlis', 'everest-forms' ),
3491 'TR14' => __( 'Bolu', 'everest-forms' ),
3492 'TR15' => __( 'Burdur', 'everest-forms' ),
3493 'TR16' => __( 'Bursa', 'everest-forms' ),
3494 'TR17' => __( 'Çanakkale', 'everest-forms' ),
3495 'TR18' => __( 'Çankırı', 'everest-forms' ),
3496 'TR19' => __( 'Çorum', 'everest-forms' ),
3497 'TR20' => __( 'Denizli', 'everest-forms' ),
3498 'TR21' => __( 'Diyarbakır', 'everest-forms' ),
3499 'TR22' => __( 'Edirne', 'everest-forms' ),
3500 'TR23' => __( 'Elazığ', 'everest-forms' ),
3501 'TR24' => __( 'Erzincan', 'everest-forms' ),
3502 'TR25' => __( 'Erzurum', 'everest-forms' ),
3503 'TR26' => __( 'Eskişehir', 'everest-forms' ),
3504 'TR27' => __( 'Gaziantep', 'everest-forms' ),
3505 'TR28' => __( 'Giresun', 'everest-forms' ),
3506 'TR29' => __( 'Gümüşhane', 'everest-forms' ),
3507 'TR30' => __( 'Hakkari', 'everest-forms' ),
3508 'TR31' => __( 'Hatay', 'everest-forms' ),
3509 'TR32' => __( 'Isparta', 'everest-forms' ),
3510 'TR33' => __( 'İçel', 'everest-forms' ),
3511 'TR34' => __( 'İstanbul', 'everest-forms' ),
3512 'TR35' => __( 'İzmir', 'everest-forms' ),
3513 'TR36' => __( 'Kars', 'everest-forms' ),
3514 'TR37' => __( 'Kastamonu', 'everest-forms' ),
3515 'TR38' => __( 'Kayseri', 'everest-forms' ),
3516 'TR39' => __( 'Kırklareli', 'everest-forms' ),
3517 'TR40' => __( 'Kırşehir', 'everest-forms' ),
3518 'TR41' => __( 'Kocaeli', 'everest-forms' ),
3519 'TR42' => __( 'Konya', 'everest-forms' ),
3520 'TR43' => __( 'Kütahya', 'everest-forms' ),
3521 'TR44' => __( 'Malatya', 'everest-forms' ),
3522 'TR45' => __( 'Manisa', 'everest-forms' ),
3523 'TR46' => __( 'Kahramanmaraş', 'everest-forms' ),
3524 'TR47' => __( 'Mardin', 'everest-forms' ),
3525 'TR48' => __( 'Muğla', 'everest-forms' ),
3526 'TR49' => __( 'Muş', 'everest-forms' ),
3527 'TR50' => __( 'Nevşehir', 'everest-forms' ),
3528 'TR51' => __( 'Niğde', 'everest-forms' ),
3529 'TR52' => __( 'Ordu', 'everest-forms' ),
3530 'TR53' => __( 'Rize', 'everest-forms' ),
3531 'TR54' => __( 'Sakarya', 'everest-forms' ),
3532 'TR55' => __( 'Samsun', 'everest-forms' ),
3533 'TR56' => __( 'Siirt', 'everest-forms' ),
3534 'TR57' => __( 'Sinop', 'everest-forms' ),
3535 'TR58' => __( 'Sivas', 'everest-forms' ),
3536 'TR59' => __( 'Tekirdağ', 'everest-forms' ),
3537 'TR60' => __( 'Tokat', 'everest-forms' ),
3538 'TR61' => __( 'Trabzon', 'everest-forms' ),
3539 'TR62' => __( 'Tunceli', 'everest-forms' ),
3540 'TR63' => __( 'Şanlıurfa', 'everest-forms' ),
3541 'TR64' => __( 'Uşak', 'everest-forms' ),
3542 'TR65' => __( 'Van', 'everest-forms' ),
3543 'TR66' => __( 'Yozgat', 'everest-forms' ),
3544 'TR67' => __( 'Zonguldak', 'everest-forms' ),
3545 'TR68' => __( 'Aksaray', 'everest-forms' ),
3546 'TR69' => __( 'Bayburt', 'everest-forms' ),
3547 'TR70' => __( 'Karaman', 'everest-forms' ),
3548 'TR71' => __( 'Kırıkkale', 'everest-forms' ),
3549 'TR72' => __( 'Batman', 'everest-forms' ),
3550 'TR73' => __( 'Şırnak', 'everest-forms' ),
3551 'TR74' => __( 'Bartın', 'everest-forms' ),
3552 'TR75' => __( 'Ardahan', 'everest-forms' ),
3553 'TR76' => __( 'Iğdır', 'everest-forms' ),
3554 'TR77' => __( 'Yalova', 'everest-forms' ),
3555 'TR78' => __( 'Karabük', 'everest-forms' ),
3556 'TR79' => __( 'Kilis', 'everest-forms' ),
3557 'TR80' => __( 'Osmaniye', 'everest-forms' ),
3558 'TR81' => __( 'Düzce', 'everest-forms' ),
3559 ),
3560 'TZ' => array( // Tanzanian states.
3561 'TZ01' => __( 'Arusha', 'everest-forms' ),
3562 'TZ02' => __( 'Dar es Salaam', 'everest-forms' ),
3563 'TZ03' => __( 'Dodoma', 'everest-forms' ),
3564 'TZ04' => __( 'Iringa', 'everest-forms' ),
3565 'TZ05' => __( 'Kagera', 'everest-forms' ),
3566 'TZ06' => __( 'Pemba North', 'everest-forms' ),
3567 'TZ07' => __( 'Zanzibar North', 'everest-forms' ),
3568 'TZ08' => __( 'Kigoma', 'everest-forms' ),
3569 'TZ09' => __( 'Kilimanjaro', 'everest-forms' ),
3570 'TZ10' => __( 'Pemba South', 'everest-forms' ),
3571 'TZ11' => __( 'Zanzibar South', 'everest-forms' ),
3572 'TZ12' => __( 'Lindi', 'everest-forms' ),
3573 'TZ13' => __( 'Mara', 'everest-forms' ),
3574 'TZ14' => __( 'Mbeya', 'everest-forms' ),
3575 'TZ15' => __( 'Zanzibar West', 'everest-forms' ),
3576 'TZ16' => __( 'Morogoro', 'everest-forms' ),
3577 'TZ17' => __( 'Mtwara', 'everest-forms' ),
3578 'TZ18' => __( 'Mwanza', 'everest-forms' ),
3579 'TZ19' => __( 'Coast', 'everest-forms' ),
3580 'TZ20' => __( 'Rukwa', 'everest-forms' ),
3581 'TZ21' => __( 'Ruvuma', 'everest-forms' ),
3582 'TZ22' => __( 'Shinyanga', 'everest-forms' ),
3583 'TZ23' => __( 'Singida', 'everest-forms' ),
3584 'TZ24' => __( 'Tabora', 'everest-forms' ),
3585 'TZ25' => __( 'Tanga', 'everest-forms' ),
3586 'TZ26' => __( 'Manyara', 'everest-forms' ),
3587 'TZ27' => __( 'Geita', 'everest-forms' ),
3588 'TZ28' => __( 'Katavi', 'everest-forms' ),
3589 'TZ29' => __( 'Njombe', 'everest-forms' ),
3590 'TZ30' => __( 'Simiyu', 'everest-forms' ),
3591 ),
3592 'LK' => array(),
3593 'RS' => array( // Serbian districts.
3594 'RS00' => _x( 'Belgrade', 'district', 'everest-forms' ),
3595 'RS14' => _x( 'Bor', 'district', 'everest-forms' ),
3596 'RS11' => _x( 'Braničevo', 'district', 'everest-forms' ),
3597 'RS02' => _x( 'Central Banat', 'district', 'everest-forms' ),
3598 'RS10' => _x( 'Danube', 'district', 'everest-forms' ),
3599 'RS23' => _x( 'Jablanica', 'district', 'everest-forms' ),
3600 'RS09' => _x( 'Kolubara', 'district', 'everest-forms' ),
3601 'RS08' => _x( 'Mačva', 'district', 'everest-forms' ),
3602 'RS17' => _x( 'Morava', 'district', 'everest-forms' ),
3603 'RS20' => _x( 'Nišava', 'district', 'everest-forms' ),
3604 'RS01' => _x( 'North Bačka', 'district', 'everest-forms' ),
3605 'RS03' => _x( 'North Banat', 'district', 'everest-forms' ),
3606 'RS24' => _x( 'Pčinja', 'district', 'everest-forms' ),
3607 'RS22' => _x( 'Pirot', 'district', 'everest-forms' ),
3608 'RS13' => _x( 'Pomoravlje', 'district', 'everest-forms' ),
3609 'RS19' => _x( 'Rasina', 'district', 'everest-forms' ),
3610 'RS18' => _x( 'Raška', 'district', 'everest-forms' ),
3611 'RS06' => _x( 'South Bačka', 'district', 'everest-forms' ),
3612 'RS04' => _x( 'South Banat', 'district', 'everest-forms' ),
3613 'RS07' => _x( 'Srem', 'district', 'everest-forms' ),
3614 'RS12' => _x( 'Šumadija', 'district', 'everest-forms' ),
3615 'RS21' => _x( 'Toplica', 'district', 'everest-forms' ),
3616 'RS05' => _x( 'West Bačka', 'district', 'everest-forms' ),
3617 'RS15' => _x( 'Zaječar', 'district', 'everest-forms' ),
3618 'RS16' => _x( 'Zlatibor', 'district', 'everest-forms' ),
3619 'RS25' => _x( 'Kosovo', 'district', 'everest-forms' ),
3620 'RS26' => _x( 'Peć', 'district', 'everest-forms' ),
3621 'RS27' => _x( 'Prizren', 'district', 'everest-forms' ),
3622 'RS28' => _x( 'Kosovska Mitrovica', 'district', 'everest-forms' ),
3623 'RS29' => _x( 'Kosovo-Pomoravlje', 'district', 'everest-forms' ),
3624 'RSKM' => _x( 'Kosovo-Metohija', 'district', 'everest-forms' ),
3625 'RSVO' => _x( 'Vojvodina', 'district', 'everest-forms' ),
3626 ),
3627 'SE' => array(),
3628 'UA' => array( // Ukrainian oblasts.
3629 'VN' => __( 'Vinnytsia Oblast', 'everest-forms' ),
3630 'VL' => __( 'Volyn Oblast', 'everest-forms' ),
3631 'DP' => __( 'Dnipropetrovsk Oblast', 'everest-forms' ),
3632 'DT' => __( 'Donetsk Oblast', 'everest-forms' ),
3633 'ZT' => __( 'Zhytomyr Oblast', 'everest-forms' ),
3634 'ZK' => __( 'Zakarpattia Oblast', 'everest-forms' ),
3635 'ZP' => __( 'Zaporizhzhia Oblast', 'everest-forms' ),
3636 'IF' => __( 'Ivano-Frankivsk Oblast', 'everest-forms' ),
3637 'KV' => __( 'Kyiv Oblast', 'everest-forms' ),
3638 'KH' => __( 'Kirovohrad Oblast', 'everest-forms' ),
3639 'LH' => __( 'Luhansk Oblast', 'everest-forms' ),
3640 'LV' => __( 'Lviv Oblast', 'everest-forms' ),
3641 'MY' => __( 'Mykolaiv Oblast', 'everest-forms' ),
3642 'OD' => __( 'Odessa Oblast', 'everest-forms' ),
3643 'PL' => __( 'Poltava Oblast', 'everest-forms' ),
3644 'RV' => __( 'Rivne Oblast', 'everest-forms' ),
3645 'SM' => __( 'Sumy Oblast', 'everest-forms' ),
3646 'TP' => __( 'Ternopil Oblast', 'everest-forms' ),
3647 'KK' => __( 'Kharkiv Oblast', 'everest-forms' ),
3648 'KS' => __( 'Kherson Oblast', 'everest-forms' ),
3649 'KM' => __( 'Khmelnytskyi Oblast', 'everest-forms' ),
3650 'CK' => __( 'Cherkasy Oblast', 'everest-forms' ),
3651 'CH' => __( 'Chernihiv Oblast', 'everest-forms' ),
3652 'CV' => __( 'Chernivtsi Oblast', 'everest-forms' ),
3653 ),
3654 'UG' => array( // Ugandan districts.
3655 'UG314' => __( 'Abim', 'everest-forms' ),
3656 'UG301' => __( 'Adjumani', 'everest-forms' ),
3657 'UG322' => __( 'Agago', 'everest-forms' ),
3658 'UG323' => __( 'Alebtong', 'everest-forms' ),
3659 'UG315' => __( 'Amolatar', 'everest-forms' ),
3660 'UG324' => __( 'Amudat', 'everest-forms' ),
3661 'UG216' => __( 'Amuria', 'everest-forms' ),
3662 'UG316' => __( 'Amuru', 'everest-forms' ),
3663 'UG302' => __( 'Apac', 'everest-forms' ),
3664 'UG303' => __( 'Arua', 'everest-forms' ),
3665 'UG217' => __( 'Budaka', 'everest-forms' ),
3666 'UG218' => __( 'Bududa', 'everest-forms' ),
3667 'UG201' => __( 'Bugiri', 'everest-forms' ),
3668 'UG235' => __( 'Bugweri', 'everest-forms' ),
3669 'UG420' => __( 'Buhweju', 'everest-forms' ),
3670 'UG117' => __( 'Buikwe', 'everest-forms' ),
3671 'UG219' => __( 'Bukedea', 'everest-forms' ),
3672 'UG118' => __( 'Bukomansimbi', 'everest-forms' ),
3673 'UG220' => __( 'Bukwa', 'everest-forms' ),
3674 'UG225' => __( 'Bulambuli', 'everest-forms' ),
3675 'UG416' => __( 'Buliisa', 'everest-forms' ),
3676 'UG401' => __( 'Bundibugyo', 'everest-forms' ),
3677 'UG430' => __( 'Bunyangabu', 'everest-forms' ),
3678 'UG402' => __( 'Bushenyi', 'everest-forms' ),
3679 'UG202' => __( 'Busia', 'everest-forms' ),
3680 'UG221' => __( 'Butaleja', 'everest-forms' ),
3681 'UG119' => __( 'Butambala', 'everest-forms' ),
3682 'UG233' => __( 'Butebo', 'everest-forms' ),
3683 'UG120' => __( 'Buvuma', 'everest-forms' ),
3684 'UG226' => __( 'Buyende', 'everest-forms' ),
3685 'UG317' => __( 'Dokolo', 'everest-forms' ),
3686 'UG121' => __( 'Gomba', 'everest-forms' ),
3687 'UG304' => __( 'Gulu', 'everest-forms' ),
3688 'UG403' => __( 'Hoima', 'everest-forms' ),
3689 'UG417' => __( 'Ibanda', 'everest-forms' ),
3690 'UG203' => __( 'Iganga', 'everest-forms' ),
3691 'UG418' => __( 'Isingiro', 'everest-forms' ),
3692 'UG204' => __( 'Jinja', 'everest-forms' ),
3693 'UG318' => __( 'Kaabong', 'everest-forms' ),
3694 'UG404' => __( 'Kabale', 'everest-forms' ),
3695 'UG405' => __( 'Kabarole', 'everest-forms' ),
3696 'UG213' => __( 'Kaberamaido', 'everest-forms' ),
3697 'UG427' => __( 'Kagadi', 'everest-forms' ),
3698 'UG428' => __( 'Kakumiro', 'everest-forms' ),
3699 'UG101' => __( 'Kalangala', 'everest-forms' ),
3700 'UG222' => __( 'Kaliro', 'everest-forms' ),
3701 'UG122' => __( 'Kalungu', 'everest-forms' ),
3702 'UG102' => __( 'Kampala', 'everest-forms' ),
3703 'UG205' => __( 'Kamuli', 'everest-forms' ),
3704 'UG413' => __( 'Kamwenge', 'everest-forms' ),
3705 'UG414' => __( 'Kanungu', 'everest-forms' ),
3706 'UG206' => __( 'Kapchorwa', 'everest-forms' ),
3707 'UG236' => __( 'Kapelebyong', 'everest-forms' ),
3708 'UG126' => __( 'Kasanda', 'everest-forms' ),
3709 'UG406' => __( 'Kasese', 'everest-forms' ),
3710 'UG207' => __( 'Katakwi', 'everest-forms' ),
3711 'UG112' => __( 'Kayunga', 'everest-forms' ),
3712 'UG407' => __( 'Kibaale', 'everest-forms' ),
3713 'UG103' => __( 'Kiboga', 'everest-forms' ),
3714 'UG227' => __( 'Kibuku', 'everest-forms' ),
3715 'UG432' => __( 'Kikuube', 'everest-forms' ),
3716 'UG419' => __( 'Kiruhura', 'everest-forms' ),
3717 'UG421' => __( 'Kiryandongo', 'everest-forms' ),
3718 'UG408' => __( 'Kisoro', 'everest-forms' ),
3719 'UG305' => __( 'Kitgum', 'everest-forms' ),
3720 'UG319' => __( 'Koboko', 'everest-forms' ),
3721 'UG325' => __( 'Kole', 'everest-forms' ),
3722 'UG306' => __( 'Kotido', 'everest-forms' ),
3723 'UG208' => __( 'Kumi', 'everest-forms' ),
3724 'UG333' => __( 'Kwania', 'everest-forms' ),
3725 'UG228' => __( 'Kween', 'everest-forms' ),
3726 'UG123' => __( 'Kyankwanzi', 'everest-forms' ),
3727 'UG422' => __( 'Kyegegwa', 'everest-forms' ),
3728 'UG415' => __( 'Kyenjojo', 'everest-forms' ),
3729 'UG125' => __( 'Kyotera', 'everest-forms' ),
3730 'UG326' => __( 'Lamwo', 'everest-forms' ),
3731 'UG307' => __( 'Lira', 'everest-forms' ),
3732 'UG229' => __( 'Luuka', 'everest-forms' ),
3733 'UG104' => __( 'Luwero', 'everest-forms' ),
3734 'UG124' => __( 'Lwengo', 'everest-forms' ),
3735 'UG114' => __( 'Lyantonde', 'everest-forms' ),
3736 'UG223' => __( 'Manafwa', 'everest-forms' ),
3737 'UG320' => __( 'Maracha', 'everest-forms' ),
3738 'UG105' => __( 'Masaka', 'everest-forms' ),
3739 'UG409' => __( 'Masindi', 'everest-forms' ),
3740 'UG214' => __( 'Mayuge', 'everest-forms' ),
3741 'UG209' => __( 'Mbale', 'everest-forms' ),
3742 'UG410' => __( 'Mbarara', 'everest-forms' ),
3743 'UG423' => __( 'Mitooma', 'everest-forms' ),
3744 'UG115' => __( 'Mityana', 'everest-forms' ),
3745 'UG308' => __( 'Moroto', 'everest-forms' ),
3746 'UG309' => __( 'Moyo', 'everest-forms' ),
3747 'UG106' => __( 'Mpigi', 'everest-forms' ),
3748 'UG107' => __( 'Mubende', 'everest-forms' ),
3749 'UG108' => __( 'Mukono', 'everest-forms' ),
3750 'UG334' => __( 'Nabilatuk', 'everest-forms' ),
3751 'UG311' => __( 'Nakapiripirit', 'everest-forms' ),
3752 'UG116' => __( 'Nakaseke', 'everest-forms' ),
3753 'UG109' => __( 'Nakasongola', 'everest-forms' ),
3754 'UG230' => __( 'Namayingo', 'everest-forms' ),
3755 'UG234' => __( 'Namisindwa', 'everest-forms' ),
3756 'UG224' => __( 'Namutumba', 'everest-forms' ),
3757 'UG327' => __( 'Napak', 'everest-forms' ),
3758 'UG310' => __( 'Nebbi', 'everest-forms' ),
3759 'UG231' => __( 'Ngora', 'everest-forms' ),
3760 'UG424' => __( 'Ntoroko', 'everest-forms' ),
3761 'UG411' => __( 'Ntungamo', 'everest-forms' ),
3762 'UG328' => __( 'Nwoya', 'everest-forms' ),
3763 'UG331' => __( 'Omoro', 'everest-forms' ),
3764 'UG329' => __( 'Otuke', 'everest-forms' ),
3765 'UG321' => __( 'Oyam', 'everest-forms' ),
3766 'UG312' => __( 'Pader', 'everest-forms' ),
3767 'UG332' => __( 'Pakwach', 'everest-forms' ),
3768 'UG210' => __( 'Pallisa', 'everest-forms' ),
3769 'UG110' => __( 'Rakai', 'everest-forms' ),
3770 'UG429' => __( 'Rubanda', 'everest-forms' ),
3771 'UG425' => __( 'Rubirizi', 'everest-forms' ),
3772 'UG431' => __( 'Rukiga', 'everest-forms' ),
3773 'UG412' => __( 'Rukungiri', 'everest-forms' ),
3774 'UG111' => __( 'Sembabule', 'everest-forms' ),
3775 'UG232' => __( 'Serere', 'everest-forms' ),
3776 'UG426' => __( 'Sheema', 'everest-forms' ),
3777 'UG215' => __( 'Sironko', 'everest-forms' ),
3778 'UG211' => __( 'Soroti', 'everest-forms' ),
3779 'UG212' => __( 'Tororo', 'everest-forms' ),
3780 'UG113' => __( 'Wakiso', 'everest-forms' ),
3781 'UG313' => __( 'Yumbe', 'everest-forms' ),
3782 'UG330' => __( 'Zombo', 'everest-forms' ),
3783 ),
3784 'UM' => array(
3785 '81' => __( 'Baker Island', 'everest-forms' ),
3786 '84' => __( 'Howland Island', 'everest-forms' ),
3787 '86' => __( 'Jarvis Island', 'everest-forms' ),
3788 '67' => __( 'Johnston Atoll', 'everest-forms' ),
3789 '89' => __( 'Kingman Reef', 'everest-forms' ),
3790 '71' => __( 'Midway Atoll', 'everest-forms' ),
3791 '76' => __( 'Navassa Island', 'everest-forms' ),
3792 '95' => __( 'Palmyra Atoll', 'everest-forms' ),
3793 '79' => __( 'Wake Island', 'everest-forms' ),
3794 ),
3795 'US' => array( // U.S. states.
3796 'AL' => __( 'Alabama', 'everest-forms' ),
3797 'AK' => __( 'Alaska', 'everest-forms' ),
3798 'AZ' => __( 'Arizona', 'everest-forms' ),
3799 'AR' => __( 'Arkansas', 'everest-forms' ),
3800 'CA' => __( 'California', 'everest-forms' ),
3801 'CO' => __( 'Colorado', 'everest-forms' ),
3802 'CT' => __( 'Connecticut', 'everest-forms' ),
3803 'DE' => __( 'Delaware', 'everest-forms' ),
3804 'DC' => __( 'District Of Columbia', 'everest-forms' ),
3805 'FL' => __( 'Florida', 'everest-forms' ),
3806 'GA' => _x( 'Georgia', 'US state of Georgia', 'everest-forms' ),
3807 'HI' => __( 'Hawaii', 'everest-forms' ),
3808 'ID' => __( 'Idaho', 'everest-forms' ),
3809 'IL' => __( 'Illinois', 'everest-forms' ),
3810 'IN' => __( 'Indiana', 'everest-forms' ),
3811 'IA' => __( 'Iowa', 'everest-forms' ),
3812 'KS' => __( 'Kansas', 'everest-forms' ),
3813 'KY' => __( 'Kentucky', 'everest-forms' ),
3814 'LA' => __( 'Louisiana', 'everest-forms' ),
3815 'ME' => __( 'Maine', 'everest-forms' ),
3816 'MD' => __( 'Maryland', 'everest-forms' ),
3817 'MA' => __( 'Massachusetts', 'everest-forms' ),
3818 'MI' => __( 'Michigan', 'everest-forms' ),
3819 'MN' => __( 'Minnesota', 'everest-forms' ),
3820 'MS' => __( 'Mississippi', 'everest-forms' ),
3821 'MO' => __( 'Missouri', 'everest-forms' ),
3822 'MT' => __( 'Montana', 'everest-forms' ),
3823 'NE' => __( 'Nebraska', 'everest-forms' ),
3824 'NV' => __( 'Nevada', 'everest-forms' ),
3825 'NH' => __( 'New Hampshire', 'everest-forms' ),
3826 'NJ' => __( 'New Jersey', 'everest-forms' ),
3827 'NM' => __( 'New Mexico', 'everest-forms' ),
3828 'NY' => __( 'New York', 'everest-forms' ),
3829 'NC' => __( 'North Carolina', 'everest-forms' ),
3830 'ND' => __( 'North Dakota', 'everest-forms' ),
3831 'OH' => __( 'Ohio', 'everest-forms' ),
3832 'OK' => __( 'Oklahoma', 'everest-forms' ),
3833 'OR' => __( 'Oregon', 'everest-forms' ),
3834 'PA' => __( 'Pennsylvania', 'everest-forms' ),
3835 'RI' => __( 'Rhode Island', 'everest-forms' ),
3836 'SC' => __( 'South Carolina', 'everest-forms' ),
3837 'SD' => __( 'South Dakota', 'everest-forms' ),
3838 'TN' => __( 'Tennessee', 'everest-forms' ),
3839 'TX' => __( 'Texas', 'everest-forms' ),
3840 'UT' => __( 'Utah', 'everest-forms' ),
3841 'VT' => __( 'Vermont', 'everest-forms' ),
3842 'VA' => __( 'Virginia', 'everest-forms' ),
3843 'WA' => __( 'Washington', 'everest-forms' ),
3844 'WV' => __( 'West Virginia', 'everest-forms' ),
3845 'WI' => __( 'Wisconsin', 'everest-forms' ),
3846 'WY' => __( 'Wyoming', 'everest-forms' ),
3847 'AA' => __( 'Armed Forces (AA)', 'everest-forms' ),
3848 'AE' => __( 'Armed Forces (AE)', 'everest-forms' ),
3849 'AP' => __( 'Armed Forces (AP)', 'everest-forms' ),
3850 ),
3851 'UY' => array( // Uruguayan states.
3852 'UY-AR' => __( 'Artigas', 'everest-forms' ),
3853 'UY-CA' => __( 'Canelones', 'everest-forms' ),
3854 'UY-CL' => __( 'Cerro Largo', 'everest-forms' ),
3855 'UY-CO' => __( 'Colonia', 'everest-forms' ),
3856 'UY-DU' => __( 'Durazno', 'everest-forms' ),
3857 'UY-FS' => __( 'Flores', 'everest-forms' ),
3858 'UY-FD' => __( 'Florida', 'everest-forms' ),
3859 'UY-LA' => __( 'Lavalleja', 'everest-forms' ),
3860 'UY-MA' => __( 'Maldonado', 'everest-forms' ),
3861 'UY-MO' => __( 'Montevideo', 'everest-forms' ),
3862 'UY-PA' => __( 'Paysandú', 'everest-forms' ),
3863 'UY-RN' => __( 'Río Negro', 'everest-forms' ),
3864 'UY-RV' => __( 'Rivera', 'everest-forms' ),
3865 'UY-RO' => __( 'Rocha', 'everest-forms' ),
3866 'UY-SA' => __( 'Salto', 'everest-forms' ),
3867 'UY-SJ' => __( 'San José', 'everest-forms' ),
3868 'UY-SO' => __( 'Soriano', 'everest-forms' ),
3869 'UY-TA' => __( 'Tacuarembó', 'everest-forms' ),
3870 'UY-TT' => __( 'Treinta y Tres', 'everest-forms' ),
3871 ),
3872 'VE' => array( // Venezuelan states.
3873 'VE-A' => __( 'Capital', 'everest-forms' ),
3874 'VE-B' => __( 'Anzoátegui', 'everest-forms' ),
3875 'VE-C' => __( 'Apure', 'everest-forms' ),
3876 'VE-D' => __( 'Aragua', 'everest-forms' ),
3877 'VE-E' => __( 'Barinas', 'everest-forms' ),
3878 'VE-F' => __( 'Bolívar', 'everest-forms' ),
3879 'VE-G' => __( 'Carabobo', 'everest-forms' ),
3880 'VE-H' => __( 'Cojedes', 'everest-forms' ),
3881 'VE-I' => __( 'Falcón', 'everest-forms' ),
3882 'VE-J' => __( 'Guárico', 'everest-forms' ),
3883 'VE-K' => __( 'Lara', 'everest-forms' ),
3884 'VE-L' => __( 'Mérida', 'everest-forms' ),
3885 'VE-M' => __( 'Miranda', 'everest-forms' ),
3886 'VE-N' => __( 'Monagas', 'everest-forms' ),
3887 'VE-O' => __( 'Nueva Esparta', 'everest-forms' ),
3888 'VE-P' => __( 'Portuguesa', 'everest-forms' ),
3889 'VE-R' => __( 'Sucre', 'everest-forms' ),
3890 'VE-S' => __( 'Táchira', 'everest-forms' ),
3891 'VE-T' => __( 'Trujillo', 'everest-forms' ),
3892 'VE-U' => __( 'Yaracuy', 'everest-forms' ),
3893 'VE-V' => __( 'Zulia', 'everest-forms' ),
3894 'VE-W' => __( 'Federal Dependencies', 'everest-forms' ),
3895 'VE-X' => __( 'La Guaira (Vargas)', 'everest-forms' ),
3896 'VE-Y' => __( 'Delta Amacuro', 'everest-forms' ),
3897 'VE-Z' => __( 'Amazonas', 'everest-forms' ),
3898 ),
3899 'VN' => array(),
3900 'YT' => array(),
3901 'ZA' => array( // South African states.
3902 'EC' => __( 'Eastern Cape', 'everest-forms' ),
3903 'FS' => __( 'Free State', 'everest-forms' ),
3904 'GP' => __( 'Gauteng', 'everest-forms' ),
3905 'KZN' => __( 'KwaZulu-Natal', 'everest-forms' ),
3906 'LP' => __( 'Limpopo', 'everest-forms' ),
3907 'MP' => __( 'Mpumalanga', 'everest-forms' ),
3908 'NC' => __( 'Northern Cape', 'everest-forms' ),
3909 'NW' => __( 'North West', 'everest-forms' ),
3910 'WC' => __( 'Western Cape', 'everest-forms' ),
3911 ),
3912 'ZM' => array( // Zambian provinces.
3913 'ZM-01' => __( 'Western', 'everest-forms' ),
3914 'ZM-02' => __( 'Central', 'everest-forms' ),
3915 'ZM-03' => __( 'Eastern', 'everest-forms' ),
3916 'ZM-04' => __( 'Luapula', 'everest-forms' ),
3917 'ZM-05' => __( 'Northern', 'everest-forms' ),
3918 'ZM-06' => __( 'North-Western', 'everest-forms' ),
3919 'ZM-07' => __( 'Southern', 'everest-forms' ),
3920 'ZM-08' => __( 'Copperbelt', 'everest-forms' ),
3921 'ZM-09' => __( 'Lusaka', 'everest-forms' ),
3922 'ZM-10' => __( 'Muchinga', 'everest-forms' ),
3923 ),
3924 );
3925
3926 return (array) apply_filters( 'everest_forms_states', $states );
3927 }
3928
3929 /**
3930 * Get builder fields groups.
3931 *
3932 * @return array
3933 */
3934 function evf_get_fields_groups() {
3935 return (array) apply_filters(
3936 'everest_forms_builder_fields_groups',
3937 array(
3938 'general' => __( 'General Fields', 'everest-forms' ),
3939 'advanced' => __( 'Advanced Fields', 'everest-forms' ),
3940 'payment' => __( 'Payment Fields', 'everest-forms' ),
3941 'survey' => __( 'Survey Fields', 'everest-forms' ),
3942 )
3943 );
3944 }
3945
3946 /**
3947 * Get a builder fields type's name.
3948 *
3949 * @param string $type Coupon type.
3950 * @return string
3951 */
3952 function evf_get_fields_group( $type = '' ) {
3953 $types = evf_get_fields_groups();
3954 return isset( $types[ $type ] ) ? $types[ $type ] : '';
3955 }
3956
3957 /**
3958 * Get all fields settings.
3959 *
3960 * @return array Settings data.
3961 */
3962 function evf_get_all_fields_settings() {
3963 $settings = array(
3964 'label' => array(
3965 'id' => 'label',
3966 'title' => __( 'Label', 'everest-forms' ),
3967 'desc' => __( 'Enter text for the form field label. This is recommended and can be hidden in the Advanced Settings.', 'everest-forms' ),
3968 'default' => '',
3969 'type' => 'text',
3970 'desc_tip' => true,
3971 ),
3972 'meta' => array(
3973 'id' => 'meta-key',
3974 'title' => __( 'Meta Key', 'everest-forms' ),
3975 'desc' => __( 'Enter meta key to be stored in database.', 'everest-forms' ),
3976 'default' => '',
3977 'type' => 'text',
3978 'desc_tip' => true,
3979 ),
3980 'description' => array(
3981 'id' => 'description',
3982 'title' => __( 'Description', 'everest-forms' ),
3983 'type' => 'textarea',
3984 'desc' => __( 'Enter text for the form field description.', 'everest-forms' ),
3985 'default' => '',
3986 'desc_tip' => true,
3987 ),
3988 'required' => array(
3989 'id' => 'require',
3990 'title' => __( 'Required', 'everest-forms' ),
3991 'type' => 'checkbox',
3992 'desc' => __( 'Check this option to mark the field required.', 'everest-forms' ),
3993 'default' => 'no',
3994 'desc_tip' => true,
3995 ),
3996 'choices' => array(
3997 'id' => 'choices',
3998 'title' => __( 'Choices', 'everest-forms' ),
3999 'desc' => __( 'Add choices for the form field.', 'everest-forms' ),
4000 'type' => 'choices',
4001 'desc_tip' => true,
4002 'defaults' => array(
4003 1 => __( 'First Choice', 'everest-forms' ),
4004 2 => __( 'Second Choice', 'everest-forms' ),
4005 3 => __( 'Third Choice', 'everest-forms' ),
4006 ),
4007 ),
4008 'placeholder' => array(
4009 'id' => 'placeholder',
4010 'title' => __( 'Placeholder Text', 'everest-forms' ),
4011 'desc' => __( 'Enter text for the form field placeholder.', 'everest-forms' ),
4012 'default' => '',
4013 'type' => 'text',
4014 'desc_tip' => true,
4015 ),
4016 'css' => array(
4017 'id' => 'css',
4018 'title' => __( 'CSS Classes', 'everest-forms' ),
4019 'desc' => __( 'Enter CSS class for this field container. Class names should be separated with spaces.', 'everest-forms' ),
4020 'default' => '',
4021 'type' => 'text',
4022 'desc_tip' => true,
4023 ),
4024 'label_hide' => array(
4025 'id' => 'label_hide',
4026 'title' => __( 'Hide Label', 'everest-forms' ),
4027 'type' => 'checkbox',
4028 'desc' => __( 'Check this option to hide the form field label.', 'everest-forms' ),
4029 'default' => 'no',
4030 'desc_tip' => true,
4031 ),
4032 'sublabel_hide' => array(
4033 'id' => 'sublabel_hide',
4034 'title' => __( 'Hide Sub-Labels', 'everest-forms' ),
4035 'type' => 'checkbox',
4036 'desc' => __( 'Check this option to hide the form field sub-label.', 'everest-forms' ),
4037 'default' => 'no',
4038 'desc_tip' => true,
4039 ),
4040 );
4041
4042 return apply_filters( 'everest_form_all_fields_settings', $settings );
4043 }
4044
4045 /**
4046 * Helper function to display debug data.
4047 *
4048 * @since 1.3.2
4049 *
4050 * @param mixed $expression The expression to be printed.
4051 * @param bool $return Optional. Default false. Set to true to return the human-readable string.
4052 *
4053 * @return string
4054 */
4055 function evf_debug_data( $expression, $return = false ) {
4056 if ( defined( 'EVF_DEBUG' ) && true === EVF_DEBUG ) {
4057
4058 if ( ! $return ) {
4059 echo '<textarea style="color:#666;background:#fff;margin: 20px 0;width:100%;height:500px;font-size:12px;font-family: Consolas,Monaco,Lucida Console,monospace;direction: ltr;unicode-bidi: embed;line-height: 1.4;padding: 4px 6px 1px;" readonly>';
4060
4061 echo "==================== Everest Forms Debugging ====================\n\n";
4062
4063 if ( is_array( $expression ) || is_object( $expression ) ) {
4064 echo esc_html( evf_print_r( $expression, true ) );
4065 } else {
4066 echo esc_html( $expression );
4067 }
4068 echo '</textarea>';
4069
4070 } else {
4071 $output = '<textarea style="color:#666;background:#fff;margin: 20px 0;width:100%;height:500px;font-size:12px;font-family: Consolas,Monaco,Lucida Console,monospace;direction: ltr;unicode-bidi: embed;line-height: 1.4;padding: 4px 6px 1px;" readonly>';
4072
4073 $output .= "==================== Everest Forms Debugging ====================\n\n";
4074
4075 if ( is_array( $expression ) || is_object( $expression ) ) {
4076 $output .= evf_print_r( $expression, true );
4077 } else {
4078 $output .= $expression;
4079 }
4080
4081 $output .= '</textarea>';
4082
4083 return $output;
4084 }
4085 }
4086 }
4087
4088 /**
4089 * String translation function.
4090 *
4091 * @since 1.4.9
4092 *
4093 * @param int $form_id Form ID.
4094 * @param string $field_id Field ID.
4095 * @param mixed $value The string that needs to be translated.
4096 * @param string $suffix The suffix to make the field have unique naem.
4097 *
4098 * @return mixed The translated string.
4099 */
4100 function evf_string_translation( $form_id, $field_id, $value, $suffix = '' ) {
4101 $context = isset( $form_id ) ? 'everest_forms_' . absint( $form_id ) : 0;
4102 $name = isset( $field_id ) ? evf_clean( $field_id . $suffix ) : '';
4103
4104 if ( function_exists( 'icl_register_string' ) ) {
4105 icl_register_string( $context, $name, $value );
4106 }
4107
4108 if ( function_exists( 'icl_t' ) ) {
4109 $value = icl_t( $context, $name, $value );
4110 }
4111
4112 return $value;
4113 }
4114
4115 /**
4116 * Trigger logging cleanup using the logging class.
4117 *
4118 * @since 1.6.2
4119 */
4120 function evf_cleanup_logs() {
4121 $logger = evf_get_logger();
4122
4123 if ( is_callable( array( $logger, 'clear_expired_logs' ) ) ) {
4124 $logger->clear_expired_logs();
4125 }
4126 }
4127 add_action( 'everest_forms_cleanup_logs', 'evf_cleanup_logs' );
4128
4129
4130 /**
4131 * Check whether it device is table or not from HTTP user agent
4132 *
4133 * @since 1.7.0
4134 *
4135 * @return bool
4136 */
4137 function evf_is_tablet() {
4138 return false !== stripos( evf_get_user_agent(), 'tablet' ) || false !== stripos( evf_get_user_agent(), 'tab' );
4139 }
4140
4141 /**
4142 * Get user device from user agent from HTTP user agent.
4143 *
4144 * @since 1.7.0
4145 *
4146 * @return string
4147 */
4148 function evf_get_user_device() {
4149 if ( evf_is_tablet() ) {
4150 return esc_html__( 'Tablet', 'everest-forms' );
4151 } elseif ( wp_is_mobile() ) {
4152 return esc_html__( 'Mobile', 'everest-forms' );
4153 } else {
4154 return esc_html__( 'Desktop', 'everest-forms' );
4155 }
4156 }
4157
4158
4159 /**
4160 * A wp_parse_args() for multi-dimensional array.
4161 *
4162 * @see https://developer.wordpress.org/reference/functions/wp_parse_args/
4163 *
4164 * @since 1.7.0
4165 *
4166 * @param array $args Value to merge with $defaults.
4167 * @param array $defaults Array that serves as the defaults.
4168 *
4169 * @return array Merged user defined values with defaults.
4170 */
4171 function evf_parse_args( &$args, $defaults ) {
4172 $args = (array) $args;
4173 $defaults = (array) $defaults;
4174 $result = $defaults;
4175 foreach ( $args as $k => &$v ) {
4176 if ( is_array( $v ) && isset( $result[ $k ] ) ) {
4177 $result[ $k ] = evf_parse_args( $v, $result[ $k ] );
4178 } else {
4179 $result[ $k ] = $v;
4180 }
4181 }
4182 return $result;
4183 }
4184
4185 /**
4186 * Get date of ranges.
4187 *
4188 * @since 1.7.0
4189 *
4190 * @param string $first Starting date.
4191 * @param string $last End date.
4192 * @param string $step Date step.
4193 * @param string $format Date format.
4194 *
4195 * @return array Range dates.
4196 */
4197 function evf_date_range( $first, $last = '', $step = '+1 day', $format = 'Y/m/d' ) {
4198 $dates = array();
4199 $current = strtotime( $first );
4200 $last = strtotime( $last );
4201
4202 while ( $current <= $last ) {
4203 $dates[] = date_i18n( $format, $current );
4204 $current = strtotime( $step, $current );
4205 }
4206
4207 return $dates;
4208 }
4209
4210 /**
4211 * Process syntaxes in a text.
4212 *
4213 * @since 1.7.0
4214 *
4215 * @param string $text Text to be processed.
4216 * @param bool $escape_html Whether to escape all the htmls before processing or not.
4217 * @param bool $trim_trailing_spaces Whether to trim trailing spaces or not.
4218 *
4219 * @return string Processed text.
4220 */
4221 function evf_process_syntaxes( $text, $escape_html = true, $trim_trailing_spaces = true ) {
4222
4223 if ( true === $trim_trailing_spaces ) {
4224 $text = trim( $text );
4225 }
4226 if ( true === $escape_html ) {
4227 $text = esc_html( $text );
4228 }
4229 $text = evf_process_hyperlink_syntax( $text );
4230 $text = evf_process_italic_syntax( $text );
4231 $text = evf_process_bold_syntax( $text );
4232 $text = evf_process_underline_syntax( $text );
4233 $text = evf_process_line_breaks( $text );
4234 return $text;
4235 }
4236
4237 /**
4238 * Extract page ids from a text.
4239 *
4240 * @since 1.7.0
4241 *
4242 * @param string $text Text to extract page ids from.
4243 *
4244 * @return mixed
4245 */
4246 function evf_extract_page_ids( $text ) {
4247 $page_id_syntax_matches = array();
4248 $page_ids = array();
4249
4250 while ( preg_match( '/page_id=([0-9]+)/', $text, $page_id_syntax_matches ) ) {
4251 $page_id = $page_id_syntax_matches[1];
4252 $page_ids[] = $page_id;
4253 $text = str_replace( 'page_id=' . $page_id, '', $text );
4254 }
4255
4256 if ( count( $page_ids ) > 0 ) {
4257 return $page_ids;
4258 }
4259 return false;
4260 }
4261
4262 /**
4263 * Process hyperlink syntaxes in a text.
4264 * The syntax used for hyperlink is: [Link Label](Link URL)
4265 * Example: [Google Search Page](https://google.com)
4266 *
4267 * @since 1.7.0
4268 *
4269 * @param string $text Text to process.
4270 * @param string $use_no_a_tag If set to `true` only the link will be used and no `a` tag. Particularly useful for exporting CSV,
4271 * as the html tags are escaped in a CSV file.
4272 *
4273 * @return string Processed text.
4274 */
4275 function evf_process_hyperlink_syntax( $text, $use_no_a_tag = false ) {
4276 $matches = array();
4277 $regex = '/(\[[^\[\]]*\])(\([^\(\)]*\))/';
4278
4279 while ( preg_match( $regex, $text, $matches ) ) {
4280 $matched_string = $matches[0];
4281 $label = $matches[1];
4282 $link = $matches[2];
4283 $class = '';
4284 $page_id = '';
4285
4286 // Trim brackets.
4287 $label = trim( substr( $label, 1, -1 ) );
4288 $link = trim( substr( $link, 1, -1 ) );
4289
4290 // Proceed only if label or link is not empty.
4291 if ( ! empty( $label ) || ! empty( $link ) ) {
4292
4293 // Use hash(#) if the link is empty.
4294 if ( empty( $link ) ) {
4295 $link = '#';
4296 }
4297
4298 // Use link as label if it's empty.
4299 if ( empty( $label ) ) {
4300 $label = $link;
4301 }
4302
4303 // See if it's a link to a local page.
4304 if ( strpos( $link, '?' ) === 0 ) {
4305 $class .= ' evf-privacy-policy-local-page-link';
4306
4307 // Extract page id.
4308 $page_ids = evf_extract_page_ids( $link );
4309
4310 if ( false !== $page_ids ) {
4311 $page_id = $page_ids[0];
4312 $link = get_page_link( $page_id );
4313
4314 if ( empty( $link ) ) {
4315 $link = '#';
4316 }
4317 }
4318 }
4319
4320 // Insert hyperlink html.
4321 if ( true === $use_no_a_tag ) {
4322 $html = $link;
4323 } else {
4324 $html = sprintf( '<a data-page-id="%s" target="_blank" rel="noopener noreferrer nofollow" href="%s" class="%s">%s</a>', $page_id, $link, $class, $label );
4325 }
4326 $text = str_replace( $matched_string, $html, $text );
4327 } else {
4328 // If both label and link are empty then replace it with empty string.
4329 $text = str_replace( $matched_string, '', $text );
4330 }
4331 }
4332
4333 return $text;
4334 }
4335
4336 /**
4337 * Process italic syntaxes in a text.
4338 * The syntax used for italic text is: `text`
4339 * Just wrap the text with back tick characters. To escape a backtick insert a backslash(\) before the character like "\`".
4340 *
4341 * @since 1.7.0
4342 *
4343 * @param string $text Text to process.
4344 *
4345 * @return string Processed text.
4346 */
4347 function evf_process_italic_syntax( $text ) {
4348 $matches = array();
4349 $regex = '/`[^`]+`/';
4350 $text = str_replace( '\`', '<&&&&&>', $text ); // To preserve an escaped special character '`'.
4351
4352 while ( preg_match( $regex, $text, $matches ) ) {
4353 $matched_string = $matches[0];
4354 $label = substr( trim( $matched_string ), 1, -1 );
4355 $html = sprintf( '<i>%s</i>', $label );
4356 $text = str_replace( $matched_string, $html, $text );
4357 }
4358
4359 return str_replace( '<&&&&&>', '`', $text );
4360 }
4361
4362 /**
4363 * Process bold syntaxes in a text.
4364 * The syntax used for bold text is: *text*
4365 * Just wrap the text with asterisk characters. To escape an asterisk insert a backslash(\) before the character like "\*".
4366 *
4367 * @since 1.7.0
4368 *
4369 * @param string $text Text to process.
4370 *
4371 * @return string Processed text.
4372 */
4373 function evf_process_bold_syntax( $text ) {
4374 $matches = array();
4375 $regex = '/\*[^*]+\*/';
4376 $text = str_replace( '\*', '<&&&&&>', $text ); // To preserve an escaped special character '*'.
4377
4378 while ( preg_match( $regex, $text, $matches ) ) {
4379 $matched_string = $matches[0];
4380 $label = substr( trim( $matched_string ), 1, -1 );
4381 $html = sprintf( '<b>%s</b>', $label );
4382 $text = str_replace( $matched_string, $html, $text );
4383 }
4384
4385 return str_replace( '<&&&&&>', '*', $text );
4386 }
4387
4388 /**
4389 * Process underline syntaxes in a text.
4390 * The syntax used for bold text is: __text__
4391 * Wrap the text with double underscore characters. To escape an underscore insert a backslash(\) before the character like "\_".
4392 *
4393 * @since 1.7.0
4394 *
4395 * @param string $text Text to process.
4396 *
4397 * @return string Processed text.
4398 */
4399 function evf_process_underline_syntax( $text ) {
4400 $matches = array();
4401 $regex = '/__[^_]+__/';
4402 $text = str_replace( '\_', '<&&&&&>', $text ); // To preserve an escaped special character '_'.
4403
4404 while ( preg_match( $regex, $text, $matches ) ) {
4405 $matched_string = $matches[0];
4406 $label = substr( trim( $matched_string ), 2, -2 );
4407 $html = sprintf( '<u>%s</u>', $label );
4408 $text = str_replace( $matched_string, $html, $text );
4409 }
4410
4411 $text = str_replace( '<&&&&&>', '_', $text );
4412 return $text;
4413 }
4414
4415 /**
4416 * It replaces `\n` characters with `<br/>` tag because new line `\n` character is not supported in html.
4417 *
4418 * @since 1.7.0
4419 *
4420 * @param string $text Text to process.
4421 *
4422 * @return string Processed text.
4423 */
4424 function evf_process_line_breaks( $text ) {
4425 return str_replace( "\n", '<br/>', $text );
4426 }
4427
4428 /**
4429 * Check whether the current page is in AMP mode or not.
4430 * We need to check for specific functions, as there is no special AMP header.
4431 *
4432 * @since 1.8.4
4433 *
4434 * @param bool $check_theme_support Whether theme support should be checked. Defaults to true.
4435 *
4436 * @return bool
4437 */
4438 function evf_is_amp( $check_theme_support = true ) {
4439
4440 $is_amp = false;
4441
4442 if (
4443 // AMP by Automattic.
4444 ( function_exists( 'amp_is_request' ) && amp_is_request() ) ||
4445 // Better AMP.
4446 ( function_exists( 'is_better_amp' ) && is_better_amp() )
4447 ) {
4448 $is_amp = true;
4449 }
4450
4451 if ( $is_amp && $check_theme_support ) {
4452 $is_amp = current_theme_supports( 'amp' );
4453 }
4454
4455 return apply_filters( 'evf_is_amp', $is_amp );
4456 }
4457
4458 /**
4459 * EVF KSES.
4460 *
4461 * @since 1.8.2.1
4462 *
4463 * @param string $context Context.
4464 */
4465 function evf_get_allowed_html_tags( $context = '' ) {
4466
4467 $post_tags = wp_kses_allowed_html( 'post' );
4468 if ( 'builder' === $context ) {
4469 $builder_tags = get_transient( 'evf-builder-tags-list' );
4470 if ( ! empty( $builder_tags ) ) {
4471 return $builder_tags;
4472 }
4473 $allowed_tags = evf_get_json_file_contents( 'assets/allowed_tags/allowed_tags.json', true );
4474 if ( ! empty( $allowed_tags ) ) {
4475 foreach ( $allowed_tags as $tag => $args ) {
4476 if ( array_key_exists( $tag, $post_tags ) ) {
4477 foreach ( $args as $arg => $value ) {
4478 if ( ! array_key_exists( $arg, $post_tags[ $tag ] ) ) {
4479 $post_tags[ $tag ][ $arg ] = true;
4480 }
4481 }
4482 } else {
4483 $post_tags[ $tag ] = $args;
4484 }
4485 }
4486 set_transient( 'evf-builder-tags-list', $post_tags, DAY_IN_SECONDS );
4487 }
4488 return $post_tags;
4489 }
4490
4491 return wp_parse_args(
4492 $post_tags,
4493 array(
4494 'input' => array(
4495 'type' => true,
4496 'name' => true,
4497 'value' => true,
4498 ),
4499 'select' => array(
4500 'name' => true,
4501 'id' => true,
4502 ),
4503 'option' => array(
4504 'value' => true,
4505 'selected' => true,
4506 ),
4507 'textarea' => array(
4508 'style' => true,
4509 ),
4510 )
4511 );
4512 }
4513
4514 /**
4515 * Parse Builder Post Data.
4516 *
4517 * @param mixed $post_data Post Data.
4518 *
4519 * @since 1.8.2.2
4520 */
4521 function evf_sanitize_builder( $post_data = array() ) {
4522
4523 if ( empty( $post_data ) || ! is_array( $post_data ) ) {
4524 return array();
4525 }
4526
4527 $form_data = array();
4528 foreach ( $post_data as $data_key => $data ) {
4529 $name = sanitize_text_field( $data->name );
4530 if ( preg_match( '/\<.*\>/', $data->value ) ) {
4531 $value = wp_kses_post( $data->value );
4532 } elseif ( 'settings[external_url]' === $data->name ) {
4533 $value = esc_url_raw( $data->value );
4534 } elseif ( 'settings[email][connection_1][evf_email_message]' === $data->name ) {
4535 $value = wp_kses_post( $data->value );
4536 } else {
4537 $value = sanitize_text_field( $data->value );
4538 }
4539
4540 $form_data[ sanitize_text_field( $data_key ) ] = (object) array(
4541 'name' => $name,
4542 'value' => $value,
4543 );
4544 }
4545 return $form_data;
4546 }
4547
4548 /**
4549 * Entry Post Data.
4550 *
4551 * @param mixed $entry Post Data.
4552 *
4553 * @since 1.8.2.2
4554 */
4555 function evf_sanitize_entry( $entry = array() ) {
4556 if ( empty( $entry ) || ! is_array( $entry ) || empty( $entry['form_fields'] ) ) {
4557 return $entry;
4558 }
4559
4560 $form_id = absint( $entry['id'] );
4561 $form_data = evf()->form->get( $form_id, array( 'contents_only' => true ) );
4562
4563 if ( ! $form_data ) {
4564 return array();
4565 }
4566
4567 $form_data = evf_decode( $form_data->post_content );
4568
4569 $form_fields = $form_data['form_fields'];
4570
4571 if ( empty( $form_fields ) ) {
4572 return array();
4573 }
4574
4575 foreach ( $form_fields as $key => $field ) {
4576 $key = sanitize_text_field( $key );
4577 if ( array_key_exists( $key, $entry['form_fields'] ) ) {
4578 switch ( $field['type'] ) {
4579 case 'email':
4580 if ( isset( $entry['form_fields'][ $key ]['primary'] ) ) {
4581 $entry['form_fields'][ $key ]['primary'] = sanitize_email( $entry['form_fields'][ $key ]['primary'] );
4582 $entry['form_fields'][ $key ]['secondary'] = sanitize_email( $entry['form_fields'][ $key ]['secondary'] );
4583 } else {
4584 $entry['form_fields'][ $key ] = sanitize_email( $entry['form_fields'][ $key ] );
4585 }
4586 break;
4587 case 'file-upload':
4588 case 'signature':
4589 case 'image-upload':
4590 $entry['form_fields'][ $key ] = is_array( $entry['form_fields'][ $key ] ) ? $entry['form_fields'][ $key ] : esc_url_raw( $entry['form_fields'][ $key ] );
4591 break;
4592 case 'textarea':
4593 case 'html':
4594 case 'privacy-policy':
4595 case 'wysiwug':
4596 $entry['form_fields'][ $key ] = wp_kses_post( $entry['form_fields'][ $key ] );
4597 break;
4598 case 'repeater-fields':
4599 $entry['form_fields'][ $key ] = $entry['form_fields'][ $key ];
4600 break;
4601 default:
4602 if ( is_array( $entry['form_fields'][ $key ] ) ) {
4603 foreach ( $entry['form_fields'][ $key ] as $field_key => $value ) {
4604 $field_key = sanitize_text_field( $field_key );
4605 $entry['form_fields'][ $key ][ $field_key ] = sanitize_text_field( $value );
4606 }
4607 } else {
4608 $entry['form_fields'][ $key ] = sanitize_text_field( $entry['form_fields'][ $key ] );
4609 }
4610 }
4611 }
4612 return $entry;
4613 }
4614 }
4615
4616 /**
4617 * EVF Get json file contents.
4618 *
4619 * @param mixed $file File path.
4620 * @param mixed $to_array Returned data in array.
4621 */
4622 function evf_get_json_file_contents( $file, $to_array = false ) {
4623 if ( $to_array ) {
4624 return json_decode( evf_file_get_contents( $file ), true );
4625 }
4626 return json_decode( evf_file_get_contents( $file ) );
4627 }
4628
4629 /**
4630 * EVF file get contents.
4631 *
4632 * @param mixed $file File path.
4633 */
4634 function evf_file_get_contents( $file ) {
4635 if ( $file ) {
4636 $local_file = preg_replace( '/\\\\|\/\//', '/', plugin_dir_path( EVF_PLUGIN_FILE ) . $file );
4637 $response = file_get_contents($local_file);
4638 if ( $response ) {
4639 return $response;
4640 }
4641 global $wp_filesystem;
4642 require_once ABSPATH . '/wp-admin/includes/file.php';
4643 WP_Filesystem();
4644 $local_file = preg_replace( '/\\\\|\/\//', '/', plugin_dir_path( EVF_PLUGIN_FILE ) . $file );
4645 if ( $wp_filesystem->exists( $local_file ) ) {
4646 $response = $wp_filesystem->get_contents( $local_file );
4647 return $response;
4648 }
4649 }
4650 return;
4651 }
4652
4653 /**
4654 * Parses datetime values based on the provided format and mode.
4655 *
4656 * @param string $datetime_value The datetime value to parse.
4657 * @param string $datetime_format The format of the datetime value.
4658 * @param string $date_format The format of the date.
4659 * @param string $mode The mode of the datetime field,
4660 * @param int $time_interval The time interval in minutes.
4661 * @return array
4662 */
4663 function parse_datetime_values( $datetime_value, $datetime_format, $date_format, $mode, $time_interval ) {
4664 $datetime_arr = array();
4665
4666 switch ($datetime_format) {
4667 case 'time':
4668 $current_date = gmdate('Y-m-d');
4669 $datetime_value = gmdate('H:i', strtotime($datetime_value));
4670 $datetime_start = "$current_date $datetime_value";
4671 $date_time = new DateTime($datetime_start);
4672 $date_time->modify("+$time_interval minute");
4673 $datetime_end = $date_time->format('Y-m-d H:i');
4674 $datetime_arr[] = array($datetime_start, $datetime_end);
4675 break;
4676 case 'date':
4677 if ('range' === $mode) {
4678 $selected_dates = explode(' to ', $datetime_value);
4679 if (count($selected_dates) >= 2) {
4680 $datetime_start = "$selected_dates[0] 00:00";
4681 $datetime_start = gmdate('Y-m-d H:i', strtotime($datetime_start));
4682 $date_time = new DateTime($selected_dates[1]);
4683 $date_time->modify('+23 hour');
4684 $datetime_end = $date_time->format('Y-m-d H:i');
4685 $datetime_arr[] = array($datetime_start, $datetime_end);
4686 }
4687 } else {
4688 $selected_dates = explode(', ', $datetime_value);
4689
4690 foreach ($selected_dates as $selected_date) {
4691 $datetime_start = "$selected_date 00:00";
4692 $datetime_start = gmdate('Y-m-d H:i', strtotime($datetime_start));
4693 $date_time = new DateTime($datetime_start);
4694 $date_time->modify('+23 hour');
4695
4696 $datetime_end = $date_time->format('Y-m-d H:i');
4697 $datetime_arr[] = array($datetime_start, $datetime_end);
4698 }
4699 }
4700 break;
4701 case 'date-time':
4702 if ('range' === $mode) {
4703 $selected_dates = explode(' to ', $datetime_value);
4704 if (count($selected_dates) >= 2) {
4705 $datetime_start = gmdate('Y-m-d H:i', strtotime($selected_dates[0]));
4706 $datetime_end = gmdate('Y-m-d H:i', strtotime($selected_dates[1]));
4707 $datetime_arr[] = array($datetime_start, $datetime_end);
4708 }
4709 } else {
4710 $selected_dates = explode(', ', $datetime_value);
4711
4712 foreach ($selected_dates as $selected_date) {
4713 $datetime_start = gmdate('Y-m-d H:i', strtotime($selected_date));
4714 $date_time = new DateTime($datetime_start);
4715 $date_time->modify("+$time_interval minute");
4716 $datetime_end = $date_time->format('Y-m-d H:i');
4717 $datetime_arr[] = array($datetime_start, $datetime_end);
4718 }
4719 }
4720 break;
4721 }
4722
4723 return $datetime_arr;
4724 }
4725
4726 /*
4727 * EVF word Count
4728 * @since 2.0.2
4729 */
4730 function _evf_word_count( $text, $type = 'words', $settings = array() ) {
4731 $defaults = array(
4732 'html_regexp' => '/<\/?[a-z][^>]*?>/i',
4733 'html_comment_regexp' => '/<!--[\s\S]*?-->/',
4734 'space_regexp' => '/&nbsp;|&#160;/i',
4735 'html_entity_regexp' => '/&\S+?;/',
4736 'connector_regexp' => "/--|\x{2014}/u",
4737 'remove_regexp' => "/[\x{0021}-\x{0040}\x{005B}-\x{0060}\x{007B}-\x{007E}\x{0080}-\x{00BF}\x{00D7}\x{00F7}\x{2000}-\x{2BFF}\x{2E00}-\x{2E7F}]/u",
4738 'astral_regexp' => "/[\x{010000}-\x{10FFFF}]/u",
4739 'words_regexp' => '/\S\s+/u',
4740 'characters_excluding_spaces_regexp' => '/\S/u',
4741 'characters_including_spaces_regexp' => "/[^\f\n\r\t\v\x{00AD}\x{2028}\x{2029}]/u",
4742 'shortcodes' => array(),
4743 );
4744
4745 $count = 0;
4746
4747 if ( '' === trim( $text ) ) {
4748 return $count;
4749 }
4750
4751 $settings = wp_parse_args( $settings, $defaults );
4752
4753 // If there are any shortcodes, add this as a shortcode regular expression.
4754 if ( is_array( $settings['shortcodes'] ) && ! empty( $settings['shortcodes'] ) ) {
4755 $settings['shortcodes_regexp'] = '/\\[\\/?(?:' . implode( '|', $settings['shortcodes'] ) . ')[^\\]]*?\\]/';
4756 }
4757
4758 // Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'.
4759 if ( 'characters_excluding_spaces' !== $type && 'characters_including_spaces' !== $type ) {
4760 $type = 'words';
4761 }
4762
4763 $text .= "\n";
4764
4765 // Replace all HTML with a new-line.
4766 $text = preg_replace( $settings['html_regexp'], "\n", $text );
4767
4768 // Remove all HTML comments.
4769 $text = preg_replace( $settings['html_comment_regexp'], '', $text );
4770
4771 // If a shortcode regular expression has been provided use it to remove shortcodes.
4772 if ( ! empty( $settings['shortcodes_regexp'] ) ) {
4773 $text = preg_replace( $settings['shortcodes_regexp'], "\n", $text );
4774 }
4775
4776 // Normalize non-breaking space to a normal space.
4777 $text = preg_replace( $settings['space_regexp'], ' ', $text );
4778
4779 if ( 'words' === $type ) {
4780 // Remove HTML Entities.
4781 $text = preg_replace( $settings['html_entity_regexp'], '', $text );
4782
4783 // Convert connectors to spaces to count attached text as words.
4784 $text = preg_replace( $settings['connector_regexp'], ' ', $text );
4785
4786 // Remove unwanted characters.
4787 $text = preg_replace( $settings['remove_regexp'], '', $text );
4788 } else {
4789 // Convert HTML Entities to "a".
4790 $text = preg_replace( $settings['html_entity_regexp'], 'a', $text );
4791
4792 // Remove surrogate points.
4793 $text = preg_replace( $settings['astral_regexp'], 'a', $text );
4794 }
4795
4796 // Match with the selected type regular expression to count the items.
4797 return (int) preg_match_all( $settings[ $type . '_regexp' ], $text );
4798 }
4799
4800 /**
4801 * EVF word Count
4802 * @since 2.0.2
4803 */
4804 function evf_word_count( $text, $type = 'words', $settings = array() ) {
4805 if( function_exists(' wp_word_count ' ) ){
4806 return wp_word_count($text, $type = 'words', $settings = array());
4807 } else {
4808 return _evf_word_count( $text, $type = 'words', $settings = array() );
4809 }
4810 }
4811
4812 if ( ! function_exists( 'evf_maybe_get_local_font_url' ) ) {
4813 /**
4814 * If load fonts locally option is checked in settings, we download the font
4815 * locally and return the url for download font file.
4816 *
4817 * @param [string] $font_url Remote font url
4818 * @return string
4819 */
4820 function evf_maybe_get_local_font_url( $font_url ) {
4821 $load_locally = get_option( 'everest_forms_load_fonts_locally', 'no' );
4822
4823 if ( 'yes' === $load_locally ) {
4824 $font_url = wptt_get_webfont_url( $font_url );
4825 }
4826
4827 return $font_url;
4828 }
4829 }
4830