PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 3.0.6
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v3.0.6
3.6.0 3.5.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
RestApi 1 year ago abstracts 1 year ago admin 1 year ago blocks 1 year ago elementor 2 years ago export 1 year ago fields 1 year ago interfaces 8 years ago libraries 3 years ago log-handlers 4 years ago shortcodes 1 year ago stats 3 years ago templates 5 years ago class-everest-forms.php 1 year ago class-evf-ajax.php 1 year ago class-evf-autoloader.php 8 years ago class-evf-background-process-import-entries.php 2 years ago class-evf-background-updater.php 8 years ago class-evf-cache-helper.php 6 years ago class-evf-cron.php 2 years ago class-evf-deprecated-action-hooks.php 6 years ago class-evf-deprecated-filter-hooks.php 5 years ago class-evf-emails.php 1 year ago class-evf-fields.php 2 years ago class-evf-form-handler.php 2 years ago class-evf-form-task.php 1 year ago class-evf-forms-features.php 2 years ago class-evf-frontend-scripts.php 1 year ago class-evf-install.php 2 years ago class-evf-integrations.php 2 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-report-cron.php 2 years ago class-evf-reporting.php 2 years ago class-evf-session-handler.php 7 years ago class-evf-shortcodes.php 4 years ago class-evf-smart-tags.php 1 year 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 1 year ago evf-deprecated-functions.php 6 years ago evf-entry-functions.php 2 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 8 years ago evf-update-functions.php 5 years ago
evf-core-functions.php
5719 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 __DIR__ . '/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 $is_edit_entry = isset( $_GET['edit-entry'] ) && ! sanitize_text_field( wp_unslash( empty( $_GET['edit-entry'] ) ) ) ? true : false;
978
979 if ( ! empty( $id ) ) {
980 $id = sanitize_html_class( $id );
981 if ( ! empty( $id ) ) {
982 $parts[] = 'id="' . $id . '"';
983 }
984 }
985
986 if ( ! empty( $class ) ) {
987 $class = evf_sanitize_classes( $class, true );
988 if ( ! empty( $class ) ) {
989 // While editing hidden field should be visible.
990 if ( $is_edit_entry ) {
991 $class = str_replace( 'evf-field-hidden', '', $class );
992 }
993 $parts[] = 'class="' . $class . '"';
994 }
995 }
996
997 if ( ! empty( $datas ) ) {
998 foreach ( $datas as $data => $val ) {
999 $parts[] = 'data-' . sanitize_html_class( $data ) . '="' . esc_attr( $val ) . '"';
1000 }
1001 }
1002
1003 if ( ! empty( $atts ) ) {
1004 foreach ( $atts as $att => $val ) {
1005 if ( '0' === $val || ! empty( $val ) ) {
1006 if ( $att[0] === '[' ) { //phpcs:ignore
1007 // Handle special case for bound attributes in AMP.
1008 $escaped_att = '[' . sanitize_html_class( trim( $att, '[]' ) ) . ']';
1009 } else {
1010 $escaped_att = sanitize_html_class( $att );
1011 }
1012 // While editing, fields must be visible even if they are hidden.
1013 if ( 'style' == $escaped_att && $is_edit_entry ) {
1014 $parts[] = 'style = "display: block"';
1015 } else {
1016 $parts[] = $escaped_att . '="' . esc_attr( $val ) . '"';
1017 }
1018 }
1019 }
1020 }
1021
1022 $output = implode( ' ', $parts );
1023
1024 if ( $echo ) {
1025 echo esc_html( trim( $output ) );
1026 } else {
1027 return trim( $output );
1028 }
1029 }
1030
1031 /**
1032 * Sanitize string of CSS classes.
1033 *
1034 * @param array|string $classes Class names.
1035 * @param bool $convert True will convert strings to array and vice versa.
1036 *
1037 * @return string|array
1038 */
1039 function evf_sanitize_classes( $classes, $convert = false ) {
1040 $css = array();
1041 $array = is_array( $classes );
1042
1043 if ( ! empty( $classes ) ) {
1044 if ( ! $array ) {
1045 $classes = explode( ' ', trim( $classes ) );
1046 }
1047 foreach ( $classes as $class ) {
1048 $css[] = sanitize_html_class( $class );
1049 }
1050 }
1051
1052 if ( $array ) {
1053 return $convert ? implode( ' ', $css ) : $css;
1054 } else {
1055 return $convert ? $css : implode( ' ', $css );
1056 }
1057 }
1058
1059 /**
1060 * Performs json_decode and unslash.
1061 *
1062 * @since 1.0.0
1063 *
1064 * @param string $data Data to decode.
1065 *
1066 * @return array|bool
1067 */
1068 function evf_decode( $data ) {
1069 if ( ! $data || empty( $data ) ) {
1070 return false;
1071 }
1072
1073 return json_decode( $data, true );
1074 }
1075
1076 /**
1077 * Performs json_encode and wp_slash.
1078 *
1079 * @since 1.0.0
1080 *
1081 * @param mixed $data Data to encode.
1082 *
1083 * @return string
1084 */
1085 function evf_encode( $data = false ) {
1086 if ( empty( $data ) ) {
1087 return false;
1088 }
1089
1090 return wp_slash( wp_json_encode( $data ) );
1091 }
1092
1093 /**
1094 * Crypto rand secure.
1095 *
1096 * @param int $min Min value.
1097 * @param int $max Max value.
1098 *
1099 * @return mixed
1100 */
1101 function evf_crypto_rand_secure( $min, $max ) {
1102 $range = $max - $min;
1103 if ( $range < 1 ) {
1104 return $min;
1105 } // not so random...
1106 $log = ceil( log( $range, 2 ) );
1107 $bytes = (int) ( $log / 8 ) + 1; // Length in bytes.
1108 $bits = (int) $log + 1; // Length in bits.
1109 $filter = (int) ( 1 << $bits ) - 1; // Set all lower bits to 1.
1110 do {
1111 $rnd = hexdec( bin2hex( openssl_random_pseudo_bytes( $bytes ) ) );
1112 $rnd = $rnd & $filter; // Discard irrelevant bits.
1113 } while ( $rnd > $range );
1114
1115 return $min + $rnd;
1116 }
1117
1118 /**
1119 * Generate random string.
1120 *
1121 * @param int $length Length of string.
1122 *
1123 * @return string
1124 */
1125 function evf_get_random_string( $length = 10 ) {
1126 $string = '';
1127 $code_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
1128 $code_alphabet .= 'abcdefghijklmnopqrstuvwxyz';
1129 $code_alphabet .= '0123456789';
1130 $max = strlen( $code_alphabet );
1131 for ( $i = 0; $i < $length; $i++ ) {
1132 $string .= $code_alphabet[ evf_crypto_rand_secure( 0, $max - 1 ) ];
1133 }
1134
1135 return $string;
1136 }
1137
1138 /**
1139 * Get all forms.
1140 *
1141 * @param bool $skip_disabled_entries True to skip disabled entries.
1142 * @param bool $check_disable_storing_entry_info Check disable storing entry.
1143 * @return array of form data.
1144 */
1145 function evf_get_all_forms( $skip_disabled_entries = false, $check_disable_storing_entry_info = true ) {
1146 if ( is_null( evf()->form ) ) {
1147 return array();
1148 }
1149 $forms = array();
1150 $form_ids = wp_parse_id_list(
1151 evf()->form->get_multiple(
1152 array(
1153 'fields' => 'ids',
1154 'status' => 'publish',
1155 'order' => 'DESC',
1156 'numberposts' => -1, // @codingStandardsIgnoreLine
1157 )
1158 )
1159 );
1160
1161 if ( ! empty( $form_ids ) ) {
1162 foreach ( $form_ids as $form_id ) {
1163 $form = evf()->form->get( $form_id );
1164 $entries = evf_get_entries_ids( $form_id );
1165 $form_data = ! empty( $form->post_content ) ? evf_decode( $form->post_content ) : '';
1166
1167 if ( ! $form || ( $skip_disabled_entries && count( $entries ) < 1 ) && ( isset( $form_data['settings']['disabled_entries'] ) && '1' === $form_data['settings']['disabled_entries'] ) ) {
1168 if ( ! $form || $check_disable_storing_entry_info ) {
1169 continue;
1170 }
1171 }
1172
1173 // Check permissions for forms with viewable.
1174 if ( current_user_can( 'everest_forms_view_form_entries', $form_id ) ) {
1175 $forms[ $form_id ] = $form->post_title;
1176 }
1177 }
1178 }
1179
1180 return $forms;
1181 }
1182
1183 /**
1184 * Get random meta-key for field option.
1185 *
1186 * @param array $field Field data array.
1187 * @return string
1188 */
1189 function evf_get_meta_key_field_option( $field ) {
1190 if ( isset( $field['type'] ) && isset( $field['label'] ) ) {
1191 switch ( $field['type'] ) {
1192 case 'select':
1193 $field['label'] = 'Dropdown';
1194 break;
1195 case 'radio':
1196 $field['label'] = 'Multiple Choice';
1197 break;
1198 case 'checkbox':
1199 $field['label'] = 'Checkboxes';
1200 break;
1201 }
1202 }
1203 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.
1204 }
1205
1206 /**
1207 * Get current user IP Address.
1208 *
1209 * @return string
1210 */
1211 function evf_get_ip_address() {
1212 if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) { // WPCS: input var ok, CSRF ok.
1213 return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) ); // WPCS: input var ok, CSRF ok.
1214 } elseif ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { // WPCS: input var ok, CSRF ok.
1215 // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2
1216 // Make sure we always only send through the first IP in the list which should always be the client IP.
1217 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.
1218 } elseif ( isset( $_SERVER['REMOTE_ADDR'] ) ) { // @codingStandardsIgnoreLine
1219 return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ); // @codingStandardsIgnoreLine
1220 }
1221 return '';
1222 }
1223
1224 /**
1225 * Get User Agent browser and OS type
1226 *
1227 * @since 1.1.0
1228 * @return array
1229 */
1230 function evf_get_browser() {
1231 $u_agent = ! empty( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) : '';
1232 $bname = 'Unknown';
1233 $platform = 'Unknown';
1234 $version = '';
1235
1236 // First get the platform.
1237 if ( preg_match( '/linux/i', $u_agent ) ) {
1238 $platform = 'Linux';
1239 } elseif ( preg_match( '/macintosh|mac os x/i', $u_agent ) ) {
1240 $platform = 'MAC OS';
1241 } elseif ( preg_match( '/windows|win32/i', $u_agent ) ) {
1242 $platform = 'Windows';
1243 }
1244
1245 // Next get the name of the useragent yes seperately and for good reason.
1246 if ( preg_match( '/MSIE/i', $u_agent ) && ! preg_match( '/Opera/i', $u_agent ) ) {
1247 $bname = 'Internet Explorer';
1248 $ub = 'MSIE';
1249 } elseif ( preg_match( '/Trident/i', $u_agent ) ) {
1250 // this condition is for IE11.
1251 $bname = 'Internet Explorer';
1252 $ub = 'rv';
1253 } elseif ( preg_match( '/Firefox/i', $u_agent ) ) {
1254 $bname = 'Mozilla Firefox';
1255 $ub = 'Firefox';
1256 } elseif ( preg_match( '/Chrome/i', $u_agent ) ) {
1257 $bname = 'Google Chrome';
1258 $ub = 'Chrome';
1259 } elseif ( preg_match( '/Safari/i', $u_agent ) ) {
1260 $bname = 'Apple Safari';
1261 $ub = 'Safari';
1262 } elseif ( preg_match( '/Opera/i', $u_agent ) ) {
1263 $bname = 'Opera';
1264 $ub = 'Opera';
1265 } elseif ( preg_match( '/Netscape/i', $u_agent ) ) {
1266 $bname = 'Netscape';
1267 $ub = 'Netscape';
1268 }
1269
1270 // Finally get the correct version number.
1271 // Added "|:".
1272 $known = array( 'Version', $ub, 'other' );
1273 $pattern = '#(?<browser>' . join( '|', $known ) . ')[/|: ]+(?<version>[0-9.|a-zA-Z.]*)#';
1274 if ( ! preg_match_all( $pattern, $u_agent, $matches ) ) { // @codingStandardsIgnoreLine
1275 // We have no matching number just continue.
1276 }
1277
1278 // See how many we have.
1279 $i = count( $matches['browser'] );
1280
1281 if ( 1 !== $i ) {
1282 // we will have two since we are not using 'other' argument yet.
1283 // see if version is before or after the name.
1284 if ( strripos( $u_agent, 'Version' ) < strripos( $u_agent, $ub ) ) {
1285 $version = $matches['version'][0];
1286 } else {
1287 $version = $matches['version'][1];
1288 }
1289 } else {
1290 $version = $matches['version'][0];
1291 }
1292
1293 // Check if we have a number.
1294 if ( null === $version || '' === $version ) {
1295 $version = '';
1296 }
1297
1298 return array(
1299 'userAgent' => $u_agent,
1300 'name' => $bname,
1301 'version' => $version,
1302 'platform' => $platform,
1303 'pattern' => $pattern,
1304 );
1305 }
1306
1307 /**
1308 * Get the certain date of a specified day in a specified format.
1309 *
1310 * @since 1.1.0
1311 *
1312 * @param string $period Supported values: start, end.
1313 * @param string $timestamp Default is the current timestamp, if left empty.
1314 * @param string $format Default is a MySQL format.
1315 *
1316 * @return string
1317 */
1318 function evf_get_day_period_date( $period, $timestamp = '', $format = 'Y-m-d H:i:s' ) {
1319 $date = '';
1320
1321 if ( empty( $timestamp ) ) {
1322 $timestamp = time();
1323 }
1324
1325 switch ( $period ) {
1326 case 'start_of_day':
1327 $date = date( $format, strtotime( 'today', $timestamp ) ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date
1328 break;
1329
1330 case 'end_of_day':
1331 $date = date( $format, strtotime( 'tomorrow', $timestamp ) - 1 ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date
1332 break;
1333
1334 }
1335
1336 return $date;
1337 }
1338
1339 /**
1340 * Get field label by meta key
1341 *
1342 * @param int $form_id Form ID.
1343 * @param string $meta_key Field's meta key.
1344 * @param array $fields Entry Field Data.
1345 *
1346 * @return string|false True if field label exists in form.
1347 */
1348 function evf_get_form_data_by_meta_key( $form_id, $meta_key, $fields = array() ) {
1349 $get_post = get_post( $form_id );
1350 $post_content = json_decode( $get_post->post_content, true );
1351 $form_fields = isset( $post_content['form_fields'] ) ? $post_content['form_fields'] : array();
1352
1353 if ( ! empty( $form_fields ) ) {
1354 foreach ( $form_fields as $field ) {
1355 if ( isset( $field['meta-key'] ) && $meta_key === $field['meta-key'] ) {
1356 return $field['label'];
1357 }
1358 }
1359 }
1360
1361 if ( ! empty( $fields ) ) {
1362 foreach ( $fields as $field ) {
1363 if ( isset( $field->meta_key ) && $meta_key === $field->meta_key ) {
1364 return isset( $field->name ) ? $field->name : $field->value->name;
1365 }
1366 }
1367 }
1368
1369 return false;
1370 }
1371
1372 /**
1373 * Get field type by meta key
1374 *
1375 * @param int $form_id Form ID.
1376 * @param string $meta_key Field's meta key.
1377 *
1378 * @return string|false True if field type exists in form.
1379 */
1380 function evf_get_field_type_by_meta_key( $form_id, $meta_key ) {
1381 $get_post = get_post( $form_id );
1382 $post_content = json_decode( $get_post->post_content, true );
1383 $form_fields = isset( $post_content['form_fields'] ) ? $post_content['form_fields'] : array();
1384
1385 if ( ! empty( $form_fields ) ) {
1386 foreach ( $form_fields as $field ) {
1387 if ( isset( $field['meta-key'] ) && $meta_key === $field['meta-key'] ) {
1388 return $field['type'];
1389 }
1390 }
1391 }
1392
1393 return false;
1394 }
1395
1396 /**
1397 * Get all the email fields of a Form.
1398 *
1399 * @param int $form_id Form ID.
1400 */
1401 function evf_get_all_email_fields_by_form_id( $form_id ) {
1402 $user_emails = array();
1403 $form_obj = evf()->form->get( $form_id );
1404 $form_data = ! empty( $form_obj->post_content ) ? evf_decode( $form_obj->post_content ) : '';
1405
1406 if ( ! empty( $form_data['form_fields'] ) ) {
1407 foreach ( $form_data['form_fields'] as $form_fields ) {
1408 if ( 'email' === $form_fields['type'] ) {
1409 $user_emails[ $form_fields['meta-key'] ] = $form_fields['label'];
1410 }
1411 }
1412 }
1413
1414 return $user_emails;
1415 }
1416
1417 /**
1418 * Get all the field's meta-key label pair.
1419 *
1420 * @param int $form_id Form ID.
1421 * @return array
1422 */
1423 function evf_get_all_form_fields_by_form_id( $form_id ) {
1424 $data = array();
1425 $form_obj = evf()->form->get( $form_id );
1426 $form_data = ! empty( $form_obj->post_content ) ? evf_decode( $form_obj->post_content ) : '';
1427
1428 if ( ! empty( $form_data['form_fields'] ) ) {
1429 foreach ( $form_data['form_fields'] as $form_fields ) {
1430 if ( isset( $form_fields['meta-key'], $form_fields['label'] ) ) {
1431 $data[ $form_fields['meta-key'] ] = $form_fields['label'];
1432 }
1433 }
1434 }
1435
1436 return $data;
1437 }
1438
1439 /**
1440 * Check if the string JSON.
1441 *
1442 * @param string $string String to check.
1443 * @return bool
1444 */
1445 function evf_isJson( $string ) {
1446 json_decode( $string );
1447 return ( json_last_error() == JSON_ERROR_NONE ); // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
1448 }
1449
1450 /**
1451 * Checks whether the content passed contains a specific short code.
1452 *
1453 * @since 1.1.4
1454 * @param string $tag Shortcode tag to check.
1455 * @return bool
1456 */
1457 function evf_post_content_has_shortcode( $tag = '' ) {
1458 global $post;
1459
1460 return is_singular() && is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, $tag );
1461 }
1462
1463 /**
1464 * Convert a file size provided, such as "2M", to bytes.
1465 *
1466 * @since 1.2.0
1467 * @link http://stackoverflow.com/a/22500394
1468 *
1469 * @param string $size Size to convert to bytes.
1470 *
1471 * @return int
1472 */
1473 function evf_size_to_bytes( $size ) {
1474 if ( is_numeric( $size ) ) {
1475 return $size;
1476 }
1477
1478 $suffix = substr( $size, - 1 );
1479 $value = substr( $size, 0, - 1 );
1480
1481 // @codingStandardsIgnoreStart
1482 switch ( strtoupper( $suffix ) ) {
1483 case 'P':
1484 $value *= 1024;
1485 case 'T':
1486 $value *= 1024;
1487 case 'G':
1488 $value *= 1024;
1489 case 'M':
1490 $value *= 1024;
1491 case 'K':
1492 $value *= 1024;
1493 break;
1494 }
1495 // @codingStandardsIgnoreEnd
1496
1497 return $value;
1498 }
1499
1500 /**
1501 * Convert bytes to megabytes (or in some cases KB).
1502 *
1503 * @since 1.2.0
1504 *
1505 * @param int $bytes Bytes to convert to a readable format.
1506 *
1507 * @return string
1508 */
1509 function evf_size_to_megabytes( $bytes ) {
1510 if ( $bytes < 1048676 ) {
1511 return number_format( $bytes / 1024, 1 ) . ' KB';
1512 } else {
1513 return round( (float) number_format( $bytes / 1048576, 1 ) ) . ' MB';
1514 }
1515 }
1516
1517 /**
1518 * Convert a file size provided, such as "2M", to bytes.
1519 *
1520 * @since 1.2.0
1521 * @link http://stackoverflow.com/a/22500394
1522 *
1523 * @param bool $bytes Whether to convert Bytes to a readable format.
1524 * @return mixed
1525 */
1526 function evf_max_upload( $bytes = false ) {
1527 $max = wp_max_upload_size();
1528
1529 if ( $bytes ) {
1530 return $max;
1531 } else {
1532 return evf_size_to_megabytes( $max );
1533 }
1534 }
1535
1536 /**
1537 * Get the required label text, with a filter.
1538 *
1539 * @since 1.2.0
1540 * @return string
1541 */
1542 function evf_get_required_label() {
1543 return apply_filters( 'everest_forms_required_label', esc_html__( 'This field is required.', 'everest-forms' ) );
1544 }
1545
1546 /**
1547 * Get a PRO license plan.
1548 *
1549 * @since 1.2.0
1550 * @return bool|string Plan on success, false on failure.
1551 */
1552 function evf_get_license_plan() {
1553 $license_key = get_option( 'everest-forms-pro_license_key' );
1554
1555 if ( ! function_exists( 'is_plugin_active' ) ) {
1556 include_once ABSPATH . 'wp-admin/includes/plugin.php';
1557 }
1558
1559 if ( $license_key && is_plugin_active( 'everest-forms-pro/everest-forms-pro.php' ) ) {
1560 $license_data = get_transient( 'evf_pro_license_plan' );
1561
1562 if ( false === $license_data ) {
1563 $license_data = json_decode(
1564 EVF_Updater_Key_API::check(
1565 array(
1566 'license' => $license_key,
1567 )
1568 )
1569 );
1570
1571 if ( ! empty( $license_data->item_name ) ) {
1572 $license_data->item_plan = trim( str_replace( 'everest forms', '', str_replace( 'lifetime', '', str_replace( '-lifetime', '', strtolower( $license_data->item_name ) ) ) ) );
1573 set_transient( 'evf_pro_license_plan', $license_data, WEEK_IN_SECONDS );
1574 }
1575 }
1576 return evf_handle_license_plan_compatibility( isset( $license_data->item_plan ) ? trim( str_replace( 'everest forms', '', str_replace( 'lifetime', '', str_replace( '-lifetime', '', strtolower( $license_data->item_plan ) ) ) ) ) : false );
1577 }
1578
1579 return false;
1580 }
1581
1582 /** To handle the backward compatibility for those user who is still using the plus and professional plan license key.
1583 *
1584 * @since 3.0.0
1585 * @param $license_plan License plan.
1586 */
1587 function evf_handle_license_plan_compatibility( $license_plan ) {
1588 $license_plan = ( 'plus' === $license_plan || 'professional' === $license_plan ) ? 'personal' : $license_plan;
1589 return $license_plan;
1590 }
1591
1592 /**
1593 * Decode special characters, both alpha- (<) and numeric-based (').
1594 *
1595 * @since 1.2.0
1596 *
1597 * @param string $string Raw string to decode.
1598 *
1599 * @return string
1600 */
1601 function evf_decode_string( $string ) {
1602 if ( ! is_string( $string ) ) {
1603 return $string;
1604 }
1605
1606 return wp_kses_decode_entities( html_entity_decode( $string, ENT_QUOTES ) );
1607 }
1608 add_filter( 'everest_forms_email_message', 'evf_decode_string' );
1609
1610 /**
1611 * Get Countries.
1612 *
1613 * @since 1.2.0
1614 * @return array
1615 */
1616 function evf_get_countries() {
1617 $countries = array(
1618 'AF' => esc_html__( 'Afghanistan', 'everest-forms' ),
1619 'AX' => esc_html__( '�
1620 land Islands', 'everest-forms' ),
1621 'AL' => esc_html__( 'Albania', 'everest-forms' ),
1622 'DZ' => esc_html__( 'Algeria', 'everest-forms' ),
1623 'AS' => esc_html__( 'American Samoa', 'everest-forms' ),
1624 'AD' => esc_html__( 'Andorra', 'everest-forms' ),
1625 'AO' => esc_html__( 'Angola', 'everest-forms' ),
1626 'AI' => esc_html__( 'Anguilla', 'everest-forms' ),
1627 'AQ' => esc_html__( 'Antarctica', 'everest-forms' ),
1628 'AG' => esc_html__( 'Antigua and Barbuda', 'everest-forms' ),
1629 'AR' => esc_html__( 'Argentina', 'everest-forms' ),
1630 'AM' => esc_html__( 'Armenia', 'everest-forms' ),
1631 'AW' => esc_html__( 'Aruba', 'everest-forms' ),
1632 'AU' => esc_html__( 'Australia', 'everest-forms' ),
1633 'AT' => esc_html__( 'Austria', 'everest-forms' ),
1634 'AZ' => esc_html__( 'Azerbaijan', 'everest-forms' ),
1635 'BS' => esc_html__( 'Bahamas', 'everest-forms' ),
1636 'BH' => esc_html__( 'Bahrain', 'everest-forms' ),
1637 'BD' => esc_html__( 'Bangladesh', 'everest-forms' ),
1638 'BB' => esc_html__( 'Barbados', 'everest-forms' ),
1639 'BY' => esc_html__( 'Belarus', 'everest-forms' ),
1640 'BE' => esc_html__( 'Belgium', 'everest-forms' ),
1641 'PW' => esc_html__( 'Belau', 'everest-forms' ),
1642 'BZ' => esc_html__( 'Belize', 'everest-forms' ),
1643 'BJ' => esc_html__( 'Benin', 'everest-forms' ),
1644 'BM' => esc_html__( 'Bermuda', 'everest-forms' ),
1645 'BT' => esc_html__( 'Bhutan', 'everest-forms' ),
1646 'BO' => esc_html__( 'Bolivia', 'everest-forms' ),
1647 'BQ' => esc_html__( 'Bonaire, Saint Eustatius and Saba', 'everest-forms' ),
1648 'BA' => esc_html__( 'Bosnia and Herzegovina', 'everest-forms' ),
1649 'BW' => esc_html__( 'Botswana', 'everest-forms' ),
1650 'BV' => esc_html__( 'Bouvet Island', 'everest-forms' ),
1651 'BR' => esc_html__( 'Brazil', 'everest-forms' ),
1652 'IO' => esc_html__( 'British Indian Ocean Territory', 'everest-forms' ),
1653 'BN' => esc_html__( 'Brunei', 'everest-forms' ),
1654 'BG' => esc_html__( 'Bulgaria', 'everest-forms' ),
1655 'BF' => esc_html__( 'Burkina Faso', 'everest-forms' ),
1656 'BI' => esc_html__( 'Burundi', 'everest-forms' ),
1657 'KH' => esc_html__( 'Cambodia', 'everest-forms' ),
1658 'CM' => esc_html__( 'Cameroon', 'everest-forms' ),
1659 'CA' => esc_html__( 'Canada', 'everest-forms' ),
1660 'CV' => esc_html__( 'Cape Verde', 'everest-forms' ),
1661 'KY' => esc_html__( 'Cayman Islands', 'everest-forms' ),
1662 'CF' => esc_html__( 'Central African Republic', 'everest-forms' ),
1663 'TD' => esc_html__( 'Chad', 'everest-forms' ),
1664 'CL' => esc_html__( 'Chile', 'everest-forms' ),
1665 'CN' => esc_html__( 'China', 'everest-forms' ),
1666 'CX' => esc_html__( 'Christmas Island', 'everest-forms' ),
1667 'CC' => esc_html__( 'Cocos (Keeling) Islands', 'everest-forms' ),
1668 'CO' => esc_html__( 'Colombia', 'everest-forms' ),
1669 'KM' => esc_html__( 'Comoros', 'everest-forms' ),
1670 'CG' => esc_html__( 'Congo (Brazzaville)', 'everest-forms' ),
1671 'CD' => esc_html__( 'Congo (Kinshasa)', 'everest-forms' ),
1672 'CK' => esc_html__( 'Cook Islands', 'everest-forms' ),
1673 'CR' => esc_html__( 'Costa Rica', 'everest-forms' ),
1674 'HR' => esc_html__( 'Croatia', 'everest-forms' ),
1675 'CU' => esc_html__( 'Cuba', 'everest-forms' ),
1676 'CW' => esc_html__( 'Cura&ccedil;ao', 'everest-forms' ),
1677 'CY' => esc_html__( 'Cyprus', 'everest-forms' ),
1678 'CZ' => esc_html__( 'Czech Republic', 'everest-forms' ),
1679 'DK' => esc_html__( 'Denmark', 'everest-forms' ),
1680 'DJ' => esc_html__( 'Djibouti', 'everest-forms' ),
1681 'DM' => esc_html__( 'Dominica', 'everest-forms' ),
1682 'DO' => esc_html__( 'Dominican Republic', 'everest-forms' ),
1683 'EC' => esc_html__( 'Ecuador', 'everest-forms' ),
1684 'EG' => esc_html__( 'Egypt', 'everest-forms' ),
1685 'SV' => esc_html__( 'El Salvador', 'everest-forms' ),
1686 'GQ' => esc_html__( 'Equatorial Guinea', 'everest-forms' ),
1687 'ER' => esc_html__( 'Eritrea', 'everest-forms' ),
1688 'EE' => esc_html__( 'Estonia', 'everest-forms' ),
1689 'ET' => esc_html__( 'Ethiopia', 'everest-forms' ),
1690 'FK' => esc_html__( 'Falkland Islands', 'everest-forms' ),
1691 'FO' => esc_html__( 'Faroe Islands', 'everest-forms' ),
1692 'FJ' => esc_html__( 'Fiji', 'everest-forms' ),
1693 'FI' => esc_html__( 'Finland', 'everest-forms' ),
1694 'FR' => esc_html__( 'France', 'everest-forms' ),
1695 'GF' => esc_html__( 'French Guiana', 'everest-forms' ),
1696 'PF' => esc_html__( 'French Polynesia', 'everest-forms' ),
1697 'TF' => esc_html__( 'French Southern Territories', 'everest-forms' ),
1698 'GA' => esc_html__( 'Gabon', 'everest-forms' ),
1699 'GM' => esc_html__( 'Gambia', 'everest-forms' ),
1700 'GE' => esc_html__( 'Georgia', 'everest-forms' ),
1701 'DE' => esc_html__( 'Germany', 'everest-forms' ),
1702 'GH' => esc_html__( 'Ghana', 'everest-forms' ),
1703 'GI' => esc_html__( 'Gibraltar', 'everest-forms' ),
1704 'GR' => esc_html__( 'Greece', 'everest-forms' ),
1705 'GL' => esc_html__( 'Greenland', 'everest-forms' ),
1706 'GD' => esc_html__( 'Grenada', 'everest-forms' ),
1707 'GP' => esc_html__( 'Guadeloupe', 'everest-forms' ),
1708 'GU' => esc_html__( 'Guam', 'everest-forms' ),
1709 'GT' => esc_html__( 'Guatemala', 'everest-forms' ),
1710 'GG' => esc_html__( 'Guernsey', 'everest-forms' ),
1711 'GN' => esc_html__( 'Guinea', 'everest-forms' ),
1712 'GW' => esc_html__( 'Guinea-Bissau', 'everest-forms' ),
1713 'GY' => esc_html__( 'Guyana', 'everest-forms' ),
1714 'HT' => esc_html__( 'Haiti', 'everest-forms' ),
1715 'HM' => esc_html__( 'Heard Island and McDonald Islands', 'everest-forms' ),
1716 'HN' => esc_html__( 'Honduras', 'everest-forms' ),
1717 'HK' => esc_html__( 'Hong Kong', 'everest-forms' ),
1718 'HU' => esc_html__( 'Hungary', 'everest-forms' ),
1719 'IS' => esc_html__( 'Iceland', 'everest-forms' ),
1720 'IN' => esc_html__( 'India', 'everest-forms' ),
1721 'ID' => esc_html__( 'Indonesia', 'everest-forms' ),
1722 'IR' => esc_html__( 'Iran', 'everest-forms' ),
1723 'IQ' => esc_html__( 'Iraq', 'everest-forms' ),
1724 'IE' => esc_html__( 'Ireland', 'everest-forms' ),
1725 'IM' => esc_html__( 'Isle of Man', 'everest-forms' ),
1726 'IL' => esc_html__( 'Israel', 'everest-forms' ),
1727 'IT' => esc_html__( 'Italy', 'everest-forms' ),
1728 'CI' => esc_html__( 'Ivory Coast', 'everest-forms' ),
1729 'JM' => esc_html__( 'Jamaica', 'everest-forms' ),
1730 'JP' => esc_html__( 'Japan', 'everest-forms' ),
1731 'JE' => esc_html__( 'Jersey', 'everest-forms' ),
1732 'JO' => esc_html__( 'Jordan', 'everest-forms' ),
1733 'KZ' => esc_html__( 'Kazakhstan', 'everest-forms' ),
1734 'KE' => esc_html__( 'Kenya', 'everest-forms' ),
1735 'KI' => esc_html__( 'Kiribati', 'everest-forms' ),
1736 'KW' => esc_html__( 'Kuwait', 'everest-forms' ),
1737 'XK' => esc_html__( 'Kosovo', 'everest-forms' ),
1738 'KG' => esc_html__( 'Kyrgyzstan', 'everest-forms' ),
1739 'LA' => esc_html__( 'Laos', 'everest-forms' ),
1740 'LV' => esc_html__( 'Latvia', 'everest-forms' ),
1741 'LB' => esc_html__( 'Lebanon', 'everest-forms' ),
1742 'LS' => esc_html__( 'Lesotho', 'everest-forms' ),
1743 'LR' => esc_html__( 'Liberia', 'everest-forms' ),
1744 'LY' => esc_html__( 'Libya', 'everest-forms' ),
1745 'LI' => esc_html__( 'Liechtenstein', 'everest-forms' ),
1746 'LT' => esc_html__( 'Lithuania', 'everest-forms' ),
1747 'LU' => esc_html__( 'Luxembourg', 'everest-forms' ),
1748 'MO' => esc_html__( 'Macao', 'everest-forms' ),
1749 'MK' => esc_html__( 'North Macedonia', 'everest-forms' ),
1750 'MG' => esc_html__( 'Madagascar', 'everest-forms' ),
1751 'MW' => esc_html__( 'Malawi', 'everest-forms' ),
1752 'MY' => esc_html__( 'Malaysia', 'everest-forms' ),
1753 'MV' => esc_html__( 'Maldives', 'everest-forms' ),
1754 'ML' => esc_html__( 'Mali', 'everest-forms' ),
1755 'MT' => esc_html__( 'Malta', 'everest-forms' ),
1756 'MH' => esc_html__( 'Marshall Islands', 'everest-forms' ),
1757 'MQ' => esc_html__( 'Martinique', 'everest-forms' ),
1758 'MR' => esc_html__( 'Mauritania', 'everest-forms' ),
1759 'MU' => esc_html__( 'Mauritius', 'everest-forms' ),
1760 'YT' => esc_html__( 'Mayotte', 'everest-forms' ),
1761 'MX' => esc_html__( 'Mexico', 'everest-forms' ),
1762 'FM' => esc_html__( 'Micronesia', 'everest-forms' ),
1763 'MD' => esc_html__( 'Moldova', 'everest-forms' ),
1764 'MC' => esc_html__( 'Monaco', 'everest-forms' ),
1765 'MN' => esc_html__( 'Mongolia', 'everest-forms' ),
1766 'ME' => esc_html__( 'Montenegro', 'everest-forms' ),
1767 'MS' => esc_html__( 'Montserrat', 'everest-forms' ),
1768 'MA' => esc_html__( 'Morocco', 'everest-forms' ),
1769 'MZ' => esc_html__( 'Mozambique', 'everest-forms' ),
1770 'MM' => esc_html__( 'Myanmar', 'everest-forms' ),
1771 'NA' => esc_html__( 'Namibia', 'everest-forms' ),
1772 'NR' => esc_html__( 'Nauru', 'everest-forms' ),
1773 'NP' => esc_html__( 'Nepal', 'everest-forms' ),
1774 'NL' => esc_html__( 'Netherlands', 'everest-forms' ),
1775 'NC' => esc_html__( 'New Caledonia', 'everest-forms' ),
1776 'NZ' => esc_html__( 'New Zealand', 'everest-forms' ),
1777 'NI' => esc_html__( 'Nicaragua', 'everest-forms' ),
1778 'NE' => esc_html__( 'Niger', 'everest-forms' ),
1779 'NG' => esc_html__( 'Nigeria', 'everest-forms' ),
1780 'NU' => esc_html__( 'Niue', 'everest-forms' ),
1781 'NF' => esc_html__( 'Norfolk Island', 'everest-forms' ),
1782 'MP' => esc_html__( 'Northern Mariana Islands', 'everest-forms' ),
1783 'KP' => esc_html__( 'North Korea', 'everest-forms' ),
1784 'NO' => esc_html__( 'Norway', 'everest-forms' ),
1785 'OM' => esc_html__( 'Oman', 'everest-forms' ),
1786 'PK' => esc_html__( 'Pakistan', 'everest-forms' ),
1787 'PS' => esc_html__( 'Palestinian Territory', 'everest-forms' ),
1788 'PA' => esc_html__( 'Panama', 'everest-forms' ),
1789 'PG' => esc_html__( 'Papua New Guinea', 'everest-forms' ),
1790 'PY' => esc_html__( 'Paraguay', 'everest-forms' ),
1791 'PE' => esc_html__( 'Peru', 'everest-forms' ),
1792 'PH' => esc_html__( 'Philippines', 'everest-forms' ),
1793 'PN' => esc_html__( 'Pitcairn', 'everest-forms' ),
1794 'PL' => esc_html__( 'Poland', 'everest-forms' ),
1795 'PT' => esc_html__( 'Portugal', 'everest-forms' ),
1796 'PR' => esc_html__( 'Puerto Rico', 'everest-forms' ),
1797 'QA' => esc_html__( 'Qatar', 'everest-forms' ),
1798 'RE' => esc_html__( 'Reunion', 'everest-forms' ),
1799 'RO' => esc_html__( 'Romania', 'everest-forms' ),
1800 'RU' => esc_html__( 'Russia', 'everest-forms' ),
1801 'RW' => esc_html__( 'Rwanda', 'everest-forms' ),
1802 'BL' => esc_html__( 'Saint Barth&eacute;lemy', 'everest-forms' ),
1803 'SH' => esc_html__( 'Saint Helena', 'everest-forms' ),
1804 'KN' => esc_html__( 'Saint Kitts and Nevis', 'everest-forms' ),
1805 'LC' => esc_html__( 'Saint Lucia', 'everest-forms' ),
1806 'MF' => esc_html__( 'Saint Martin (French part)', 'everest-forms' ),
1807 'SX' => esc_html__( 'Saint Martin (Dutch part)', 'everest-forms' ),
1808 'PM' => esc_html__( 'Saint Pierre and Miquelon', 'everest-forms' ),
1809 'VC' => esc_html__( 'Saint Vincent and the Grenadines', 'everest-forms' ),
1810 'SM' => esc_html__( 'San Marino', 'everest-forms' ),
1811 'ST' => esc_html__( 'S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'everest-forms' ),
1812 'SA' => esc_html__( 'Saudi Arabia', 'everest-forms' ),
1813 'SN' => esc_html__( 'Senegal', 'everest-forms' ),
1814 'RS' => esc_html__( 'Serbia', 'everest-forms' ),
1815 'SC' => esc_html__( 'Seychelles', 'everest-forms' ),
1816 'SL' => esc_html__( 'Sierra Leone', 'everest-forms' ),
1817 'SG' => esc_html__( 'Singapore', 'everest-forms' ),
1818 'SK' => esc_html__( 'Slovakia', 'everest-forms' ),
1819 'SI' => esc_html__( 'Slovenia', 'everest-forms' ),
1820 'SB' => esc_html__( 'Solomon Islands', 'everest-forms' ),
1821 'SO' => esc_html__( 'Somalia', 'everest-forms' ),
1822 'ZA' => esc_html__( 'South Africa', 'everest-forms' ),
1823 'GS' => esc_html__( 'South Georgia/Sandwich Islands', 'everest-forms' ),
1824 'KR' => esc_html__( 'South Korea', 'everest-forms' ),
1825 'SS' => esc_html__( 'South Sudan', 'everest-forms' ),
1826 'ES' => esc_html__( 'Spain', 'everest-forms' ),
1827 'LK' => esc_html__( 'Sri Lanka', 'everest-forms' ),
1828 'SD' => esc_html__( 'Sudan', 'everest-forms' ),
1829 'SR' => esc_html__( 'Suriname', 'everest-forms' ),
1830 'SJ' => esc_html__( 'Svalbard and Jan Mayen', 'everest-forms' ),
1831 'SZ' => esc_html__( 'Swaziland', 'everest-forms' ),
1832 'SE' => esc_html__( 'Sweden', 'everest-forms' ),
1833 'CH' => esc_html__( 'Switzerland', 'everest-forms' ),
1834 'SY' => esc_html__( 'Syria', 'everest-forms' ),
1835 'TW' => esc_html__( 'Taiwan', 'everest-forms' ),
1836 'TJ' => esc_html__( 'Tajikistan', 'everest-forms' ),
1837 'TZ' => esc_html__( 'Tanzania', 'everest-forms' ),
1838 'TH' => esc_html__( 'Thailand', 'everest-forms' ),
1839 'TL' => esc_html__( 'Timor-Leste', 'everest-forms' ),
1840 'TG' => esc_html__( 'Togo', 'everest-forms' ),
1841 'TK' => esc_html__( 'Tokelau', 'everest-forms' ),
1842 'TO' => esc_html__( 'Tonga', 'everest-forms' ),
1843 'TT' => esc_html__( 'Trinidad and Tobago', 'everest-forms' ),
1844 'TN' => esc_html__( 'Tunisia', 'everest-forms' ),
1845 'TR' => esc_html__( 'Turkey', 'everest-forms' ),
1846 'TM' => esc_html__( 'Turkmenistan', 'everest-forms' ),
1847 'TC' => esc_html__( 'Turks and Caicos Islands', 'everest-forms' ),
1848 'TV' => esc_html__( 'Tuvalu', 'everest-forms' ),
1849 'UG' => esc_html__( 'Uganda', 'everest-forms' ),
1850 'UA' => esc_html__( 'Ukraine', 'everest-forms' ),
1851 'AE' => esc_html__( 'United Arab Emirates', 'everest-forms' ),
1852 'GB' => esc_html__( 'United Kingdom (UK)', 'everest-forms' ),
1853 'US' => esc_html__( 'United States (US)', 'everest-forms' ),
1854 'UM' => esc_html__( 'United States (US) Minor Outlying Islands', 'everest-forms' ),
1855 'UY' => esc_html__( 'Uruguay', 'everest-forms' ),
1856 'UZ' => esc_html__( 'Uzbekistan', 'everest-forms' ),
1857 'VU' => esc_html__( 'Vanuatu', 'everest-forms' ),
1858 'VA' => esc_html__( 'Vatican', 'everest-forms' ),
1859 'VE' => esc_html__( 'Venezuela', 'everest-forms' ),
1860 'VN' => esc_html__( 'Vietnam', 'everest-forms' ),
1861 'VG' => esc_html__( 'Virgin Islands (British)', 'everest-forms' ),
1862 'VI' => esc_html__( 'Virgin Islands (US)', 'everest-forms' ),
1863 'WF' => esc_html__( 'Wallis and Futuna', 'everest-forms' ),
1864 'EH' => esc_html__( 'Western Sahara', 'everest-forms' ),
1865 'WS' => esc_html__( 'Samoa', 'everest-forms' ),
1866 'YE' => esc_html__( 'Yemen', 'everest-forms' ),
1867 'ZM' => esc_html__( 'Zambia', 'everest-forms' ),
1868 'ZW' => esc_html__( 'Zimbabwe', 'everest-forms' ),
1869 );
1870
1871 return (array) apply_filters( 'everest_forms_countries', $countries );
1872 }
1873
1874 /**
1875 * Get U.S. States.
1876 *
1877 * @since 1.7.0
1878 * @return array
1879 */
1880 function evf_get_states() {
1881 $states = array(
1882 'AF' => array(),
1883 'AL' => array( // Albanian states.
1884 'AL-01' => __( 'Berat', 'everest-forms' ),
1885 'AL-09' => __( 'Dibër', 'everest-forms' ),
1886 'AL-02' => __( 'Durrës', 'everest-forms' ),
1887 'AL-03' => __( 'Elbasan', 'everest-forms' ),
1888 'AL-04' => __( 'Fier', 'everest-forms' ),
1889 'AL-05' => __( 'Gjirokastër', 'everest-forms' ),
1890 'AL-06' => __( 'Korçë', 'everest-forms' ),
1891 'AL-07' => __( 'Kukës', 'everest-forms' ),
1892 'AL-08' => __( 'Lezhë', 'everest-forms' ),
1893 'AL-10' => __( 'Shkodër', 'everest-forms' ),
1894 'AL-11' => __( 'Tirana', 'everest-forms' ),
1895 'AL-12' => __( 'Vlorë', 'everest-forms' ),
1896 ),
1897 'AO' => array( // Angolan states.
1898 'BGO' => __( 'Bengo', 'everest-forms' ),
1899 'BLU' => __( 'Benguela', 'everest-forms' ),
1900 'BIE' => __( 'Bié', 'everest-forms' ),
1901 'CAB' => __( 'Cabinda', 'everest-forms' ),
1902 'CNN' => __( 'Cunene', 'everest-forms' ),
1903 'HUA' => __( 'Huambo', 'everest-forms' ),
1904 'HUI' => __( 'Huíla', 'everest-forms' ),
1905 'CCU' => __( 'Kuando Kubango', 'everest-forms' ),
1906 'CNO' => __( 'Kwanza-Norte', 'everest-forms' ),
1907 'CUS' => __( 'Kwanza-Sul', 'everest-forms' ),
1908 'LUA' => __( 'Luanda', 'everest-forms' ),
1909 'LNO' => __( 'Lunda-Norte', 'everest-forms' ),
1910 'LSU' => __( 'Lunda-Sul', 'everest-forms' ),
1911 'MAL' => __( 'Malanje', 'everest-forms' ),
1912 'MOX' => __( 'Moxico', 'everest-forms' ),
1913 'NAM' => __( 'Namibe', 'everest-forms' ),
1914 'UIG' => __( 'Uíge', 'everest-forms' ),
1915 'ZAI' => __( 'Zaire', 'everest-forms' ),
1916 ),
1917 'AR' => array( // Argentinian provinces.
1918 'C' => __( 'Ciudad Autónoma de Buenos Aires', 'everest-forms' ),
1919 'B' => __( 'Buenos Aires', 'everest-forms' ),
1920 'K' => __( 'Catamarca', 'everest-forms' ),
1921 'H' => __( 'Chaco', 'everest-forms' ),
1922 'U' => __( 'Chubut', 'everest-forms' ),
1923 'X' => __( 'Córdoba', 'everest-forms' ),
1924 'W' => __( 'Corrientes', 'everest-forms' ),
1925 'E' => __( 'Entre Ríos', 'everest-forms' ),
1926 'P' => __( 'Formosa', 'everest-forms' ),
1927 'Y' => __( 'Jujuy', 'everest-forms' ),
1928 'L' => __( 'La Pampa', 'everest-forms' ),
1929 'F' => __( 'La Rioja', 'everest-forms' ),
1930 'M' => __( 'Mendoza', 'everest-forms' ),
1931 'N' => __( 'Misiones', 'everest-forms' ),
1932 'Q' => __( 'Neuquén', 'everest-forms' ),
1933 'R' => __( 'Río Negro', 'everest-forms' ),
1934 'A' => __( 'Salta', 'everest-forms' ),
1935 'J' => __( 'San Juan', 'everest-forms' ),
1936 'D' => __( 'San Luis', 'everest-forms' ),
1937 'Z' => __( 'Santa Cruz', 'everest-forms' ),
1938 'S' => __( 'Santa Fe', 'everest-forms' ),
1939 'G' => __( 'Santiago del Estero', 'everest-forms' ),
1940 'V' => __( 'Tierra del Fuego', 'everest-forms' ),
1941 'T' => __( 'Tucumán', 'everest-forms' ),
1942 ),
1943 'AT' => array(),
1944 'AU' => array( // Australian states.
1945 'ACT' => __( 'Australian Capital Territory', 'everest-forms' ),
1946 'NSW' => __( 'New South Wales', 'everest-forms' ),
1947 'NT' => __( 'Northern Territory', 'everest-forms' ),
1948 'QLD' => __( 'Queensland', 'everest-forms' ),
1949 'SA' => __( 'South Australia', 'everest-forms' ),
1950 'TAS' => __( 'Tasmania', 'everest-forms' ),
1951 'VIC' => __( 'Victoria', 'everest-forms' ),
1952 'WA' => __( 'Western Australia', 'everest-forms' ),
1953 ),
1954 'AX' => array(),
1955 'BD' => array( // Bangladeshi districts.
1956 'BD-05' => __( 'Bagerhat', 'everest-forms' ),
1957 'BD-01' => __( 'Bandarban', 'everest-forms' ),
1958 'BD-02' => __( 'Barguna', 'everest-forms' ),
1959 'BD-06' => __( 'Barishal', 'everest-forms' ),
1960 'BD-07' => __( 'Bhola', 'everest-forms' ),
1961 'BD-03' => __( 'Bogura', 'everest-forms' ),
1962 'BD-04' => __( 'Brahmanbaria', 'everest-forms' ),
1963 'BD-09' => __( 'Chandpur', 'everest-forms' ),
1964 'BD-10' => __( 'Chattogram', 'everest-forms' ),
1965 'BD-12' => __( 'Chuadanga', 'everest-forms' ),
1966 'BD-11' => __( "Cox's Bazar", 'everest-forms' ),
1967 'BD-08' => __( 'Cumilla', 'everest-forms' ),
1968 'BD-13' => __( 'Dhaka', 'everest-forms' ),
1969 'BD-14' => __( 'Dinajpur', 'everest-forms' ),
1970 'BD-15' => __( 'Faridpur ', 'everest-forms' ),
1971 'BD-16' => __( 'Feni', 'everest-forms' ),
1972 'BD-19' => __( 'Gaibandha', 'everest-forms' ),
1973 'BD-18' => __( 'Gazipur', 'everest-forms' ),
1974 'BD-17' => __( 'Gopalganj', 'everest-forms' ),
1975 'BD-20' => __( 'Habiganj', 'everest-forms' ),
1976 'BD-21' => __( 'Jamalpur', 'everest-forms' ),
1977 'BD-22' => __( 'Jashore', 'everest-forms' ),
1978 'BD-25' => __( 'Jhalokati', 'everest-forms' ),
1979 'BD-23' => __( 'Jhenaidah', 'everest-forms' ),
1980 'BD-24' => __( 'Joypurhat', 'everest-forms' ),
1981 'BD-29' => __( 'Khagrachhari', 'everest-forms' ),
1982 'BD-27' => __( 'Khulna', 'everest-forms' ),
1983 'BD-26' => __( 'Kishoreganj', 'everest-forms' ),
1984 'BD-28' => __( 'Kurigram', 'everest-forms' ),
1985 'BD-30' => __( 'Kushtia', 'everest-forms' ),
1986 'BD-31' => __( 'Lakshmipur', 'everest-forms' ),
1987 'BD-32' => __( 'Lalmonirhat', 'everest-forms' ),
1988 'BD-36' => __( 'Madaripur', 'everest-forms' ),
1989 'BD-37' => __( 'Magura', 'everest-forms' ),
1990 'BD-33' => __( 'Manikganj ', 'everest-forms' ),
1991 'BD-39' => __( 'Meherpur', 'everest-forms' ),
1992 'BD-38' => __( 'Moulvibazar', 'everest-forms' ),
1993 'BD-35' => __( 'Munshiganj', 'everest-forms' ),
1994 'BD-34' => __( 'Mymensingh', 'everest-forms' ),
1995 'BD-48' => __( 'Naogaon', 'everest-forms' ),
1996 'BD-43' => __( 'Narail', 'everest-forms' ),
1997 'BD-40' => __( 'Narayanganj', 'everest-forms' ),
1998 'BD-42' => __( 'Narsingdi', 'everest-forms' ),
1999 'BD-44' => __( 'Natore', 'everest-forms' ),
2000 'BD-45' => __( 'Nawabganj', 'everest-forms' ),
2001 'BD-41' => __( 'Netrakona', 'everest-forms' ),
2002 'BD-46' => __( 'Nilphamari', 'everest-forms' ),
2003 'BD-47' => __( 'Noakhali', 'everest-forms' ),
2004 'BD-49' => __( 'Pabna', 'everest-forms' ),
2005 'BD-52' => __( 'Panchagarh', 'everest-forms' ),
2006 'BD-51' => __( 'Patuakhali', 'everest-forms' ),
2007 'BD-50' => __( 'Pirojpur', 'everest-forms' ),
2008 'BD-53' => __( 'Rajbari', 'everest-forms' ),
2009 'BD-54' => __( 'Rajshahi', 'everest-forms' ),
2010 'BD-56' => __( 'Rangamati', 'everest-forms' ),
2011 'BD-55' => __( 'Rangpur', 'everest-forms' ),
2012 'BD-58' => __( 'Satkhira', 'everest-forms' ),
2013 'BD-62' => __( 'Shariatpur', 'everest-forms' ),
2014 'BD-57' => __( 'Sherpur', 'everest-forms' ),
2015 'BD-59' => __( 'Sirajganj', 'everest-forms' ),
2016 'BD-61' => __( 'Sunamganj', 'everest-forms' ),
2017 'BD-60' => __( 'Sylhet', 'everest-forms' ),
2018 'BD-63' => __( 'Tangail', 'everest-forms' ),
2019 'BD-64' => __( 'Thakurgaon', 'everest-forms' ),
2020 ),
2021 'BE' => array(),
2022 'BG' => array( // Bulgarian states.
2023 'BG-01' => __( 'Blagoevgrad', 'everest-forms' ),
2024 'BG-02' => __( 'Burgas', 'everest-forms' ),
2025 'BG-08' => __( 'Dobrich', 'everest-forms' ),
2026 'BG-07' => __( 'Gabrovo', 'everest-forms' ),
2027 'BG-26' => __( 'Haskovo', 'everest-forms' ),
2028 'BG-09' => __( 'Kardzhali', 'everest-forms' ),
2029 'BG-10' => __( 'Kyustendil', 'everest-forms' ),
2030 'BG-11' => __( 'Lovech', 'everest-forms' ),
2031 'BG-12' => __( 'Montana', 'everest-forms' ),
2032 'BG-13' => __( 'Pazardzhik', 'everest-forms' ),
2033 'BG-14' => __( 'Pernik', 'everest-forms' ),
2034 'BG-15' => __( 'Pleven', 'everest-forms' ),
2035 'BG-16' => __( 'Plovdiv', 'everest-forms' ),
2036 'BG-17' => __( 'Razgrad', 'everest-forms' ),
2037 'BG-18' => __( 'Ruse', 'everest-forms' ),
2038 'BG-27' => __( 'Shumen', 'everest-forms' ),
2039 'BG-19' => __( 'Silistra', 'everest-forms' ),
2040 'BG-20' => __( 'Sliven', 'everest-forms' ),
2041 'BG-21' => __( 'Smolyan', 'everest-forms' ),
2042 'BG-23' => __( 'Sofia', 'everest-forms' ),
2043 'BG-22' => __( 'Sofia-Grad', 'everest-forms' ),
2044 'BG-24' => __( 'Stara Zagora', 'everest-forms' ),
2045 'BG-25' => __( 'Targovishte', 'everest-forms' ),
2046 'BG-03' => __( 'Varna', 'everest-forms' ),
2047 'BG-04' => __( 'Veliko Tarnovo', 'everest-forms' ),
2048 'BG-05' => __( 'Vidin', 'everest-forms' ),
2049 'BG-06' => __( 'Vratsa', 'everest-forms' ),
2050 'BG-28' => __( 'Yambol', 'everest-forms' ),
2051 ),
2052 'BH' => array(),
2053 'BI' => array(),
2054 'BJ' => array( // Beninese states.
2055 'AL' => __( 'Alibori', 'everest-forms' ),
2056 'AK' => __( 'Atakora', 'everest-forms' ),
2057 'AQ' => __( 'Atlantique', 'everest-forms' ),
2058 'BO' => __( 'Borgou', 'everest-forms' ),
2059 'CO' => __( 'Collines', 'everest-forms' ),
2060 'KO' => __( 'Kouffo', 'everest-forms' ),
2061 'DO' => __( 'Donga', 'everest-forms' ),
2062 'LI' => __( 'Littoral', 'everest-forms' ),
2063 'MO' => __( 'Mono', 'everest-forms' ),
2064 'OU' => __( 'Ouémé', 'everest-forms' ),
2065 'PL' => __( 'Plateau', 'everest-forms' ),
2066 'ZO' => __( 'Zou', 'everest-forms' ),
2067 ),
2068 'BO' => array( // Bolivian states.
2069 'BO-B' => __( 'Beni', 'everest-forms' ),
2070 'BO-H' => __( 'Chuquisaca', 'everest-forms' ),
2071 'BO-C' => __( 'Cochabamba', 'everest-forms' ),
2072 'BO-L' => __( 'La Paz', 'everest-forms' ),
2073 'BO-O' => __( 'Oruro', 'everest-forms' ),
2074 'BO-N' => __( 'Pando', 'everest-forms' ),
2075 'BO-P' => __( 'Potosí', 'everest-forms' ),
2076 'BO-S' => __( 'Santa Cruz', 'everest-forms' ),
2077 'BO-T' => __( 'Tarija', 'everest-forms' ),
2078 ),
2079 'BR' => array( // Brazilian states.
2080 'AC' => __( 'Acre', 'everest-forms' ),
2081 'AL' => __( 'Alagoas', 'everest-forms' ),
2082 'AP' => __( 'Amapá', 'everest-forms' ),
2083 'AM' => __( 'Amazonas', 'everest-forms' ),
2084 'BA' => __( 'Bahia', 'everest-forms' ),
2085 'CE' => __( 'Ceará', 'everest-forms' ),
2086 'DF' => __( 'Distrito Federal', 'everest-forms' ),
2087 'ES' => __( 'Espírito Santo', 'everest-forms' ),
2088 'GO' => __( 'Goiás', 'everest-forms' ),
2089 'MA' => __( 'Maranhão', 'everest-forms' ),
2090 'MT' => __( 'Mato Grosso', 'everest-forms' ),
2091 'MS' => __( 'Mato Grosso do Sul', 'everest-forms' ),
2092 'MG' => __( 'Minas Gerais', 'everest-forms' ),
2093 'PA' => __( 'Pará', 'everest-forms' ),
2094 'PB' => __( 'Paraíba', 'everest-forms' ),
2095 'PR' => __( 'Paraná', 'everest-forms' ),
2096 'PE' => __( 'Pernambuco', 'everest-forms' ),
2097 'PI' => __( 'Piauí', 'everest-forms' ),
2098 'RJ' => __( 'Rio de Janeiro', 'everest-forms' ),
2099 'RN' => __( 'Rio Grande do Norte', 'everest-forms' ),
2100 'RS' => __( 'Rio Grande do Sul', 'everest-forms' ),
2101 'RO' => __( 'Rondônia', 'everest-forms' ),
2102 'RR' => __( 'Roraima', 'everest-forms' ),
2103 'SC' => __( 'Santa Catarina', 'everest-forms' ),
2104 'SP' => __( 'São Paulo', 'everest-forms' ),
2105 'SE' => __( 'Sergipe', 'everest-forms' ),
2106 'TO' => __( 'Tocantins', 'everest-forms' ),
2107 ),
2108 'CA' => array( // Canadian states.
2109 'AB' => __( 'Alberta', 'everest-forms' ),
2110 'BC' => __( 'British Columbia', 'everest-forms' ),
2111 'MB' => __( 'Manitoba', 'everest-forms' ),
2112 'NB' => __( 'New Brunswick', 'everest-forms' ),
2113 'NL' => __( 'Newfoundland and Labrador', 'everest-forms' ),
2114 'NT' => __( 'Northwest Territories', 'everest-forms' ),
2115 'NS' => __( 'Nova Scotia', 'everest-forms' ),
2116 'NU' => __( 'Nunavut', 'everest-forms' ),
2117 'ON' => __( 'Ontario', 'everest-forms' ),
2118 'PE' => __( 'Prince Edward Island', 'everest-forms' ),
2119 'QC' => __( 'Quebec', 'everest-forms' ),
2120 'SK' => __( 'Saskatchewan', 'everest-forms' ),
2121 'YT' => __( 'Yukon Territory', 'everest-forms' ),
2122 ),
2123 'CH' => array( // Swiss cantons.
2124 'AG' => __( 'Aargau', 'everest-forms' ),
2125 'AR' => __( 'Appenzell Ausserrhoden', 'everest-forms' ),
2126 'AI' => __( 'Appenzell Innerrhoden', 'everest-forms' ),
2127 'BL' => __( 'Basel-Landschaft', 'everest-forms' ),
2128 'BS' => __( 'Basel-Stadt', 'everest-forms' ),
2129 'BE' => __( 'Bern', 'everest-forms' ),
2130 'FR' => __( 'Fribourg', 'everest-forms' ),
2131 'GE' => __( 'Geneva', 'everest-forms' ),
2132 'GL' => __( 'Glarus', 'everest-forms' ),
2133 'GR' => __( 'Graubünden', 'everest-forms' ),
2134 'JU' => __( 'Jura', 'everest-forms' ),
2135 'LU' => __( 'Luzern', 'everest-forms' ),
2136 'NE' => __( 'Neuchâtel', 'everest-forms' ),
2137 'NW' => __( 'Nidwalden', 'everest-forms' ),
2138 'OW' => __( 'Obwalden', 'everest-forms' ),
2139 'SH' => __( 'Schaffhausen', 'everest-forms' ),
2140 'SZ' => __( 'Schwyz', 'everest-forms' ),
2141 'SO' => __( 'Solothurn', 'everest-forms' ),
2142 'SG' => __( 'St. Gallen', 'everest-forms' ),
2143 'TG' => __( 'Thurgau', 'everest-forms' ),
2144 'TI' => __( 'Ticino', 'everest-forms' ),
2145 'UR' => __( 'Uri', 'everest-forms' ),
2146 'VS' => __( 'Valais', 'everest-forms' ),
2147 'VD' => __( 'Vaud', 'everest-forms' ),
2148 'ZG' => __( 'Zug', 'everest-forms' ),
2149 'ZH' => __( 'Zürich', 'everest-forms' ),
2150 ),
2151 'CL' => array( // Chilean states.
2152 'CL-AI' => __( 'Aisén del General Carlos Ibañez del Campo', 'everest-forms' ),
2153 'CL-AN' => __( 'Antofagasta', 'everest-forms' ),
2154 'CL-AP' => __( 'Arica y Parinacota', 'everest-forms' ),
2155 'CL-AR' => __( 'La Araucanía', 'everest-forms' ),
2156 'CL-AT' => __( 'Atacama', 'everest-forms' ),
2157 'CL-BI' => __( 'Biobío', 'everest-forms' ),
2158 'CL-CO' => __( 'Coquimbo', 'everest-forms' ),
2159 'CL-LI' => __( 'Libertador General Bernardo O\'Higgins', 'everest-forms' ),
2160 'CL-LL' => __( 'Los Lagos', 'everest-forms' ),
2161 'CL-LR' => __( 'Los Ríos', 'everest-forms' ),
2162 'CL-MA' => __( 'Magallanes', 'everest-forms' ),
2163 'CL-ML' => __( 'Maule', 'everest-forms' ),
2164 'CL-NB' => __( 'Ñuble', 'everest-forms' ),
2165 'CL-RM' => __( 'Región Metropolitana de Santiago', 'everest-forms' ),
2166 'CL-TA' => __( 'Tarapacá', 'everest-forms' ),
2167 'CL-VS' => __( 'Valparaíso', 'everest-forms' ),
2168 ),
2169 'CN' => array( // Chinese states.
2170 'CN1' => __( 'Yunnan / 云南', 'everest-forms' ),
2171 'CN2' => __( 'Beijing / 北京', 'everest-forms' ),
2172 'CN3' => __( 'Tianjin / 天津', 'everest-forms' ),
2173 'CN4' => __( 'Hebei / 河北', 'everest-forms' ),
2174 'CN5' => __( 'Shanxi / 山西', 'everest-forms' ),
2175 'CN6' => __( 'Inner Mongolia / �
2176 �蒙古', 'everest-forms' ),
2177 'CN7' => __( 'Liaoning / 辽宁', 'everest-forms' ),
2178 'CN8' => __( 'Jilin / 吉林', 'everest-forms' ),
2179 'CN9' => __( 'Heilongjiang / 黑龙江', 'everest-forms' ),
2180 'CN10' => __( 'Shanghai / 上海', 'everest-forms' ),
2181 'CN11' => __( 'Jiangsu / 江苏', 'everest-forms' ),
2182 'CN12' => __( 'Zhejiang / 浙江', 'everest-forms' ),
2183 'CN13' => __( 'Anhui / 安徽', 'everest-forms' ),
2184 'CN14' => __( 'Fujian / 福建', 'everest-forms' ),
2185 'CN15' => __( 'Jiangxi / 江西', 'everest-forms' ),
2186 'CN16' => __( 'Shandong / 山东', 'everest-forms' ),
2187 'CN17' => __( 'Henan / 河南', 'everest-forms' ),
2188 'CN18' => __( 'Hubei / 湖北', 'everest-forms' ),
2189 'CN19' => __( 'Hunan / 湖南', 'everest-forms' ),
2190 'CN20' => __( 'Guangdong / 广东', 'everest-forms' ),
2191 'CN21' => __( 'Guangxi Zhuang / 广西壮族', 'everest-forms' ),
2192 'CN22' => __( 'Hainan / 海南', 'everest-forms' ),
2193 'CN23' => __( 'Chongqing / 重庆', 'everest-forms' ),
2194 'CN24' => __( 'Sichuan / 四川', 'everest-forms' ),
2195 'CN25' => __( 'Guizhou / 贵州', 'everest-forms' ),
2196 'CN26' => __( 'Shaanxi / 陕西', 'everest-forms' ),
2197 'CN27' => __( 'Gansu / 甘肃', 'everest-forms' ),
2198 'CN28' => __( 'Qinghai / 青海', 'everest-forms' ),
2199 'CN29' => __( 'Ningxia Hui / 宁夏', 'everest-forms' ),
2200 'CN30' => __( 'Macao / 澳门', 'everest-forms' ),
2201 'CN31' => __( 'Tibet / 西藏', 'everest-forms' ),
2202 'CN32' => __( 'Xinjiang / 新疆', 'everest-forms' ),
2203 ),
2204 'CO' => array( // Colombian states.
2205 'CO-AMA' => __( 'Amazonas', 'everest-forms' ),
2206 'CO-ANT' => __( 'Antioquia', 'everest-forms' ),
2207 'CO-ARA' => __( 'Arauca', 'everest-forms' ),
2208 'CO-ATL' => __( 'Atlántico', 'everest-forms' ),
2209 'CO-BOL' => __( 'Bolívar', 'everest-forms' ),
2210 'CO-BOY' => __( 'Boyacá', 'everest-forms' ),
2211 'CO-CAL' => __( 'Caldas', 'everest-forms' ),
2212 'CO-CAQ' => __( 'Caquetá', 'everest-forms' ),
2213 'CO-CAS' => __( 'Casanare', 'everest-forms' ),
2214 'CO-CAU' => __( 'Cauca', 'everest-forms' ),
2215 'CO-CES' => __( 'Cesar', 'everest-forms' ),
2216 'CO-CHO' => __( 'Chocó', 'everest-forms' ),
2217 'CO-COR' => __( 'Córdoba', 'everest-forms' ),
2218 'CO-CUN' => __( 'Cundinamarca', 'everest-forms' ),
2219 'CO-DC' => __( 'Capital District', 'everest-forms' ),
2220 'CO-GUA' => __( 'Guainía', 'everest-forms' ),
2221 'CO-GUV' => __( 'Guaviare', 'everest-forms' ),
2222 'CO-HUI' => __( 'Huila', 'everest-forms' ),
2223 'CO-LAG' => __( 'La Guajira', 'everest-forms' ),
2224 'CO-MAG' => __( 'Magdalena', 'everest-forms' ),
2225 'CO-MET' => __( 'Meta', 'everest-forms' ),
2226 'CO-NAR' => __( 'Nariño', 'everest-forms' ),
2227 'CO-NSA' => __( 'Norte de Santander', 'everest-forms' ),
2228 'CO-PUT' => __( 'Putumayo', 'everest-forms' ),
2229 'CO-QUI' => __( 'Quindío', 'everest-forms' ),
2230 'CO-RIS' => __( 'Risaralda', 'everest-forms' ),
2231 'CO-SAN' => __( 'Santander', 'everest-forms' ),
2232 'CO-SAP' => __( 'San Andrés & Providencia', 'everest-forms' ),
2233 'CO-SUC' => __( 'Sucre', 'everest-forms' ),
2234 'CO-TOL' => __( 'Tolima', 'everest-forms' ),
2235 'CO-VAC' => __( 'Valle del Cauca', 'everest-forms' ),
2236 'CO-VAU' => __( 'Vaupés', 'everest-forms' ),
2237 'CO-VID' => __( 'Vichada', 'everest-forms' ),
2238 ),
2239 'CR' => array( // Costa Rican states.
2240 'CR-A' => __( 'Alajuela', 'everest-forms' ),
2241 'CR-C' => __( 'Cartago', 'everest-forms' ),
2242 'CR-G' => __( 'Guanacaste', 'everest-forms' ),
2243 'CR-H' => __( 'Heredia', 'everest-forms' ),
2244 'CR-L' => __( 'Limón', 'everest-forms' ),
2245 'CR-P' => __( 'Puntarenas', 'everest-forms' ),
2246 'CR-SJ' => __( 'San José', 'everest-forms' ),
2247 ),
2248 'CZ' => array(),
2249 'DE' => array( // German states.
2250 'DE-BW' => __( 'Baden-Württemberg', 'everest-forms' ),
2251 'DE-BY' => __( 'Bavaria', 'everest-forms' ),
2252 'DE-BE' => __( 'Berlin', 'everest-forms' ),
2253 'DE-BB' => __( 'Brandenburg', 'everest-forms' ),
2254 'DE-HB' => __( 'Bremen', 'everest-forms' ),
2255 'DE-HH' => __( 'Hamburg', 'everest-forms' ),
2256 'DE-HE' => __( 'Hesse', 'everest-forms' ),
2257 'DE-MV' => __( 'Mecklenburg-Vorpommern', 'everest-forms' ),
2258 'DE-NI' => __( 'Lower Saxony', 'everest-forms' ),
2259 'DE-NW' => __( 'North Rhine-Westphalia', 'everest-forms' ),
2260 'DE-RP' => __( 'Rhineland-Palatinate', 'everest-forms' ),
2261 'DE-SL' => __( 'Saarland', 'everest-forms' ),
2262 'DE-SN' => __( 'Saxony', 'everest-forms' ),
2263 'DE-ST' => __( 'Saxony-Anhalt', 'everest-forms' ),
2264 'DE-SH' => __( 'Schleswig-Holstein', 'everest-forms' ),
2265 'DE-TH' => __( 'Thuringia', 'everest-forms' ),
2266 ),
2267 'DK' => array(),
2268 'DO' => array( // Dominican states.
2269 'DO-01' => __( 'Distrito Nacional', 'everest-forms' ),
2270 'DO-02' => __( 'Azua', 'everest-forms' ),
2271 'DO-03' => __( 'Baoruco', 'everest-forms' ),
2272 'DO-04' => __( 'Barahona', 'everest-forms' ),
2273 'DO-33' => __( 'Cibao Nordeste', 'everest-forms' ),
2274 'DO-34' => __( 'Cibao Noroeste', 'everest-forms' ),
2275 'DO-35' => __( 'Cibao Norte', 'everest-forms' ),
2276 'DO-36' => __( 'Cibao Sur', 'everest-forms' ),
2277 'DO-05' => __( 'Dajabón', 'everest-forms' ),
2278 'DO-06' => __( 'Duarte', 'everest-forms' ),
2279 'DO-08' => __( 'El Seibo', 'everest-forms' ),
2280 'DO-37' => __( 'El Valle', 'everest-forms' ),
2281 'DO-07' => __( 'Elías Piña', 'everest-forms' ),
2282 'DO-38' => __( 'Enriquillo', 'everest-forms' ),
2283 'DO-09' => __( 'Espaillat', 'everest-forms' ),
2284 'DO-30' => __( 'Hato Mayor', 'everest-forms' ),
2285 'DO-19' => __( 'Hermanas Mirabal', 'everest-forms' ),
2286 'DO-39' => __( 'Higüamo', 'everest-forms' ),
2287 'DO-10' => __( 'Independencia', 'everest-forms' ),
2288 'DO-11' => __( 'La Altagracia', 'everest-forms' ),
2289 'DO-12' => __( 'La Romana', 'everest-forms' ),
2290 'DO-13' => __( 'La Vega', 'everest-forms' ),
2291 'DO-14' => __( 'María Trinidad Sánchez', 'everest-forms' ),
2292 'DO-28' => __( 'Monseñor Nouel', 'everest-forms' ),
2293 'DO-15' => __( 'Monte Cristi', 'everest-forms' ),
2294 'DO-29' => __( 'Monte Plata', 'everest-forms' ),
2295 'DO-40' => __( 'Ozama', 'everest-forms' ),
2296 'DO-16' => __( 'Pedernales', 'everest-forms' ),
2297 'DO-17' => __( 'Peravia', 'everest-forms' ),
2298 'DO-18' => __( 'Puerto Plata', 'everest-forms' ),
2299 'DO-20' => __( 'Samaná', 'everest-forms' ),
2300 'DO-21' => __( 'San Cristóbal', 'everest-forms' ),
2301 'DO-31' => __( 'San José de Ocoa', 'everest-forms' ),
2302 'DO-22' => __( 'San Juan', 'everest-forms' ),
2303 'DO-23' => __( 'San Pedro de Macorís', 'everest-forms' ),
2304 'DO-24' => __( 'Sánchez Ramírez', 'everest-forms' ),
2305 'DO-25' => __( 'Santiago', 'everest-forms' ),
2306 'DO-26' => __( 'Santiago Rodríguez', 'everest-forms' ),
2307 'DO-32' => __( 'Santo Domingo', 'everest-forms' ),
2308 'DO-41' => __( 'Valdesia', 'everest-forms' ),
2309 'DO-27' => __( 'Valverde', 'everest-forms' ),
2310 'DO-42' => __( 'Yuma', 'everest-forms' ),
2311 ),
2312 'DZ' => array( // Algerian states.
2313 'DZ-01' => __( 'Adrar', 'everest-forms' ),
2314 'DZ-02' => __( 'Chlef', 'everest-forms' ),
2315 'DZ-03' => __( 'Laghouat', 'everest-forms' ),
2316 'DZ-04' => __( 'Oum El Bouaghi', 'everest-forms' ),
2317 'DZ-05' => __( 'Batna', 'everest-forms' ),
2318 'DZ-06' => __( 'Béjaïa', 'everest-forms' ),
2319 'DZ-07' => __( 'Biskra', 'everest-forms' ),
2320 'DZ-08' => __( 'Béchar', 'everest-forms' ),
2321 'DZ-09' => __( 'Blida', 'everest-forms' ),
2322 'DZ-10' => __( 'Bouira', 'everest-forms' ),
2323 'DZ-11' => __( 'Tamanghasset', 'everest-forms' ),
2324 'DZ-12' => __( 'Tébessa', 'everest-forms' ),
2325 'DZ-13' => __( 'Tlemcen', 'everest-forms' ),
2326 'DZ-14' => __( 'Tiaret', 'everest-forms' ),
2327 'DZ-15' => __( 'Tizi Ouzou', 'everest-forms' ),
2328 'DZ-16' => __( 'Algiers', 'everest-forms' ),
2329 'DZ-17' => __( 'Djelfa', 'everest-forms' ),
2330 'DZ-18' => __( 'Jijel', 'everest-forms' ),
2331 'DZ-19' => __( 'Sétif', 'everest-forms' ),
2332 'DZ-20' => __( 'Saïda', 'everest-forms' ),
2333 'DZ-21' => __( 'Skikda', 'everest-forms' ),
2334 'DZ-22' => __( 'Sidi Bel Abbès', 'everest-forms' ),
2335 'DZ-23' => __( 'Annaba', 'everest-forms' ),
2336 'DZ-24' => __( 'Guelma', 'everest-forms' ),
2337 'DZ-25' => __( 'Constantine', 'everest-forms' ),
2338 'DZ-26' => __( 'Médéa', 'everest-forms' ),
2339 'DZ-27' => __( 'Mostaganem', 'everest-forms' ),
2340 'DZ-28' => __( 'M’Sila', 'everest-forms' ),
2341 'DZ-29' => __( 'Mascara', 'everest-forms' ),
2342 'DZ-30' => __( 'Ouargla', 'everest-forms' ),
2343 'DZ-31' => __( 'Oran', 'everest-forms' ),
2344 'DZ-32' => __( 'El Bayadh', 'everest-forms' ),
2345 'DZ-33' => __( 'Illizi', 'everest-forms' ),
2346 'DZ-34' => __( 'Bordj Bou Arréridj', 'everest-forms' ),
2347 'DZ-35' => __( 'Boumerdès', 'everest-forms' ),
2348 'DZ-36' => __( 'El Tarf', 'everest-forms' ),
2349 'DZ-37' => __( 'Tindouf', 'everest-forms' ),
2350 'DZ-38' => __( 'Tissemsilt', 'everest-forms' ),
2351 'DZ-39' => __( 'El Oued', 'everest-forms' ),
2352 'DZ-40' => __( 'Khenchela', 'everest-forms' ),
2353 'DZ-41' => __( 'Souk Ahras', 'everest-forms' ),
2354 'DZ-42' => __( 'Tipasa', 'everest-forms' ),
2355 'DZ-43' => __( 'Mila', 'everest-forms' ),
2356 'DZ-44' => __( 'Aïn Defla', 'everest-forms' ),
2357 'DZ-45' => __( 'Naama', 'everest-forms' ),
2358 'DZ-46' => __( 'Aïn Témouchent', 'everest-forms' ),
2359 'DZ-47' => __( 'Ghardaïa', 'everest-forms' ),
2360 'DZ-48' => __( 'Relizane', 'everest-forms' ),
2361 ),
2362 'EE' => array(),
2363 'EC' => array( // Ecuadorian states.
2364 'EC-A' => __( 'Azuay', 'everest-forms' ),
2365 'EC-B' => __( 'Bolívar', 'everest-forms' ),
2366 'EC-F' => __( 'Cañar', 'everest-forms' ),
2367 'EC-C' => __( 'Carchi', 'everest-forms' ),
2368 'EC-H' => __( 'Chimborazo', 'everest-forms' ),
2369 'EC-X' => __( 'Cotopaxi', 'everest-forms' ),
2370 'EC-O' => __( 'El Oro', 'everest-forms' ),
2371 'EC-E' => __( 'Esmeraldas', 'everest-forms' ),
2372 'EC-W' => __( 'Galápagos', 'everest-forms' ),
2373 'EC-G' => __( 'Guayas', 'everest-forms' ),
2374 'EC-I' => __( 'Imbabura', 'everest-forms' ),
2375 'EC-L' => __( 'Loja', 'everest-forms' ),
2376 'EC-R' => __( 'Los Ríos', 'everest-forms' ),
2377 'EC-M' => __( 'Manabí', 'everest-forms' ),
2378 'EC-S' => __( 'Morona-Santiago', 'everest-forms' ),
2379 'EC-N' => __( 'Napo', 'everest-forms' ),
2380 'EC-D' => __( 'Orellana', 'everest-forms' ),
2381 'EC-Y' => __( 'Pastaza', 'everest-forms' ),
2382 'EC-P' => __( 'Pichincha', 'everest-forms' ),
2383 'EC-SE' => __( 'Santa Elena', 'everest-forms' ),
2384 'EC-SD' => __( 'Santo Domingo de los Tsáchilas', 'everest-forms' ),
2385 'EC-U' => __( 'Sucumbíos', 'everest-forms' ),
2386 'EC-T' => __( 'Tungurahua', 'everest-forms' ),
2387 'EC-Z' => __( 'Zamora-Chinchipe', 'everest-forms' ),
2388 ),
2389 'EG' => array( // Egyptian states.
2390 'EGALX' => __( 'Alexandria', 'everest-forms' ),
2391 'EGASN' => __( 'Aswan', 'everest-forms' ),
2392 'EGAST' => __( 'Asyut', 'everest-forms' ),
2393 'EGBA' => __( 'Red Sea', 'everest-forms' ),
2394 'EGBH' => __( 'Beheira', 'everest-forms' ),
2395 'EGBNS' => __( 'Beni Suef', 'everest-forms' ),
2396 'EGC' => __( 'Cairo', 'everest-forms' ),
2397 'EGDK' => __( 'Dakahlia', 'everest-forms' ),
2398 'EGDT' => __( 'Damietta', 'everest-forms' ),
2399 'EGFYM' => __( 'Faiyum', 'everest-forms' ),
2400 'EGGH' => __( 'Gharbia', 'everest-forms' ),
2401 'EGGZ' => __( 'Giza', 'everest-forms' ),
2402 'EGIS' => __( 'Ismailia', 'everest-forms' ),
2403 'EGJS' => __( 'South Sinai', 'everest-forms' ),
2404 'EGKB' => __( 'Qalyubia', 'everest-forms' ),
2405 'EGKFS' => __( 'Kafr el-Sheikh', 'everest-forms' ),
2406 'EGKN' => __( 'Qena', 'everest-forms' ),
2407 'EGLX' => __( 'Luxor', 'everest-forms' ),
2408 'EGMN' => __( 'Minya', 'everest-forms' ),
2409 'EGMNF' => __( 'Monufia', 'everest-forms' ),
2410 'EGMT' => __( 'Matrouh', 'everest-forms' ),
2411 'EGPTS' => __( 'Port Said', 'everest-forms' ),
2412 'EGSHG' => __( 'Sohag', 'everest-forms' ),
2413 'EGSHR' => __( 'Al Sharqia', 'everest-forms' ),
2414 'EGSIN' => __( 'North Sinai', 'everest-forms' ),
2415 'EGSUZ' => __( 'Suez', 'everest-forms' ),
2416 'EGWAD' => __( 'New Valley', 'everest-forms' ),
2417 ),
2418 'ES' => array( // Spanish states.
2419 'C' => __( 'A Coruña', 'everest-forms' ),
2420 'VI' => __( 'Araba/Álava', 'everest-forms' ),
2421 'AB' => __( 'Albacete', 'everest-forms' ),
2422 'A' => __( 'Alicante', 'everest-forms' ),
2423 'AL' => __( 'Almería', 'everest-forms' ),
2424 'O' => __( 'Asturias', 'everest-forms' ),
2425 'AV' => __( 'Ávila', 'everest-forms' ),
2426 'BA' => __( 'Badajoz', 'everest-forms' ),
2427 'PM' => __( 'Baleares', 'everest-forms' ),
2428 'B' => __( 'Barcelona', 'everest-forms' ),
2429 'BU' => __( 'Burgos', 'everest-forms' ),
2430 'CC' => __( 'Cáceres', 'everest-forms' ),
2431 'CA' => __( 'Cádiz', 'everest-forms' ),
2432 'S' => __( 'Cantabria', 'everest-forms' ),
2433 'CS' => __( 'Castellón', 'everest-forms' ),
2434 'CE' => __( 'Ceuta', 'everest-forms' ),
2435 'CR' => __( 'Ciudad Real', 'everest-forms' ),
2436 'CO' => __( 'Córdoba', 'everest-forms' ),
2437 'CU' => __( 'Cuenca', 'everest-forms' ),
2438 'GI' => __( 'Girona', 'everest-forms' ),
2439 'GR' => __( 'Granada', 'everest-forms' ),
2440 'GU' => __( 'Guadalajara', 'everest-forms' ),
2441 'SS' => __( 'Gipuzkoa', 'everest-forms' ),
2442 'H' => __( 'Huelva', 'everest-forms' ),
2443 'HU' => __( 'Huesca', 'everest-forms' ),
2444 'J' => __( 'Jaén', 'everest-forms' ),
2445 'LO' => __( 'La Rioja', 'everest-forms' ),
2446 'GC' => __( 'Las Palmas', 'everest-forms' ),
2447 'LE' => __( 'León', 'everest-forms' ),
2448 'L' => __( 'Lleida', 'everest-forms' ),
2449 'LU' => __( 'Lugo', 'everest-forms' ),
2450 'M' => __( 'Madrid', 'everest-forms' ),
2451 'MA' => __( 'Málaga', 'everest-forms' ),
2452 'ML' => __( 'Melilla', 'everest-forms' ),
2453 'MU' => __( 'Murcia', 'everest-forms' ),
2454 'NA' => __( 'Navarra', 'everest-forms' ),
2455 'OR' => __( 'Ourense', 'everest-forms' ),
2456 'P' => __( 'Palencia', 'everest-forms' ),
2457 'PO' => __( 'Pontevedra', 'everest-forms' ),
2458 'SA' => __( 'Salamanca', 'everest-forms' ),
2459 'TF' => __( 'Santa Cruz de Tenerife', 'everest-forms' ),
2460 'SG' => __( 'Segovia', 'everest-forms' ),
2461 'SE' => __( 'Sevilla', 'everest-forms' ),
2462 'SO' => __( 'Soria', 'everest-forms' ),
2463 'T' => __( 'Tarragona', 'everest-forms' ),
2464 'TE' => __( 'Teruel', 'everest-forms' ),
2465 'TO' => __( 'Toledo', 'everest-forms' ),
2466 'V' => __( 'Valencia', 'everest-forms' ),
2467 'VA' => __( 'Valladolid', 'everest-forms' ),
2468 'BI' => __( 'Biscay', 'everest-forms' ),
2469 'ZA' => __( 'Zamora', 'everest-forms' ),
2470 'Z' => __( 'Zaragoza', 'everest-forms' ),
2471 ),
2472 'FI' => array(),
2473 'FR' => array(),
2474 'GF' => array(),
2475 'GH' => array( // Ghanaian regions.
2476 'AF' => __( 'Ahafo', 'everest-forms' ),
2477 'AH' => __( 'Ashanti', 'everest-forms' ),
2478 'BA' => __( 'Brong-Ahafo', 'everest-forms' ),
2479 'BO' => __( 'Bono', 'everest-forms' ),
2480 'BE' => __( 'Bono East', 'everest-forms' ),
2481 'CP' => __( 'Central', 'everest-forms' ),
2482 'EP' => __( 'Eastern', 'everest-forms' ),
2483 'AA' => __( 'Greater Accra', 'everest-forms' ),
2484 'NE' => __( 'North East', 'everest-forms' ),
2485 'NP' => __( 'Northern', 'everest-forms' ),
2486 'OT' => __( 'Oti', 'everest-forms' ),
2487 'SV' => __( 'Savannah', 'everest-forms' ),
2488 'UE' => __( 'Upper East', 'everest-forms' ),
2489 'UW' => __( 'Upper West', 'everest-forms' ),
2490 'TV' => __( 'Volta', 'everest-forms' ),
2491 'WP' => __( 'Western', 'everest-forms' ),
2492 'WN' => __( 'Western North', 'everest-forms' ),
2493 ),
2494 'GP' => array(),
2495 'GR' => array( // Greek regions.
2496 'I' => __( 'Attica', 'everest-forms' ),
2497 'A' => __( 'East Macedonia and Thrace', 'everest-forms' ),
2498 'B' => __( 'Central Macedonia', 'everest-forms' ),
2499 'C' => __( 'West Macedonia', 'everest-forms' ),
2500 'D' => __( 'Epirus', 'everest-forms' ),
2501 'E' => __( 'Thessaly', 'everest-forms' ),
2502 'F' => __( 'Ionian Islands', 'everest-forms' ),
2503 'G' => __( 'West Greece', 'everest-forms' ),
2504 'H' => __( 'Central Greece', 'everest-forms' ),
2505 'J' => __( 'Peloponnese', 'everest-forms' ),
2506 'K' => __( 'North Aegean', 'everest-forms' ),
2507 'L' => __( 'South Aegean', 'everest-forms' ),
2508 'M' => __( 'Crete', 'everest-forms' ),
2509 ),
2510 'GT' => array( // Guatemalan states.
2511 'GT-AV' => __( 'Alta Verapaz', 'everest-forms' ),
2512 'GT-BV' => __( 'Baja Verapaz', 'everest-forms' ),
2513 'GT-CM' => __( 'Chimaltenango', 'everest-forms' ),
2514 'GT-CQ' => __( 'Chiquimula', 'everest-forms' ),
2515 'GT-PR' => __( 'El Progreso', 'everest-forms' ),
2516 'GT-ES' => __( 'Escuintla', 'everest-forms' ),
2517 'GT-GU' => __( 'Guatemala', 'everest-forms' ),
2518 'GT-HU' => __( 'Huehuetenango', 'everest-forms' ),
2519 'GT-IZ' => __( 'Izabal', 'everest-forms' ),
2520 'GT-JA' => __( 'Jalapa', 'everest-forms' ),
2521 'GT-JU' => __( 'Jutiapa', 'everest-forms' ),
2522 'GT-PE' => __( 'Petén', 'everest-forms' ),
2523 'GT-QZ' => __( 'Quetzaltenango', 'everest-forms' ),
2524 'GT-QC' => __( 'Quiché', 'everest-forms' ),
2525 'GT-RE' => __( 'Retalhuleu', 'everest-forms' ),
2526 'GT-SA' => __( 'Sacatepéquez', 'everest-forms' ),
2527 'GT-SM' => __( 'San Marcos', 'everest-forms' ),
2528 'GT-SR' => __( 'Santa Rosa', 'everest-forms' ),
2529 'GT-SO' => __( 'Sololá', 'everest-forms' ),
2530 'GT-SU' => __( 'Suchitepéquez', 'everest-forms' ),
2531 'GT-TO' => __( 'Totonicapán', 'everest-forms' ),
2532 'GT-ZA' => __( 'Zacapa', 'everest-forms' ),
2533 ),
2534 'HK' => array( // Hong Kong states.
2535 'HONG KONG' => __( 'Hong Kong Island', 'everest-forms' ),
2536 'KOWLOON' => __( 'Kowloon', 'everest-forms' ),
2537 'NEW TERRITORIES' => __( 'New Territories', 'everest-forms' ),
2538 ),
2539 'HN' => array( // Honduran states.
2540 'HN-AT' => __( 'Atlántida', 'everest-forms' ),
2541 'HN-IB' => __( 'Bay Islands', 'everest-forms' ),
2542 'HN-CH' => __( 'Choluteca', 'everest-forms' ),
2543 'HN-CL' => __( 'Colón', 'everest-forms' ),
2544 'HN-CM' => __( 'Comayagua', 'everest-forms' ),
2545 'HN-CP' => __( 'Copán', 'everest-forms' ),
2546 'HN-CR' => __( 'Cortés', 'everest-forms' ),
2547 'HN-EP' => __( 'El Paraíso', 'everest-forms' ),
2548 'HN-FM' => __( 'Francisco Morazán', 'everest-forms' ),
2549 'HN-GD' => __( 'Gracias a Dios', 'everest-forms' ),
2550 'HN-IN' => __( 'Intibucá', 'everest-forms' ),
2551 'HN-LE' => __( 'Lempira', 'everest-forms' ),
2552 'HN-LP' => __( 'La Paz', 'everest-forms' ),
2553 'HN-OC' => __( 'Ocotepeque', 'everest-forms' ),
2554 'HN-OL' => __( 'Olancho', 'everest-forms' ),
2555 'HN-SB' => __( 'Santa Bárbara', 'everest-forms' ),
2556 'HN-VA' => __( 'Valle', 'everest-forms' ),
2557 'HN-YO' => __( 'Yoro', 'everest-forms' ),
2558 ),
2559 'HU' => array( // Hungarian states.
2560 'BK' => __( 'Bács-Kiskun', 'everest-forms' ),
2561 'BE' => __( 'Békés', 'everest-forms' ),
2562 'BA' => __( 'Baranya', 'everest-forms' ),
2563 'BZ' => __( 'Borsod-Abaúj-Zemplén', 'everest-forms' ),
2564 'BU' => __( 'Budapest', 'everest-forms' ),
2565 'CS' => __( 'Csongrád-Csanád', 'everest-forms' ),
2566 'FE' => __( 'Fejér', 'everest-forms' ),
2567 'GS' => __( 'Győr-Moson-Sopron', 'everest-forms' ),
2568 'HB' => __( 'Hajdú-Bihar', 'everest-forms' ),
2569 'HE' => __( 'Heves', 'everest-forms' ),
2570 'JN' => __( 'Jász-Nagykun-Szolnok', 'everest-forms' ),
2571 'KE' => __( 'Komárom-Esztergom', 'everest-forms' ),
2572 'NO' => __( 'Nógrád', 'everest-forms' ),
2573 'PE' => __( 'Pest', 'everest-forms' ),
2574 'SO' => __( 'Somogy', 'everest-forms' ),
2575 'SZ' => __( 'Szabolcs-Szatmár-Bereg', 'everest-forms' ),
2576 'TO' => __( 'Tolna', 'everest-forms' ),
2577 'VA' => __( 'Vas', 'everest-forms' ),
2578 'VE' => __( 'Veszprém', 'everest-forms' ),
2579 'ZA' => __( 'Zala', 'everest-forms' ),
2580 ),
2581 'ID' => array( // Indonesian provinces.
2582 'AC' => __( 'Daerah Istimewa Aceh', 'everest-forms' ),
2583 'SU' => __( 'Sumatera Utara', 'everest-forms' ),
2584 'SB' => __( 'Sumatera Barat', 'everest-forms' ),
2585 'RI' => __( 'Riau', 'everest-forms' ),
2586 'KR' => __( 'Kepulauan Riau', 'everest-forms' ),
2587 'JA' => __( 'Jambi', 'everest-forms' ),
2588 'SS' => __( 'Sumatera Selatan', 'everest-forms' ),
2589 'BB' => __( 'Bangka Belitung', 'everest-forms' ),
2590 'BE' => __( 'Bengkulu', 'everest-forms' ),
2591 'LA' => __( 'Lampung', 'everest-forms' ),
2592 'JK' => __( 'DKI Jakarta', 'everest-forms' ),
2593 'JB' => __( 'Jawa Barat', 'everest-forms' ),
2594 'BT' => __( 'Banten', 'everest-forms' ),
2595 'JT' => __( 'Jawa Tengah', 'everest-forms' ),
2596 'JI' => __( 'Jawa Timur', 'everest-forms' ),
2597 'YO' => __( 'Daerah Istimewa Yogyakarta', 'everest-forms' ),
2598 'BA' => __( 'Bali', 'everest-forms' ),
2599 'NB' => __( 'Nusa Tenggara Barat', 'everest-forms' ),
2600 'NT' => __( 'Nusa Tenggara Timur', 'everest-forms' ),
2601 'KB' => __( 'Kalimantan Barat', 'everest-forms' ),
2602 'KT' => __( 'Kalimantan Tengah', 'everest-forms' ),
2603 'KI' => __( 'Kalimantan Timur', 'everest-forms' ),
2604 'KS' => __( 'Kalimantan Selatan', 'everest-forms' ),
2605 'KU' => __( 'Kalimantan Utara', 'everest-forms' ),
2606 'SA' => __( 'Sulawesi Utara', 'everest-forms' ),
2607 'ST' => __( 'Sulawesi Tengah', 'everest-forms' ),
2608 'SG' => __( 'Sulawesi Tenggara', 'everest-forms' ),
2609 'SR' => __( 'Sulawesi Barat', 'everest-forms' ),
2610 'SN' => __( 'Sulawesi Selatan', 'everest-forms' ),
2611 'GO' => __( 'Gorontalo', 'everest-forms' ),
2612 'MA' => __( 'Maluku', 'everest-forms' ),
2613 'MU' => __( 'Maluku Utara', 'everest-forms' ),
2614 'PA' => __( 'Papua', 'everest-forms' ),
2615 'PB' => __( 'Papua Barat', 'everest-forms' ),
2616 ),
2617 'IE' => array( // Irish states.
2618 'CW' => __( 'Carlow', 'everest-forms' ),
2619 'CN' => __( 'Cavan', 'everest-forms' ),
2620 'CE' => __( 'Clare', 'everest-forms' ),
2621 'CO' => __( 'Cork', 'everest-forms' ),
2622 'DL' => __( 'Donegal', 'everest-forms' ),
2623 'D' => __( 'Dublin', 'everest-forms' ),
2624 'G' => __( 'Galway', 'everest-forms' ),
2625 'KY' => __( 'Kerry', 'everest-forms' ),
2626 'KE' => __( 'Kildare', 'everest-forms' ),
2627 'KK' => __( 'Kilkenny', 'everest-forms' ),
2628 'LS' => __( 'Laois', 'everest-forms' ),
2629 'LM' => __( 'Leitrim', 'everest-forms' ),
2630 'LK' => __( 'Limerick', 'everest-forms' ),
2631 'LD' => __( 'Longford', 'everest-forms' ),
2632 'LH' => __( 'Louth', 'everest-forms' ),
2633 'MO' => __( 'Mayo', 'everest-forms' ),
2634 'MH' => __( 'Meath', 'everest-forms' ),
2635 'MN' => __( 'Monaghan', 'everest-forms' ),
2636 'OY' => __( 'Offaly', 'everest-forms' ),
2637 'RN' => __( 'Roscommon', 'everest-forms' ),
2638 'SO' => __( 'Sligo', 'everest-forms' ),
2639 'TA' => __( 'Tipperary', 'everest-forms' ),
2640 'WD' => __( 'Waterford', 'everest-forms' ),
2641 'WH' => __( 'Westmeath', 'everest-forms' ),
2642 'WX' => __( 'Wexford', 'everest-forms' ),
2643 'WW' => __( 'Wicklow', 'everest-forms' ),
2644 ),
2645 'IN' => array( // Indian states.
2646 'AP' => __( 'Andhra Pradesh', 'everest-forms' ),
2647 'AR' => __( 'Arunachal Pradesh', 'everest-forms' ),
2648 'AS' => __( 'Assam', 'everest-forms' ),
2649 'BR' => __( 'Bihar', 'everest-forms' ),
2650 'CT' => __( 'Chhattisgarh', 'everest-forms' ),
2651 'GA' => __( 'Goa', 'everest-forms' ),
2652 'GJ' => __( 'Gujarat', 'everest-forms' ),
2653 'HR' => __( 'Haryana', 'everest-forms' ),
2654 'HP' => __( 'Himachal Pradesh', 'everest-forms' ),
2655 'JK' => __( 'Jammu and Kashmir', 'everest-forms' ),
2656 'JH' => __( 'Jharkhand', 'everest-forms' ),
2657 'KA' => __( 'Karnataka', 'everest-forms' ),
2658 'KL' => __( 'Kerala', 'everest-forms' ),
2659 'LA' => __( 'Ladakh', 'everest-forms' ),
2660 'MP' => __( 'Madhya Pradesh', 'everest-forms' ),
2661 'MH' => __( 'Maharashtra', 'everest-forms' ),
2662 'MN' => __( 'Manipur', 'everest-forms' ),
2663 'ML' => __( 'Meghalaya', 'everest-forms' ),
2664 'MZ' => __( 'Mizoram', 'everest-forms' ),
2665 'NL' => __( 'Nagaland', 'everest-forms' ),
2666 'OR' => __( 'Odisha', 'everest-forms' ),
2667 'PB' => __( 'Punjab', 'everest-forms' ),
2668 'RJ' => __( 'Rajasthan', 'everest-forms' ),
2669 'SK' => __( 'Sikkim', 'everest-forms' ),
2670 'TN' => __( 'Tamil Nadu', 'everest-forms' ),
2671 'TS' => __( 'Telangana', 'everest-forms' ),
2672 'TR' => __( 'Tripura', 'everest-forms' ),
2673 'UK' => __( 'Uttarakhand', 'everest-forms' ),
2674 'UP' => __( 'Uttar Pradesh', 'everest-forms' ),
2675 'WB' => __( 'West Bengal', 'everest-forms' ),
2676 'AN' => __( 'Andaman and Nicobar Islands', 'everest-forms' ),
2677 'CH' => __( 'Chandigarh', 'everest-forms' ),
2678 'DN' => __( 'Dadra and Nagar Haveli', 'everest-forms' ),
2679 'DD' => __( 'Daman and Diu', 'everest-forms' ),
2680 'DL' => __( 'Delhi', 'everest-forms' ),
2681 'LD' => __( 'Lakshadeep', 'everest-forms' ),
2682 'PY' => __( 'Pondicherry (Puducherry)', 'everest-forms' ),
2683 ),
2684 'IR' => array( // Irania states.
2685 'KHZ' => __( 'Khuzestan (خوزستان)', 'everest-forms' ),
2686 'THR' => __( 'Tehran (تهران)', 'everest-forms' ),
2687 'ILM' => __( 'Ilaam (ایلا�
2688 )', 'everest-forms' ),
2689 'BHR' => __( 'Bushehr (بوشهر)', 'everest-forms' ),
2690 'ADL' => __( 'Ardabil (اردبیل)', 'everest-forms' ),
2691 'ESF' => __( 'Isfahan (اصفهان)', 'everest-forms' ),
2692 'YZD' => __( 'Yazd (یزد)', 'everest-forms' ),
2693 'KRH' => __( 'Kermanshah (کر�
2694 انشاه)', 'everest-forms' ),
2695 'KRN' => __( 'Kerman (کر�
2696 ان)', 'everest-forms' ),
2697 'HDN' => __( 'Hamadan (ه�
2698 دان)', 'everest-forms' ),
2699 'GZN' => __( 'Ghazvin (قزوین)', 'everest-forms' ),
2700 'ZJN' => __( 'Zanjan (زنجان)', 'everest-forms' ),
2701 'LRS' => __( 'Luristan (لرستان)', 'everest-forms' ),
2702 'ABZ' => __( 'Alborz (البرز)', 'everest-forms' ),
2703 'EAZ' => __( 'East Azarbaijan (آذربایجان شرقی)', 'everest-forms' ),
2704 'WAZ' => __( 'West Azarbaijan (آذربایجان غربی)', 'everest-forms' ),
2705 'CHB' => __( 'Chaharmahal and Bakhtiari (چهار�
2706 حال و بختیاری)', 'everest-forms' ),
2707 'SKH' => __( 'South Khorasan (خراسان جنوبی)', 'everest-forms' ),
2708 'RKH' => __( 'Razavi Khorasan (خراسان رضوی)', 'everest-forms' ),
2709 'NKH' => __( 'North Khorasan (خراسان ش�
2710 الی)', 'everest-forms' ),
2711 'SMN' => __( 'Semnan (س�
2712 نان)', 'everest-forms' ),
2713 'FRS' => __( 'Fars (فارس)', 'everest-forms' ),
2714 'QHM' => __( 'Qom (ق�
2715 )', 'everest-forms' ),
2716 'KRD' => __( 'Kurdistan / کردستان)', 'everest-forms' ),
2717 'KBD' => __( 'Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراح�
2718 د)', 'everest-forms' ),
2719 'GLS' => __( 'Golestan (گلستان)', 'everest-forms' ),
2720 'GIL' => __( 'Gilan (گیلان)', 'everest-forms' ),
2721 'MZN' => __( 'Mazandaran (�
2722 ازندران)', 'everest-forms' ),
2723 'MKZ' => __( 'Markazi (�
2724 رکزی)', 'everest-forms' ),
2725 'HRZ' => __( 'Hormozgan (هر�
2726 زگان)', 'everest-forms' ),
2727 'SBN' => __( 'Sistan and Baluchestan (سیستان و بلوچستان)', 'everest-forms' ),
2728 ),
2729 'IS' => array(),
2730 'IT' => array( // Italian provinces.
2731 'AG' => __( 'Agrigento', 'everest-forms' ),
2732 'AL' => __( 'Alessandria', 'everest-forms' ),
2733 'AN' => __( 'Ancona', 'everest-forms' ),
2734 'AO' => __( 'Aosta', 'everest-forms' ),
2735 'AR' => __( 'Arezzo', 'everest-forms' ),
2736 'AP' => __( 'Ascoli Piceno', 'everest-forms' ),
2737 'AT' => __( 'Asti', 'everest-forms' ),
2738 'AV' => __( 'Avellino', 'everest-forms' ),
2739 'BA' => __( 'Bari', 'everest-forms' ),
2740 'BT' => __( 'Barletta-Andria-Trani', 'everest-forms' ),
2741 'BL' => __( 'Belluno', 'everest-forms' ),
2742 'BN' => __( 'Benevento', 'everest-forms' ),
2743 'BG' => __( 'Bergamo', 'everest-forms' ),
2744 'BI' => __( 'Biella', 'everest-forms' ),
2745 'BO' => __( 'Bologna', 'everest-forms' ),
2746 'BZ' => __( 'Bolzano', 'everest-forms' ),
2747 'BS' => __( 'Brescia', 'everest-forms' ),
2748 'BR' => __( 'Brindisi', 'everest-forms' ),
2749 'CA' => __( 'Cagliari', 'everest-forms' ),
2750 'CL' => __( 'Caltanissetta', 'everest-forms' ),
2751 'CB' => __( 'Campobasso', 'everest-forms' ),
2752 'CE' => __( 'Caserta', 'everest-forms' ),
2753 'CT' => __( 'Catania', 'everest-forms' ),
2754 'CZ' => __( 'Catanzaro', 'everest-forms' ),
2755 'CH' => __( 'Chieti', 'everest-forms' ),
2756 'CO' => __( 'Como', 'everest-forms' ),
2757 'CS' => __( 'Cosenza', 'everest-forms' ),
2758 'CR' => __( 'Cremona', 'everest-forms' ),
2759 'KR' => __( 'Crotone', 'everest-forms' ),
2760 'CN' => __( 'Cuneo', 'everest-forms' ),
2761 'EN' => __( 'Enna', 'everest-forms' ),
2762 'FM' => __( 'Fermo', 'everest-forms' ),
2763 'FE' => __( 'Ferrara', 'everest-forms' ),
2764 'FI' => __( 'Firenze', 'everest-forms' ),
2765 'FG' => __( 'Foggia', 'everest-forms' ),
2766 'FC' => __( 'Forlì-Cesena', 'everest-forms' ),
2767 'FR' => __( 'Frosinone', 'everest-forms' ),
2768 'GE' => __( 'Genova', 'everest-forms' ),
2769 'GO' => __( 'Gorizia', 'everest-forms' ),
2770 'GR' => __( 'Grosseto', 'everest-forms' ),
2771 'IM' => __( 'Imperia', 'everest-forms' ),
2772 'IS' => __( 'Isernia', 'everest-forms' ),
2773 'SP' => __( 'La Spezia', 'everest-forms' ),
2774 'AQ' => __( "L'Aquila", 'everest-forms' ),
2775 'LT' => __( 'Latina', 'everest-forms' ),
2776 'LE' => __( 'Lecce', 'everest-forms' ),
2777 'LC' => __( 'Lecco', 'everest-forms' ),
2778 'LI' => __( 'Livorno', 'everest-forms' ),
2779 'LO' => __( 'Lodi', 'everest-forms' ),
2780 'LU' => __( 'Lucca', 'everest-forms' ),
2781 'MC' => __( 'Macerata', 'everest-forms' ),
2782 'MN' => __( 'Mantova', 'everest-forms' ),
2783 'MS' => __( 'Massa-Carrara', 'everest-forms' ),
2784 'MT' => __( 'Matera', 'everest-forms' ),
2785 'ME' => __( 'Messina', 'everest-forms' ),
2786 'MI' => __( 'Milano', 'everest-forms' ),
2787 'MO' => __( 'Modena', 'everest-forms' ),
2788 'MB' => __( 'Monza e della Brianza', 'everest-forms' ),
2789 'NA' => __( 'Napoli', 'everest-forms' ),
2790 'NO' => __( 'Novara', 'everest-forms' ),
2791 'NU' => __( 'Nuoro', 'everest-forms' ),
2792 'OR' => __( 'Oristano', 'everest-forms' ),
2793 'PD' => __( 'Padova', 'everest-forms' ),
2794 'PA' => __( 'Palermo', 'everest-forms' ),
2795 'PR' => __( 'Parma', 'everest-forms' ),
2796 'PV' => __( 'Pavia', 'everest-forms' ),
2797 'PG' => __( 'Perugia', 'everest-forms' ),
2798 'PU' => __( 'Pesaro e Urbino', 'everest-forms' ),
2799 'PE' => __( 'Pescara', 'everest-forms' ),
2800 'PC' => __( 'Piacenza', 'everest-forms' ),
2801 'PI' => __( 'Pisa', 'everest-forms' ),
2802 'PT' => __( 'Pistoia', 'everest-forms' ),
2803 'PN' => __( 'Pordenone', 'everest-forms' ),
2804 'PZ' => __( 'Potenza', 'everest-forms' ),
2805 'PO' => __( 'Prato', 'everest-forms' ),
2806 'RG' => __( 'Ragusa', 'everest-forms' ),
2807 'RA' => __( 'Ravenna', 'everest-forms' ),
2808 'RC' => __( 'Reggio Calabria', 'everest-forms' ),
2809 'RE' => __( 'Reggio Emilia', 'everest-forms' ),
2810 'RI' => __( 'Rieti', 'everest-forms' ),
2811 'RN' => __( 'Rimini', 'everest-forms' ),
2812 'RM' => __( 'Roma', 'everest-forms' ),
2813 'RO' => __( 'Rovigo', 'everest-forms' ),
2814 'SA' => __( 'Salerno', 'everest-forms' ),
2815 'SS' => __( 'Sassari', 'everest-forms' ),
2816 'SV' => __( 'Savona', 'everest-forms' ),
2817 'SI' => __( 'Siena', 'everest-forms' ),
2818 'SR' => __( 'Siracusa', 'everest-forms' ),
2819 'SO' => __( 'Sondrio', 'everest-forms' ),
2820 'SU' => __( 'Sud Sardegna', 'everest-forms' ),
2821 'TA' => __( 'Taranto', 'everest-forms' ),
2822 'TE' => __( 'Teramo', 'everest-forms' ),
2823 'TR' => __( 'Terni', 'everest-forms' ),
2824 'TO' => __( 'Torino', 'everest-forms' ),
2825 'TP' => __( 'Trapani', 'everest-forms' ),
2826 'TN' => __( 'Trento', 'everest-forms' ),
2827 'TV' => __( 'Treviso', 'everest-forms' ),
2828 'TS' => __( 'Trieste', 'everest-forms' ),
2829 'UD' => __( 'Udine', 'everest-forms' ),
2830 'VA' => __( 'Varese', 'everest-forms' ),
2831 'VE' => __( 'Venezia', 'everest-forms' ),
2832 'VB' => __( 'Verbano-Cusio-Ossola', 'everest-forms' ),
2833 'VC' => __( 'Vercelli', 'everest-forms' ),
2834 'VR' => __( 'Verona', 'everest-forms' ),
2835 'VV' => __( 'Vibo Valentia', 'everest-forms' ),
2836 'VI' => __( 'Vicenza', 'everest-forms' ),
2837 'VT' => __( 'Viterbo', 'everest-forms' ),
2838 ),
2839 'IL' => array(),
2840 'IM' => array(),
2841 'JM' => array( // Jamaican parishes.
2842 'JM-01' => __( 'Kingston', 'everest-forms' ),
2843 'JM-02' => __( 'Saint Andrew', 'everest-forms' ),
2844 'JM-03' => __( 'Saint Thomas', 'everest-forms' ),
2845 'JM-04' => __( 'Portland', 'everest-forms' ),
2846 'JM-05' => __( 'Saint Mary', 'everest-forms' ),
2847 'JM-06' => __( 'Saint Ann', 'everest-forms' ),
2848 'JM-07' => __( 'Trelawny', 'everest-forms' ),
2849 'JM-08' => __( 'Saint James', 'everest-forms' ),
2850 'JM-09' => __( 'Hanover', 'everest-forms' ),
2851 'JM-10' => __( 'Westmoreland', 'everest-forms' ),
2852 'JM-11' => __( 'Saint Elizabeth', 'everest-forms' ),
2853 'JM-12' => __( 'Manchester', 'everest-forms' ),
2854 'JM-13' => __( 'Clarendon', 'everest-forms' ),
2855 'JM-14' => __( 'Saint Catherine', 'everest-forms' ),
2856 ),
2857
2858 'JP' => array(
2859 'JP01' => __( 'Hokkaido', 'everest-forms' ),
2860 'JP02' => __( 'Aomori', 'everest-forms' ),
2861 'JP03' => __( 'Iwate', 'everest-forms' ),
2862 'JP04' => __( 'Miyagi', 'everest-forms' ),
2863 'JP05' => __( 'Akita', 'everest-forms' ),
2864 'JP06' => __( 'Yamagata', 'everest-forms' ),
2865 'JP07' => __( 'Fukushima', 'everest-forms' ),
2866 'JP08' => __( 'Ibaraki', 'everest-forms' ),
2867 'JP09' => __( 'Tochigi', 'everest-forms' ),
2868 'JP10' => __( 'Gunma', 'everest-forms' ),
2869 'JP11' => __( 'Saitama', 'everest-forms' ),
2870 'JP12' => __( 'Chiba', 'everest-forms' ),
2871 'JP13' => __( 'Tokyo', 'everest-forms' ),
2872 'JP14' => __( 'Kanagawa', 'everest-forms' ),
2873 'JP15' => __( 'Niigata', 'everest-forms' ),
2874 'JP16' => __( 'Toyama', 'everest-forms' ),
2875 'JP17' => __( 'Ishikawa', 'everest-forms' ),
2876 'JP18' => __( 'Fukui', 'everest-forms' ),
2877 'JP19' => __( 'Yamanashi', 'everest-forms' ),
2878 'JP20' => __( 'Nagano', 'everest-forms' ),
2879 'JP21' => __( 'Gifu', 'everest-forms' ),
2880 'JP22' => __( 'Shizuoka', 'everest-forms' ),
2881 'JP23' => __( 'Aichi', 'everest-forms' ),
2882 'JP24' => __( 'Mie', 'everest-forms' ),
2883 'JP25' => __( 'Shiga', 'everest-forms' ),
2884 'JP26' => __( 'Kyoto', 'everest-forms' ),
2885 'JP27' => __( 'Osaka', 'everest-forms' ),
2886 'JP28' => __( 'Hyogo', 'everest-forms' ),
2887 'JP29' => __( 'Nara', 'everest-forms' ),
2888 'JP30' => __( 'Wakayama', 'everest-forms' ),
2889 'JP31' => __( 'Tottori', 'everest-forms' ),
2890 'JP32' => __( 'Shimane', 'everest-forms' ),
2891 'JP33' => __( 'Okayama', 'everest-forms' ),
2892 'JP34' => __( 'Hiroshima', 'everest-forms' ),
2893 'JP35' => __( 'Yamaguchi', 'everest-forms' ),
2894 'JP36' => __( 'Tokushima', 'everest-forms' ),
2895 'JP37' => __( 'Kagawa', 'everest-forms' ),
2896 'JP38' => __( 'Ehime', 'everest-forms' ),
2897 'JP39' => __( 'Kochi', 'everest-forms' ),
2898 'JP40' => __( 'Fukuoka', 'everest-forms' ),
2899 'JP41' => __( 'Saga', 'everest-forms' ),
2900 'JP42' => __( 'Nagasaki', 'everest-forms' ),
2901 'JP43' => __( 'Kumamoto', 'everest-forms' ),
2902 'JP44' => __( 'Oita', 'everest-forms' ),
2903 'JP45' => __( 'Miyazaki', 'everest-forms' ),
2904 'JP46' => __( 'Kagoshima', 'everest-forms' ),
2905 'JP47' => __( 'Okinawa', 'everest-forms' ),
2906 ),
2907 'KE' => array( // Kenyan counties.
2908 'KE01' => __( 'Baringo', 'everest-forms' ),
2909 'KE02' => __( 'Bomet', 'everest-forms' ),
2910 'KE03' => __( 'Bungoma', 'everest-forms' ),
2911 'KE04' => __( 'Busia', 'everest-forms' ),
2912 'KE05' => __( 'Elgeyo-Marakwet', 'everest-forms' ),
2913 'KE06' => __( 'Embu', 'everest-forms' ),
2914 'KE07' => __( 'Garissa', 'everest-forms' ),
2915 'KE08' => __( 'Homa Bay', 'everest-forms' ),
2916 'KE09' => __( 'Isiolo', 'everest-forms' ),
2917 'KE10' => __( 'Kajiado', 'everest-forms' ),
2918 'KE11' => __( 'Kakamega', 'everest-forms' ),
2919 'KE12' => __( 'Kericho', 'everest-forms' ),
2920 'KE13' => __( 'Kiambu', 'everest-forms' ),
2921 'KE14' => __( 'Kilifi', 'everest-forms' ),
2922 'KE15' => __( 'Kirinyaga', 'everest-forms' ),
2923 'KE16' => __( 'Kisii', 'everest-forms' ),
2924 'KE17' => __( 'Kisumu', 'everest-forms' ),
2925 'KE18' => __( 'Kitui', 'everest-forms' ),
2926 'KE19' => __( 'Kwale', 'everest-forms' ),
2927 'KE20' => __( 'Laikipia', 'everest-forms' ),
2928 'KE21' => __( 'Lamu', 'everest-forms' ),
2929 'KE22' => __( 'Machakos', 'everest-forms' ),
2930 'KE23' => __( 'Makueni', 'everest-forms' ),
2931 'KE24' => __( 'Mandera', 'everest-forms' ),
2932 'KE25' => __( 'Marsabit', 'everest-forms' ),
2933 'KE26' => __( 'Meru', 'everest-forms' ),
2934 'KE27' => __( 'Migori', 'everest-forms' ),
2935 'KE28' => __( 'Mombasa', 'everest-forms' ),
2936 'KE29' => __( 'Murang’a', 'everest-forms' ),
2937 'KE30' => __( 'Nairobi County', 'everest-forms' ),
2938 'KE31' => __( 'Nakuru', 'everest-forms' ),
2939 'KE32' => __( 'Nandi', 'everest-forms' ),
2940 'KE33' => __( 'Narok', 'everest-forms' ),
2941 'KE34' => __( 'Nyamira', 'everest-forms' ),
2942 'KE35' => __( 'Nyandarua', 'everest-forms' ),
2943 'KE36' => __( 'Nyeri', 'everest-forms' ),
2944 'KE37' => __( 'Samburu', 'everest-forms' ),
2945 'KE38' => __( 'Siaya', 'everest-forms' ),
2946 'KE39' => __( 'Taita-Taveta', 'everest-forms' ),
2947 'KE40' => __( 'Tana River', 'everest-forms' ),
2948 'KE41' => __( 'Tharaka-Nithi', 'everest-forms' ),
2949 'KE42' => __( 'Trans Nzoia', 'everest-forms' ),
2950 'KE43' => __( 'Turkana', 'everest-forms' ),
2951 'KE44' => __( 'Uasin Gishu', 'everest-forms' ),
2952 'KE45' => __( 'Vihiga', 'everest-forms' ),
2953 'KE46' => __( 'Wajir', 'everest-forms' ),
2954 'KE47' => __( 'West Pokot', 'everest-forms' ),
2955 ),
2956 'KR' => array(),
2957 'KW' => array(),
2958 'LA' => array( // Laotian provinces.
2959 'AT' => __( 'Attapeu', 'everest-forms' ),
2960 'BK' => __( 'Bokeo', 'everest-forms' ),
2961 'BL' => __( 'Bolikhamsai', 'everest-forms' ),
2962 'CH' => __( 'Champasak', 'everest-forms' ),
2963 'HO' => __( 'Houaphanh', 'everest-forms' ),
2964 'KH' => __( 'Khammouane', 'everest-forms' ),
2965 'LM' => __( 'Luang Namtha', 'everest-forms' ),
2966 'LP' => __( 'Luang Prabang', 'everest-forms' ),
2967 'OU' => __( 'Oudomxay', 'everest-forms' ),
2968 'PH' => __( 'Phongsaly', 'everest-forms' ),
2969 'SL' => __( 'Salavan', 'everest-forms' ),
2970 'SV' => __( 'Savannakhet', 'everest-forms' ),
2971 'VI' => __( 'Vientiane Province', 'everest-forms' ),
2972 'VT' => __( 'Vientiane', 'everest-forms' ),
2973 'XA' => __( 'Sainyabuli', 'everest-forms' ),
2974 'XE' => __( 'Sekong', 'everest-forms' ),
2975 'XI' => __( 'Xiangkhouang', 'everest-forms' ),
2976 'XS' => __( 'Xaisomboun', 'everest-forms' ),
2977 ),
2978 'LB' => array(),
2979 'LR' => array( // Liberian provinces.
2980 'BM' => __( 'Bomi', 'everest-forms' ),
2981 'BN' => __( 'Bong', 'everest-forms' ),
2982 'GA' => __( 'Gbarpolu', 'everest-forms' ),
2983 'GB' => __( 'Grand Bassa', 'everest-forms' ),
2984 'GC' => __( 'Grand Cape Mount', 'everest-forms' ),
2985 'GG' => __( 'Grand Gedeh', 'everest-forms' ),
2986 'GK' => __( 'Grand Kru', 'everest-forms' ),
2987 'LO' => __( 'Lofa', 'everest-forms' ),
2988 'MA' => __( 'Margibi', 'everest-forms' ),
2989 'MY' => __( 'Maryland', 'everest-forms' ),
2990 'MO' => __( 'Montserrado', 'everest-forms' ),
2991 'NM' => __( 'Nimba', 'everest-forms' ),
2992 'RV' => __( 'Rivercess', 'everest-forms' ),
2993 'RG' => __( 'River Gee', 'everest-forms' ),
2994 'SN' => __( 'Sinoe', 'everest-forms' ),
2995 ),
2996 'LU' => array(),
2997 'MD' => array( // Moldovan states.
2998 'C' => __( 'Chișinău', 'everest-forms' ),
2999 'BL' => __( 'Bălți', 'everest-forms' ),
3000 'AN' => __( 'Anenii Noi', 'everest-forms' ),
3001 'BS' => __( 'Basarabeasca', 'everest-forms' ),
3002 'BR' => __( 'Briceni', 'everest-forms' ),
3003 'CH' => __( 'Cahul', 'everest-forms' ),
3004 'CT' => __( 'Cantemir', 'everest-forms' ),
3005 'CL' => __( 'Călărași', 'everest-forms' ),
3006 'CS' => __( 'Căușeni', 'everest-forms' ),
3007 'CM' => __( 'Cimișlia', 'everest-forms' ),
3008 'CR' => __( 'Criuleni', 'everest-forms' ),
3009 'DN' => __( 'Dondușeni', 'everest-forms' ),
3010 'DR' => __( 'Drochia', 'everest-forms' ),
3011 'DB' => __( 'Dubăsari', 'everest-forms' ),
3012 'ED' => __( 'Edineț', 'everest-forms' ),
3013 'FL' => __( 'Fălești', 'everest-forms' ),
3014 'FR' => __( 'Florești', 'everest-forms' ),
3015 'GE' => __( 'UTA Găgăuzia', 'everest-forms' ),
3016 'GL' => __( 'Glodeni', 'everest-forms' ),
3017 'HN' => __( 'Hîncești', 'everest-forms' ),
3018 'IL' => __( 'Ialoveni', 'everest-forms' ),
3019 'LV' => __( 'Leova', 'everest-forms' ),
3020 'NS' => __( 'Nisporeni', 'everest-forms' ),
3021 'OC' => __( 'Ocnița', 'everest-forms' ),
3022 'OR' => __( 'Orhei', 'everest-forms' ),
3023 'RZ' => __( 'Rezina', 'everest-forms' ),
3024 'RS' => __( 'Rîșcani', 'everest-forms' ),
3025 'SG' => __( 'Sîngerei', 'everest-forms' ),
3026 'SR' => __( 'Soroca', 'everest-forms' ),
3027 'ST' => __( 'Strășeni', 'everest-forms' ),
3028 'SD' => __( 'Șoldănești', 'everest-forms' ),
3029 'SV' => __( 'Ștefan Vodă', 'everest-forms' ),
3030 'TR' => __( 'Taraclia', 'everest-forms' ),
3031 'TL' => __( 'Telenești', 'everest-forms' ),
3032 'UN' => __( 'Ungheni', 'everest-forms' ),
3033 ),
3034 'MQ' => array(),
3035 'MT' => array(),
3036 'MX' => array( // Mexican states.
3037 'DF' => __( 'Ciudad de México', 'everest-forms' ),
3038 'JA' => __( 'Jalisco', 'everest-forms' ),
3039 'NL' => __( 'Nuevo León', 'everest-forms' ),
3040 'AG' => __( 'Aguascalientes', 'everest-forms' ),
3041 'BC' => __( 'Baja California', 'everest-forms' ),
3042 'BS' => __( 'Baja California Sur', 'everest-forms' ),
3043 'CM' => __( 'Campeche', 'everest-forms' ),
3044 'CS' => __( 'Chiapas', 'everest-forms' ),
3045 'CH' => __( 'Chihuahua', 'everest-forms' ),
3046 'CO' => __( 'Coahuila', 'everest-forms' ),
3047 'CL' => __( 'Colima', 'everest-forms' ),
3048 'DG' => __( 'Durango', 'everest-forms' ),
3049 'GT' => __( 'Guanajuato', 'everest-forms' ),
3050 'GR' => __( 'Guerrero', 'everest-forms' ),
3051 'HG' => __( 'Hidalgo', 'everest-forms' ),
3052 'MX' => __( 'Estado de México', 'everest-forms' ),
3053 'MI' => __( 'Michoacán', 'everest-forms' ),
3054 'MO' => __( 'Morelos', 'everest-forms' ),
3055 'NA' => __( 'Nayarit', 'everest-forms' ),
3056 'OA' => __( 'Oaxaca', 'everest-forms' ),
3057 'PU' => __( 'Puebla', 'everest-forms' ),
3058 'QT' => __( 'Querétaro', 'everest-forms' ),
3059 'QR' => __( 'Quintana Roo', 'everest-forms' ),
3060 'SL' => __( 'San Luis Potosí', 'everest-forms' ),
3061 'SI' => __( 'Sinaloa', 'everest-forms' ),
3062 'SO' => __( 'Sonora', 'everest-forms' ),
3063 'TB' => __( 'Tabasco', 'everest-forms' ),
3064 'TM' => __( 'Tamaulipas', 'everest-forms' ),
3065 'TL' => __( 'Tlaxcala', 'everest-forms' ),
3066 'VE' => __( 'Veracruz', 'everest-forms' ),
3067 'YU' => __( 'Yucatán', 'everest-forms' ),
3068 'ZA' => __( 'Zacatecas', 'everest-forms' ),
3069 ),
3070 'MY' => array( // Malaysian states.
3071 'JHR' => __( 'Johor', 'everest-forms' ),
3072 'KDH' => __( 'Kedah', 'everest-forms' ),
3073 'KTN' => __( 'Kelantan', 'everest-forms' ),
3074 'LBN' => __( 'Labuan', 'everest-forms' ),
3075 'MLK' => __( 'Malacca (Melaka)', 'everest-forms' ),
3076 'NSN' => __( 'Negeri Sembilan', 'everest-forms' ),
3077 'PHG' => __( 'Pahang', 'everest-forms' ),
3078 'PNG' => __( 'Penang (Pulau Pinang)', 'everest-forms' ),
3079 'PRK' => __( 'Perak', 'everest-forms' ),
3080 'PLS' => __( 'Perlis', 'everest-forms' ),
3081 'SBH' => __( 'Sabah', 'everest-forms' ),
3082 'SWK' => __( 'Sarawak', 'everest-forms' ),
3083 'SGR' => __( 'Selangor', 'everest-forms' ),
3084 'TRG' => __( 'Terengganu', 'everest-forms' ),
3085 'PJY' => __( 'Putrajaya', 'everest-forms' ),
3086 'KUL' => __( 'Kuala Lumpur', 'everest-forms' ),
3087 ),
3088 'MZ' => array( // Mozambican provinces.
3089 'MZP' => __( 'Cabo Delgado', 'everest-forms' ),
3090 'MZG' => __( 'Gaza', 'everest-forms' ),
3091 'MZI' => __( 'Inhambane', 'everest-forms' ),
3092 'MZB' => __( 'Manica', 'everest-forms' ),
3093 'MZL' => __( 'Maputo Province', 'everest-forms' ),
3094 'MZMPM' => __( 'Maputo', 'everest-forms' ),
3095 'MZN' => __( 'Nampula', 'everest-forms' ),
3096 'MZA' => __( 'Niassa', 'everest-forms' ),
3097 'MZS' => __( 'Sofala', 'everest-forms' ),
3098 'MZT' => __( 'Tete', 'everest-forms' ),
3099 'MZQ' => __( 'Zambézia', 'everest-forms' ),
3100 ),
3101 'NA' => array( // Namibian regions.
3102 'ER' => __( 'Erongo', 'everest-forms' ),
3103 'HA' => __( 'Hardap', 'everest-forms' ),
3104 'KA' => __( 'Karas', 'everest-forms' ),
3105 'KE' => __( 'Kavango East', 'everest-forms' ),
3106 'KW' => __( 'Kavango West', 'everest-forms' ),
3107 'KH' => __( 'Khomas', 'everest-forms' ),
3108 'KU' => __( 'Kunene', 'everest-forms' ),
3109 'OW' => __( 'Ohangwena', 'everest-forms' ),
3110 'OH' => __( 'Omaheke', 'everest-forms' ),
3111 'OS' => __( 'Omusati', 'everest-forms' ),
3112 'ON' => __( 'Oshana', 'everest-forms' ),
3113 'OT' => __( 'Oshikoto', 'everest-forms' ),
3114 'OD' => __( 'Otjozondjupa', 'everest-forms' ),
3115 'CA' => __( 'Zambezi', 'everest-forms' ),
3116 ),
3117 'NG' => array( // Nigerian provinces.
3118 'AB' => __( 'Abia', 'everest-forms' ),
3119 'FC' => __( 'Abuja', 'everest-forms' ),
3120 'AD' => __( 'Adamawa', 'everest-forms' ),
3121 'AK' => __( 'Akwa Ibom', 'everest-forms' ),
3122 'AN' => __( 'Anambra', 'everest-forms' ),
3123 'BA' => __( 'Bauchi', 'everest-forms' ),
3124 'BY' => __( 'Bayelsa', 'everest-forms' ),
3125 'BE' => __( 'Benue', 'everest-forms' ),
3126 'BO' => __( 'Borno', 'everest-forms' ),
3127 'CR' => __( 'Cross River', 'everest-forms' ),
3128 'DE' => __( 'Delta', 'everest-forms' ),
3129 'EB' => __( 'Ebonyi', 'everest-forms' ),
3130 'ED' => __( 'Edo', 'everest-forms' ),
3131 'EK' => __( 'Ekiti', 'everest-forms' ),
3132 'EN' => __( 'Enugu', 'everest-forms' ),
3133 'GO' => __( 'Gombe', 'everest-forms' ),
3134 'IM' => __( 'Imo', 'everest-forms' ),
3135 'JI' => __( 'Jigawa', 'everest-forms' ),
3136 'KD' => __( 'Kaduna', 'everest-forms' ),
3137 'KN' => __( 'Kano', 'everest-forms' ),
3138 'KT' => __( 'Katsina', 'everest-forms' ),
3139 'KE' => __( 'Kebbi', 'everest-forms' ),
3140 'KO' => __( 'Kogi', 'everest-forms' ),
3141 'KW' => __( 'Kwara', 'everest-forms' ),
3142 'LA' => __( 'Lagos', 'everest-forms' ),
3143 'NA' => __( 'Nasarawa', 'everest-forms' ),
3144 'NI' => __( 'Niger', 'everest-forms' ),
3145 'OG' => __( 'Ogun', 'everest-forms' ),
3146 'ON' => __( 'Ondo', 'everest-forms' ),
3147 'OS' => __( 'Osun', 'everest-forms' ),
3148 'OY' => __( 'Oyo', 'everest-forms' ),
3149 'PL' => __( 'Plateau', 'everest-forms' ),
3150 'RI' => __( 'Rivers', 'everest-forms' ),
3151 'SO' => __( 'Sokoto', 'everest-forms' ),
3152 'TA' => __( 'Taraba', 'everest-forms' ),
3153 'YO' => __( 'Yobe', 'everest-forms' ),
3154 'ZA' => __( 'Zamfara', 'everest-forms' ),
3155 ),
3156 'NL' => array(),
3157 'NO' => array(),
3158 'NP' => array( // Nepalese zones.
3159 'BAG' => __( 'Bagmati', 'everest-forms' ),
3160 'BHE' => __( 'Bheri', 'everest-forms' ),
3161 'DHA' => __( 'Dhaulagiri', 'everest-forms' ),
3162 'GAN' => __( 'Gandaki', 'everest-forms' ),
3163 'JAN' => __( 'Janakpur', 'everest-forms' ),
3164 'KAR' => __( 'Karnali', 'everest-forms' ),
3165 'KOS' => __( 'Koshi', 'everest-forms' ),
3166 'LUM' => __( 'Lumbini', 'everest-forms' ),
3167 'MAH' => __( 'Mahakali', 'everest-forms' ),
3168 'MEC' => __( 'Mechi', 'everest-forms' ),
3169 'NAR' => __( 'Narayani', 'everest-forms' ),
3170 'RAP' => __( 'Rapti', 'everest-forms' ),
3171 'SAG' => __( 'Sagarmatha', 'everest-forms' ),
3172 'SET' => __( 'Seti', 'everest-forms' ),
3173 ),
3174 'NI' => array( // Nicaraguan states.
3175 'NI-AN' => __( 'Atlántico Norte', 'everest-forms' ),
3176 'NI-AS' => __( 'Atlántico Sur', 'everest-forms' ),
3177 'NI-BO' => __( 'Boaco', 'everest-forms' ),
3178 'NI-CA' => __( 'Carazo', 'everest-forms' ),
3179 'NI-CI' => __( 'Chinandega', 'everest-forms' ),
3180 'NI-CO' => __( 'Chontales', 'everest-forms' ),
3181 'NI-ES' => __( 'Estelí', 'everest-forms' ),
3182 'NI-GR' => __( 'Granada', 'everest-forms' ),
3183 'NI-JI' => __( 'Jinotega', 'everest-forms' ),
3184 'NI-LE' => __( 'León', 'everest-forms' ),
3185 'NI-MD' => __( 'Madriz', 'everest-forms' ),
3186 'NI-MN' => __( 'Managua', 'everest-forms' ),
3187 'NI-MS' => __( 'Masaya', 'everest-forms' ),
3188 'NI-MT' => __( 'Matagalpa', 'everest-forms' ),
3189 'NI-NS' => __( 'Nueva Segovia', 'everest-forms' ),
3190 'NI-RI' => __( 'Rivas', 'everest-forms' ),
3191 'NI-SJ' => __( 'Río San Juan', 'everest-forms' ),
3192 ),
3193 'NZ' => array( // New Zealand states.
3194 'NL' => __( 'Northland', 'everest-forms' ),
3195 'AK' => __( 'Auckland', 'everest-forms' ),
3196 'WA' => __( 'Waikato', 'everest-forms' ),
3197 'BP' => __( 'Bay of Plenty', 'everest-forms' ),
3198 'TK' => __( 'Taranaki', 'everest-forms' ),
3199 'GI' => __( 'Gisborne', 'everest-forms' ),
3200 'HB' => __( 'Hawke’s Bay', 'everest-forms' ),
3201 'MW' => __( 'Manawatu-Wanganui', 'everest-forms' ),
3202 'WE' => __( 'Wellington', 'everest-forms' ),
3203 'NS' => __( 'Nelson', 'everest-forms' ),
3204 'MB' => __( 'Marlborough', 'everest-forms' ),
3205 'TM' => __( 'Tasman', 'everest-forms' ),
3206 'WC' => __( 'West Coast', 'everest-forms' ),
3207 'CT' => __( 'Canterbury', 'everest-forms' ),
3208 'OT' => __( 'Otago', 'everest-forms' ),
3209 'SL' => __( 'Southland', 'everest-forms' ),
3210 ),
3211 'PA' => array( // Panamanian states.
3212 'PA-1' => __( 'Bocas del Toro', 'everest-forms' ),
3213 'PA-2' => __( 'Coclé', 'everest-forms' ),
3214 'PA-3' => __( 'Colón', 'everest-forms' ),
3215 'PA-4' => __( 'Chiriquí', 'everest-forms' ),
3216 'PA-5' => __( 'Darién', 'everest-forms' ),
3217 'PA-6' => __( 'Herrera', 'everest-forms' ),
3218 'PA-7' => __( 'Los Santos', 'everest-forms' ),
3219 'PA-8' => __( 'Panamá', 'everest-forms' ),
3220 'PA-9' => __( 'Veraguas', 'everest-forms' ),
3221 'PA-10' => __( 'West Panamá', 'everest-forms' ),
3222 'PA-EM' => __( 'Emberá', 'everest-forms' ),
3223 'PA-KY' => __( 'Guna Yala', 'everest-forms' ),
3224 'PA-NB' => __( 'Ngöbe-Buglé', 'everest-forms' ),
3225 ),
3226 'PE' => array( // Peruvian states.
3227 'CAL' => __( 'El Callao', 'everest-forms' ),
3228 'LMA' => __( 'Municipalidad Metropolitana de Lima', 'everest-forms' ),
3229 'AMA' => __( 'Amazonas', 'everest-forms' ),
3230 'ANC' => __( 'Ancash', 'everest-forms' ),
3231 'APU' => __( 'Apurímac', 'everest-forms' ),
3232 'ARE' => __( 'Arequipa', 'everest-forms' ),
3233 'AYA' => __( 'Ayacucho', 'everest-forms' ),
3234 'CAJ' => __( 'Cajamarca', 'everest-forms' ),
3235 'CUS' => __( 'Cusco', 'everest-forms' ),
3236 'HUV' => __( 'Huancavelica', 'everest-forms' ),
3237 'HUC' => __( 'Huánuco', 'everest-forms' ),
3238 'ICA' => __( 'Ica', 'everest-forms' ),
3239 'JUN' => __( 'Junín', 'everest-forms' ),
3240 'LAL' => __( 'La Libertad', 'everest-forms' ),
3241 'LAM' => __( 'Lambayeque', 'everest-forms' ),
3242 'LIM' => __( 'Lima', 'everest-forms' ),
3243 'LOR' => __( 'Loreto', 'everest-forms' ),
3244 'MDD' => __( 'Madre de Dios', 'everest-forms' ),
3245 'MOQ' => __( 'Moquegua', 'everest-forms' ),
3246 'PAS' => __( 'Pasco', 'everest-forms' ),
3247 'PIU' => __( 'Piura', 'everest-forms' ),
3248 'PUN' => __( 'Puno', 'everest-forms' ),
3249 'SAM' => __( 'San Martín', 'everest-forms' ),
3250 'TAC' => __( 'Tacna', 'everest-forms' ),
3251 'TUM' => __( 'Tumbes', 'everest-forms' ),
3252 'UCA' => __( 'Ucayali', 'everest-forms' ),
3253 ),
3254 'PH' => array( // Philippine provinces.
3255 'ABR' => __( 'Abra', 'everest-forms' ),
3256 'AGN' => __( 'Agusan del Norte', 'everest-forms' ),
3257 'AGS' => __( 'Agusan del Sur', 'everest-forms' ),
3258 'AKL' => __( 'Aklan', 'everest-forms' ),
3259 'ALB' => __( 'Albay', 'everest-forms' ),
3260 'ANT' => __( 'Antique', 'everest-forms' ),
3261 'APA' => __( 'Apayao', 'everest-forms' ),
3262 'AUR' => __( 'Aurora', 'everest-forms' ),
3263 'BAS' => __( 'Basilan', 'everest-forms' ),
3264 'BAN' => __( 'Bataan', 'everest-forms' ),
3265 'BTN' => __( 'Batanes', 'everest-forms' ),
3266 'BTG' => __( 'Batangas', 'everest-forms' ),
3267 'BEN' => __( 'Benguet', 'everest-forms' ),
3268 'BIL' => __( 'Biliran', 'everest-forms' ),
3269 'BOH' => __( 'Bohol', 'everest-forms' ),
3270 'BUK' => __( 'Bukidnon', 'everest-forms' ),
3271 'BUL' => __( 'Bulacan', 'everest-forms' ),
3272 'CAG' => __( 'Cagayan', 'everest-forms' ),
3273 'CAN' => __( 'Camarines Norte', 'everest-forms' ),
3274 'CAS' => __( 'Camarines Sur', 'everest-forms' ),
3275 'CAM' => __( 'Camiguin', 'everest-forms' ),
3276 'CAP' => __( 'Capiz', 'everest-forms' ),
3277 'CAT' => __( 'Catanduanes', 'everest-forms' ),
3278 'CAV' => __( 'Cavite', 'everest-forms' ),
3279 'CEB' => __( 'Cebu', 'everest-forms' ),
3280 'COM' => __( 'Compostela Valley', 'everest-forms' ),
3281 'NCO' => __( 'Cotabato', 'everest-forms' ),
3282 'DAV' => __( 'Davao del Norte', 'everest-forms' ),
3283 'DAS' => __( 'Davao del Sur', 'everest-forms' ),
3284 'DAC' => __( 'Davao Occidental', 'everest-forms' ),
3285 'DAO' => __( 'Davao Oriental', 'everest-forms' ),
3286 'DIN' => __( 'Dinagat Islands', 'everest-forms' ),
3287 'EAS' => __( 'Eastern Samar', 'everest-forms' ),
3288 'GUI' => __( 'Guimaras', 'everest-forms' ),
3289 'IFU' => __( 'Ifugao', 'everest-forms' ),
3290 'ILN' => __( 'Ilocos Norte', 'everest-forms' ),
3291 'ILS' => __( 'Ilocos Sur', 'everest-forms' ),
3292 'ILI' => __( 'Iloilo', 'everest-forms' ),
3293 'ISA' => __( 'Isabela', 'everest-forms' ),
3294 'KAL' => __( 'Kalinga', 'everest-forms' ),
3295 'LUN' => __( 'La Union', 'everest-forms' ),
3296 'LAG' => __( 'Laguna', 'everest-forms' ),
3297 'LAN' => __( 'Lanao del Norte', 'everest-forms' ),
3298 'LAS' => __( 'Lanao del Sur', 'everest-forms' ),
3299 'LEY' => __( 'Leyte', 'everest-forms' ),
3300 'MAG' => __( 'Maguindanao', 'everest-forms' ),
3301 'MAD' => __( 'Marinduque', 'everest-forms' ),
3302 'MAS' => __( 'Masbate', 'everest-forms' ),
3303 'MSC' => __( 'Misamis Occidental', 'everest-forms' ),
3304 'MSR' => __( 'Misamis Oriental', 'everest-forms' ),
3305 'MOU' => __( 'Mountain Province', 'everest-forms' ),
3306 'NEC' => __( 'Negros Occidental', 'everest-forms' ),
3307 'NER' => __( 'Negros Oriental', 'everest-forms' ),
3308 'NSA' => __( 'Northern Samar', 'everest-forms' ),
3309 'NUE' => __( 'Nueva Ecija', 'everest-forms' ),
3310 'NUV' => __( 'Nueva Vizcaya', 'everest-forms' ),
3311 'MDC' => __( 'Occidental Mindoro', 'everest-forms' ),
3312 'MDR' => __( 'Oriental Mindoro', 'everest-forms' ),
3313 'PLW' => __( 'Palawan', 'everest-forms' ),
3314 'PAM' => __( 'Pampanga', 'everest-forms' ),
3315 'PAN' => __( 'Pangasinan', 'everest-forms' ),
3316 'QUE' => __( 'Quezon', 'everest-forms' ),
3317 'QUI' => __( 'Quirino', 'everest-forms' ),
3318 'RIZ' => __( 'Rizal', 'everest-forms' ),
3319 'ROM' => __( 'Romblon', 'everest-forms' ),
3320 'WSA' => __( 'Samar', 'everest-forms' ),
3321 'SAR' => __( 'Sarangani', 'everest-forms' ),
3322 'SIQ' => __( 'Siquijor', 'everest-forms' ),
3323 'SOR' => __( 'Sorsogon', 'everest-forms' ),
3324 'SCO' => __( 'South Cotabato', 'everest-forms' ),
3325 'SLE' => __( 'Southern Leyte', 'everest-forms' ),
3326 'SUK' => __( 'Sultan Kudarat', 'everest-forms' ),
3327 'SLU' => __( 'Sulu', 'everest-forms' ),
3328 'SUN' => __( 'Surigao del Norte', 'everest-forms' ),
3329 'SUR' => __( 'Surigao del Sur', 'everest-forms' ),
3330 'TAR' => __( 'Tarlac', 'everest-forms' ),
3331 'TAW' => __( 'Tawi-Tawi', 'everest-forms' ),
3332 'ZMB' => __( 'Zambales', 'everest-forms' ),
3333 'ZAN' => __( 'Zamboanga del Norte', 'everest-forms' ),
3334 'ZAS' => __( 'Zamboanga del Sur', 'everest-forms' ),
3335 'ZSI' => __( 'Zamboanga Sibugay', 'everest-forms' ),
3336 '00' => __( 'Metro Manila', 'everest-forms' ),
3337 ),
3338 'PK' => array( // Pakistani states.
3339 'JK' => __( 'Azad Kashmir', 'everest-forms' ),
3340 'BA' => __( 'Balochistan', 'everest-forms' ),
3341 'TA' => __( 'FATA', 'everest-forms' ),
3342 'GB' => __( 'Gilgit Baltistan', 'everest-forms' ),
3343 'IS' => __( 'Islamabad Capital Territory', 'everest-forms' ),
3344 'KP' => __( 'Khyber Pakhtunkhwa', 'everest-forms' ),
3345 'PB' => __( 'Punjab', 'everest-forms' ),
3346 'SD' => __( 'Sindh', 'everest-forms' ),
3347 ),
3348 'PL' => array(),
3349 'PR' => array(),
3350 'PT' => array(),
3351 'PY' => array( // Paraguayan states.
3352 'PY-ASU' => __( 'Asunción', 'everest-forms' ),
3353 'PY-1' => __( 'Concepción', 'everest-forms' ),
3354 'PY-2' => __( 'San Pedro', 'everest-forms' ),
3355 'PY-3' => __( 'Cordillera', 'everest-forms' ),
3356 'PY-4' => __( 'Guairá', 'everest-forms' ),
3357 'PY-5' => __( 'Caaguazú', 'everest-forms' ),
3358 'PY-6' => __( 'Caazapá', 'everest-forms' ),
3359 'PY-7' => __( 'Itapúa', 'everest-forms' ),
3360 'PY-8' => __( 'Misiones', 'everest-forms' ),
3361 'PY-9' => __( 'Paraguarí', 'everest-forms' ),
3362 'PY-10' => __( 'Alto Paraná', 'everest-forms' ),
3363 'PY-11' => __( 'Central', 'everest-forms' ),
3364 'PY-12' => __( 'Ñeembucú', 'everest-forms' ),
3365 'PY-13' => __( 'Amambay', 'everest-forms' ),
3366 'PY-14' => __( 'Canindeyú', 'everest-forms' ),
3367 'PY-15' => __( 'Presidente Hayes', 'everest-forms' ),
3368 'PY-16' => __( 'Alto Paraguay', 'everest-forms' ),
3369 'PY-17' => __( 'Boquerón', 'everest-forms' ),
3370 ),
3371 'RE' => array(),
3372 'RO' => array( // Romanian states.
3373 'AB' => __( 'Alba', 'everest-forms' ),
3374 'AR' => __( 'Arad', 'everest-forms' ),
3375 'AG' => __( 'Argeș', 'everest-forms' ),
3376 'BC' => __( 'Bacău', 'everest-forms' ),
3377 'BH' => __( 'Bihor', 'everest-forms' ),
3378 'BN' => __( 'Bistrița-Năsăud', 'everest-forms' ),
3379 'BT' => __( 'Botoșani', 'everest-forms' ),
3380 'BR' => __( 'Brăila', 'everest-forms' ),
3381 'BV' => __( 'Brașov', 'everest-forms' ),
3382 'B' => __( 'București', 'everest-forms' ),
3383 'BZ' => __( 'Buzău', 'everest-forms' ),
3384 'CL' => __( 'Călărași', 'everest-forms' ),
3385 'CS' => __( 'Caraș-Severin', 'everest-forms' ),
3386 'CJ' => __( 'Cluj', 'everest-forms' ),
3387 'CT' => __( 'Constanța', 'everest-forms' ),
3388 'CV' => __( 'Covasna', 'everest-forms' ),
3389 'DB' => __( 'Dâmbovița', 'everest-forms' ),
3390 'DJ' => __( 'Dolj', 'everest-forms' ),
3391 'GL' => __( 'Galați', 'everest-forms' ),
3392 'GR' => __( 'Giurgiu', 'everest-forms' ),
3393 'GJ' => __( 'Gorj', 'everest-forms' ),
3394 'HR' => __( 'Harghita', 'everest-forms' ),
3395 'HD' => __( 'Hunedoara', 'everest-forms' ),
3396 'IL' => __( 'Ialomița', 'everest-forms' ),
3397 'IS' => __( 'Iași', 'everest-forms' ),
3398 'IF' => __( 'Ilfov', 'everest-forms' ),
3399 'MM' => __( 'Maramureș', 'everest-forms' ),
3400 'MH' => __( 'Mehedinți', 'everest-forms' ),
3401 'MS' => __( 'Mureș', 'everest-forms' ),
3402 'NT' => __( 'Neamț', 'everest-forms' ),
3403 'OT' => __( 'Olt', 'everest-forms' ),
3404 'PH' => __( 'Prahova', 'everest-forms' ),
3405 'SJ' => __( 'Sălaj', 'everest-forms' ),
3406 'SM' => __( 'Satu Mare', 'everest-forms' ),
3407 'SB' => __( 'Sibiu', 'everest-forms' ),
3408 'SV' => __( 'Suceava', 'everest-forms' ),
3409 'TR' => __( 'Teleorman', 'everest-forms' ),
3410 'TM' => __( 'Timiș', 'everest-forms' ),
3411 'TL' => __( 'Tulcea', 'everest-forms' ),
3412 'VL' => __( 'Vâlcea', 'everest-forms' ),
3413 'VS' => __( 'Vaslui', 'everest-forms' ),
3414 'VN' => __( 'Vrancea', 'everest-forms' ),
3415 ),
3416 'SG' => array(),
3417 'SK' => array(),
3418 'SI' => array(),
3419 'SV' => array( // Salvadoran states.
3420 'SV-AH' => __( 'Ahuachapán', 'everest-forms' ),
3421 'SV-CA' => __( 'Cabañas', 'everest-forms' ),
3422 'SV-CH' => __( 'Chalatenango', 'everest-forms' ),
3423 'SV-CU' => __( 'Cuscatlán', 'everest-forms' ),
3424 'SV-LI' => __( 'La Libertad', 'everest-forms' ),
3425 'SV-MO' => __( 'Morazán', 'everest-forms' ),
3426 'SV-PA' => __( 'La Paz', 'everest-forms' ),
3427 'SV-SA' => __( 'Santa Ana', 'everest-forms' ),
3428 'SV-SM' => __( 'San Miguel', 'everest-forms' ),
3429 'SV-SO' => __( 'Sonsonate', 'everest-forms' ),
3430 'SV-SS' => __( 'San Salvador', 'everest-forms' ),
3431 'SV-SV' => __( 'San Vicente', 'everest-forms' ),
3432 'SV-UN' => __( 'La Unión', 'everest-forms' ),
3433 'SV-US' => __( 'Usulután', 'everest-forms' ),
3434 ),
3435 'TH' => array( // Thai states.
3436 'TH-37' => __( 'Amnat Charoen', 'everest-forms' ),
3437 'TH-15' => __( 'Ang Thong', 'everest-forms' ),
3438 'TH-14' => __( 'Ayutthaya', 'everest-forms' ),
3439 'TH-10' => __( 'Bangkok', 'everest-forms' ),
3440 'TH-38' => __( 'Bueng Kan', 'everest-forms' ),
3441 'TH-31' => __( 'Buri Ram', 'everest-forms' ),
3442 'TH-24' => __( 'Chachoengsao', 'everest-forms' ),
3443 'TH-18' => __( 'Chai Nat', 'everest-forms' ),
3444 'TH-36' => __( 'Chaiyaphum', 'everest-forms' ),
3445 'TH-22' => __( 'Chanthaburi', 'everest-forms' ),
3446 'TH-50' => __( 'Chiang Mai', 'everest-forms' ),
3447 'TH-57' => __( 'Chiang Rai', 'everest-forms' ),
3448 'TH-20' => __( 'Chonburi', 'everest-forms' ),
3449 'TH-86' => __( 'Chumphon', 'everest-forms' ),
3450 'TH-46' => __( 'Kalasin', 'everest-forms' ),
3451 'TH-62' => __( 'Kamphaeng Phet', 'everest-forms' ),
3452 'TH-71' => __( 'Kanchanaburi', 'everest-forms' ),
3453 'TH-40' => __( 'Khon Kaen', 'everest-forms' ),
3454 'TH-81' => __( 'Krabi', 'everest-forms' ),
3455 'TH-52' => __( 'Lampang', 'everest-forms' ),
3456 'TH-51' => __( 'Lamphun', 'everest-forms' ),
3457 'TH-42' => __( 'Loei', 'everest-forms' ),
3458 'TH-16' => __( 'Lopburi', 'everest-forms' ),
3459 'TH-58' => __( 'Mae Hong Son', 'everest-forms' ),
3460 'TH-44' => __( 'Maha Sarakham', 'everest-forms' ),
3461 'TH-49' => __( 'Mukdahan', 'everest-forms' ),
3462 'TH-26' => __( 'Nakhon Nayok', 'everest-forms' ),
3463 'TH-73' => __( 'Nakhon Pathom', 'everest-forms' ),
3464 'TH-48' => __( 'Nakhon Phanom', 'everest-forms' ),
3465 'TH-30' => __( 'Nakhon Ratchasima', 'everest-forms' ),
3466 'TH-60' => __( 'Nakhon Sawan', 'everest-forms' ),
3467 'TH-80' => __( 'Nakhon Si Thammarat', 'everest-forms' ),
3468 'TH-55' => __( 'Nan', 'everest-forms' ),
3469 'TH-96' => __( 'Narathiwat', 'everest-forms' ),
3470 'TH-39' => __( 'Nong Bua Lam Phu', 'everest-forms' ),
3471 'TH-43' => __( 'Nong Khai', 'everest-forms' ),
3472 'TH-12' => __( 'Nonthaburi', 'everest-forms' ),
3473 'TH-13' => __( 'Pathum Thani', 'everest-forms' ),
3474 'TH-94' => __( 'Pattani', 'everest-forms' ),
3475 'TH-82' => __( 'Phang Nga', 'everest-forms' ),
3476 'TH-93' => __( 'Phatthalung', 'everest-forms' ),
3477 'TH-56' => __( 'Phayao', 'everest-forms' ),
3478 'TH-67' => __( 'Phetchabun', 'everest-forms' ),
3479 'TH-76' => __( 'Phetchaburi', 'everest-forms' ),
3480 'TH-66' => __( 'Phichit', 'everest-forms' ),
3481 'TH-65' => __( 'Phitsanulok', 'everest-forms' ),
3482 'TH-54' => __( 'Phrae', 'everest-forms' ),
3483 'TH-83' => __( 'Phuket', 'everest-forms' ),
3484 'TH-25' => __( 'Prachin Buri', 'everest-forms' ),
3485 'TH-77' => __( 'Prachuap Khiri Khan', 'everest-forms' ),
3486 'TH-85' => __( 'Ranong', 'everest-forms' ),
3487 'TH-70' => __( 'Ratchaburi', 'everest-forms' ),
3488 'TH-21' => __( 'Rayong', 'everest-forms' ),
3489 'TH-45' => __( 'Roi Et', 'everest-forms' ),
3490 'TH-27' => __( 'Sa Kaeo', 'everest-forms' ),
3491 'TH-47' => __( 'Sakon Nakhon', 'everest-forms' ),
3492 'TH-11' => __( 'Samut Prakan', 'everest-forms' ),
3493 'TH-74' => __( 'Samut Sakhon', 'everest-forms' ),
3494 'TH-75' => __( 'Samut Songkhram', 'everest-forms' ),
3495 'TH-19' => __( 'Saraburi', 'everest-forms' ),
3496 'TH-91' => __( 'Satun', 'everest-forms' ),
3497 'TH-17' => __( 'Sing Buri', 'everest-forms' ),
3498 'TH-33' => __( 'Sisaket', 'everest-forms' ),
3499 'TH-90' => __( 'Songkhla', 'everest-forms' ),
3500 'TH-64' => __( 'Sukhothai', 'everest-forms' ),
3501 'TH-72' => __( 'Suphan Buri', 'everest-forms' ),
3502 'TH-84' => __( 'Surat Thani', 'everest-forms' ),
3503 'TH-32' => __( 'Surin', 'everest-forms' ),
3504 'TH-63' => __( 'Tak', 'everest-forms' ),
3505 'TH-92' => __( 'Trang', 'everest-forms' ),
3506 'TH-23' => __( 'Trat', 'everest-forms' ),
3507 'TH-34' => __( 'Ubon Ratchathani', 'everest-forms' ),
3508 'TH-41' => __( 'Udon Thani', 'everest-forms' ),
3509 'TH-61' => __( 'Uthai Thani', 'everest-forms' ),
3510 'TH-53' => __( 'Uttaradit', 'everest-forms' ),
3511 'TH-95' => __( 'Yala', 'everest-forms' ),
3512 'TH-35' => __( 'Yasothon', 'everest-forms' ),
3513 ),
3514 'TR' => array( // Turkish states.
3515 'TR01' => __( 'Adana', 'everest-forms' ),
3516 'TR02' => __( 'Adıyaman', 'everest-forms' ),
3517 'TR03' => __( 'Afyon', 'everest-forms' ),
3518 'TR04' => __( 'Ağrı', 'everest-forms' ),
3519 'TR05' => __( 'Amasya', 'everest-forms' ),
3520 'TR06' => __( 'Ankara', 'everest-forms' ),
3521 'TR07' => __( 'Antalya', 'everest-forms' ),
3522 'TR08' => __( 'Artvin', 'everest-forms' ),
3523 'TR09' => __( 'Aydın', 'everest-forms' ),
3524 'TR10' => __( 'Balıkesir', 'everest-forms' ),
3525 'TR11' => __( 'Bilecik', 'everest-forms' ),
3526 'TR12' => __( 'Bingöl', 'everest-forms' ),
3527 'TR13' => __( 'Bitlis', 'everest-forms' ),
3528 'TR14' => __( 'Bolu', 'everest-forms' ),
3529 'TR15' => __( 'Burdur', 'everest-forms' ),
3530 'TR16' => __( 'Bursa', 'everest-forms' ),
3531 'TR17' => __( 'Çanakkale', 'everest-forms' ),
3532 'TR18' => __( 'Çankırı', 'everest-forms' ),
3533 'TR19' => __( 'Çorum', 'everest-forms' ),
3534 'TR20' => __( 'Denizli', 'everest-forms' ),
3535 'TR21' => __( 'Diyarbakır', 'everest-forms' ),
3536 'TR22' => __( 'Edirne', 'everest-forms' ),
3537 'TR23' => __( 'Elazığ', 'everest-forms' ),
3538 'TR24' => __( 'Erzincan', 'everest-forms' ),
3539 'TR25' => __( 'Erzurum', 'everest-forms' ),
3540 'TR26' => __( 'Eskişehir', 'everest-forms' ),
3541 'TR27' => __( 'Gaziantep', 'everest-forms' ),
3542 'TR28' => __( 'Giresun', 'everest-forms' ),
3543 'TR29' => __( 'Gümüşhane', 'everest-forms' ),
3544 'TR30' => __( 'Hakkari', 'everest-forms' ),
3545 'TR31' => __( 'Hatay', 'everest-forms' ),
3546 'TR32' => __( 'Isparta', 'everest-forms' ),
3547 'TR33' => __( 'İçel', 'everest-forms' ),
3548 'TR34' => __( 'İstanbul', 'everest-forms' ),
3549 'TR35' => __( 'İzmir', 'everest-forms' ),
3550 'TR36' => __( 'Kars', 'everest-forms' ),
3551 'TR37' => __( 'Kastamonu', 'everest-forms' ),
3552 'TR38' => __( 'Kayseri', 'everest-forms' ),
3553 'TR39' => __( 'Kırklareli', 'everest-forms' ),
3554 'TR40' => __( 'Kırşehir', 'everest-forms' ),
3555 'TR41' => __( 'Kocaeli', 'everest-forms' ),
3556 'TR42' => __( 'Konya', 'everest-forms' ),
3557 'TR43' => __( 'Kütahya', 'everest-forms' ),
3558 'TR44' => __( 'Malatya', 'everest-forms' ),
3559 'TR45' => __( 'Manisa', 'everest-forms' ),
3560 'TR46' => __( 'Kahramanmaraş', 'everest-forms' ),
3561 'TR47' => __( 'Mardin', 'everest-forms' ),
3562 'TR48' => __( 'Muğla', 'everest-forms' ),
3563 'TR49' => __( 'Muş', 'everest-forms' ),
3564 'TR50' => __( 'Nevşehir', 'everest-forms' ),
3565 'TR51' => __( 'Niğde', 'everest-forms' ),
3566 'TR52' => __( 'Ordu', 'everest-forms' ),
3567 'TR53' => __( 'Rize', 'everest-forms' ),
3568 'TR54' => __( 'Sakarya', 'everest-forms' ),
3569 'TR55' => __( 'Samsun', 'everest-forms' ),
3570 'TR56' => __( 'Siirt', 'everest-forms' ),
3571 'TR57' => __( 'Sinop', 'everest-forms' ),
3572 'TR58' => __( 'Sivas', 'everest-forms' ),
3573 'TR59' => __( 'Tekirdağ', 'everest-forms' ),
3574 'TR60' => __( 'Tokat', 'everest-forms' ),
3575 'TR61' => __( 'Trabzon', 'everest-forms' ),
3576 'TR62' => __( 'Tunceli', 'everest-forms' ),
3577 'TR63' => __( 'Şanlıurfa', 'everest-forms' ),
3578 'TR64' => __( 'Uşak', 'everest-forms' ),
3579 'TR65' => __( 'Van', 'everest-forms' ),
3580 'TR66' => __( 'Yozgat', 'everest-forms' ),
3581 'TR67' => __( 'Zonguldak', 'everest-forms' ),
3582 'TR68' => __( 'Aksaray', 'everest-forms' ),
3583 'TR69' => __( 'Bayburt', 'everest-forms' ),
3584 'TR70' => __( 'Karaman', 'everest-forms' ),
3585 'TR71' => __( 'Kırıkkale', 'everest-forms' ),
3586 'TR72' => __( 'Batman', 'everest-forms' ),
3587 'TR73' => __( 'Şırnak', 'everest-forms' ),
3588 'TR74' => __( 'Bartın', 'everest-forms' ),
3589 'TR75' => __( 'Ardahan', 'everest-forms' ),
3590 'TR76' => __( 'Iğdır', 'everest-forms' ),
3591 'TR77' => __( 'Yalova', 'everest-forms' ),
3592 'TR78' => __( 'Karabük', 'everest-forms' ),
3593 'TR79' => __( 'Kilis', 'everest-forms' ),
3594 'TR80' => __( 'Osmaniye', 'everest-forms' ),
3595 'TR81' => __( 'Düzce', 'everest-forms' ),
3596 ),
3597 'TZ' => array( // Tanzanian states.
3598 'TZ01' => __( 'Arusha', 'everest-forms' ),
3599 'TZ02' => __( 'Dar es Salaam', 'everest-forms' ),
3600 'TZ03' => __( 'Dodoma', 'everest-forms' ),
3601 'TZ04' => __( 'Iringa', 'everest-forms' ),
3602 'TZ05' => __( 'Kagera', 'everest-forms' ),
3603 'TZ06' => __( 'Pemba North', 'everest-forms' ),
3604 'TZ07' => __( 'Zanzibar North', 'everest-forms' ),
3605 'TZ08' => __( 'Kigoma', 'everest-forms' ),
3606 'TZ09' => __( 'Kilimanjaro', 'everest-forms' ),
3607 'TZ10' => __( 'Pemba South', 'everest-forms' ),
3608 'TZ11' => __( 'Zanzibar South', 'everest-forms' ),
3609 'TZ12' => __( 'Lindi', 'everest-forms' ),
3610 'TZ13' => __( 'Mara', 'everest-forms' ),
3611 'TZ14' => __( 'Mbeya', 'everest-forms' ),
3612 'TZ15' => __( 'Zanzibar West', 'everest-forms' ),
3613 'TZ16' => __( 'Morogoro', 'everest-forms' ),
3614 'TZ17' => __( 'Mtwara', 'everest-forms' ),
3615 'TZ18' => __( 'Mwanza', 'everest-forms' ),
3616 'TZ19' => __( 'Coast', 'everest-forms' ),
3617 'TZ20' => __( 'Rukwa', 'everest-forms' ),
3618 'TZ21' => __( 'Ruvuma', 'everest-forms' ),
3619 'TZ22' => __( 'Shinyanga', 'everest-forms' ),
3620 'TZ23' => __( 'Singida', 'everest-forms' ),
3621 'TZ24' => __( 'Tabora', 'everest-forms' ),
3622 'TZ25' => __( 'Tanga', 'everest-forms' ),
3623 'TZ26' => __( 'Manyara', 'everest-forms' ),
3624 'TZ27' => __( 'Geita', 'everest-forms' ),
3625 'TZ28' => __( 'Katavi', 'everest-forms' ),
3626 'TZ29' => __( 'Njombe', 'everest-forms' ),
3627 'TZ30' => __( 'Simiyu', 'everest-forms' ),
3628 ),
3629 'LK' => array(),
3630 'RS' => array( // Serbian districts.
3631 'RS00' => _x( 'Belgrade', 'district', 'everest-forms' ),
3632 'RS14' => _x( 'Bor', 'district', 'everest-forms' ),
3633 'RS11' => _x( 'Braničevo', 'district', 'everest-forms' ),
3634 'RS02' => _x( 'Central Banat', 'district', 'everest-forms' ),
3635 'RS10' => _x( 'Danube', 'district', 'everest-forms' ),
3636 'RS23' => _x( 'Jablanica', 'district', 'everest-forms' ),
3637 'RS09' => _x( 'Kolubara', 'district', 'everest-forms' ),
3638 'RS08' => _x( 'Mačva', 'district', 'everest-forms' ),
3639 'RS17' => _x( 'Morava', 'district', 'everest-forms' ),
3640 'RS20' => _x( 'Nišava', 'district', 'everest-forms' ),
3641 'RS01' => _x( 'North Bačka', 'district', 'everest-forms' ),
3642 'RS03' => _x( 'North Banat', 'district', 'everest-forms' ),
3643 'RS24' => _x( 'Pčinja', 'district', 'everest-forms' ),
3644 'RS22' => _x( 'Pirot', 'district', 'everest-forms' ),
3645 'RS13' => _x( 'Pomoravlje', 'district', 'everest-forms' ),
3646 'RS19' => _x( 'Rasina', 'district', 'everest-forms' ),
3647 'RS18' => _x( 'Raška', 'district', 'everest-forms' ),
3648 'RS06' => _x( 'South Bačka', 'district', 'everest-forms' ),
3649 'RS04' => _x( 'South Banat', 'district', 'everest-forms' ),
3650 'RS07' => _x( 'Srem', 'district', 'everest-forms' ),
3651 'RS12' => _x( 'Šumadija', 'district', 'everest-forms' ),
3652 'RS21' => _x( 'Toplica', 'district', 'everest-forms' ),
3653 'RS05' => _x( 'West Bačka', 'district', 'everest-forms' ),
3654 'RS15' => _x( 'Zaječar', 'district', 'everest-forms' ),
3655 'RS16' => _x( 'Zlatibor', 'district', 'everest-forms' ),
3656 'RS25' => _x( 'Kosovo', 'district', 'everest-forms' ),
3657 'RS26' => _x( 'Peć', 'district', 'everest-forms' ),
3658 'RS27' => _x( 'Prizren', 'district', 'everest-forms' ),
3659 'RS28' => _x( 'Kosovska Mitrovica', 'district', 'everest-forms' ),
3660 'RS29' => _x( 'Kosovo-Pomoravlje', 'district', 'everest-forms' ),
3661 'RSKM' => _x( 'Kosovo-Metohija', 'district', 'everest-forms' ),
3662 'RSVO' => _x( 'Vojvodina', 'district', 'everest-forms' ),
3663 ),
3664 'SE' => array(),
3665 'UA' => array( // Ukrainian oblasts.
3666 'VN' => __( 'Vinnytsia Oblast', 'everest-forms' ),
3667 'VL' => __( 'Volyn Oblast', 'everest-forms' ),
3668 'DP' => __( 'Dnipropetrovsk Oblast', 'everest-forms' ),
3669 'DT' => __( 'Donetsk Oblast', 'everest-forms' ),
3670 'ZT' => __( 'Zhytomyr Oblast', 'everest-forms' ),
3671 'ZK' => __( 'Zakarpattia Oblast', 'everest-forms' ),
3672 'ZP' => __( 'Zaporizhzhia Oblast', 'everest-forms' ),
3673 'IF' => __( 'Ivano-Frankivsk Oblast', 'everest-forms' ),
3674 'KV' => __( 'Kyiv Oblast', 'everest-forms' ),
3675 'KH' => __( 'Kirovohrad Oblast', 'everest-forms' ),
3676 'LH' => __( 'Luhansk Oblast', 'everest-forms' ),
3677 'LV' => __( 'Lviv Oblast', 'everest-forms' ),
3678 'MY' => __( 'Mykolaiv Oblast', 'everest-forms' ),
3679 'OD' => __( 'Odessa Oblast', 'everest-forms' ),
3680 'PL' => __( 'Poltava Oblast', 'everest-forms' ),
3681 'RV' => __( 'Rivne Oblast', 'everest-forms' ),
3682 'SM' => __( 'Sumy Oblast', 'everest-forms' ),
3683 'TP' => __( 'Ternopil Oblast', 'everest-forms' ),
3684 'KK' => __( 'Kharkiv Oblast', 'everest-forms' ),
3685 'KS' => __( 'Kherson Oblast', 'everest-forms' ),
3686 'KM' => __( 'Khmelnytskyi Oblast', 'everest-forms' ),
3687 'CK' => __( 'Cherkasy Oblast', 'everest-forms' ),
3688 'CH' => __( 'Chernihiv Oblast', 'everest-forms' ),
3689 'CV' => __( 'Chernivtsi Oblast', 'everest-forms' ),
3690 ),
3691 'UG' => array( // Ugandan districts.
3692 'UG314' => __( 'Abim', 'everest-forms' ),
3693 'UG301' => __( 'Adjumani', 'everest-forms' ),
3694 'UG322' => __( 'Agago', 'everest-forms' ),
3695 'UG323' => __( 'Alebtong', 'everest-forms' ),
3696 'UG315' => __( 'Amolatar', 'everest-forms' ),
3697 'UG324' => __( 'Amudat', 'everest-forms' ),
3698 'UG216' => __( 'Amuria', 'everest-forms' ),
3699 'UG316' => __( 'Amuru', 'everest-forms' ),
3700 'UG302' => __( 'Apac', 'everest-forms' ),
3701 'UG303' => __( 'Arua', 'everest-forms' ),
3702 'UG217' => __( 'Budaka', 'everest-forms' ),
3703 'UG218' => __( 'Bududa', 'everest-forms' ),
3704 'UG201' => __( 'Bugiri', 'everest-forms' ),
3705 'UG235' => __( 'Bugweri', 'everest-forms' ),
3706 'UG420' => __( 'Buhweju', 'everest-forms' ),
3707 'UG117' => __( 'Buikwe', 'everest-forms' ),
3708 'UG219' => __( 'Bukedea', 'everest-forms' ),
3709 'UG118' => __( 'Bukomansimbi', 'everest-forms' ),
3710 'UG220' => __( 'Bukwa', 'everest-forms' ),
3711 'UG225' => __( 'Bulambuli', 'everest-forms' ),
3712 'UG416' => __( 'Buliisa', 'everest-forms' ),
3713 'UG401' => __( 'Bundibugyo', 'everest-forms' ),
3714 'UG430' => __( 'Bunyangabu', 'everest-forms' ),
3715 'UG402' => __( 'Bushenyi', 'everest-forms' ),
3716 'UG202' => __( 'Busia', 'everest-forms' ),
3717 'UG221' => __( 'Butaleja', 'everest-forms' ),
3718 'UG119' => __( 'Butambala', 'everest-forms' ),
3719 'UG233' => __( 'Butebo', 'everest-forms' ),
3720 'UG120' => __( 'Buvuma', 'everest-forms' ),
3721 'UG226' => __( 'Buyende', 'everest-forms' ),
3722 'UG317' => __( 'Dokolo', 'everest-forms' ),
3723 'UG121' => __( 'Gomba', 'everest-forms' ),
3724 'UG304' => __( 'Gulu', 'everest-forms' ),
3725 'UG403' => __( 'Hoima', 'everest-forms' ),
3726 'UG417' => __( 'Ibanda', 'everest-forms' ),
3727 'UG203' => __( 'Iganga', 'everest-forms' ),
3728 'UG418' => __( 'Isingiro', 'everest-forms' ),
3729 'UG204' => __( 'Jinja', 'everest-forms' ),
3730 'UG318' => __( 'Kaabong', 'everest-forms' ),
3731 'UG404' => __( 'Kabale', 'everest-forms' ),
3732 'UG405' => __( 'Kabarole', 'everest-forms' ),
3733 'UG213' => __( 'Kaberamaido', 'everest-forms' ),
3734 'UG427' => __( 'Kagadi', 'everest-forms' ),
3735 'UG428' => __( 'Kakumiro', 'everest-forms' ),
3736 'UG101' => __( 'Kalangala', 'everest-forms' ),
3737 'UG222' => __( 'Kaliro', 'everest-forms' ),
3738 'UG122' => __( 'Kalungu', 'everest-forms' ),
3739 'UG102' => __( 'Kampala', 'everest-forms' ),
3740 'UG205' => __( 'Kamuli', 'everest-forms' ),
3741 'UG413' => __( 'Kamwenge', 'everest-forms' ),
3742 'UG414' => __( 'Kanungu', 'everest-forms' ),
3743 'UG206' => __( 'Kapchorwa', 'everest-forms' ),
3744 'UG236' => __( 'Kapelebyong', 'everest-forms' ),
3745 'UG126' => __( 'Kasanda', 'everest-forms' ),
3746 'UG406' => __( 'Kasese', 'everest-forms' ),
3747 'UG207' => __( 'Katakwi', 'everest-forms' ),
3748 'UG112' => __( 'Kayunga', 'everest-forms' ),
3749 'UG407' => __( 'Kibaale', 'everest-forms' ),
3750 'UG103' => __( 'Kiboga', 'everest-forms' ),
3751 'UG227' => __( 'Kibuku', 'everest-forms' ),
3752 'UG432' => __( 'Kikuube', 'everest-forms' ),
3753 'UG419' => __( 'Kiruhura', 'everest-forms' ),
3754 'UG421' => __( 'Kiryandongo', 'everest-forms' ),
3755 'UG408' => __( 'Kisoro', 'everest-forms' ),
3756 'UG305' => __( 'Kitgum', 'everest-forms' ),
3757 'UG319' => __( 'Koboko', 'everest-forms' ),
3758 'UG325' => __( 'Kole', 'everest-forms' ),
3759 'UG306' => __( 'Kotido', 'everest-forms' ),
3760 'UG208' => __( 'Kumi', 'everest-forms' ),
3761 'UG333' => __( 'Kwania', 'everest-forms' ),
3762 'UG228' => __( 'Kween', 'everest-forms' ),
3763 'UG123' => __( 'Kyankwanzi', 'everest-forms' ),
3764 'UG422' => __( 'Kyegegwa', 'everest-forms' ),
3765 'UG415' => __( 'Kyenjojo', 'everest-forms' ),
3766 'UG125' => __( 'Kyotera', 'everest-forms' ),
3767 'UG326' => __( 'Lamwo', 'everest-forms' ),
3768 'UG307' => __( 'Lira', 'everest-forms' ),
3769 'UG229' => __( 'Luuka', 'everest-forms' ),
3770 'UG104' => __( 'Luwero', 'everest-forms' ),
3771 'UG124' => __( 'Lwengo', 'everest-forms' ),
3772 'UG114' => __( 'Lyantonde', 'everest-forms' ),
3773 'UG223' => __( 'Manafwa', 'everest-forms' ),
3774 'UG320' => __( 'Maracha', 'everest-forms' ),
3775 'UG105' => __( 'Masaka', 'everest-forms' ),
3776 'UG409' => __( 'Masindi', 'everest-forms' ),
3777 'UG214' => __( 'Mayuge', 'everest-forms' ),
3778 'UG209' => __( 'Mbale', 'everest-forms' ),
3779 'UG410' => __( 'Mbarara', 'everest-forms' ),
3780 'UG423' => __( 'Mitooma', 'everest-forms' ),
3781 'UG115' => __( 'Mityana', 'everest-forms' ),
3782 'UG308' => __( 'Moroto', 'everest-forms' ),
3783 'UG309' => __( 'Moyo', 'everest-forms' ),
3784 'UG106' => __( 'Mpigi', 'everest-forms' ),
3785 'UG107' => __( 'Mubende', 'everest-forms' ),
3786 'UG108' => __( 'Mukono', 'everest-forms' ),
3787 'UG334' => __( 'Nabilatuk', 'everest-forms' ),
3788 'UG311' => __( 'Nakapiripirit', 'everest-forms' ),
3789 'UG116' => __( 'Nakaseke', 'everest-forms' ),
3790 'UG109' => __( 'Nakasongola', 'everest-forms' ),
3791 'UG230' => __( 'Namayingo', 'everest-forms' ),
3792 'UG234' => __( 'Namisindwa', 'everest-forms' ),
3793 'UG224' => __( 'Namutumba', 'everest-forms' ),
3794 'UG327' => __( 'Napak', 'everest-forms' ),
3795 'UG310' => __( 'Nebbi', 'everest-forms' ),
3796 'UG231' => __( 'Ngora', 'everest-forms' ),
3797 'UG424' => __( 'Ntoroko', 'everest-forms' ),
3798 'UG411' => __( 'Ntungamo', 'everest-forms' ),
3799 'UG328' => __( 'Nwoya', 'everest-forms' ),
3800 'UG331' => __( 'Omoro', 'everest-forms' ),
3801 'UG329' => __( 'Otuke', 'everest-forms' ),
3802 'UG321' => __( 'Oyam', 'everest-forms' ),
3803 'UG312' => __( 'Pader', 'everest-forms' ),
3804 'UG332' => __( 'Pakwach', 'everest-forms' ),
3805 'UG210' => __( 'Pallisa', 'everest-forms' ),
3806 'UG110' => __( 'Rakai', 'everest-forms' ),
3807 'UG429' => __( 'Rubanda', 'everest-forms' ),
3808 'UG425' => __( 'Rubirizi', 'everest-forms' ),
3809 'UG431' => __( 'Rukiga', 'everest-forms' ),
3810 'UG412' => __( 'Rukungiri', 'everest-forms' ),
3811 'UG111' => __( 'Sembabule', 'everest-forms' ),
3812 'UG232' => __( 'Serere', 'everest-forms' ),
3813 'UG426' => __( 'Sheema', 'everest-forms' ),
3814 'UG215' => __( 'Sironko', 'everest-forms' ),
3815 'UG211' => __( 'Soroti', 'everest-forms' ),
3816 'UG212' => __( 'Tororo', 'everest-forms' ),
3817 'UG113' => __( 'Wakiso', 'everest-forms' ),
3818 'UG313' => __( 'Yumbe', 'everest-forms' ),
3819 'UG330' => __( 'Zombo', 'everest-forms' ),
3820 ),
3821 'UM' => array(
3822 '81' => __( 'Baker Island', 'everest-forms' ),
3823 '84' => __( 'Howland Island', 'everest-forms' ),
3824 '86' => __( 'Jarvis Island', 'everest-forms' ),
3825 '67' => __( 'Johnston Atoll', 'everest-forms' ),
3826 '89' => __( 'Kingman Reef', 'everest-forms' ),
3827 '71' => __( 'Midway Atoll', 'everest-forms' ),
3828 '76' => __( 'Navassa Island', 'everest-forms' ),
3829 '95' => __( 'Palmyra Atoll', 'everest-forms' ),
3830 '79' => __( 'Wake Island', 'everest-forms' ),
3831 ),
3832 'US' => array( // U.S. states.
3833 'AL' => __( 'Alabama', 'everest-forms' ),
3834 'AK' => __( 'Alaska', 'everest-forms' ),
3835 'AZ' => __( 'Arizona', 'everest-forms' ),
3836 'AR' => __( 'Arkansas', 'everest-forms' ),
3837 'CA' => __( 'California', 'everest-forms' ),
3838 'CO' => __( 'Colorado', 'everest-forms' ),
3839 'CT' => __( 'Connecticut', 'everest-forms' ),
3840 'DE' => __( 'Delaware', 'everest-forms' ),
3841 'DC' => __( 'District Of Columbia', 'everest-forms' ),
3842 'FL' => __( 'Florida', 'everest-forms' ),
3843 'GA' => _x( 'Georgia', 'US state of Georgia', 'everest-forms' ),
3844 'HI' => __( 'Hawaii', 'everest-forms' ),
3845 'ID' => __( 'Idaho', 'everest-forms' ),
3846 'IL' => __( 'Illinois', 'everest-forms' ),
3847 'IN' => __( 'Indiana', 'everest-forms' ),
3848 'IA' => __( 'Iowa', 'everest-forms' ),
3849 'KS' => __( 'Kansas', 'everest-forms' ),
3850 'KY' => __( 'Kentucky', 'everest-forms' ),
3851 'LA' => __( 'Louisiana', 'everest-forms' ),
3852 'ME' => __( 'Maine', 'everest-forms' ),
3853 'MD' => __( 'Maryland', 'everest-forms' ),
3854 'MA' => __( 'Massachusetts', 'everest-forms' ),
3855 'MI' => __( 'Michigan', 'everest-forms' ),
3856 'MN' => __( 'Minnesota', 'everest-forms' ),
3857 'MS' => __( 'Mississippi', 'everest-forms' ),
3858 'MO' => __( 'Missouri', 'everest-forms' ),
3859 'MT' => __( 'Montana', 'everest-forms' ),
3860 'NE' => __( 'Nebraska', 'everest-forms' ),
3861 'NV' => __( 'Nevada', 'everest-forms' ),
3862 'NH' => __( 'New Hampshire', 'everest-forms' ),
3863 'NJ' => __( 'New Jersey', 'everest-forms' ),
3864 'NM' => __( 'New Mexico', 'everest-forms' ),
3865 'NY' => __( 'New York', 'everest-forms' ),
3866 'NC' => __( 'North Carolina', 'everest-forms' ),
3867 'ND' => __( 'North Dakota', 'everest-forms' ),
3868 'OH' => __( 'Ohio', 'everest-forms' ),
3869 'OK' => __( 'Oklahoma', 'everest-forms' ),
3870 'OR' => __( 'Oregon', 'everest-forms' ),
3871 'PA' => __( 'Pennsylvania', 'everest-forms' ),
3872 'RI' => __( 'Rhode Island', 'everest-forms' ),
3873 'SC' => __( 'South Carolina', 'everest-forms' ),
3874 'SD' => __( 'South Dakota', 'everest-forms' ),
3875 'TN' => __( 'Tennessee', 'everest-forms' ),
3876 'TX' => __( 'Texas', 'everest-forms' ),
3877 'UT' => __( 'Utah', 'everest-forms' ),
3878 'VT' => __( 'Vermont', 'everest-forms' ),
3879 'VA' => __( 'Virginia', 'everest-forms' ),
3880 'WA' => __( 'Washington', 'everest-forms' ),
3881 'WV' => __( 'West Virginia', 'everest-forms' ),
3882 'WI' => __( 'Wisconsin', 'everest-forms' ),
3883 'WY' => __( 'Wyoming', 'everest-forms' ),
3884 'AA' => __( 'Armed Forces (AA)', 'everest-forms' ),
3885 'AE' => __( 'Armed Forces (AE)', 'everest-forms' ),
3886 'AP' => __( 'Armed Forces (AP)', 'everest-forms' ),
3887 ),
3888 'UY' => array( // Uruguayan states.
3889 'UY-AR' => __( 'Artigas', 'everest-forms' ),
3890 'UY-CA' => __( 'Canelones', 'everest-forms' ),
3891 'UY-CL' => __( 'Cerro Largo', 'everest-forms' ),
3892 'UY-CO' => __( 'Colonia', 'everest-forms' ),
3893 'UY-DU' => __( 'Durazno', 'everest-forms' ),
3894 'UY-FS' => __( 'Flores', 'everest-forms' ),
3895 'UY-FD' => __( 'Florida', 'everest-forms' ),
3896 'UY-LA' => __( 'Lavalleja', 'everest-forms' ),
3897 'UY-MA' => __( 'Maldonado', 'everest-forms' ),
3898 'UY-MO' => __( 'Montevideo', 'everest-forms' ),
3899 'UY-PA' => __( 'Paysandú', 'everest-forms' ),
3900 'UY-RN' => __( 'Río Negro', 'everest-forms' ),
3901 'UY-RV' => __( 'Rivera', 'everest-forms' ),
3902 'UY-RO' => __( 'Rocha', 'everest-forms' ),
3903 'UY-SA' => __( 'Salto', 'everest-forms' ),
3904 'UY-SJ' => __( 'San José', 'everest-forms' ),
3905 'UY-SO' => __( 'Soriano', 'everest-forms' ),
3906 'UY-TA' => __( 'Tacuarembó', 'everest-forms' ),
3907 'UY-TT' => __( 'Treinta y Tres', 'everest-forms' ),
3908 ),
3909 'VE' => array( // Venezuelan states.
3910 'VE-A' => __( 'Capital', 'everest-forms' ),
3911 'VE-B' => __( 'Anzoátegui', 'everest-forms' ),
3912 'VE-C' => __( 'Apure', 'everest-forms' ),
3913 'VE-D' => __( 'Aragua', 'everest-forms' ),
3914 'VE-E' => __( 'Barinas', 'everest-forms' ),
3915 'VE-F' => __( 'Bolívar', 'everest-forms' ),
3916 'VE-G' => __( 'Carabobo', 'everest-forms' ),
3917 'VE-H' => __( 'Cojedes', 'everest-forms' ),
3918 'VE-I' => __( 'Falcón', 'everest-forms' ),
3919 'VE-J' => __( 'Guárico', 'everest-forms' ),
3920 'VE-K' => __( 'Lara', 'everest-forms' ),
3921 'VE-L' => __( 'Mérida', 'everest-forms' ),
3922 'VE-M' => __( 'Miranda', 'everest-forms' ),
3923 'VE-N' => __( 'Monagas', 'everest-forms' ),
3924 'VE-O' => __( 'Nueva Esparta', 'everest-forms' ),
3925 'VE-P' => __( 'Portuguesa', 'everest-forms' ),
3926 'VE-R' => __( 'Sucre', 'everest-forms' ),
3927 'VE-S' => __( 'Táchira', 'everest-forms' ),
3928 'VE-T' => __( 'Trujillo', 'everest-forms' ),
3929 'VE-U' => __( 'Yaracuy', 'everest-forms' ),
3930 'VE-V' => __( 'Zulia', 'everest-forms' ),
3931 'VE-W' => __( 'Federal Dependencies', 'everest-forms' ),
3932 'VE-X' => __( 'La Guaira (Vargas)', 'everest-forms' ),
3933 'VE-Y' => __( 'Delta Amacuro', 'everest-forms' ),
3934 'VE-Z' => __( 'Amazonas', 'everest-forms' ),
3935 ),
3936 'VN' => array(),
3937 'YT' => array(),
3938 'ZA' => array( // South African states.
3939 'EC' => __( 'Eastern Cape', 'everest-forms' ),
3940 'FS' => __( 'Free State', 'everest-forms' ),
3941 'GP' => __( 'Gauteng', 'everest-forms' ),
3942 'KZN' => __( 'KwaZulu-Natal', 'everest-forms' ),
3943 'LP' => __( 'Limpopo', 'everest-forms' ),
3944 'MP' => __( 'Mpumalanga', 'everest-forms' ),
3945 'NC' => __( 'Northern Cape', 'everest-forms' ),
3946 'NW' => __( 'North West', 'everest-forms' ),
3947 'WC' => __( 'Western Cape', 'everest-forms' ),
3948 ),
3949 'ZM' => array( // Zambian provinces.
3950 'ZM-01' => __( 'Western', 'everest-forms' ),
3951 'ZM-02' => __( 'Central', 'everest-forms' ),
3952 'ZM-03' => __( 'Eastern', 'everest-forms' ),
3953 'ZM-04' => __( 'Luapula', 'everest-forms' ),
3954 'ZM-05' => __( 'Northern', 'everest-forms' ),
3955 'ZM-06' => __( 'North-Western', 'everest-forms' ),
3956 'ZM-07' => __( 'Southern', 'everest-forms' ),
3957 'ZM-08' => __( 'Copperbelt', 'everest-forms' ),
3958 'ZM-09' => __( 'Lusaka', 'everest-forms' ),
3959 'ZM-10' => __( 'Muchinga', 'everest-forms' ),
3960 ),
3961 );
3962
3963 return (array) apply_filters( 'everest_forms_states', $states );
3964 }
3965
3966 /**
3967 * Get builder fields groups.
3968 *
3969 * @return array
3970 */
3971 function evf_get_fields_groups() {
3972 return (array) apply_filters(
3973 'everest_forms_builder_fields_groups',
3974 array(
3975 'general' => __( 'General Fields', 'everest-forms' ),
3976 'advanced' => __( 'Advanced Fields', 'everest-forms' ),
3977 'payment' => __( 'Payment Fields', 'everest-forms' ),
3978 'survey' => __( 'Survey Fields', 'everest-forms' ),
3979 )
3980 );
3981 }
3982
3983 /**
3984 * Get a builder fields type's name.
3985 *
3986 * @param string $type Coupon type.
3987 * @return string
3988 */
3989 function evf_get_fields_group( $type = '' ) {
3990 $types = evf_get_fields_groups();
3991 return isset( $types[ $type ] ) ? $types[ $type ] : '';
3992 }
3993
3994 /**
3995 * Get all fields settings.
3996 *
3997 * @return array Settings data.
3998 */
3999 function evf_get_all_fields_settings() {
4000 $settings = array(
4001 'label' => array(
4002 'id' => 'label',
4003 'title' => __( 'Label', 'everest-forms' ),
4004 'desc' => __( 'Enter text for the form field label. This is recommended and can be hidden in the Advanced Settings.', 'everest-forms' ),
4005 'default' => '',
4006 'type' => 'text',
4007 'desc_tip' => true,
4008 ),
4009 'meta' => array(
4010 'id' => 'meta-key',
4011 'title' => __( 'Meta Key', 'everest-forms' ),
4012 'desc' => __( 'Enter meta key to be stored in database.', 'everest-forms' ),
4013 'default' => '',
4014 'type' => 'text',
4015 'desc_tip' => true,
4016 ),
4017 'description' => array(
4018 'id' => 'description',
4019 'title' => __( 'Description', 'everest-forms' ),
4020 'type' => 'textarea',
4021 'desc' => __( 'Enter text for the form field description.', 'everest-forms' ),
4022 'default' => '',
4023 'desc_tip' => true,
4024 ),
4025 'required' => array(
4026 'id' => 'require',
4027 'title' => __( 'Required', 'everest-forms' ),
4028 'type' => 'checkbox',
4029 'desc' => __( 'Check this option to mark the field required.', 'everest-forms' ),
4030 'default' => 'no',
4031 'desc_tip' => true,
4032 ),
4033 'choices' => array(
4034 'id' => 'choices',
4035 'title' => __( 'Choices', 'everest-forms' ),
4036 'desc' => __( 'Add choices for the form field.', 'everest-forms' ),
4037 'type' => 'choices',
4038 'desc_tip' => true,
4039 'defaults' => array(
4040 1 => __( 'First Choice', 'everest-forms' ),
4041 2 => __( 'Second Choice', 'everest-forms' ),
4042 3 => __( 'Third Choice', 'everest-forms' ),
4043 ),
4044 ),
4045 'placeholder' => array(
4046 'id' => 'placeholder',
4047 'title' => __( 'Placeholder Text', 'everest-forms' ),
4048 'desc' => __( 'Enter text for the form field placeholder.', 'everest-forms' ),
4049 'default' => '',
4050 'type' => 'text',
4051 'desc_tip' => true,
4052 ),
4053 'css' => array(
4054 'id' => 'css',
4055 'title' => __( 'CSS Classes', 'everest-forms' ),
4056 'desc' => __( 'Enter CSS class for this field container. Class names should be separated with spaces.', 'everest-forms' ),
4057 'default' => '',
4058 'type' => 'text',
4059 'desc_tip' => true,
4060 ),
4061 'label_hide' => array(
4062 'id' => 'label_hide',
4063 'title' => __( 'Hide Label', 'everest-forms' ),
4064 'type' => 'checkbox',
4065 'desc' => __( 'Check this option to hide the form field label.', 'everest-forms' ),
4066 'default' => 'no',
4067 'desc_tip' => true,
4068 ),
4069 'sublabel_hide' => array(
4070 'id' => 'sublabel_hide',
4071 'title' => __( 'Hide Sub-Labels', 'everest-forms' ),
4072 'type' => 'checkbox',
4073 'desc' => __( 'Check this option to hide the form field sub-label.', 'everest-forms' ),
4074 'default' => 'no',
4075 'desc_tip' => true,
4076 ),
4077 );
4078
4079 return apply_filters( 'everest_form_all_fields_settings', $settings );
4080 }
4081
4082 /**
4083 * Helper function to display debug data.
4084 *
4085 * @since 1.3.2
4086 *
4087 * @param mixed $expression The expression to be printed.
4088 * @param bool $return Optional. Default false. Set to true to return the human-readable string.
4089 *
4090 * @return string
4091 */
4092 function evf_debug_data( $expression, $return = false ) {
4093 if ( defined( 'EVF_DEBUG' ) && true === EVF_DEBUG ) {
4094
4095 if ( ! $return ) {
4096 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>';
4097
4098 echo "==================== Everest Forms Debugging ====================\n\n";
4099
4100 if ( is_array( $expression ) || is_object( $expression ) ) {
4101 echo esc_html( evf_print_r( $expression, true ) );
4102 } else {
4103 echo esc_html( $expression );
4104 }
4105 echo '</textarea>';
4106
4107 } else {
4108 $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>';
4109
4110 $output .= "==================== Everest Forms Debugging ====================\n\n";
4111
4112 if ( is_array( $expression ) || is_object( $expression ) ) {
4113 $output .= evf_print_r( $expression, true );
4114 } else {
4115 $output .= $expression;
4116 }
4117
4118 $output .= '</textarea>';
4119
4120 return $output;
4121 }
4122 }
4123 }
4124
4125 /**
4126 * String translation function.
4127 *
4128 * @since 1.4.9
4129 *
4130 * @param int $form_id Form ID.
4131 * @param string $field_id Field ID.
4132 * @param mixed $value The string that needs to be translated.
4133 * @param string $suffix The suffix to make the field have unique naem.
4134 *
4135 * @return mixed The translated string.
4136 */
4137 function evf_string_translation( $form_id, $field_id, $value, $suffix = '' ) {
4138 $context = isset( $form_id ) ? 'everest_forms_' . absint( $form_id ) : 0;
4139 $name = isset( $field_id ) ? evf_clean( $field_id . $suffix ) : '';
4140
4141 if ( function_exists( 'icl_register_string' ) ) {
4142 icl_register_string( $context, $name, $value );
4143 }
4144
4145 if ( function_exists( 'icl_t' ) ) {
4146 $value = icl_t( $context, $name, $value );
4147 }
4148
4149 return $value;
4150 }
4151
4152 /**
4153 * Trigger logging cleanup using the logging class.
4154 *
4155 * @since 1.6.2
4156 */
4157 function evf_cleanup_logs() {
4158 $logger = evf_get_logger();
4159
4160 if ( is_callable( array( $logger, 'clear_expired_logs' ) ) ) {
4161 $logger->clear_expired_logs();
4162 }
4163 }
4164 add_action( 'everest_forms_cleanup_logs', 'evf_cleanup_logs' );
4165
4166
4167 /**
4168 * Check whether it device is table or not from HTTP user agent
4169 *
4170 * @since 1.7.0
4171 *
4172 * @return bool
4173 */
4174 function evf_is_tablet() {
4175 return false !== stripos( evf_get_user_agent(), 'tablet' ) || false !== stripos( evf_get_user_agent(), 'tab' );
4176 }
4177
4178 /**
4179 * Get user device from user agent from HTTP user agent.
4180 *
4181 * @since 1.7.0
4182 *
4183 * @return string
4184 */
4185 function evf_get_user_device() {
4186 if ( evf_is_tablet() ) {
4187 return esc_html__( 'Tablet', 'everest-forms' );
4188 } elseif ( wp_is_mobile() ) {
4189 return esc_html__( 'Mobile', 'everest-forms' );
4190 } else {
4191 return esc_html__( 'Desktop', 'everest-forms' );
4192 }
4193 }
4194
4195
4196 /**
4197 * A wp_parse_args() for multi-dimensional array.
4198 *
4199 * @see https://developer.wordpress.org/reference/functions/wp_parse_args/
4200 *
4201 * @since 1.7.0
4202 *
4203 * @param array $args Value to merge with $defaults.
4204 * @param array $defaults Array that serves as the defaults.
4205 *
4206 * @return array Merged user defined values with defaults.
4207 */
4208 function evf_parse_args( &$args, $defaults ) {
4209 $args = (array) $args;
4210 $defaults = (array) $defaults;
4211 $result = $defaults;
4212 foreach ( $args as $k => &$v ) {
4213 if ( is_array( $v ) && isset( $result[ $k ] ) ) {
4214 $result[ $k ] = evf_parse_args( $v, $result[ $k ] );
4215 } else {
4216 $result[ $k ] = $v;
4217 }
4218 }
4219 return $result;
4220 }
4221
4222 /**
4223 * Get date of ranges.
4224 *
4225 * @since 1.7.0
4226 *
4227 * @param string $first Starting date.
4228 * @param string $last End date.
4229 * @param string $step Date step.
4230 * @param string $format Date format.
4231 *
4232 * @return array Range dates.
4233 */
4234 function evf_date_range( $first, $last = '', $step = '+1 day', $format = 'Y/m/d' ) {
4235 $dates = array();
4236 $current = strtotime( $first );
4237 $last = strtotime( $last );
4238
4239 while ( $current <= $last ) {
4240 $dates[] = date_i18n( $format, $current );
4241 $current = strtotime( $step, $current );
4242 }
4243
4244 return $dates;
4245 }
4246
4247 /**
4248 * Process syntaxes in a text.
4249 *
4250 * @since 1.7.0
4251 *
4252 * @param string $text Text to be processed.
4253 * @param bool $escape_html Whether to escape all the htmls before processing or not.
4254 * @param bool $trim_trailing_spaces Whether to trim trailing spaces or not.
4255 *
4256 * @return string Processed text.
4257 */
4258 function evf_process_syntaxes( $text, $escape_html = true, $trim_trailing_spaces = true ) {
4259
4260 if ( true === $trim_trailing_spaces ) {
4261 $text = trim( $text );
4262 }
4263 if ( true === $escape_html ) {
4264 $text = esc_html( $text );
4265 }
4266 $text = evf_process_hyperlink_syntax( $text );
4267 $text = evf_process_italic_syntax( $text );
4268 $text = evf_process_bold_syntax( $text );
4269 $text = evf_process_underline_syntax( $text );
4270 $text = evf_process_line_breaks( $text );
4271 return $text;
4272 }
4273
4274 /**
4275 * Extract page ids from a text.
4276 *
4277 * @since 1.7.0
4278 *
4279 * @param string $text Text to extract page ids from.
4280 *
4281 * @return mixed
4282 */
4283 function evf_extract_page_ids( $text ) {
4284 $page_id_syntax_matches = array();
4285 $page_ids = array();
4286
4287 while ( preg_match( '/page_id=([0-9]+)/', $text, $page_id_syntax_matches ) ) {
4288 $page_id = $page_id_syntax_matches[1];
4289 $page_ids[] = $page_id;
4290 $text = str_replace( 'page_id=' . $page_id, '', $text );
4291 }
4292
4293 if ( count( $page_ids ) > 0 ) {
4294 return $page_ids;
4295 }
4296 return false;
4297 }
4298
4299 /**
4300 * Process hyperlink syntaxes in a text.
4301 * The syntax used for hyperlink is: [Link Label](Link URL)
4302 * Example: [Google Search Page](https://google.com)
4303 *
4304 * @since 1.7.0
4305 *
4306 * @param string $text Text to process.
4307 * @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,
4308 * as the html tags are escaped in a CSV file.
4309 *
4310 * @return string Processed text.
4311 */
4312 function evf_process_hyperlink_syntax( $text, $use_no_a_tag = false ) {
4313 $matches = array();
4314 $regex = '/(\[[^\[\]]*\])(\([^\(\)]*\))/';
4315
4316 while ( preg_match( $regex, $text, $matches ) ) {
4317 $matched_string = $matches[0];
4318 $label = $matches[1];
4319 $link = $matches[2];
4320 $class = '';
4321 $page_id = '';
4322
4323 // Trim brackets.
4324 $label = trim( substr( $label, 1, -1 ) );
4325 $link = trim( substr( $link, 1, -1 ) );
4326
4327 // Proceed only if label or link is not empty.
4328 if ( ! empty( $label ) || ! empty( $link ) ) {
4329
4330 // Use hash(#) if the link is empty.
4331 if ( empty( $link ) ) {
4332 $link = '#';
4333 }
4334
4335 // Use link as label if it's empty.
4336 if ( empty( $label ) ) {
4337 $label = $link;
4338 }
4339
4340 // See if it's a link to a local page.
4341 if ( strpos( $link, '?' ) === 0 ) {
4342 $class .= ' evf-privacy-policy-local-page-link';
4343
4344 // Extract page id.
4345 $page_ids = evf_extract_page_ids( $link );
4346
4347 if ( false !== $page_ids ) {
4348 $page_id = $page_ids[0];
4349 $link = get_page_link( $page_id );
4350
4351 if ( empty( $link ) ) {
4352 $link = '#';
4353 }
4354 }
4355 }
4356
4357 // Insert hyperlink html.
4358 if ( true === $use_no_a_tag ) {
4359 $html = $link;
4360 } else {
4361 $html = sprintf( '<a data-page-id="%s" target="_blank" rel="noopener noreferrer nofollow" href="%s" class="%s">%s</a>', $page_id, $link, $class, $label );
4362 }
4363 $text = str_replace( $matched_string, $html, $text );
4364 } else {
4365 // If both label and link are empty then replace it with empty string.
4366 $text = str_replace( $matched_string, '', $text );
4367 }
4368 }
4369
4370 return $text;
4371 }
4372
4373 /**
4374 * Process italic syntaxes in a text.
4375 * The syntax used for italic text is: `text`
4376 * Just wrap the text with back tick characters. To escape a backtick insert a backslash(\) before the character like "\`".
4377 *
4378 * @since 1.7.0
4379 *
4380 * @param string $text Text to process.
4381 *
4382 * @return string Processed text.
4383 */
4384 function evf_process_italic_syntax( $text ) {
4385 $matches = array();
4386 $regex = '/`[^`]+`/';
4387 $text = str_replace( '\`', '<&&&&&>', $text ); // To preserve an escaped special character '`'.
4388
4389 while ( preg_match( $regex, $text, $matches ) ) {
4390 $matched_string = $matches[0];
4391 $label = substr( trim( $matched_string ), 1, -1 );
4392 $html = sprintf( '<i>%s</i>', $label );
4393 $text = str_replace( $matched_string, $html, $text );
4394 }
4395
4396 return str_replace( '<&&&&&>', '`', $text );
4397 }
4398
4399 /**
4400 * Process bold syntaxes in a text.
4401 * The syntax used for bold text is: *text*
4402 * Just wrap the text with asterisk characters. To escape an asterisk insert a backslash(\) before the character like "\*".
4403 *
4404 * @since 1.7.0
4405 *
4406 * @param string $text Text to process.
4407 *
4408 * @return string Processed text.
4409 */
4410 function evf_process_bold_syntax( $text ) {
4411 $matches = array();
4412 $regex = '/\*[^*]+\*/';
4413 $text = str_replace( '\*', '<&&&&&>', $text ); // To preserve an escaped special character '*'.
4414
4415 while ( preg_match( $regex, $text, $matches ) ) {
4416 $matched_string = $matches[0];
4417 $label = substr( trim( $matched_string ), 1, -1 );
4418 $html = sprintf( '<b>%s</b>', $label );
4419 $text = str_replace( $matched_string, $html, $text );
4420 }
4421
4422 return str_replace( '<&&&&&>', '*', $text );
4423 }
4424
4425 /**
4426 * Process underline syntaxes in a text.
4427 * The syntax used for bold text is: __text__
4428 * Wrap the text with double underscore characters. To escape an underscore insert a backslash(\) before the character like "\_".
4429 *
4430 * @since 1.7.0
4431 *
4432 * @param string $text Text to process.
4433 *
4434 * @return string Processed text.
4435 */
4436 function evf_process_underline_syntax( $text ) {
4437 $matches = array();
4438 $regex = '/__[^_]+__/';
4439 $text = str_replace( '\_', '<&&&&&>', $text ); // To preserve an escaped special character '_'.
4440
4441 while ( preg_match( $regex, $text, $matches ) ) {
4442 $matched_string = $matches[0];
4443 $label = substr( trim( $matched_string ), 2, -2 );
4444 $html = sprintf( '<u>%s</u>', $label );
4445 $text = str_replace( $matched_string, $html, $text );
4446 }
4447
4448 $text = str_replace( '<&&&&&>', '_', $text );
4449 return $text;
4450 }
4451
4452 /**
4453 * It replaces `\n` characters with `<br/>` tag because new line `\n` character is not supported in html.
4454 *
4455 * @since 1.7.0
4456 *
4457 * @param string $text Text to process.
4458 *
4459 * @return string Processed text.
4460 */
4461 function evf_process_line_breaks( $text ) {
4462 return str_replace( "\n", '<br/>', $text );
4463 }
4464
4465 /**
4466 * Check whether the current page is in AMP mode or not.
4467 * We need to check for specific functions, as there is no special AMP header.
4468 *
4469 * @since 1.8.4
4470 *
4471 * @param bool $check_theme_support Whether theme support should be checked. Defaults to true.
4472 *
4473 * @return bool
4474 */
4475 function evf_is_amp( $check_theme_support = true ) {
4476
4477 $is_amp = false;
4478
4479 if (
4480 // AMP by Automattic.
4481 ( function_exists( 'amp_is_request' ) && amp_is_request() ) ||
4482 // Better AMP.
4483 ( function_exists( 'is_better_amp' ) && is_better_amp() )
4484 ) {
4485 $is_amp = true;
4486 }
4487
4488 if ( $is_amp && $check_theme_support ) {
4489 $is_amp = current_theme_supports( 'amp' );
4490 }
4491
4492 return apply_filters( 'evf_is_amp', $is_amp );
4493 }
4494
4495 /**
4496 * EVF KSES.
4497 *
4498 * @since 1.8.2.1
4499 *
4500 * @param string $context Context.
4501 */
4502 function evf_get_allowed_html_tags( $context = '' ) {
4503
4504 $post_tags = wp_kses_allowed_html( 'post' );
4505 if ( 'builder' === $context ) {
4506 $builder_tags = get_transient( 'evf-builder-tags-list' );
4507 if ( ! empty( $builder_tags ) ) {
4508 return $builder_tags;
4509 }
4510 $allowed_tags = evf_get_json_file_contents( 'assets/allowed_tags/allowed_tags.json', true );
4511 if ( ! empty( $allowed_tags ) ) {
4512 foreach ( $allowed_tags as $tag => $args ) {
4513 if ( array_key_exists( $tag, $post_tags ) ) {
4514 foreach ( $args as $arg => $value ) {
4515 if ( ! array_key_exists( $arg, $post_tags[ $tag ] ) ) {
4516 $post_tags[ $tag ][ $arg ] = true;
4517 }
4518 }
4519 } else {
4520 $post_tags[ $tag ] = $args;
4521 }
4522 }
4523 set_transient( 'evf-builder-tags-list', $post_tags, DAY_IN_SECONDS );
4524 }
4525 return $post_tags;
4526 }
4527
4528 return wp_parse_args(
4529 $post_tags,
4530 array(
4531 'input' => array(
4532 'type' => true,
4533 'name' => true,
4534 'value' => true,
4535 ),
4536 'select' => array(
4537 'name' => true,
4538 'id' => true,
4539 ),
4540 'option' => array(
4541 'value' => true,
4542 'selected' => true,
4543 ),
4544 'textarea' => array(
4545 'style' => true,
4546 ),
4547 )
4548 );
4549 }
4550
4551 /**
4552 * Parse Builder Post Data.
4553 *
4554 * @param mixed $post_data Post Data.
4555 *
4556 * @since 1.8.2.2
4557 */
4558 function evf_sanitize_builder( $post_data = array() ) {
4559
4560 if ( empty( $post_data ) || ! is_array( $post_data ) ) {
4561 return array();
4562 }
4563
4564 $form_data = array();
4565 foreach ( $post_data as $data_key => $data ) {
4566 $name = sanitize_text_field( $data->name );
4567 if ( preg_match( '/\<.*\>/', $data->value ) ) {
4568 $value = wp_kses_post( $data->value );
4569 } elseif ( 'settings[external_url]' === $data->name ) {
4570 $value = esc_url_raw( $data->value );
4571 } elseif ( preg_match( '/evf_email_message/', $data->name ) || preg_match( '/telegram_message/', $data->name ) || preg_match( '/slack_message/', $data->name )) {
4572 $value = wp_kses_post( $data->value );
4573 } elseif ( preg_match('/calculation_field/', $data->name) ) {
4574 $value = wp_kses_post( $data->value );
4575 } elseif ( preg_match('/successful_form_submission_message/', $data->name )) {
4576 $value = wp_kses_post( $data->value );
4577 }
4578 else {
4579 $value = sanitize_text_field( $data->value );
4580 }
4581
4582 $form_data[ sanitize_text_field( $data_key ) ] = (object) array(
4583 'name' => $name,
4584 'value' => $value,
4585 );
4586 }
4587 return $form_data;
4588 }
4589
4590 /**
4591 * Entry Post Data.
4592 *
4593 * @param mixed $entry Post Data.
4594 *
4595 * @since 1.8.2.2
4596 */
4597 function evf_sanitize_entry( $entry = array() ) {
4598 if ( empty( $entry ) || ! is_array( $entry ) || empty( $entry['form_fields'] ) ) {
4599 return $entry;
4600 }
4601
4602 $form_id = absint( $entry['id'] );
4603 $form_data = evf()->form->get( $form_id, array( 'contents_only' => true ) );
4604
4605 if ( ! $form_data ) {
4606 return array();
4607 }
4608
4609 $form_data = evf_decode( $form_data->post_content );
4610
4611 $form_fields = $form_data['form_fields'];
4612
4613 if ( empty( $form_fields ) ) {
4614 return array();
4615 }
4616
4617 foreach ( $form_fields as $key => $field ) {
4618 $key = sanitize_text_field( $key );
4619 if ( array_key_exists( $key, $entry['form_fields'] ) ) {
4620 switch ( $field['type'] ) {
4621 case 'email':
4622 if ( isset( $entry['form_fields'][ $key ]['primary'] ) ) {
4623 $entry['form_fields'][ $key ]['primary'] = sanitize_email( $entry['form_fields'][ $key ]['primary'] );
4624 $entry['form_fields'][ $key ]['secondary'] = sanitize_email( $entry['form_fields'][ $key ]['secondary'] );
4625 } else {
4626 $entry['form_fields'][ $key ] = sanitize_email( $entry['form_fields'][ $key ] );
4627 }
4628 break;
4629 case 'file-upload':
4630 case 'signature':
4631 case 'image-upload':
4632 $entry['form_fields'][ $key ] = is_array( $entry['form_fields'][ $key ] ) ? $entry['form_fields'][ $key ] : esc_url_raw( $entry['form_fields'][ $key ] );
4633 break;
4634 case 'textarea':
4635 case 'html':
4636 case 'privacy-policy':
4637 case 'wysiwug':
4638 $entry['form_fields'][ $key ] = wp_kses_post( $entry['form_fields'][ $key ] );
4639 break;
4640 case 'repeater-fields':
4641 $entry['form_fields'][ $key ] = $entry['form_fields'][ $key ];
4642 break;
4643 default:
4644 if ( is_array( $entry['form_fields'][ $key ] ) ) {
4645 foreach ( $entry['form_fields'][ $key ] as $field_key => $value ) {
4646 $field_key = sanitize_text_field( $field_key );
4647 $entry['form_fields'][ $key ][ $field_key ] = sanitize_text_field( $value );
4648 }
4649 } else {
4650 $entry['form_fields'][ $key ] = sanitize_text_field( $entry['form_fields'][ $key ] );
4651 }
4652 }
4653 }
4654 return $entry;
4655 }
4656 }
4657
4658 /**
4659 * EVF Get json file contents.
4660 *
4661 * @param mixed $file File path.
4662 * @param mixed $to_array Returned data in array.
4663 */
4664 function evf_get_json_file_contents( $file, $to_array = false ) {
4665 if ( $to_array ) {
4666 return json_decode( evf_file_get_contents( $file ), true );
4667 }
4668 return json_decode( evf_file_get_contents( $file ) );
4669 }
4670
4671 /**
4672 * EVF file get contents.
4673 *
4674 * @param mixed $file File path.
4675 */
4676 function evf_file_get_contents( $file ) {
4677 if ( $file ) {
4678 $local_file = preg_replace( '/\\\\|\/\//', '/', plugin_dir_path( EVF_PLUGIN_FILE ) . $file );
4679 $response = file_get_contents( $local_file );
4680 if ( $response ) {
4681 return $response;
4682 }
4683 global $wp_filesystem;
4684 require_once ABSPATH . '/wp-admin/includes/file.php';
4685 WP_Filesystem();
4686 $local_file = preg_replace( '/\\\\|\/\//', '/', plugin_dir_path( EVF_PLUGIN_FILE ) . $file );
4687 if ( $wp_filesystem->exists( $local_file ) ) {
4688 $response = $wp_filesystem->get_contents( $local_file );
4689 return $response;
4690 }
4691 }
4692 return;
4693 }
4694
4695 /**
4696 * Parses datetime values based on the provided format and mode.
4697 *
4698 * @param string $datetime_value The datetime value to parse.
4699 * @param string $datetime_format The format of the datetime value.
4700 * @param string $date_format The format of the date.
4701 * @param string $mode The mode of the datetime field.
4702 * @param int $time_interval The time interval in minutes.
4703 * @param int $entry_id The entry id.
4704 * @return array
4705 */
4706 function parse_datetime_values( $datetime_value, $datetime_format, $date_format, $mode, $time_interval, $entry_id = 0 ) {
4707 $datetime_arr = array();
4708
4709 switch ( $datetime_format ) {
4710 case 'time':
4711 $current_date = gmdate( 'Y-m-d' );
4712 $datetime_value = gmdate( 'H:i', strtotime( $datetime_value ) );
4713 $datetime_start = "$current_date $datetime_value";
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[ $entry_id ] = array( $datetime_start, $datetime_end );
4718 break;
4719 case 'date':
4720 if ( 'range' === $mode ) {
4721 $selected_dates = explode( ' to ', $datetime_value );
4722 if ( count( $selected_dates ) >= 2 ) {
4723 $datetime_start = "$selected_dates[0] 00:00";
4724 $datetime_start = gmdate( 'Y-m-d H:i', strtotime( $datetime_start ) );
4725 $date_time = new DateTime( $selected_dates[1] );
4726 $date_time->modify( '+23 hour' );
4727 $datetime_end = $date_time->format( 'Y-m-d H:i' );
4728 $datetime_arr[ $entry_id ] = array( $datetime_start, $datetime_end );
4729 }
4730 } else {
4731 $selected_dates = explode( ', ', $datetime_value );
4732
4733 foreach ( $selected_dates as $selected_date ) {
4734 $datetime_start = "$selected_date 00:00";
4735 $datetime_start = gmdate( 'Y-m-d H:i', strtotime( $datetime_start ) );
4736 $date_time = new DateTime( $datetime_start );
4737 $date_time->modify( '+23 hour' );
4738
4739 $datetime_end = $date_time->format( 'Y-m-d H:i' );
4740 $datetime_arr[ $entry_id ] = array( $datetime_start, $datetime_end );
4741 }
4742 }
4743 break;
4744 case 'date-time':
4745 if ( 'range' === $mode ) {
4746 $selected_dates = explode( ' to ', $datetime_value );
4747 if ( count( $selected_dates ) >= 2 ) {
4748 $datetime_start = gmdate( 'Y-m-d H:i', strtotime( $selected_dates[0] ) );
4749 $datetime_end = gmdate( 'Y-m-d H:i', strtotime( $selected_dates[1] ) );
4750 $datetime_arr[ $entry_id ] = array( $datetime_start, $datetime_end );
4751 }
4752 } else {
4753 $selected_dates = explode( ', ', $datetime_value );
4754
4755 foreach ( $selected_dates as $selected_date ) {
4756 $datetime_start = gmdate( 'Y-m-d H:i', strtotime( $selected_date ) );
4757 $date_time = new DateTime( $datetime_start );
4758 $date_time->modify( "+$time_interval minute" );
4759 $datetime_end = $date_time->format( 'Y-m-d H:i' );
4760 $datetime_arr[ $entry_id ] = array( $datetime_start, $datetime_end );
4761 }
4762 }
4763 break;
4764 }
4765
4766 return $datetime_arr;
4767 }
4768
4769 /**
4770 * EVF word Count.
4771 *
4772 * @param string $text Text.
4773 * @param string $type Type of text.
4774 * @param array $settings Settings.
4775 *
4776 * @since 2.0.2
4777 */
4778 function _evf_word_count( $text, $type = 'words', $settings = array() ) {
4779 $defaults = array(
4780 'html_regexp' => '/<\/?[a-z][^>]*?>/i',
4781 'html_comment_regexp' => '/<!--[\s\S]*?-->/',
4782 'space_regexp' => '/&nbsp;|&#160;/i',
4783 'html_entity_regexp' => '/&\S+?;/',
4784 'connector_regexp' => "/--|\x{2014}/u",
4785 '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",
4786 'astral_regexp' => "/[\x{010000}-\x{10FFFF}]/u",
4787 'words_regexp' => '/\S\s+/u',
4788 'characters_excluding_spaces_regexp' => '/\S/u',
4789 'characters_including_spaces_regexp' => "/[^\f\n\r\t\v\x{00AD}\x{2028}\x{2029}]/u",
4790 'shortcodes' => array(),
4791 );
4792
4793 $count = 0;
4794
4795 if ( '' === trim( $text ) ) {
4796 return $count;
4797 }
4798
4799 $settings = wp_parse_args( $settings, $defaults );
4800
4801 // If there are any shortcodes, add this as a shortcode regular expression.
4802 if ( is_array( $settings['shortcodes'] ) && ! empty( $settings['shortcodes'] ) ) {
4803 $settings['shortcodes_regexp'] = '/\\[\\/?(?:' . implode( '|', $settings['shortcodes'] ) . ')[^\\]]*?\\]/';
4804 }
4805
4806 // Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'.
4807 if ( 'characters_excluding_spaces' !== $type && 'characters_including_spaces' !== $type ) {
4808 $type = 'words';
4809 }
4810
4811 $text .= "\n";
4812
4813 // Replace all HTML with a new-line.
4814 $text = preg_replace( $settings['html_regexp'], "\n", $text );
4815
4816 // Remove all HTML comments.
4817 $text = preg_replace( $settings['html_comment_regexp'], '', $text );
4818
4819 // If a shortcode regular expression has been provided use it to remove shortcodes.
4820 if ( ! empty( $settings['shortcodes_regexp'] ) ) {
4821 $text = preg_replace( $settings['shortcodes_regexp'], "\n", $text );
4822 }
4823
4824 // Normalize non-breaking space to a normal space.
4825 $text = preg_replace( $settings['space_regexp'], ' ', $text );
4826
4827 if ( 'words' === $type ) {
4828 // Remove HTML Entities.
4829 $text = preg_replace( $settings['html_entity_regexp'], '', $text );
4830
4831 // Convert connectors to spaces to count attached text as words.
4832 $text = preg_replace( $settings['connector_regexp'], ' ', $text );
4833
4834 // Remove unwanted characters.
4835 $text = preg_replace( $settings['remove_regexp'], '', $text );
4836 } else {
4837 // Convert HTML Entities to "a".
4838 $text = preg_replace( $settings['html_entity_regexp'], 'a', $text );
4839
4840 // Remove surrogate points.
4841 $text = preg_replace( $settings['astral_regexp'], 'a', $text );
4842 }
4843
4844 // Match with the selected type regular expression to count the items.
4845 return (int) preg_match_all( $settings[ $type . '_regexp' ], $text );
4846 }
4847
4848 /**
4849 * EVF word Count
4850 *
4851 * @param string $text Text.
4852 * @param string $type Type of text.
4853 * @param array $settings Settings.
4854 *
4855 * @since 2.0.2
4856 */
4857 function evf_word_count( $text, $type = 'words', $settings = array() ) {
4858 if ( function_exists( ' wp_word_count ' ) ) {
4859 return wp_word_count( $text, $type = 'words', $settings = array() );
4860 } else {
4861 return _evf_word_count( $text, $type = 'words', $settings = array() );
4862 }
4863 }
4864
4865 if ( ! function_exists( 'evf_maybe_get_local_font_url' ) ) {
4866 /**
4867 * If load fonts locally option is checked in settings, we download the font
4868 * locally and return the url for download font file.
4869 *
4870 * @param [string] $font_url Remote font url.
4871 * @return string
4872 */
4873 function evf_maybe_get_local_font_url( $font_url ) {
4874 $load_locally = get_option( 'everest_forms_load_fonts_locally', 'no' );
4875
4876 if ( 'yes' === $load_locally ) {
4877 $font_url = wptt_get_webfont_url( $font_url );
4878 }
4879
4880 return $font_url;
4881 }
4882 }
4883
4884 if ( ! function_exists( 'evf_is_akismet_configured' ) ) {
4885
4886 /**
4887 * Has the Akismet plugin been configured wih a valid API key?
4888 *
4889 * @since 2.4.0
4890 *
4891 * @return bool
4892 */
4893 function evf_is_akismet_configured() {
4894
4895 if ( ! is_plugin_active( 'akismet/akismet.php' ) ) {
4896 return false;
4897 }
4898
4899 require_once WP_PLUGIN_DIR . '/akismet/akismet.php';
4900
4901 $akismet_instance = new Akismet();
4902 // Akismet will only allow an API key to be saved if it is a valid key.
4903 // We can assume that if there is an API key saved, it is valid.
4904 $api_key = $akismet_instance->get_api_key();
4905
4906 if ( ! empty( $api_key ) ) {
4907 return true;
4908 }
4909
4910 return false;
4911 }
4912 }
4913
4914 if ( ! function_exists( 'evf_current_url' ) ) {
4915 /**
4916 * Get the current URL.
4917 *
4918 * @since 2.4.0
4919 *
4920 * @return string
4921 */
4922 function evf_current_url() {
4923
4924 $parsed_home_url = wp_parse_url( home_url() );
4925
4926 $url = $parsed_home_url['scheme'] . '://' . $parsed_home_url['host'];
4927
4928 if ( ! empty( $parsed_home_url['port'] ) ) {
4929 $url .= ':' . $parsed_home_url['port'];
4930 }
4931
4932 // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
4933 $url .= wp_unslash( $_SERVER['REQUEST_URI'] );
4934
4935 return esc_url_raw( $url );
4936 }
4937 }
4938
4939 if ( ! function_exists( 'evf_get_utc_time_to' ) ) {
4940 /**
4941 * Formats the end time in UTC format.
4942 *
4943 * @since 2.0.9
4944 *
4945 * @param string $evf_entries_report_summary_offset Time offest to be formatted in UTC time.
4946 * @param string $evf_format DateTime format for UTC time.
4947 * @param bool $evf_display Display the time.
4948 *
4949 * @return datetime end_time in UTC format.
4950 */
4951 function evf_get_utc_time_to( $evf_entries_report_summary_offset, $evf_format = 'Y-m-d H:i:s', $evf_display = false ) {
4952
4953 // Get local time 23:59:59 today.
4954 $evf_time_to_local = wp_date( 'Y-m-d 23:59:59' );
4955 $evf_format = 'Y-m-d H:i:s';
4956
4957 // Get local time to.
4958 $evf_time_to_offset = strtotime( $evf_entries_report_summary_offset, strtotime( $evf_time_to_local ) );
4959
4960 if ( $evf_display ) {
4961
4962 return gmdate( $evf_format, $evf_time_to_offset );
4963
4964 } else {
4965
4966 return strtotime( get_gmt_from_date( gmdate( $evf_format, $evf_time_to_offset ) ) );
4967 }
4968 }
4969 }
4970
4971
4972 if ( ! function_exists( 'evf_get_utc_time_from' ) ) {
4973 /**
4974 * Extarcts the start time in UTC format.
4975 *
4976 * @since 2.0.9
4977 *
4978 * @param string $evf_entries_report_summary_offset Start time to be formated in UTC format.
4979 * @param string $evf_format DateTime format for start time.
4980 * @param bool $evf_display To hide or display the time.
4981 *
4982 * @return datetime start_time in utc format.
4983 */
4984 function evf_get_utc_time_from( $evf_entries_report_summary_offset, $evf_format = 'Y-m-d H:i:s', $evf_display = false ) {
4985
4986 // Get local time midnight today.
4987 $evf_time_from_local = wp_date( 'Y-m-d 00:00:00' );
4988 $evf_format = 'Y-m-d H:i:s';
4989
4990 // Get local time from.
4991 $evf_time_from_offset = strtotime( $evf_entries_report_summary_offset, strtotime( $evf_time_from_local ) );
4992
4993 if ( $evf_display ) {
4994
4995 return gmdate( $evf_format, $evf_time_from_offset );
4996
4997 } else {
4998
4999 return strtotime( get_gmt_from_date( gmdate( $evf_format, $evf_time_from_offset ) ) );
5000 }
5001 }
5002 }
5003
5004
5005 if ( ! function_exists( 'evf_summary_start_offset_time' ) ) {
5006 /**
5007 * Extracts the start offset time according to the duration.
5008 *
5009 * @since 2.0.9
5010 * @return datetime $starttime.
5011 */
5012 function evf_summary_start_offset_time() {
5013 // Get options.
5014 $evf_report_frequency = get_option( 'everest_forms_entries_reporting_frequency', 'Weekly' );
5015 $evf_report_offset_from = '';
5016 $evf_report_email_to = '';
5017 $evf_date_format = '';
5018 $evf_report_offset_to = '';
5019
5020 // Set everest forms reporting frequency specific variables.
5021 switch ( $evf_report_frequency ) {
5022
5023 case 'Daily':
5024 $evf_report_email_title = __( 'Everest Forms Daily Entries Statistics Report', 'everest-forms' );
5025 $evf_report_offset_from = '-1 days';
5026 break;
5027
5028 case 'Weekly':
5029 $evf_report_email_title = __( 'Everest Forms Weekly Entries Statistics Report', 'everest-forms' );
5030 $evf_report_offset_from = '-8 days';
5031 break;
5032
5033 case 'Monthly':
5034 $evf_report_email_title = __( 'Everest Forms Monthly Entries Statistics Report', 'everest-forms' );
5035 $evf_report_offset_from = '-1 month -1 day';
5036 break;
5037 }
5038
5039 // Build date range.
5040 $date_format = get_option( 'date_format' );
5041
5042 $start_time = evf_get_utc_time_from( $evf_report_offset_from, $date_format, true );
5043 return $start_time;
5044 }
5045 }
5046
5047 if ( ! function_exists( 'evf_summary_end_offset_time' ) ) {
5048 /**
5049 * Extracts the end offset time according to the duration.
5050 *
5051 * @since 2.0.9
5052 * @return datetime $end_time.
5053 */
5054 function evf_summary_end_offset_time() {
5055 // Get options.
5056 $evf_report_frequency = get_option( 'everest_forms_entries_reporting_frequency', 'Weekly' );
5057 $evf_report_offset_from = '';
5058 $evf_report_email_to = '';
5059 $evf_date_format = '';
5060 $evf_report_offset_to = '';
5061
5062 // Set everest forms reporting frequency specific variables.
5063 switch ( $evf_report_frequency ) {
5064
5065 case 'Daily':
5066 $evf_report_email_title = __( 'Everest Forms Daily Entries Statistics Report', 'everest-forms' );
5067 $evf_report_offset_to = '-1 day';
5068 break;
5069
5070 case 'Weekly':
5071 $evf_report_email_title = __( 'Everest Forms Weekly Entries Statistics Report', 'everest-forms' );
5072 $evf_report_offset_to = '-1 day';
5073 break;
5074
5075 case 'Monthly':
5076 $evf_report_email_title = __( 'Everest Forms Monthly Entries Statistics Report', 'everest-forms' );
5077 $evf_report_offset_to = '-1 day';
5078 break;
5079 }
5080
5081 // Build date range.
5082 $date_format = get_option( 'date_format' );
5083
5084 $end_time = evf_get_utc_time_to( $evf_report_offset_to, $date_format, true );
5085
5086 return $end_time;
5087 }
5088 }
5089
5090
5091 if ( ! function_exists( 'evf_entries_summaries' ) ) {
5092 /**
5093 * Function to extract the entries summary from the database.
5094 *
5095 * @since 2.0.9.
5096 * @return array $evf_stat_data_output Statistics data from the database as an output.
5097 */
5098 function evf_entries_summaries() {
5099 // Get options.
5100 $evf_report_frequency = get_option( 'everest_forms_entries_reporting_frequency', 'Weekly' );
5101 $offset_from = '';
5102 $offset_to = '';
5103
5104 // Set everest forms reporting frequency specific variables.
5105 switch ( $evf_report_frequency ) {
5106
5107 case 'Daily':
5108 $evf_report_email_title = __( 'Everest Forms Daily Entries Statistics Report', 'everest-forms' );
5109 $offset_from = '-1 days';
5110 $offset_to = '-1 day';
5111 break;
5112
5113 case 'Weekly':
5114 $evf_report_email_title = __( 'Everest Forms Weekly Entries Statistics Report', 'everest-forms' );
5115 $offset_from = '-8 days';
5116 $offset_to = '-1 day';
5117 break;
5118
5119 case 'Monthly':
5120 $evf_report_email_title = __( 'Everest Forms Monthly Entries Statistics Report', 'everest-forms' );
5121 $offset_from = '-1 month -1 day';
5122 $offset_to = '-1 day';
5123 break;
5124 }
5125
5126 global $wpdb;
5127
5128 $evf_date_format = 'Y-m-d H:i:s';
5129 $evf_stat_start = evf_get_utc_time_from( $offset_from, $evf_date_format, true );
5130 $evf_stat_end = evf_get_utc_time_to( $offset_to, $evf_date_format, true );
5131 $evf_stat_selected_forms = get_option( 'everest_forms_reporting_form_lists', array() );
5132 $evf_stat_data_output = '';
5133 foreach ( $evf_stat_selected_forms as $evf_stat_selected_form ) {
5134 $evf_stat_data_output = $wpdb->get_results(
5135 $wpdb->prepare(
5136 "SELECT
5137 {$wpdb->prefix}posts.post_title,
5138 {$wpdb->prefix}evf_entries.form_id,
5139 COUNT(form_id) AS entries_count
5140 FROM
5141 {$wpdb->prefix}posts
5142 INNER JOIN
5143 {$wpdb->prefix}evf_entries ON {$wpdb->prefix}posts.id = {$wpdb->prefix}evf_entries.form_id
5144 WHERE
5145 {$wpdb->prefix}evf_entries.date_created BETWEEN '%1s' AND '%2s'
5146 GROUP BY
5147 {$wpdb->prefix}evf_entries.form_id",
5148 $evf_stat_start,
5149 $evf_stat_end
5150 )
5151 );
5152 break;
5153 }
5154 return $evf_stat_data_output;
5155 }
5156 }
5157
5158 if ( ! function_exists( 'evf_process_all_fields_smart_tag' ) ) {
5159 /**
5160 * Return email content wrapped in email template if {all_fields} is there in email content.
5161 *
5162 * @since 2.0.5
5163 * @param string $email_content Email Content.
5164 * @return string
5165 */
5166 function evf_process_all_fields_smart_tag( $email_content ) {
5167
5168 $email_content = '<div class="evf-all-fields-smart-tag-email-body" background-color: #ebebeb;">';
5169 $email_content .= '<table border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width:100%;border-collapse:collapse background:#cccccc" >';
5170 $email_content .= '<tbody>';
5171 $email_content .= '<tr>';
5172 $email_content .= '<td valign="top">';
5173 $email_content .= '<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width:100%;border-collapse:collapse" class="mcnTextContentContainer">';
5174 $email_content .= '<tbody>';
5175 $email_content .= '<tr>';
5176 $email_content .= '<td valign = "top" class = "mcnTextContent">';
5177 $email_content .= "<table align = 'left' border = '0' cellpadding = '0' cellspacing = '0' width = '100%' style = 'display:block;min-width:100%;border-collapse:collapse;width:100%'>";
5178 $email_content .= '<tbody>';
5179 $email_content .= '<tr>';
5180 $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'><strong>Name</strong></td>";
5181 $email_content .= '</tr>';
5182 $email_content .= '<tr>';
5183 $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px'>Demo Name</td>";
5184 $email_content .= '</tr>';
5185 $email_content .= '</tbody>';
5186 $email_content .= '</table>';
5187 $email_content .= "<table align = 'left' border = '0' cellpadding = '0' cellspacing = '0' width = '100%' style = 'border-top:1px solid #dddddd;display:block;min-width:100%;border-collapse:collapse;width:100%'>";
5188 $email_content .= '<tbody>';
5189 $email_content .= '<tr>';
5190 $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'> <strong>Email</strong><tr / td >";
5191 $email_content .= '</tr>';
5192 $email_content .= '<tr>';
5193 $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px' > <a href = '#' target = '_blank'>Demo Email</a></td>";
5194 $email_content .= '</tr>';
5195 $email_content .= '</tbody>';
5196 $email_content .= '</table>';
5197 $email_content .= "<table align = 'left' border = '0' cellpadding = '0' cellspacing = '0' width = '100%' style = 'border-top:1px solid #dddddd;display:block;min-width:100%;border-collapse:collapse;width:100%'>";
5198 $email_content .= '<tbody>';
5199 $email_content .= '<tr>';
5200 $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'><strong>Email Subject</strong></td>";
5201 $email_content .= '</tr>';
5202 $email_content .= '<tr>';
5203 $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px'>Demo Email Subject</td>";
5204 $email_content .= '</tr>';
5205 $email_content .= '</tbody>';
5206 $email_content .= '</table>';
5207 $email_content .= "<table align = 'left' border = '0' cellpadding = '0' cellspacing = '0' width = '100%' style = 'border-top:1px solid #dddddd;display:block;min-width:100%;border-collapse:collapse;width:100%'>";
5208 $email_content .= '<tbody>';
5209 $email_content .= '<tr>';
5210 $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'><strong>Email Message</strong></td>";
5211 $email_content .= '</tr>';
5212 $email_content .= '<tr>';
5213 $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px'>Demo Email Message</td>";
5214 $email_content .= '</tr>';
5215 $email_content .= '</tbody>';
5216 $email_content .= '</table>';
5217 $email_content .= '</td>';
5218 $email_content .= '</tr>';
5219 $email_content .= '</tbody>';
5220 $email_content .= '</table>';
5221 $email_content .= '</td>';
5222 $email_content .= '</tr>';
5223 $email_content .= '</tbody>';
5224 $email_content .= '</table>';
5225 $email_content .= '</div>';
5226
5227 return $email_content;
5228 }
5229 }
5230
5231 add_action( 'everest_forms_init', 'evf_check_addons_update' );
5232
5233 if ( ! function_exists( 'evf_check_addons_update' ) ) {
5234
5235 /**
5236 * Manually check for addons update.
5237 */
5238 function evf_check_addons_update() {
5239 if ( class_exists( 'EVF_Plugin_Updater' ) ) {
5240
5241 $plugins_to_check = array();
5242
5243 if ( class_exists( 'EverestForms_Pro' ) && is_plugin_active( 'everest-forms-pro/everest-forms-pro.php' ) && defined( 'EFP_PLUGIN_FILE' ) && defined( 'EFP_VERSION' ) ) {
5244 $plugins_to_check['EverestForms_Pro'] = array(
5245 'plugin' => 'everest-forms-pro/everest-forms-pro.php',
5246 'file' => EFP_PLUGIN_FILE,
5247 'id' => 3441,
5248 'version' => EFP_VERSION,
5249 );
5250 }
5251
5252 if ( class_exists( 'EverestForms_Survey_Polls_Quiz' ) && is_plugin_active( 'everest-forms-survey-polls-quiz/everest-forms-survey-polls-quiz.php' ) && defined( 'EVF_SURVEY_POLLS_QUIZ_PLUGIN_FILE' ) && defined( 'EVF_SURVEY_POLLS_QUIZ_VERSION' ) ) {
5253 $plugins_to_check['EverestForms_Survey_Polls_Quiz'] = array(
5254 'plugin' => 'everest-forms-survey-polls-quiz/everest-forms-survey-polls-quiz.php',
5255 'file' => EVF_SURVEY_POLLS_QUIZ_PLUGIN_FILE,
5256 'id' => 16165,
5257 'version' => EVF_SURVEY_POLLS_QUIZ_VERSION,
5258 );
5259
5260 }
5261
5262 if ( class_exists( 'EverestForms_ActiveCampaign' ) && is_plugin_active( 'everest-forms-activecampaign/everest-forms-activecampaign.php' ) && defined( 'EVF_ACTIVECAMPAIGN_PLUGIN_FILE' ) && defined( 'EVF_ACTIVE_CAMPAIGN_VERSION' ) ) {
5263 $plugins_to_check['EverestForms_ActiveCampaign'] = array(
5264 'plugin' => 'everest-forms-activecampaign/everest-forms-activecampaign.php',
5265 'file' => EVF_ACTIVECAMPAIGN_PLUGIN_FILE,
5266 'id' => 61754,
5267 'version' => EVF_ACTIVE_CAMPAIGN_VERSION,
5268 );
5269
5270 }
5271
5272 if ( class_exists( 'EverestForms\\AuthorizeNet\\AuthorizeNet' ) && is_plugin_active( 'everest-forms-authorize-net/everest-forms-authorize-net.php' ) && defined( 'EVF_AUTHORIZE_NET_PLUGIN_FILE' ) && defined( 'EVF_AUTHORIZE_NET_VERSION' ) ) {
5273 $plugins_to_check['EverestForms\\AuthorizeNet\\AuthorizeNet'] = array(
5274 'plugin' => 'everest-forms-authorize-net/everest-forms-authorize-net.php',
5275 'file' => EVF_AUTHORIZE_NET_PLUGIN_FILE,
5276 'id' => 249228,
5277 'version' => EVF_AUTHORIZE_NET_VERSION,
5278 );
5279
5280 }
5281
5282 if ( class_exists( 'EverestForms\\Calculations\\Calculations' ) && is_plugin_active( 'everest-forms-calculations/everest-forms-calculations.php' ) && defined( 'EVF_CALCULATIONS_PLUGIN_FILE' ) && defined( 'EVF_CALCULATIONS_VERSION' ) ) {
5283 $plugins_to_check['EverestForms\\Calculations\\Calculations'] = array(
5284 'plugin' => 'everest-forms-calculations/everest-forms-calculations.php',
5285 'file' => EVF_CALCULATIONS_PLUGIN_FILE,
5286 'id' => 193220,
5287 'version' => EVF_CALCULATIONS_VERSION,
5288 );
5289
5290 }
5291
5292 if ( class_exists( 'EverestForms_Campaign_Monitor' ) && is_plugin_active( 'everest-forms-campaign-monitor/everest-forms-campaign-monitor.php' ) && defined( 'EVF_CAMPAIGN_MONITOR_PLUGIN_FILE' ) && defined( 'EVF_CAMPAIGN_MONITOR_VERSION' ) ) {
5293 $plugins_to_check['EverestForms_Campaign_Monitor'] = array(
5294 'plugin' => 'everest-forms-campaign-monitor/everest-forms-campaign-monitor.php',
5295 'file' => EVF_CAMPAIGN_MONITOR_PLUGIN_FILE,
5296 'id' => 76871,
5297 'version' => EVF_CAMPAIGN_MONITOR_VERSION,
5298 );
5299
5300 }
5301
5302 if ( class_exists( 'EverestForms_Captcha' ) && is_plugin_active( 'everest-forms-captcha/everest-forms-captcha.php' ) && defined( 'EVF_CAPTCHA_PLUGIN_FILE' ) && defined( 'EVF_CAPTCHA_VERSION' ) ) {
5303 $plugins_to_check['EverestForms_Captcha'] = array(
5304 'plugin' => 'everest-forms-captcha/everest-forms-captcha.php',
5305 'file' => EVF_CAPTCHA_PLUGIN_FILE,
5306 'id' => 22441,
5307 'version' => EVF_CAPTCHA_VERSION,
5308 );
5309
5310 }
5311
5312 if ( class_exists( 'EverestForms\\Cloud_Storage\\Cloud_Storage' ) && is_plugin_active( 'everest-forms-cloud-storage/everest-forms-cloud-storage.php' ) && defined( 'EVF_CLOUD_STORAGE_PLUGIN_FILE' ) && defined( 'EVF_CLOUD_STORAGE_VERSION' ) ) {
5313 $plugins_to_check['EverestForms\\Cloud_Storage\\Cloud_Storage'] = array(
5314 'plugin' => 'everest-forms-cloud-storage/everest-forms-cloud-storage.php',
5315 'file' => EVF_CLOUD_STORAGE_PLUGIN_FILE,
5316 'id' => 226644,
5317 'version' => EVF_CLOUD_STORAGE_VERSION,
5318 );
5319 }
5320 if ( class_exists( 'EverestForms\\Constant_Contact\\Constant_Contact' ) && is_plugin_active( 'everest-forms-constant-contact/everest-forms-constant-contact.php' ) && defined( 'EVF_CONSTANT_CONTACT_PLUGIN_FILE' ) && defined( 'EVF_CONSTANT_CONTACT_VERSION' ) ) {
5321 $plugins_to_check['EverestForms\\Constant_Contact\\Constant_Contact'] = array(
5322 'plugin' => 'everest-forms-constant-contact/everest-forms-constant-contact.php',
5323 'file' => EVF_CONSTANT_CONTACT_PLUGIN_FILE,
5324 'id' => 226646,
5325 'version' => EVF_CONSTANT_CONTACT_VERSION,
5326 );
5327 }
5328
5329 if ( class_exists( 'EverestForms\\ConversationalForms\\ConversationalForms' ) && is_plugin_active( 'everest-forms-conversational-forms/everest-forms-conversational-forms.php' ) && defined( 'EVF_CONVERSATIONAL_FORMS_PLUGIN_FILE' ) && defined( 'EVF_CONVERSATIONAL_FORMS_VERSION' ) ) {
5330 $plugins_to_check['EverestForms\\ConversationalForms\\ConversationalForms'] = array(
5331 'plugin' => 'everest-forms-conversational-forms/everest-forms-conversational-forms.php',
5332 'file' => EVF_CONVERSATIONAL_FORMS_PLUGIN_FILE,
5333 'id' => 232580,
5334 'version' => EVF_CONVERSATIONAL_FORMS_VERSION,
5335 );
5336 }
5337
5338 if ( class_exists( 'EverestForms_ConvertKit' ) && is_plugin_active( 'everest-forms-convertkit/everest-forms-convertkit.php' ) && defined( 'EVF_CONVERTKIT_PLUGIN_FILE' ) && defined( 'EVF_CONVERTKIT_VERSION' ) ) {
5339 $plugins_to_check['EverestForms_ConvertKit'] = array(
5340 'plugin' => 'everest-forms-convertkit/everest-forms-convertkit.php',
5341 'file' => EVF_CONVERTKIT_PLUGIN_FILE,
5342 'id' => 3435,
5343 'version' => EVF_CONVERTKIT_VERSION,
5344 );
5345 }
5346
5347 if ( class_exists( 'EverestForms\\Coupons\\Coupons' ) && is_plugin_active( 'everest-forms-coupons/everest-forms-coupons.php' ) && defined( 'EVF_COUPONS_PLUGIN_FILE' ) && defined( 'EVF_COUPONS_VERSION' ) ) {
5348 $plugins_to_check['EverestForms\\Coupons\\Coupons'] = array(
5349 'plugin' => 'everest-forms-coupons/everest-forms-coupons.php',
5350 'file' => EVF_COUPONS_PLUGIN_FILE,
5351 'id' => 211435,
5352 'version' => EVF_COUPONS_VERSION,
5353 );
5354 }
5355
5356 if ( class_exists( 'EverestForms\\Drip\\Drip' ) && is_plugin_active( 'everest-forms-drip/everest-forms-drip.php' ) && defined( 'EVF_DRIP_PLUGIN_FILE' ) && defined( 'EVF_DRIP_VERSION' ) ) {
5357 $plugins_to_check['EverestForms\\Drip\\Drip'] = array(
5358 'plugin' => 'everest-forms-drip/everest-forms-drip.php',
5359 'file' => EVF_DRIP_PLUGIN_FILE,
5360 'id' => 211428,
5361 'version' => EVF_DRIP_VERSION,
5362 );
5363 }
5364 if ( class_exists( 'EverestForms_Email_Templates' ) && is_plugin_active( 'everest-forms-email-templates/everest-forms-email-templates.php' ) && defined( 'EVF_EMAIL_TEMPLATES_PLUGIN_FILE' ) && defined( 'EVF_EMAIL_TEMPLATES_VERSION' ) ) {
5365 $plugins_to_check['EverestForms_Email_Templates'] = array(
5366 'plugin' => 'everest-forms-email-templates/everest-forms-email-templates.php',
5367 'file' => EVF_EMAIL_TEMPLATES_PLUGIN_FILE,
5368 'id' => 72043,
5369 'version' => EVF_EMAIL_TEMPLATES_VERSION,
5370 );
5371 }
5372 if ( class_exists( 'EverestForms\\FormAnalytics\\FormAnalytics' ) && is_plugin_active( 'everest-forms-form-analytics/everest-forms-form-analytics.php' ) && defined( 'EVF_FORM_ANALYTICS_PLUGIN_FILE' ) && defined( 'EVF_FORM_ANALYTICS_VERSION' ) ) {
5373 $plugins_to_check['EverestForms\\FormAnalytics\\FormAnalytics'] = array(
5374 'plugin' => 'everest-forms-form-analytics/everest-forms-form-analytics.php',
5375 'file' => EVF_FORM_ANALYTICS_PLUGIN_FILE,
5376 'id' => 252609,
5377 'version' => EVF_FORM_ANALYTICS_VERSION,
5378 );
5379 }
5380 if ( class_exists( 'EverestForms_Form_Restriction' ) && is_plugin_active( 'everest-forms-form-restriction/everest-forms-form-restriction.php' ) && defined( 'EVF_FORM_RESTRICTION_PLUGIN_FILE' ) && defined( 'EVF_FORM_RESTRICTION_VERSION' ) ) {
5381 $plugins_to_check['EverestForms_Form_Restriction'] = array(
5382 'plugin' => 'everest-forms-form-restriction/everest-forms-form-restriction.php',
5383 'file' => EVF_FORM_RESTRICTION_PLUGIN_FILE,
5384 'id' => 61758,
5385 'version' => EVF_FORM_RESTRICTION_VERSION,
5386 );
5387 }
5388 if ( class_exists( 'EverestForms\\FrontendListing\\FrontendListing' ) && is_plugin_active( 'everest-forms-frontend-listing/everest-forms-frontend-listing.php' ) && defined( 'EVF_FRONTEND_LISTING_PLUGIN_FILE' ) && defined( 'EVF_FRONTEND_LISTING_VERSION' ) ) {
5389 $plugins_to_check['EverestForms\\FrontendListing\\FrontendListing'] = array(
5390 'plugin' => 'everest-forms-frontend-listing/everest-forms-frontend-listing.php',
5391 'file' => EVF_FRONTEND_LISTING_PLUGIN_FILE,
5392 'id' => 211437,
5393 'version' => EVF_FRONTEND_LISTING_VERSION,
5394 );
5395 }
5396 if ( class_exists( 'EverestForms_Geolocation' ) && is_plugin_active( 'everest-forms-geolocation/everest-forms-geolocation.php' ) && defined( 'EVF_GEOLOCATION_PLUGIN_FILE' ) && defined( 'EVF_GEOLOCATION_VERSION' ) ) {
5397 $plugins_to_check['EverestForms_Geolocation'] = array(
5398 'plugin' => 'everest-forms-geolocation/everest-forms-geolocation.php',
5399 'file' => EVF_GEOLOCATION_PLUGIN_FILE,
5400 'id' => 3632,
5401 'version' => EVF_GEOLOCATION_VERSION,
5402 );
5403 }
5404
5405 if ( class_exists( 'EverestForms\\GetResponse\\GetResponse' ) && is_plugin_active( 'everest-forms-getresponse/everest-forms-getresponse.php' ) && defined( 'EVF_GETRESPONSE_PLUGIN_FILE' ) && defined( 'EVF_GETRESPONSE_VERSION' ) ) {
5406 $plugins_to_check['EverestForms\\GetResponse\\GetResponse'] = array(
5407 'plugin' => 'everest-forms-getresponse/everest-forms-getresponse.php',
5408 'file' => EVF_GETRESPONSE_PLUGIN_FILE,
5409 'id' => 230163,
5410 'version' => EVF_GETRESPONSE_VERSION,
5411 );
5412 }
5413
5414 if ( class_exists( 'EverestForms\\Google_Sheets\\Plugin' ) && is_plugin_active( 'everest-forms-google-sheets/everest-forms-google-sheets.php' ) && defined( 'EVF_GOOGLE_SHEETS_PLUGIN_FILE' ) && defined( 'EVF_GOOGLE_SHEETS_VERSION' ) ) {
5415 $plugins_to_check['EverestForms\\Google_Sheets\\Plugin'] = array(
5416 'plugin' => 'everest-forms-google-sheets/everest-forms-google-sheets.php',
5417 'file' => EVF_GOOGLE_SHEETS_PLUGIN_FILE,
5418 'id' => 72041,
5419 'version' => EVF_GOOGLE_SHEETS_VERSION,
5420 );
5421 }
5422
5423 if ( class_exists( 'EverestForms\\Hubspot\\Hubspot' ) && is_plugin_active( 'everest-forms-hubspot/everest-forms-hubspot.php' ) && defined( 'EVF_HUBSPOT_PLUGIN_FILE' ) && defined( 'EVF_HUBSPOT_VERSION' ) ) {
5424 $plugins_to_check['EverestForms\\Hubspot\\Hubspot'] = array(
5425 'plugin' => 'everest-forms-hubspot/everest-forms-hubspot.php',
5426 'file' => EVF_HUBSPOT_PLUGIN_FILE,
5427 'id' => 211431,
5428 'version' => EVF_HUBSPOT_VERSION,
5429 );
5430 }
5431
5432 if ( class_exists( 'EverestForms_MailChimp' ) && is_plugin_active( 'everest-forms-mailchimp/everest-forms-mailchimp.php' ) && defined( 'EVF_MAILCHIMP_PLUGIN_FILE' ) && defined( 'EVF_MAILCHIMP_VERSION' ) ) {
5433 $plugins_to_check['EverestForms_MailChimp'] = array(
5434 'plugin' => 'everest-forms-mailchimp/everest-forms-mailchimp.php',
5435 'file' => EVF_MAILCHIMP_PLUGIN_FILE,
5436 'id' => 3432,
5437 'version' => EVF_MAILCHIMP_VERSION,
5438 );
5439 }
5440
5441 if ( class_exists( 'EverestForms_MailerLite' ) && is_plugin_active( 'everest-forms-mailerlite/everest-forms-mailerlite.php' ) && defined( 'EVF_MAILERLITE_PLUGIN_FILE' ) && defined( 'EVF_MAILERLITE_VERSION' ) ) {
5442 $plugins_to_check['EverestForms_MailerLite'] = array(
5443 'plugin' => 'everest-forms-mailerlite/everest-forms-mailerlite.php',
5444 'file' => EVF_MAILERLITE_PLUGIN_FILE,
5445 'id' => 61756,
5446 'version' => EVF_MAILERLITE_VERSION,
5447 );
5448 }
5449
5450 if ( class_exists( 'EverestForms_MultiPart' ) && is_plugin_active( 'everest-forms-multi-part/everest-forms-multi-part.php' ) && defined( 'EVF_MULTI_PART_PLUGIN_FILE' ) && defined( 'EVF_MULTI_PART_VERSION' ) ) {
5451 $plugins_to_check['EverestForms_MultiPart'] = array(
5452 'plugin' => 'everest-forms-multi-part/everest-forms-multi-part.php',
5453 'file' => EVF_MULTI_PART_PLUGIN_FILE,
5454 'id' => 5422,
5455 'version' => EVF_MULTI_PART_VERSION,
5456 );
5457 }
5458
5459 if ( class_exists( 'EverestForms_PayPal_Standard' ) && is_plugin_active( 'everest-forms-paypal-standard/everest-forms-paypal-standard.php' ) && defined( 'EVF_PAYPAL_STANDARD_PLUGIN_FILE' ) && defined( 'EVF_PAYPALL_STANDARD_VERSION' ) ) {
5460 $plugins_to_check['EverestForms_PayPal_Standard'] = array(
5461 'plugin' => 'everest-forms-paypal-standard/everest-forms-paypal-standard.php',
5462 'file' => EVF_PAYPAL_STANDARD_PLUGIN_FILE,
5463 'id' => 3437,
5464 'version' => EVF_PAYPALL_STANDARD_VERSION,
5465 );
5466 }
5467
5468 if ( class_exists( 'EverestForms_PDF_Submission' ) && is_plugin_active( 'everest-forms-pdf-submission/everest-forms-pdf-submission.php' ) && defined( 'EVF_PDF_SUBMISSION_PLUGIN_FILE' ) && defined( 'EVF_PDF_SUBMISSION_VERSION' ) ) {
5469 $plugins_to_check['EverestForms_PDF_Submission'] = array(
5470 'plugin' => 'everest-forms-pdf-submission/everest-forms-pdf-submission.php',
5471 'file' => EVF_PDF_SUBMISSION_PLUGIN_FILE,
5472 'id' => 3439,
5473 'version' => EVF_PDF_SUBMISSION_VERSION,
5474 );
5475 }
5476
5477 if ( class_exists( 'EverestForms\\Pipedrive\\Pipedrive' ) && is_plugin_active( 'everest-forms-pipedrive/everest-forms-pipedrive.php' ) && defined( 'EVF_PIPEDRIVE_PLUGIN_FILE' ) && defined( 'EVF_PIPEDRIVE_VERSION' ) ) {
5478 $plugins_to_check['EverestForms\\Pipedrive\\Pipedrive'] = array(
5479 'plugin' => 'everest-forms-pipedrive/everest-forms-pipedrive.php',
5480 'file' => EVF_PIPEDRIVE_PLUGIN_FILE,
5481 'id' => 211433,
5482 'version' => EVF_PIPEDRIVE_VERSION,
5483 );
5484 }
5485
5486 if ( class_exists( 'EverestForms_Post_Submissions' ) && is_plugin_active( 'everest-forms-post-submission/everest-forms-post-submission.php' ) && defined( 'EVF_POST_SUBMISSIONS_PLUGIN_FILE' ) && defined( 'EVF_POST_SUBMISSIONS_VERSION' ) ) {
5487 $plugins_to_check['EverestForms_Post_Submissions'] = array(
5488 'plugin' => 'everest-forms-post-submission/everest-forms-post-submission.php',
5489 'file' => EVF_POST_SUBMISSIONS_PLUGIN_FILE,
5490 'id' => 22436,
5491 'version' => EVF_POST_SUBMISSIONS_VERSION,
5492 );
5493 }
5494
5495 if ( class_exists( 'EverestForms\\Razorpay\\Razorpay' ) && is_plugin_active( 'everest-forms-razorpay/everest-forms-razorpay.php' ) && defined( 'EVF_RAZORPAY_PLUGIN_FILE' ) && defined( 'EVF_RAZORPAY_VERSION' ) ) {
5496 $plugins_to_check['EverestForms\\Razorpay\\Razorpay'] = array(
5497 'plugin' => 'everest-forms-razorpay/everest-forms-razorpay.php',
5498 'file' => EVF_RAZORPAY_PLUGIN_FILE,
5499 'id' => 205578,
5500 'version' => EVF_RAZORPAY_VERSION,
5501 );
5502 }
5503
5504 if ( class_exists( 'EverestForms\\Repeater_Fields\\Plugin' ) && is_plugin_active( 'everest-forms-repeater-fields/everest-forms-repeater-fields.php' ) && defined( 'EVF_REPEATER_FIELDS_PLUGIN_FILE' ) && defined( 'EVF_REPEATER_FIELDS_VERSION' ) ) {
5505 $plugins_to_check['EverestForms\\Repeater_Fields\\Plugin'] = array(
5506 'plugin' => 'everest-forms-repeater-fields/everest-forms-repeater-fields.php',
5507 'file' => EVF_REPEATER_FIELDS_PLUGIN_FILE,
5508 'id' => 157038,
5509 'version' => EVF_REPEATER_FIELDS_VERSION,
5510 );
5511 }
5512
5513 if ( class_exists( 'EverestForms\\Salesflare\\Salesflare' ) && is_plugin_active( 'everest-forms-salesflare/everest-forms-salesflare.php' ) && defined( 'EVF_SALESFLARE_PLUGIN_FILE' ) && defined( 'EVF_SALESFLARE_VERSION' ) ) {
5514 $plugins_to_check['EverestForms\\Salesflare\\Salesflare'] = array(
5515 'plugin' => 'everest-forms-salesflare/everest-forms-salesflare.php',
5516 'file' => EVF_SALESFLARE_PLUGIN_FILE,
5517 'id' => 72049,
5518 'version' => EVF_SALESFLARE_VERSION,
5519 );
5520 }
5521
5522 if ( class_exists( 'EverestForms\\SaveAndContinue\\Plugin' ) && is_plugin_active( 'everest-forms-save-and-continue/everest-forms-save-and-continue.php' ) && defined( 'EVF_SAVE_AND_CONTINUE_PLUGIN_FILE' ) && defined( 'EVF_SAVE_AND_CONTINUE_VERSION' ) ) {
5523 $plugins_to_check['EverestForms\\SaveAndContinue\\Plugin'] = array(
5524 'plugin' => 'everest-forms-save-and-continue/everest-forms-save-and-continue.php',
5525 'file' => EVF_SAVE_AND_CONTINUE_PLUGIN_FILE,
5526 'id' => 148284,
5527 'version' => EVF_SAVE_AND_CONTINUE_VERSION,
5528 );
5529 }
5530
5531 if ( class_exists( 'EverestForms\\Sendinblue\\Sendinblue' ) && is_plugin_active( 'everest-forms-sendinblue/everest-forms-sendinblue.php' ) && defined( 'EVF_SENDINBLUE_PLUGIN_FILE' ) && defined( 'EVF_SENDINBLUE_VERSION' ) ) {
5532 $plugins_to_check['EverestForms\\Sendinblue\\Sendinblue'] = array(
5533 'plugin' => 'everest-forms-sendinblue/everest-forms-sendinblue.php',
5534 'file' => EVF_SENDINBLUE_PLUGIN_FILE,
5535 'id' => 230165,
5536 'version' => EVF_SENDINBLUE_VERSION,
5537 );
5538 }
5539
5540 if ( class_exists( 'EverestForms\\SmsNotification\\SmsNotification' ) && is_plugin_active( 'everest-forms-sms-notifications/everest-forms-sms-notifications.php' ) && defined( 'EVF_SMS_NOTIFICATION_PLUGIN_FILE' ) && defined( 'EVF_SMS_NOTIFICATION_VERSION' ) ) {
5541 $plugins_to_check['EverestForms\\SmsNotification\\SmsNotification'] = array(
5542 'plugin' => 'everest-forms-sms-notifications/everest-forms-sms-notifications.php',
5543 'file' => EVF_SMS_NOTIFICATION_PLUGIN_FILE,
5544 'id' => 205580,
5545 'version' => EVF_SMS_NOTIFICATION_VERSION,
5546 );
5547 }
5548
5549 if ( class_exists( 'EverestForms_Style_Customizer' ) && is_plugin_active( 'everest-forms-style-customizer/everest-forms-style-customizer.php' ) && defined( 'EVF_STYLE_CUSTOMIZER_PLUGIN_FILE' ) && defined( 'EVF_VERSION' ) ) {
5550 $plugins_to_check['EverestForms_Style_Customizer'] = array(
5551 'plugin' => 'everest-forms-style-customizer/everest-forms-style-customizer.php',
5552 'file' => EVF_STYLE_CUSTOMIZER_PLUGIN_FILE,
5553 'id' => 16166,
5554 'version' => EVF_VERSION,
5555 );
5556 }
5557
5558 if ( class_exists( 'EverestForms_User_Registration' ) && is_plugin_active( 'everest-forms-user-registration/everest-forms-user-registration.php' ) && defined( 'EVF_USER_REGISTRATION_PLUGIN_FILE' ) && defined( 'EVF_USER_REGISTRATION_VERSION' ) ) {
5559 $plugins_to_check['EverestForms_User_Registration'] = array(
5560 'plugin' => 'everest-forms-user-registration/everest-forms-user-registration.php',
5561 'file' => EVF_USER_REGISTRATION_PLUGIN_FILE,
5562 'id' => 22439,
5563 'version' => EVF_USER_REGISTRATION_VERSION,
5564 );
5565 }
5566
5567 if ( class_exists( 'EverestForms_Zapier' ) && is_plugin_active( 'everest-forms-zapier/everest-forms-zapier.php' ) && defined( 'EVF_ZAPIER_PLUGIN_FILE' ) && defined( 'EVF_ZAPIER_VERSION' ) ) {
5568 $plugins_to_check['EverestForms_Zapier'] = array(
5569 'plugin' => 'everest-forms-zapier/everest-forms-zapier.php',
5570 'file' => EVF_ZAPIER_PLUGIN_FILE,
5571 'id' => 18350,
5572 'version' => EVF_ZAPIER_VERSION,
5573 );
5574 }
5575
5576 if ( class_exists( 'EverestForms\\Zoho\\Zoho' ) && is_plugin_active( 'everest-forms-zoho/everest-forms-zoho.php' ) && defined( 'EVF_ZAPIER_PLUGIN_FILE' ) && defined( 'EVF_ZOHO_VERSION' ) ) {
5577 $plugins_to_check['EverestForms\\Zoho\\Zoho'] = array(
5578 'plugin' => 'everest-forms-zoho/everest-forms-zoho.php',
5579 'file' => EVF_ZAPIER_PLUGIN_FILE,
5580 'id' => 219736,
5581 'version' => EVF_ZOHO_VERSION,
5582 );
5583 }
5584 $current = get_site_transient( 'update_plugins' );
5585
5586 foreach ( $plugins_to_check as $class_name => $plugin_data ) {
5587 if ( ! isset( $current->response[ $plugin_data['plugin'] ] ) ) {
5588 \EVF_Plugin_Updater::updates( $plugin_data['file'], $plugin_data['id'], $plugin_data['version'] );
5589 }
5590 }
5591 }
5592 }
5593 }
5594
5595 /**
5596 * Get one time draggable fields fields.
5597 *
5598 * @return array
5599 */
5600 function evf_get_one_time_draggable_fields() {
5601 return apply_filters(
5602 'everest_forms_one_time_draggable_form_fields',
5603 array(
5604 'file-upload',
5605 )
5606 );
5607 }
5608
5609 /**
5610 * Retrieve the next key in an array from given key.
5611 *
5612 * @param array $arr List of items in a form of array.
5613 * @param integer $key Key to search and find within the array.
5614 * @return mixed
5615 */
5616 function evf_get_next_key_array( $arr, $key ) {
5617 $keys = array_keys( $arr );
5618 $position = array_search( $key, $keys, true );
5619
5620 if ( isset( $keys[ $position + 1 ] ) ) {
5621 $next_key = $keys[ $position + 1 ];
5622 }
5623
5624 return isset( $next_key ) ? $next_key : '' ;
5625 }
5626 /**
5627 * Function to generate the api key base on the string.
5628 *
5629 * @since 3.0.5
5630 * @param $string The string value.
5631 */
5632 function generate_api_key( $string = 'evf_restapi', $length = 32 ) {
5633 $key = bin2hex( random_bytes( $length ) );
5634
5635 return $key;
5636 }
5637
5638 if ( !function_exists( 'evf_hex_to_rgb' ) ) {
5639 /**
5640 * Converts a hex color code to an RGB array.
5641 *
5642 * @since 3.0.5
5643 * @param string $hexcolor Hex color code, with or without '#'.
5644 * @return array RGB values as [red, green, blue].
5645 */
5646 function evf_hex_to_rgb( $hexcolor ) {
5647 $hexcolor = ltrim( $hexcolor, '#' );
5648
5649 if ( strlen( $hexcolor ) == 6 ) {
5650 $r = hexdec(substr($hexcolor, 0, 2));
5651 $g = hexdec(substr($hexcolor, 2, 2));
5652 $b = hexdec(substr($hexcolor, 4, 2));
5653 } elseif (strlen($hexcolor) == 3) {
5654 $r = hexdec(str_repeat(substr($hexcolor, 0, 1), 2));
5655 $g = hexdec(str_repeat(substr($hexcolor, 1, 1), 2));
5656 $b = hexdec(str_repeat(substr($hexcolor, 2, 1), 2));
5657 } else {
5658 return [0, 0, 0];
5659 }
5660
5661 return [$r, $g, $b];
5662 }
5663 }
5664
5665 add_action( 'wp_mail_failed', 'evf_email_send_failed_handler', 1 );
5666
5667 if ( ! function_exists( 'evf_email_send_failed_handler' ) ) {
5668
5669 /**
5670 * Handle errors fetch mechanism when mail send failed.
5671 *
5672 * @param object $error_instance WP_Error message instance.
5673 */
5674 function evf_email_send_failed_handler( $error_instance ) {
5675 $error_message = '';
5676 $decoded_message = json_decode( $error_instance->get_error_message() );
5677
5678 if ( json_last_error() === JSON_ERROR_NONE && ! empty( $decoded_message ) ) {
5679 /* translators: %s: Status Log URL */
5680 $error_message = wp_kses_post( sprintf( __( 'Please check the `evf_mail_errors` log under <a target="_blank" href="%s"> Logs </a> section.', 'everest-forms' ), admin_url( 'admin.php?page=evf-tools&tab=logs' ) ) );
5681 } else {
5682 $error_message = $error_instance->get_error_message();
5683 }
5684
5685 evf_get_logger()->info(
5686 $error_message,
5687 array( 'source' => 'evf_mail_errors' )
5688 );
5689
5690 if ( ! empty( $error_message ) ) {
5691 add_filter(
5692 'everest_forms_email_send_failed_message',
5693 function ( $msg ) use ( $error_message ) {
5694 return $error_message;
5695 }
5696 );
5697 }
5698 }
5699 }
5700
5701 add_action( 'admin_head', function() {
5702 $js = <<<JS
5703 const isSidebarEnabled = localStorage.getItem( 'isPremiumSidebarEnabled' );
5704 const interval = setInterval( () => {
5705 if ( document.body ) {
5706 clearInterval(interval);
5707 if ('true' === isSidebarEnabled) {
5708 document.body.classList.add( 'evf-premium-sidebar-show' );
5709 } else {
5710 document.body.classList.add( 'evf-premium-sidebar-hidden' );
5711 }
5712 }
5713 }, 1 );
5714 JS;
5715 if ( function_exists( 'wp_print_inline_script_tag' ) ) {
5716 wp_print_inline_script_tag( $js );
5717 }
5718 } );
5719