Sid Gifari File Manager
🏠 Root
/
home2
/
iuywvcmy
/
public_html
/
wp-content
/
plugins
/
everest-forms
/
includes
/
Editing: evf-core-functions.php
<?php /** * EverestForms Core Functions * * General core functions available on both the front-end and admin. * * @package EverestForms/Functions * @version 1.0.0 */ defined('ABSPATH') || exit; // Include core functions (available in both admin and frontend). require EVF_ABSPATH . 'includes/evf-conditional-functions.php'; require EVF_ABSPATH . 'includes/evf-deprecated-functions.php'; require EVF_ABSPATH . 'includes/evf-formatting-functions.php'; require EVF_ABSPATH . 'includes/evf-entry-functions.php'; /** * Define a constant if it is not already defined. * * @since 1.0.0 * @param string $name Constant name. * @param mixed $value Value. */ function evf_maybe_define_constant($name, $value) { if (! defined($name)) { define($name, $value); } } /** * Get template part. * * EVF_TEMPLATE_DEBUG_MODE will prevent overrides in themes from taking priority. * * @param mixed $slug Template slug. * @param string $name Template name (default: ''). */ function evf_get_template_part($slug, $name = '') { $cache_key = sanitize_key(implode('-', array('template-part', $slug, $name, EVF_VERSION))); $template = (string) wp_cache_get($cache_key, 'everest-forms'); if (! $template) { if ($name) { $template = EVF_TEMPLATE_DEBUG_MODE ? '' : locate_template( array( "{$slug}-{$name}.php", evf()->template_path() . "{$slug}-{$name}.php", ) ); if (! $template) { $fallback = evf()->plugin_path() . "/templates/{$slug}-{$name}.php"; $template = file_exists($fallback) ? $fallback : ''; } } if (! $template) { // If template file doesn't exist, look in yourtheme/slug.php and yourtheme/everest-forms/slug.php. $template = EVF_TEMPLATE_DEBUG_MODE ? '' : locate_template( array( "{$slug}.php", evf()->template_path() . "{$slug}.php", ) ); } wp_cache_set($cache_key, $template, 'everest-forms'); } // Allow 3rd party plugins to filter template file from their plugin. $template = apply_filters('evf_get_template_part', $template, $slug, $name); if ($template) { load_template($template, false); } } /** * Get other templates passing attributes and including the file. * * @param string $template_name Template name. * @param array $args Arguments. (default: array). * @param string $template_path Template path. (default: ''). * @param string $default_path Default path. (default: ''). */ function evf_get_template($template_name, $args = array(), $template_path = '', $default_path = '') { $cache_key = sanitize_key(implode('-', array('template', $template_name, $template_path, $default_path, EVF_VERSION))); $template = (string) wp_cache_get($cache_key, 'everest-forms'); if (! $template) { $template = evf_locate_template($template_name, $template_path, $default_path); wp_cache_set($cache_key, $template, 'everest-forms'); } // Allow 3rd party plugin filter template file from their plugin. $filter_template = apply_filters('evf_get_template', $template, $template_name, $args, $template_path, $default_path); if ($filter_template !== $template) { if (! file_exists($filter_template)) { /* translators: %s template */ evf_doing_it_wrong(__FUNCTION__, sprintf(__('%s does not exist.', 'everest-forms'), '<code>' . $filter_template . '</code>'), '1.0.0'); return; } $template = $filter_template; } $action_args = array( 'template_name' => $template_name, 'template_path' => $template_path, 'located' => $template, 'args' => $args, ); if (! empty($args) && is_array($args)) { if (isset($args['action_args'])) { evf_doing_it_wrong( __FUNCTION__, __('action_args should not be overwritten when calling evf_get_template.', 'everest-forms'), '1.4.9' ); unset($args['action_args']); } extract($args); // @codingStandardsIgnoreLine } do_action('everest_forms_before_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args']); include $action_args['located']; do_action('everest_forms_after_template_part', $action_args['template_name'], $action_args['template_path'], $action_args['located'], $action_args['args']); } /** * Like evf_get_template, but returns the HTML instead of outputting. * * @see evf_get_template * @since 1.0.0 * @param string $template_name Template name. * @param array $args Arguments. (default: array). * @param string $template_path Template path. (default: ''). * @param string $default_path Default path. (default: ''). * @return string */ function evf_get_template_html($template_name, $args = array(), $template_path = '', $default_path = '') { ob_start(); evf_get_template($template_name, $args, $template_path, $default_path); return ob_get_clean(); } /** * Locate a template and return the path for inclusion. * * This is the load order: * * yourtheme/$template_path/$template_name * yourtheme/$template_name * $default_path/$template_name * * @param string $template_name Template name. * @param string $template_path Template path. (default: ''). * @param string $default_path Default path. (default: ''). * @return string */ function evf_locate_template($template_name, $template_path = '', $default_path = '') { if (! $template_path) { $template_path = evf()->template_path(); } if (! $default_path) { $default_path = evf()->plugin_path() . '/templates/'; } // Look within passed path within the theme - this is priority. $template = locate_template( array( trailingslashit($template_path) . $template_name, $template_name, ) ); // Get default template/. if (! $template || EVF_TEMPLATE_DEBUG_MODE) { $template = $default_path . $template_name; } // Return what we found. return apply_filters('everest_forms_locate_template', $template, $template_name, $template_path); } /** * Send HTML emails from EverestForms. * * @param mixed $to Receiver. * @param mixed $subject Subject. * @param mixed $message Message. * @param string $headers Headers. (default: "Content-Type: text/html\r\n"). * @param string $attachments Attachments. (default: ""). */ function evf_mail($to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = '') { $mailer = evf()->mailer(); $mailer->send($to, $subject, $message, $headers, $attachments); } /** * Queue some JavaScript code to be output in the footer. * * @param string $code Code. */ function evf_enqueue_js($code) { global $evf_queued_js; if (empty($evf_queued_js)) { $evf_queued_js = ''; } $evf_queued_js .= "\n" . $code . "\n"; } /** * Output any queued javascript code in the footer. */ function evf_print_js() { global $evf_queued_js; if (! empty($evf_queued_js)) { // Sanitize. $evf_queued_js = wp_check_invalid_utf8($evf_queued_js); $evf_queued_js = preg_replace('/&#(x)?0*(?(1)27|39);?/i', "'", $evf_queued_js); $evf_queued_js = str_replace("\r", '', $evf_queued_js); $js = "<!-- Everest Forms JavaScript -->\n<script type=\"text/javascript\">\njQuery(function($) { $evf_queued_js });\n</script>\n"; /** * Queued jsfilter. * * @since 1.0.0 * @param string $js JavaScript code. */ echo wp_kses(apply_filters('everest_forms_queued_js', $js), array('script' => array('type' => true))); unset($evf_queued_js); } } /** * Set a cookie - wrapper for setcookie using WP constants. * * @param string $name Name of the cookie being set. * @param string $value Value of the cookie. * @param integer $expire Expiry of the cookie. * @param bool $secure Whether the cookie should be served only over https. * @param bool $httponly Whether the cookie is only accessible over HTTP, not scripting languages like JavaScript. @since 1.4.9. */ function evf_setcookie($name, $value, $expire = 0, $secure = false, $httponly = false) { if (! headers_sent()) { setcookie($name, $value, $expire, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, $secure, apply_filters('everest_forms_cookie_httponly', $httponly, $name, $value, $expire, $secure)); } elseif (defined('WP_DEBUG') && WP_DEBUG) { headers_sent($file, $line); trigger_error("{$name} cookie cannot be set - headers already sent by {$file} on line {$line}", E_USER_NOTICE); // @codingStandardsIgnoreLine } } /** * Get a log file path. * * @since 1.0.0 * * @param string $handle name. * @return string the log file path. */ function evf_get_log_file_path($handle) { return EVF_Log_Handler_File::get_log_file_path($handle); } /** * Get a csv file name. * * File names consist of the handle, followed by the date, followed by a hash, .csv. * * @since 1.3.0 * * @param string $handle Name. * @param string $extension Extension Type. * @return bool|string The csv file name or false if cannot be determined. */ function evf_get_entry_export_file_name($handle, $extension = 'csv') { if (function_exists('wp_hash')) { $date_suffix = date_i18n('Y-m-d', time()); $hash_suffix = wp_hash($handle); return sanitize_file_name(implode('-', array('evf-entry-export', $handle, $date_suffix, $hash_suffix)) . '.' . $extension); } else { evf_doing_it_wrong(__METHOD__, __('This method should not be called before plugins_loaded.', 'everest-forms'), '1.3.0'); return false; } } /** * Recursively get page children. * * @param int $page_id Page ID. * @return int[] */ function evf_get_page_children($page_id) { $page_ids = get_posts( array( 'post_parent' => $page_id, 'post_type' => 'page', 'numberposts' => -1, 'post_status' => 'any', 'fields' => 'ids', ) ); if (! empty($page_ids)) { foreach ($page_ids as $page_id) { $page_ids = array_merge($page_ids, evf_get_page_children($page_id)); } } return $page_ids; } /** * Get user agent string. * * @since 1.0.0 * @return string */ function evf_get_user_agent() { return isset($_SERVER['HTTP_USER_AGENT']) ? evf_clean(wp_unslash($_SERVER['HTTP_USER_AGENT'])) : ''; // @codingStandardsIgnoreLine } // This function can be removed when WP 3.9.2 or greater is required. if (! function_exists('hash_equals')) : /** * Compare two strings in constant time. * * This function was added in PHP 5.6. * It can leak the length of a string. * * @since 1.0.0 * * @param string $a Expected string. * @param string $b Actual string. * @return bool Whether strings are equal. */ function hash_equals($a, $b) { $a_length = strlen($a); if (strlen($b) !== $a_length) { return false; } $result = 0; // Do not attempt to "optimize" this. for ($i = 0; $i < $a_length; $i++) { $result |= ord($a[$i]) ^ ord($b[$i]); } return 0 === $result; } endif; /** * Generate a rand hash. * * @since 1.0.0 * @return string */ function evf_rand_hash() { if (! function_exists('openssl_random_pseudo_bytes')) { return sha1(wp_rand()); } return bin2hex(openssl_random_pseudo_bytes(20)); // @codingStandardsIgnoreLine } /** * Find all possible combinations of values from the input array and return in a logical order. * * @since 1.0.0 * @param array $input Input. * @return array */ function evf_array_cartesian($input) { $input = array_filter($input); $results = array(); $indexes = array(); $index = 0; // Generate indexes from keys and values so we have a logical sort order. foreach ($input as $key => $values) { foreach ($values as $value) { $indexes[$key][$value] = $index++; } } // Loop over the 2D array of indexes and generate all combinations. foreach ($indexes as $key => $values) { // When result is empty, fill with the values of the first looped array. if (empty($results)) { foreach ($values as $value) { $results[] = array($key => $value); } } else { // Second and subsequent input sub-array merging. foreach ($results as $result_key => $result) { foreach ($values as $value) { // If the key is not set, we can set it. if (! isset($results[$result_key][$key])) { $results[$result_key][$key] = $value; } else { // If the key is set, we can add a new combination to the results array. $new_combination = $results[$result_key]; $new_combination[$key] = $value; $results[] = $new_combination; } } } } } // Sort the indexes. arsort($results); // Convert indexes back to values. foreach ($results as $result_key => $result) { $converted_values = array(); // Sort the values. arsort($results[$result_key]); // Convert the values. foreach ($results[$result_key] as $key => $value) { $converted_values[$key] = array_search($value, $indexes[$key], true); } $results[$result_key] = $converted_values; } return $results; } /** * Run a MySQL transaction query, if supported. * * @since 1.0.0 * @param string $type Types: start (default), commit, rollback. * @param bool $force use of transactions. */ function evf_transaction_query($type = 'start', $force = false) { global $wpdb; $wpdb->hide_errors(); evf_maybe_define_constant('EVF_USE_TRANSACTIONS', true); if (EVF_USE_TRANSACTIONS || $force) { switch ($type) { case 'commit': $wpdb->query('COMMIT'); break; case 'rollback': $wpdb->query('ROLLBACK'); break; default: $wpdb->query('START TRANSACTION'); break; } } } /** * Outputs a "back" link so admin screens can easily jump back a page. * * @param string $label Title of the page to return to. * @param string $url URL of the page to return to. */ function evf_back_link($label, $url) { echo '<small class="evf-admin-breadcrumb"><a href="' . esc_url($url) . '" aria-label="' . esc_attr($label) . '">⤴</a></small>'; } /** * Display a EverestForms help tip. * * @since 1.0.0 * * @param string $tip Help tip text. * @param bool $allow_html Allow sanitized HTML if true or escape. * @return string */ function evf_help_tip($tip, $allow_html = false) { if ($allow_html) { $tip = evf_sanitize_tooltip($tip); } else { $tip = esc_attr($tip); } return '<span class="everest-forms-help-tip" data-tip="' . $tip . '"></span>'; } /** * Wrapper for set_time_limit to see if it is enabled. * * @since 1.0.0 * @param int $limit Time limit. */ function evf_set_time_limit($limit = 0) { 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 @set_time_limit($limit); // @codingStandardsIgnoreLine } } /** * Wrapper for nocache_headers which also disables page caching. * * @since 1.2.0 */ function evf_nocache_headers() { EVF_Cache_Helper::set_nocache_constants(); nocache_headers(); } /** * Get a shared logger instance. * * Use the everest_forms_logging_class filter to change the logging class. You may provide one of the following: * - a class name which will be instantiated as `new $class` with no arguments * - an instance which will be used directly as the logger * In either case, the class or instance *must* implement EVF_Logger_Interface. * * @see EVF_Logger_Interface * * @return EVF_Logger */ function evf_get_logger() { static $logger = null; $class = apply_filters('everest_forms_logging_class', 'EVF_Logger'); if (null !== $logger && is_string($class) && is_a($logger, $class)) { return $logger; } $implements = class_implements($class); if (is_array($implements) && in_array('EVF_Logger_Interface', $implements, true)) { $logger = is_object($class) ? $class : new $class(); } else { evf_doing_it_wrong( __FUNCTION__, sprintf( /* translators: 1: class name 2: everest_forms_logging_class 3: EVF_Logger_Interface */ __('The class %1$s provided by %2$s filter must implement %3$s.', 'everest-forms'), '<code>' . esc_html(is_object($class) ? get_class($class) : $class) . '</code>', '<code>everest_forms_logging_class</code>', '<code>EVF_Logger_Interface</code>' ), '1.2' ); $logger = is_a($logger, 'EVF_Logger') ? $logger : new EVF_Logger(); } return $logger; } /** * Prints human-readable information about a variable. * * Some server environments blacklist some debugging functions. This function provides a safe way to * turn an expression into a printable, readable form without calling blacklisted functions. * * @since 1.0.0 * * @param mixed $expression The expression to be printed. * @param bool $return Optional. Default false. Set to true to return the human-readable string. * * @return string|bool False if expression could not be printed. True if the expression was printed. * If $return is true, a string representation will be returned. */ function evf_print_r($expression, $return = false) { $alternatives = array( array( 'func' => 'print_r', 'args' => array($expression, true), ), array( 'func' => 'var_export', 'args' => array($expression, true), ), array( 'func' => 'json_encode', 'args' => array($expression), ), array( 'func' => 'serialize', 'args' => array($expression), ), ); $alternatives = apply_filters('everest_forms_print_r_alternatives', $alternatives, $expression); foreach ($alternatives as $alternative) { if (function_exists($alternative['func'])) { $res = call_user_func_array($alternative['func'], $alternative['args']); if ($return) { return $res; } echo wp_kses_post($res); return true; } } return false; } /** * Registers the default log handler. * * @since 1.0.0 * @param array $handlers Handlers. * @return array */ function evf_register_default_log_handler($handlers) { if (defined('EVF_LOG_HANDLER') && class_exists(EVF_LOG_HANDLER)) { $handler_class = EVF_LOG_HANDLER; $default_handler = new $handler_class(); } else { $default_handler = new EVF_Log_Handler_File(); } array_push($handlers, $default_handler); return $handlers; } add_filter('everest_forms_register_log_handlers', 'evf_register_default_log_handler'); /** * Based on wp_list_pluck, this calls a method instead of returning a property. * * @since 1.0.0 * @param array $list List of objects or arrays. * @param int|string $callback_or_field Callback method from the object to place instead of the entire object. * @param int|string $index_key Optional. Field from the object to use as keys for the new array. * Default null. * @return array Array of values. */ function evf_list_pluck($list, $callback_or_field, $index_key = null) { // Use wp_list_pluck if this isn't a callback. $first_el = current($list); if (! is_object($first_el) || ! is_callable(array($first_el, $callback_or_field))) { return wp_list_pluck($list, $callback_or_field, $index_key); } if (! $index_key) { /* * This is simple. Could at some point wrap array_column() * if we knew we had an array of arrays. */ foreach ($list as $key => $value) { $list[$key] = $value->{$callback_or_field}(); } return $list; } /* * When index_key is not set for a particular item, push the value * to the end of the stack. This is how array_column() behaves. */ $newlist = array(); foreach ($list as $value) { // Get index. if (is_callable(array($value, $index_key))) { $newlist[$value->{$index_key}()] = $value->{$callback_or_field}(); } elseif (isset($value->$index_key)) { $newlist[$value->$index_key] = $value->{$callback_or_field}(); } else { $newlist[] = $value->{$callback_or_field}(); } } return $newlist; } /** * Switch EverestForms to site language. * * @since 1.0.0 */ function evf_switch_to_site_locale() { if (function_exists('switch_to_locale')) { switch_to_locale(get_locale()); // Filter on plugin_locale so load_plugin_textdomain loads the correct locale. add_filter('plugin_locale', 'get_locale'); // Init EVF locale. evf()->load_plugin_textdomain(); } } /** * Switch EverestForms language to original. * * @since 1.0.0 */ function evf_restore_locale() { if (function_exists('restore_previous_locale')) { restore_previous_locale(); // Remove filter. remove_filter('plugin_locale', 'get_locale'); // Init EVF locale. evf()->load_plugin_textdomain(); } } /** * Get an item of post data if set, otherwise return a default value. * * @since 1.0.0 * @param string $key Key. * @param string $default Default. * @return mixed value sanitized by evf_clean */ function evf_get_post_data_by_key($key, $default = '') { return evf_clean(evf_get_var($_POST[$key], $default)); // @codingStandardsIgnoreLine } /** * Get data if set, otherwise return a default value or null. Prevents notices when data is not set. * * @since 1.0.0 * @param mixed $var Variable. * @param string $default Default value. * @return mixed */ function evf_get_var(&$var, $default = null) { return isset($var) ? $var : $default; } /** * Read in EverestForms headers when reading plugin headers. * * @since 1.2.0 * @param array $headers Headers. * @return array */ function evf_enable_evf_plugin_headers($headers) { if (! class_exists('EVF_Plugin_Updates')) { include_once __DIR__ . '/admin/plugin-updates/class-evf-plugin-updates.php'; } // EVF requires at least - allows developers to define which version of Everest Forms the plugin requires to run. $headers[] = EVF_Plugin_Updates::VERSION_REQUIRED_HEADER; // EVF tested up to - allows developers to define which version of Everest Forms they have tested up to. $headers[] = EVF_Plugin_Updates::VERSION_TESTED_HEADER; return $headers; } add_filter('extra_theme_headers', 'evf_enable_evf_plugin_headers'); add_filter('extra_plugin_headers', 'evf_enable_evf_plugin_headers'); /** * Delete expired transients. * * Deletes all expired transients. The multi-table delete syntax is used. * to delete the transient record from table a, and the corresponding. * transient_timeout record from table b. * * Based on code inside core's upgrade_network() function. * * @since 1.0.0 * @return int Number of transients that were cleared. */ function evf_delete_expired_transients() { global $wpdb; $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE %s AND a.option_name NOT LIKE %s AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) ) AND b.option_value < %d"; $rows = $wpdb->query($wpdb->prepare($sql, $wpdb->esc_like('_transient_') . '%', $wpdb->esc_like('_transient_timeout_') . '%', time())); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $sql = "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE %s AND a.option_name NOT LIKE %s AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) ) AND b.option_value < %d"; $rows2 = $wpdb->query($wpdb->prepare($sql, $wpdb->esc_like('_site_transient_') . '%', $wpdb->esc_like('_site_transient_timeout_') . '%', time())); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared return absint($rows + $rows2); } add_action('everest_forms_installed', 'evf_delete_expired_transients'); /** * Make a URL relative, if possible. * * @since 1.0.0 * @param string $url URL to make relative. * @return string */ function evf_get_relative_url($url) { return evf_is_external_resource($url) ? $url : str_replace(array('http://', 'https://'), '//', $url); } /** * See if a resource is remote. * * @since 1.0.0 * @param string $url URL to check. * @return bool */ function evf_is_external_resource($url) { $wp_base = str_replace(array('http://', 'https://'), '//', get_home_url(null, '/', 'http')); return strstr($url, '://') && strstr($wp_base, $url); } /** * See if theme/s is activate or not. * * @since 1.0.0 * @param string|array $theme Theme name or array of theme names to check. * @return boolean */ function evf_is_active_theme($theme) { return is_array($theme) ? in_array(get_template(), $theme, true) : get_template() === $theme; } /** * Cleans up session data - cron callback. * * @since 1.0.0 */ function evf_cleanup_session_data() { $session_class = apply_filters('everest_forms_session_handler', 'EVF_Session_Handler'); $session = new $session_class(); if (is_callable(array($session, 'cleanup_sessions'))) { $session->cleanup_sessions(); } } add_action('everest_forms_cleanup_sessions', 'evf_cleanup_session_data'); /** * Return the html selected attribute if stringified $value is found in array of stringified $options * or if stringified $value is the same as scalar stringified $options. * * @param string|int $value Value to find within options. * @param string|int|array $options Options to go through when looking for value. * @return string */ function evf_selected($value, $options) { if (is_array($options)) { $options = array_map('strval', $options); return selected(in_array((string) $value, $options, true), true, false); } return selected($value, $options, false); } /** * Retrieve actual fields from a form. * * Non-posting elements such as section divider, page break, and HTML are * automatically excluded. Optionally a white list can be provided. * * @since 1.0.0 * * @param mixed $form Form data. * @param array $whitelist Whitelist args. * * @return mixed boolean or array */ function evf_get_form_fields($form = false, $whitelist = array()) { // Accept form (post) object or form ID. if (is_object($form)) { $form = json_decode($form->post_content); } elseif (is_numeric($form)) { $form = evf()->form->get( $form, array( 'content_only' => true, ) ); } if (! is_array($form) || empty($form['form_fields'])) { return false; } // White list of field types to allow. $allowed_form_fields = array( 'first-name', 'last-name', 'text', 'textarea', 'select', 'radio', 'checkbox', 'email', 'address', 'country', 'url', 'name', 'hidden', 'date', 'phone', 'number', 'file-upload', 'image-upload', 'payment-single', 'payment-multiple', 'payment-checkbox', 'payment-total', ); $allowed_form_fields = apply_filters('everest_forms_allowed_form_fields', $allowed_form_fields); $whitelist = ! empty($whitelist) ? $whitelist : $allowed_form_fields; $form_fields = $form['form_fields']; foreach ($form_fields as $id => $form_field) { if (! in_array($form_field['type'], $whitelist, true)) { unset($form_fields[$id]); } } return $form_fields; } /** * Sanitize a string, that can be a multiline. * If WP core `sanitize_textarea_field()` exists (after 4.7.0) - use it. * Otherwise - split onto separate lines, sanitize each one, merge again. * * @since 1.4.1 * * @param string $string Raw string to sanitize. * * @return string If empty var is passed, or not a string - return unmodified. Otherwise - sanitize. */ function evf_sanitize_textarea_field($string) { if (empty($string) || ! is_string($string)) { return $string; } if (function_exists('sanitize_textarea_field')) { $string = sanitize_textarea_field($string); } else { $string = implode("\n", array_map('sanitize_text_field', explode("\n", $string))); } return $string; } /** * Formats, sanitizes, and returns/echos HTML element ID, classes, attributes, * and data attributes. * * @param string $id Element ID. * @param array $class Class args. * @param array $datas Data args. * @param array $atts Attributes. * @param bool $echo True to echo else return. * * @return string */ function evf_html_attributes($id = '', $class = array(), $datas = array(), $atts = array(), $echo = false) { $id = trim($id); $parts = array(); $is_edit_entry = isset($_GET['edit-entry']) && ! sanitize_text_field(wp_unslash(empty($_GET['edit-entry']))) ? true : false; if (! empty($id)) { $id = sanitize_html_class($id); if (! empty($id)) { $parts[] = 'id="' . $id . '"'; } } if (! empty($class)) { $class = evf_sanitize_classes($class, true); if (! empty($class)) { // While editing hidden field should be visible. if ($is_edit_entry) { $class = str_replace('evf-field-hidden', '', $class); } $parts[] = 'class="' . $class . '"'; } } if (! empty($datas)) { foreach ($datas as $data => $val) { $parts[] = 'data-' . sanitize_html_class($data) . '="' . esc_attr($val) . '"'; } } if (! empty($atts)) { foreach ($atts as $att => $val) { if ('0' === $val || ! empty($val)) { if ($att[0] === '[') { //phpcs:ignore // Handle special case for bound attributes in AMP. $escaped_att = '[' . sanitize_html_class(trim($att, '[]')) . ']'; } else { $escaped_att = sanitize_html_class($att); } // While editing, fields must be visible even if they are hidden. if ('style' == $escaped_att && $is_edit_entry) { $parts[] = 'style = "display: block"'; } else { $parts[] = $escaped_att . '="' . esc_attr($val) . '"'; } } } } $output = implode(' ', $parts); if ($echo) { echo esc_html(trim($output)); } else { return trim($output); } } /** * Sanitize string of CSS classes. * * @param array|string $classes Class names. * @param bool $convert True will convert strings to array and vice versa. * * @return string|array */ function evf_sanitize_classes($classes, $convert = false) { $css = array(); $array = is_array($classes); if (! empty($classes)) { if (! $array) { $classes = explode(' ', trim($classes)); } foreach ($classes as $class) { $css[] = sanitize_html_class($class); } } if ($array) { return $convert ? implode(' ', $css) : $css; } else { return $convert ? $css : implode(' ', $css); } } /** * Performs json_decode and unslash. * * @since 1.0.0 * * @param string $data Data to decode. * * @return array|bool */ function evf_decode($data) { if (! $data || empty($data)) { return false; } return json_decode($data, true); } /** * Performs json_encode and wp_slash. * * @since 1.0.0 * * @param mixed $data Data to encode. * * @return string */ function evf_encode($data = false) { if (empty($data)) { return false; } return wp_slash(wp_json_encode($data)); } /** * Crypto rand secure. * * @param int $min Min value. * @param int $max Max value. * * @return mixed */ function evf_crypto_rand_secure($min, $max) { $range = $max - $min; if ($range < 1) { return $min; } // not so random... $log = ceil(log($range, 2)); $bytes = (int) ($log / 8) + 1; // Length in bytes. $bits = (int) $log + 1; // Length in bits. $filter = (int) (1 << $bits) - 1; // Set all lower bits to 1. do { $rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes))); $rnd = $rnd & $filter; // Discard irrelevant bits. } while ($rnd > $range); return $min + $rnd; } /** * Generate random string. * * @param int $length Length of string. * * @return string */ function evf_get_random_string($length = 10) { $string = ''; $code_alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $code_alphabet .= 'abcdefghijklmnopqrstuvwxyz'; $code_alphabet .= '0123456789'; $max = strlen($code_alphabet); for ($i = 0; $i < $length; $i++) { $string .= $code_alphabet[evf_crypto_rand_secure(0, $max - 1)]; } return $string; } /** * Get all forms. * * @param bool $skip_disabled_entries True to skip disabled entries. * @param bool $check_disable_storing_entry_info Check disable storing entry. * @return array of form data. */ function evf_get_all_forms( $skip_disabled_entries = false, $check_disable_storing_entry_info = true, $is_zapier_request = false ) { if ( is_null( evf()->form ) ) { return array(); } $forms = array(); $form_ids = wp_parse_id_list( evf()->form->get_multiple( array( 'fields' => 'ids', 'status' => 'publish', 'order' => 'DESC', 'numberposts' => -1, // @codingStandardsIgnoreLine ) ) ); if (! empty($form_ids)) { foreach ($form_ids as $form_id) { $form = evf()->form->get($form_id); $entries = evf_get_entries_ids($form_id); $form_data = ! empty($form->post_content) ? evf_decode($form->post_content) : ''; if (! $form || ($skip_disabled_entries && count($entries) < 1) && (isset($form_data['settings']['disabled_entries']) && '1' === $form_data['settings']['disabled_entries'])) { if (! $form || $check_disable_storing_entry_info) { continue; } } // Check permissions for forms with viewable. if ( current_user_can( 'everest_forms_view_form_entries', $form_id ) || $is_zapier_request ) { $forms[ $form_id ] = $form->post_title; } } } return $forms; } /** * Get random meta-key for field option. * * @param array $field Field data array. * @return string */ function evf_get_meta_key_field_option($field) { if (isset($field['type']) && isset($field['label'])) { switch ($field['type']) { case 'select': $field['label'] = 'Dropdown'; break; case 'radio': $field['label'] = 'Multiple Choice'; break; case 'checkbox': $field['label'] = 'Checkboxes'; break; } } 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. } /** * Get current user IP Address. * * @return string */ function evf_get_ip_address() { if (isset($_SERVER['HTTP_X_REAL_IP'])) { // WPCS: input var ok, CSRF ok. return sanitize_text_field(wp_unslash($_SERVER['HTTP_X_REAL_IP'])); // WPCS: input var ok, CSRF ok. } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { // WPCS: input var ok, CSRF ok. // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2 // Make sure we always only send through the first IP in the list which should always be the client IP. 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. } elseif (isset($_SERVER['REMOTE_ADDR'])) { // @codingStandardsIgnoreLine return sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR'])); // @codingStandardsIgnoreLine } return ''; } /** * Get User Agent browser and OS type * * @since 1.1.0 * @return array */ function evf_get_browser() { $u_agent = ! empty($_SERVER['HTTP_USER_AGENT']) ? sanitize_text_field(sanitize_text_field(wp_unslash($_SERVER['HTTP_USER_AGENT']))) : ''; $bname = 'Unknown'; $platform = 'Unknown'; $version = ''; // First get the platform. if (preg_match('/linux/i', $u_agent)) { $platform = 'Linux'; } elseif (preg_match('/macintosh|mac os x/i', $u_agent)) { $platform = 'MAC OS'; } elseif (preg_match('/windows|win32/i', $u_agent)) { $platform = 'Windows'; } // Next get the name of the useragent yes seperately and for good reason. if (preg_match('/MSIE/i', $u_agent) && ! preg_match('/Opera/i', $u_agent)) { $bname = 'Internet Explorer'; $ub = 'MSIE'; } elseif (preg_match('/Trident/i', $u_agent)) { // this condition is for IE11. $bname = 'Internet Explorer'; $ub = 'rv'; } elseif (preg_match('/Firefox/i', $u_agent)) { $bname = 'Mozilla Firefox'; $ub = 'Firefox'; } elseif (preg_match('/Chrome/i', $u_agent)) { $bname = 'Google Chrome'; $ub = 'Chrome'; } elseif (preg_match('/Safari/i', $u_agent)) { $bname = 'Apple Safari'; $ub = 'Safari'; } elseif (preg_match('/Opera/i', $u_agent)) { $bname = 'Opera'; $ub = 'Opera'; } elseif (preg_match('/Netscape/i', $u_agent)) { $bname = 'Netscape'; $ub = 'Netscape'; } // Finally get the correct version number. // Added "|:". $known = array('Version', $ub, 'other'); $pattern = '#(?<browser>' . join('|', $known) . ')[/|: ]+(?<version>[0-9.|a-zA-Z.]*)#'; if (! preg_match_all($pattern, $u_agent, $matches)) { // @codingStandardsIgnoreLine // We have no matching number just continue. } // See how many we have. $i = count($matches['browser']); if (1 !== $i) { // we will have two since we are not using 'other' argument yet. // see if version is before or after the name. if (strripos($u_agent, 'Version') < strripos($u_agent, $ub)) { $version = $matches['version'][0]; } else { $version = $matches['version'][1]; } } else { $version = $matches['version'][0]; } // Check if we have a number. if (null === $version || '' === $version) { $version = ''; } return array( 'userAgent' => $u_agent, 'name' => $bname, 'version' => $version, 'platform' => $platform, 'pattern' => $pattern, ); } /** * Get the certain date of a specified day in a specified format. * * @since 1.1.0 * * @param string $period Supported values: start, end. * @param string $timestamp Default is the current timestamp, if left empty. * @param string $format Default is a MySQL format. * * @return string */ function evf_get_day_period_date($period, $timestamp = '', $format = 'Y-m-d H:i:s') { $date = ''; if (empty($timestamp)) { $timestamp = time(); } switch ($period) { case 'start_of_day': $date = date($format, strtotime('today', $timestamp)); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date break; case 'end_of_day': $date = date($format, strtotime('tomorrow', $timestamp) - 1); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date break; } return $date; } /** * Get field label by meta key * * @param int $form_id Form ID. * @param string $meta_key Field's meta key. * @param array $fields Entry Field Data. * * @return string|false True if field label exists in form. */ function evf_get_form_data_by_meta_key($form_id, $meta_key, $fields = array()) { $get_post = get_post($form_id); $post_content = json_decode($get_post->post_content, true); $form_fields = isset($post_content['form_fields']) ? $post_content['form_fields'] : array(); if (! empty($form_fields)) { foreach ($form_fields as $field) { if (isset($field['meta-key']) && $meta_key === $field['meta-key']) { return $field['label']; } } } if (! empty($fields)) { foreach ($fields as $field) { if (isset($field->meta_key) && $meta_key === $field->meta_key) { return isset($field->name) ? $field->name : $field->value->name; } } } return false; } /** * Get field type by meta key * * @param int $form_id Form ID. * @param string $meta_key Field's meta key. * * @return string|false True if field type exists in form. */ function evf_get_field_type_by_meta_key($form_id, $meta_key) { $get_post = get_post($form_id); $post_content = json_decode($get_post->post_content, true); $form_fields = isset($post_content['form_fields']) ? $post_content['form_fields'] : array(); if (! empty($form_fields)) { foreach ($form_fields as $field) { if (isset($field['meta-key']) && $meta_key === $field['meta-key']) { return $field['type']; } } } return false; } /** * Get all the email fields of a Form. * * @param int $form_id Form ID. */ function evf_get_all_email_fields_by_form_id($form_id) { $user_emails = array(); $form_obj = evf()->form->get($form_id); $form_data = ! empty($form_obj->post_content) ? evf_decode($form_obj->post_content) : ''; if (! empty($form_data['form_fields'])) { foreach ($form_data['form_fields'] as $form_fields) { if ('email' === $form_fields['type']) { $user_emails[$form_fields['meta-key']] = $form_fields['label']; } } } return $user_emails; } /** * Get all the field's meta-key label pair. * * @param int $form_id Form ID. * @return array */ function evf_get_all_form_fields_by_form_id($form_id) { $data = array(); $form_obj = evf()->form->get($form_id); $form_data = ! empty($form_obj->post_content) ? evf_decode($form_obj->post_content) : ''; if (! empty($form_data['form_fields'])) { foreach ($form_data['form_fields'] as $form_fields) { if (isset($form_fields['meta-key'], $form_fields['label'])) { $data[$form_fields['meta-key']] = $form_fields['label']; } } } return $data; } /** * Check if the string JSON. * * @param string $string String to check. * @return bool */ function evf_isJson($string) { json_decode($string); return (json_last_error() == JSON_ERROR_NONE); // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison } /** * Checks whether the content passed contains a specific short code. * * @since 1.1.4 * @param string $tag Shortcode tag to check. * @return bool */ function evf_post_content_has_shortcode($tag = '') { global $post; return is_singular() && is_a($post, 'WP_Post') && has_shortcode($post->post_content, $tag); } /** * Convert a file size provided, such as "2M", to bytes. * * @since 1.2.0 * @link http://stackoverflow.com/a/22500394 * * @param string $size Size to convert to bytes. * * @return int */ function evf_size_to_bytes($size) { if (is_numeric($size)) { return $size; } $suffix = substr($size, -1); $value = substr($size, 0, -1); // @codingStandardsIgnoreStart switch (strtoupper($suffix)) { case 'P': $value *= 1024; case 'T': $value *= 1024; case 'G': $value *= 1024; case 'M': $value *= 1024; case 'K': $value *= 1024; break; } // @codingStandardsIgnoreEnd return $value; } /** * Convert bytes to megabytes (or in some cases KB). * * @since 1.2.0 * * @param int $bytes Bytes to convert to a readable format. * * @return string */ function evf_size_to_megabytes($bytes) { if ($bytes < 1048676) { return number_format($bytes / 1024, 1) . ' KB'; } else { return round((float) number_format($bytes / 1048576, 1)) . ' MB'; } } /** * Convert a file size provided, such as "2M", to bytes. * * @since 1.2.0 * @link http://stackoverflow.com/a/22500394 * * @param bool $bytes Whether to convert Bytes to a readable format. * @return mixed */ function evf_max_upload($bytes = false) { $max = wp_max_upload_size(); if ($bytes) { return $max; } else { return evf_size_to_megabytes($max); } } /** * Get the required label text, with a filter. * * @since 1.2.0 * @return string */ function evf_get_required_label() { return apply_filters('everest_forms_required_label', esc_html__('This field is required.', 'everest-forms')); } /** * Get a PRO license plan. * * @since 1.2.0 * @return bool|string Plan on success, false on failure. */ function evf_get_license_plan() { $license_key = get_option('everest-forms-pro_license_key'); if (! function_exists('is_plugin_active')) { include_once ABSPATH . 'wp-admin/includes/plugin.php'; } if ($license_key && is_plugin_active('everest-forms-pro/everest-forms-pro.php')) { $license_data = get_transient('evf_pro_license_plan'); if (false === $license_data) { $license_response = EVF_Updater_Key_API::check(array('license' => $license_key)); if (! $license_response) { $license_plan = get_option('evf_saved_license_plan', 'unknown'); return evf_handle_license_plan_compatibility($license_plan); } $license_data = json_decode($license_response); if (! empty($license_data->item_name)) { $license_data->item_plan = strtolower($license_data->item_name); $license_data->item_plan = str_replace( array('everest forms', 'lifetime', '-lifetime'), '', $license_data->item_plan ); $license_data->item_plan = trim($license_data->item_plan); update_option('evf_saved_license_plan', $license_data->item_plan); set_transient('evf_pro_license_plan', $license_data, WEEK_IN_SECONDS); } } $license_plan = isset($license_data->item_plan) ? $license_data->item_plan : get_option('evf_saved_license_plan', 'unknown'); return evf_handle_license_plan_compatibility($license_plan); } return false; } add_action('admin_init', 'evf_handle_force_update'); if (! function_exists('evf_handle_force_update')) { /** * Delete our plugins addon updater transient during force update. */ function evf_handle_force_update() { global $pagenow; if ('update-core.php' === $pagenow && (isset($_GET['force-check'])) && ('1' === $_GET['force-check'])) { delete_transient('evf_pro_license_plan'); } } } /** To handle the backward compatibility for those user who is still using the plus and professional plan license key. * * @since 3.0.0 * @param $license_plan License plan. */ function evf_handle_license_plan_compatibility($license_plan) { $license_plan = ('plus' === $license_plan || 'professional' === $license_plan || 'unknown' === $license_plan) ? 'personal' : $license_plan; return $license_plan; } /** * Decode special characters, both alpha- (<) and numeric-based ('). * * @since 1.2.0 * * @param string $string Raw string to decode. * * @return string */ function evf_decode_string($string) { if (! is_string($string)) { return $string; } return wp_kses_decode_entities(html_entity_decode($string, ENT_QUOTES)); } add_filter('everest_forms_email_message', 'evf_decode_string'); /** * Get Countries. * * @since 1.2.0 * @return array */ function evf_get_countries() { $countries = array( 'AF' => esc_html__('Afghanistan', 'everest-forms'), 'AX' => esc_html__('Åland Islands', 'everest-forms'), 'AL' => esc_html__('Albania', 'everest-forms'), 'DZ' => esc_html__('Algeria', 'everest-forms'), 'AS' => esc_html__('American Samoa', 'everest-forms'), 'AD' => esc_html__('Andorra', 'everest-forms'), 'AO' => esc_html__('Angola', 'everest-forms'), 'AI' => esc_html__('Anguilla', 'everest-forms'), 'AQ' => esc_html__('Antarctica', 'everest-forms'), 'AG' => esc_html__('Antigua and Barbuda', 'everest-forms'), 'AR' => esc_html__('Argentina', 'everest-forms'), 'AM' => esc_html__('Armenia', 'everest-forms'), 'AW' => esc_html__('Aruba', 'everest-forms'), 'AU' => esc_html__('Australia', 'everest-forms'), 'AT' => esc_html__('Austria', 'everest-forms'), 'AZ' => esc_html__('Azerbaijan', 'everest-forms'), 'BS' => esc_html__('Bahamas', 'everest-forms'), 'BH' => esc_html__('Bahrain', 'everest-forms'), 'BD' => esc_html__('Bangladesh', 'everest-forms'), 'BB' => esc_html__('Barbados', 'everest-forms'), 'BY' => esc_html__('Belarus', 'everest-forms'), 'BE' => esc_html__('Belgium', 'everest-forms'), 'PW' => esc_html__('Belau', 'everest-forms'), 'BZ' => esc_html__('Belize', 'everest-forms'), 'BJ' => esc_html__('Benin', 'everest-forms'), 'BM' => esc_html__('Bermuda', 'everest-forms'), 'BT' => esc_html__('Bhutan', 'everest-forms'), 'BO' => esc_html__('Bolivia', 'everest-forms'), 'BQ' => esc_html__('Bonaire, Saint Eustatius and Saba', 'everest-forms'), 'BA' => esc_html__('Bosnia and Herzegovina', 'everest-forms'), 'BW' => esc_html__('Botswana', 'everest-forms'), 'BV' => esc_html__('Bouvet Island', 'everest-forms'), 'BR' => esc_html__('Brazil', 'everest-forms'), 'IO' => esc_html__('British Indian Ocean Territory', 'everest-forms'), 'BN' => esc_html__('Brunei', 'everest-forms'), 'BG' => esc_html__('Bulgaria', 'everest-forms'), 'BF' => esc_html__('Burkina Faso', 'everest-forms'), 'BI' => esc_html__('Burundi', 'everest-forms'), 'KH' => esc_html__('Cambodia', 'everest-forms'), 'CM' => esc_html__('Cameroon', 'everest-forms'), 'CA' => esc_html__('Canada', 'everest-forms'), 'CV' => esc_html__('Cape Verde', 'everest-forms'), 'KY' => esc_html__('Cayman Islands', 'everest-forms'), 'CF' => esc_html__('Central African Republic', 'everest-forms'), 'TD' => esc_html__('Chad', 'everest-forms'), 'CL' => esc_html__('Chile', 'everest-forms'), 'CN' => esc_html__('China', 'everest-forms'), 'CX' => esc_html__('Christmas Island', 'everest-forms'), 'CC' => esc_html__('Cocos (Keeling) Islands', 'everest-forms'), 'CO' => esc_html__('Colombia', 'everest-forms'), 'KM' => esc_html__('Comoros', 'everest-forms'), 'CG' => esc_html__('Congo (Brazzaville)', 'everest-forms'), 'CD' => esc_html__('Congo (Kinshasa)', 'everest-forms'), 'CK' => esc_html__('Cook Islands', 'everest-forms'), 'CR' => esc_html__('Costa Rica', 'everest-forms'), 'HR' => esc_html__('Croatia', 'everest-forms'), 'CU' => esc_html__('Cuba', 'everest-forms'), 'CW' => esc_html__('Curaçao', 'everest-forms'), 'CY' => esc_html__('Cyprus', 'everest-forms'), 'CZ' => esc_html__('Czech Republic', 'everest-forms'), 'DK' => esc_html__('Denmark', 'everest-forms'), 'DJ' => esc_html__('Djibouti', 'everest-forms'), 'DM' => esc_html__('Dominica', 'everest-forms'), 'DO' => esc_html__('Dominican Republic', 'everest-forms'), 'EC' => esc_html__('Ecuador', 'everest-forms'), 'EG' => esc_html__('Egypt', 'everest-forms'), 'SV' => esc_html__('El Salvador', 'everest-forms'), 'GQ' => esc_html__('Equatorial Guinea', 'everest-forms'), 'ER' => esc_html__('Eritrea', 'everest-forms'), 'EE' => esc_html__('Estonia', 'everest-forms'), 'ET' => esc_html__('Ethiopia', 'everest-forms'), 'FK' => esc_html__('Falkland Islands', 'everest-forms'), 'FO' => esc_html__('Faroe Islands', 'everest-forms'), 'FJ' => esc_html__('Fiji', 'everest-forms'), 'FI' => esc_html__('Finland', 'everest-forms'), 'FR' => esc_html__('France', 'everest-forms'), 'GF' => esc_html__('French Guiana', 'everest-forms'), 'PF' => esc_html__('French Polynesia', 'everest-forms'), 'TF' => esc_html__('French Southern Territories', 'everest-forms'), 'GA' => esc_html__('Gabon', 'everest-forms'), 'GM' => esc_html__('Gambia', 'everest-forms'), 'GE' => esc_html__('Georgia', 'everest-forms'), 'DE' => esc_html__('Germany', 'everest-forms'), 'GH' => esc_html__('Ghana', 'everest-forms'), 'GI' => esc_html__('Gibraltar', 'everest-forms'), 'GR' => esc_html__('Greece', 'everest-forms'), 'GL' => esc_html__('Greenland', 'everest-forms'), 'GD' => esc_html__('Grenada', 'everest-forms'), 'GP' => esc_html__('Guadeloupe', 'everest-forms'), 'GU' => esc_html__('Guam', 'everest-forms'), 'GT' => esc_html__('Guatemala', 'everest-forms'), 'GG' => esc_html__('Guernsey', 'everest-forms'), 'GN' => esc_html__('Guinea', 'everest-forms'), 'GW' => esc_html__('Guinea-Bissau', 'everest-forms'), 'GY' => esc_html__('Guyana', 'everest-forms'), 'HT' => esc_html__('Haiti', 'everest-forms'), 'HM' => esc_html__('Heard Island and McDonald Islands', 'everest-forms'), 'HN' => esc_html__('Honduras', 'everest-forms'), 'HK' => esc_html__('Hong Kong', 'everest-forms'), 'HU' => esc_html__('Hungary', 'everest-forms'), 'IS' => esc_html__('Iceland', 'everest-forms'), 'IN' => esc_html__('India', 'everest-forms'), 'ID' => esc_html__('Indonesia', 'everest-forms'), 'IR' => esc_html__('Iran', 'everest-forms'), 'IQ' => esc_html__('Iraq', 'everest-forms'), 'IE' => esc_html__('Ireland', 'everest-forms'), 'IM' => esc_html__('Isle of Man', 'everest-forms'), 'IL' => esc_html__('Israel', 'everest-forms'), 'IT' => esc_html__('Italy', 'everest-forms'), 'CI' => esc_html__('Ivory Coast', 'everest-forms'), 'JM' => esc_html__('Jamaica', 'everest-forms'), 'JP' => esc_html__('Japan', 'everest-forms'), 'JE' => esc_html__('Jersey', 'everest-forms'), 'JO' => esc_html__('Jordan', 'everest-forms'), 'KZ' => esc_html__('Kazakhstan', 'everest-forms'), 'KE' => esc_html__('Kenya', 'everest-forms'), 'KI' => esc_html__('Kiribati', 'everest-forms'), 'KW' => esc_html__('Kuwait', 'everest-forms'), 'XK' => esc_html__('Kosovo', 'everest-forms'), 'KG' => esc_html__('Kyrgyzstan', 'everest-forms'), 'LA' => esc_html__('Laos', 'everest-forms'), 'LV' => esc_html__('Latvia', 'everest-forms'), 'LB' => esc_html__('Lebanon', 'everest-forms'), 'LS' => esc_html__('Lesotho', 'everest-forms'), 'LR' => esc_html__('Liberia', 'everest-forms'), 'LY' => esc_html__('Libya', 'everest-forms'), 'LI' => esc_html__('Liechtenstein', 'everest-forms'), 'LT' => esc_html__('Lithuania', 'everest-forms'), 'LU' => esc_html__('Luxembourg', 'everest-forms'), 'MO' => esc_html__('Macao', 'everest-forms'), 'MK' => esc_html__('North Macedonia', 'everest-forms'), 'MG' => esc_html__('Madagascar', 'everest-forms'), 'MW' => esc_html__('Malawi', 'everest-forms'), 'MY' => esc_html__('Malaysia', 'everest-forms'), 'MV' => esc_html__('Maldives', 'everest-forms'), 'ML' => esc_html__('Mali', 'everest-forms'), 'MT' => esc_html__('Malta', 'everest-forms'), 'MH' => esc_html__('Marshall Islands', 'everest-forms'), 'MQ' => esc_html__('Martinique', 'everest-forms'), 'MR' => esc_html__('Mauritania', 'everest-forms'), 'MU' => esc_html__('Mauritius', 'everest-forms'), 'YT' => esc_html__('Mayotte', 'everest-forms'), 'MX' => esc_html__('Mexico', 'everest-forms'), 'FM' => esc_html__('Micronesia', 'everest-forms'), 'MD' => esc_html__('Moldova', 'everest-forms'), 'MC' => esc_html__('Monaco', 'everest-forms'), 'MN' => esc_html__('Mongolia', 'everest-forms'), 'ME' => esc_html__('Montenegro', 'everest-forms'), 'MS' => esc_html__('Montserrat', 'everest-forms'), 'MA' => esc_html__('Morocco', 'everest-forms'), 'MZ' => esc_html__('Mozambique', 'everest-forms'), 'MM' => esc_html__('Myanmar', 'everest-forms'), 'NA' => esc_html__('Namibia', 'everest-forms'), 'NR' => esc_html__('Nauru', 'everest-forms'), 'NP' => esc_html__('Nepal', 'everest-forms'), 'NL' => esc_html__('Netherlands', 'everest-forms'), 'NC' => esc_html__('New Caledonia', 'everest-forms'), 'NZ' => esc_html__('New Zealand', 'everest-forms'), 'NI' => esc_html__('Nicaragua', 'everest-forms'), 'NE' => esc_html__('Niger', 'everest-forms'), 'NG' => esc_html__('Nigeria', 'everest-forms'), 'NU' => esc_html__('Niue', 'everest-forms'), 'NF' => esc_html__('Norfolk Island', 'everest-forms'), 'MP' => esc_html__('Northern Mariana Islands', 'everest-forms'), 'KP' => esc_html__('North Korea', 'everest-forms'), 'NO' => esc_html__('Norway', 'everest-forms'), 'OM' => esc_html__('Oman', 'everest-forms'), 'PK' => esc_html__('Pakistan', 'everest-forms'), 'PS' => esc_html__('Palestinian Territory', 'everest-forms'), 'PA' => esc_html__('Panama', 'everest-forms'), 'PG' => esc_html__('Papua New Guinea', 'everest-forms'), 'PY' => esc_html__('Paraguay', 'everest-forms'), 'PE' => esc_html__('Peru', 'everest-forms'), 'PH' => esc_html__('Philippines', 'everest-forms'), 'PN' => esc_html__('Pitcairn', 'everest-forms'), 'PL' => esc_html__('Poland', 'everest-forms'), 'PT' => esc_html__('Portugal', 'everest-forms'), 'PR' => esc_html__('Puerto Rico', 'everest-forms'), 'QA' => esc_html__('Qatar', 'everest-forms'), 'RE' => esc_html__('Reunion', 'everest-forms'), 'RO' => esc_html__('Romania', 'everest-forms'), 'RU' => esc_html__('Russia', 'everest-forms'), 'RW' => esc_html__('Rwanda', 'everest-forms'), 'BL' => esc_html__('Saint Barthélemy', 'everest-forms'), 'SH' => esc_html__('Saint Helena', 'everest-forms'), 'KN' => esc_html__('Saint Kitts and Nevis', 'everest-forms'), 'LC' => esc_html__('Saint Lucia', 'everest-forms'), 'MF' => esc_html__('Saint Martin (French part)', 'everest-forms'), 'SX' => esc_html__('Saint Martin (Dutch part)', 'everest-forms'), 'PM' => esc_html__('Saint Pierre and Miquelon', 'everest-forms'), 'VC' => esc_html__('Saint Vincent and the Grenadines', 'everest-forms'), 'SM' => esc_html__('San Marino', 'everest-forms'), 'ST' => esc_html__('São Tomé and Príncipe', 'everest-forms'), 'SA' => esc_html__('Saudi Arabia', 'everest-forms'), 'SN' => esc_html__('Senegal', 'everest-forms'), 'RS' => esc_html__('Serbia', 'everest-forms'), 'SC' => esc_html__('Seychelles', 'everest-forms'), 'SL' => esc_html__('Sierra Leone', 'everest-forms'), 'SG' => esc_html__('Singapore', 'everest-forms'), 'SK' => esc_html__('Slovakia', 'everest-forms'), 'SI' => esc_html__('Slovenia', 'everest-forms'), 'SB' => esc_html__('Solomon Islands', 'everest-forms'), 'SO' => esc_html__('Somalia', 'everest-forms'), 'ZA' => esc_html__('South Africa', 'everest-forms'), 'GS' => esc_html__('South Georgia/Sandwich Islands', 'everest-forms'), 'KR' => esc_html__('South Korea', 'everest-forms'), 'SS' => esc_html__('South Sudan', 'everest-forms'), 'ES' => esc_html__('Spain', 'everest-forms'), 'LK' => esc_html__('Sri Lanka', 'everest-forms'), 'SD' => esc_html__('Sudan', 'everest-forms'), 'SR' => esc_html__('Suriname', 'everest-forms'), 'SJ' => esc_html__('Svalbard and Jan Mayen', 'everest-forms'), 'SZ' => esc_html__('Swaziland', 'everest-forms'), 'SE' => esc_html__('Sweden', 'everest-forms'), 'CH' => esc_html__('Switzerland', 'everest-forms'), 'SY' => esc_html__('Syria', 'everest-forms'), 'TW' => esc_html__('Taiwan', 'everest-forms'), 'TJ' => esc_html__('Tajikistan', 'everest-forms'), 'TZ' => esc_html__('Tanzania', 'everest-forms'), 'TH' => esc_html__('Thailand', 'everest-forms'), 'TL' => esc_html__('Timor-Leste', 'everest-forms'), 'TG' => esc_html__('Togo', 'everest-forms'), 'TK' => esc_html__('Tokelau', 'everest-forms'), 'TO' => esc_html__('Tonga', 'everest-forms'), 'TT' => esc_html__('Trinidad and Tobago', 'everest-forms'), 'TN' => esc_html__('Tunisia', 'everest-forms'), 'TR' => esc_html__('Turkey', 'everest-forms'), 'TM' => esc_html__('Turkmenistan', 'everest-forms'), 'TC' => esc_html__('Turks and Caicos Islands', 'everest-forms'), 'TV' => esc_html__('Tuvalu', 'everest-forms'), 'UG' => esc_html__('Uganda', 'everest-forms'), 'UA' => esc_html__('Ukraine', 'everest-forms'), 'AE' => esc_html__('United Arab Emirates', 'everest-forms'), 'GB' => esc_html__('United Kingdom (UK)', 'everest-forms'), 'US' => esc_html__('United States (US)', 'everest-forms'), 'UM' => esc_html__('United States (US) Minor Outlying Islands', 'everest-forms'), 'UY' => esc_html__('Uruguay', 'everest-forms'), 'UZ' => esc_html__('Uzbekistan', 'everest-forms'), 'VU' => esc_html__('Vanuatu', 'everest-forms'), 'VA' => esc_html__('Vatican', 'everest-forms'), 'VE' => esc_html__('Venezuela', 'everest-forms'), 'VN' => esc_html__('Vietnam', 'everest-forms'), 'VG' => esc_html__('Virgin Islands (British)', 'everest-forms'), 'VI' => esc_html__('Virgin Islands (US)', 'everest-forms'), 'WF' => esc_html__('Wallis and Futuna', 'everest-forms'), 'EH' => esc_html__('Western Sahara', 'everest-forms'), 'WS' => esc_html__('Samoa', 'everest-forms'), 'YE' => esc_html__('Yemen', 'everest-forms'), 'ZM' => esc_html__('Zambia', 'everest-forms'), 'ZW' => esc_html__('Zimbabwe', 'everest-forms'), ); return (array) apply_filters('everest_forms_countries', $countries); } /** * Get U.S. States. * * @since 1.7.0 * @return array */ function evf_get_states() { $states = array( 'AF' => array(), 'AL' => array( // Albanian states. 'AL-01' => __('Berat', 'everest-forms'), 'AL-09' => __('Dibër', 'everest-forms'), 'AL-02' => __('Durrës', 'everest-forms'), 'AL-03' => __('Elbasan', 'everest-forms'), 'AL-04' => __('Fier', 'everest-forms'), 'AL-05' => __('Gjirokastër', 'everest-forms'), 'AL-06' => __('Korçë', 'everest-forms'), 'AL-07' => __('Kukës', 'everest-forms'), 'AL-08' => __('Lezhë', 'everest-forms'), 'AL-10' => __('Shkodër', 'everest-forms'), 'AL-11' => __('Tirana', 'everest-forms'), 'AL-12' => __('Vlorë', 'everest-forms'), ), 'AO' => array( // Angolan states. 'BGO' => __('Bengo', 'everest-forms'), 'BLU' => __('Benguela', 'everest-forms'), 'BIE' => __('Bié', 'everest-forms'), 'CAB' => __('Cabinda', 'everest-forms'), 'CNN' => __('Cunene', 'everest-forms'), 'HUA' => __('Huambo', 'everest-forms'), 'HUI' => __('Huíla', 'everest-forms'), 'CCU' => __('Kuando Kubango', 'everest-forms'), 'CNO' => __('Kwanza-Norte', 'everest-forms'), 'CUS' => __('Kwanza-Sul', 'everest-forms'), 'LUA' => __('Luanda', 'everest-forms'), 'LNO' => __('Lunda-Norte', 'everest-forms'), 'LSU' => __('Lunda-Sul', 'everest-forms'), 'MAL' => __('Malanje', 'everest-forms'), 'MOX' => __('Moxico', 'everest-forms'), 'NAM' => __('Namibe', 'everest-forms'), 'UIG' => __('Uíge', 'everest-forms'), 'ZAI' => __('Zaire', 'everest-forms'), ), 'AR' => array( // Argentinian provinces. 'C' => __('Ciudad Autónoma de Buenos Aires', 'everest-forms'), 'B' => __('Buenos Aires', 'everest-forms'), 'K' => __('Catamarca', 'everest-forms'), 'H' => __('Chaco', 'everest-forms'), 'U' => __('Chubut', 'everest-forms'), 'X' => __('Córdoba', 'everest-forms'), 'W' => __('Corrientes', 'everest-forms'), 'E' => __('Entre Ríos', 'everest-forms'), 'P' => __('Formosa', 'everest-forms'), 'Y' => __('Jujuy', 'everest-forms'), 'L' => __('La Pampa', 'everest-forms'), 'F' => __('La Rioja', 'everest-forms'), 'M' => __('Mendoza', 'everest-forms'), 'N' => __('Misiones', 'everest-forms'), 'Q' => __('Neuquén', 'everest-forms'), 'R' => __('Río Negro', 'everest-forms'), 'A' => __('Salta', 'everest-forms'), 'J' => __('San Juan', 'everest-forms'), 'D' => __('San Luis', 'everest-forms'), 'Z' => __('Santa Cruz', 'everest-forms'), 'S' => __('Santa Fe', 'everest-forms'), 'G' => __('Santiago del Estero', 'everest-forms'), 'V' => __('Tierra del Fuego', 'everest-forms'), 'T' => __('Tucumán', 'everest-forms'), ), 'AT' => array(), 'AU' => array( // Australian states. 'ACT' => __('Australian Capital Territory', 'everest-forms'), 'NSW' => __('New South Wales', 'everest-forms'), 'NT' => __('Northern Territory', 'everest-forms'), 'QLD' => __('Queensland', 'everest-forms'), 'SA' => __('South Australia', 'everest-forms'), 'TAS' => __('Tasmania', 'everest-forms'), 'VIC' => __('Victoria', 'everest-forms'), 'WA' => __('Western Australia', 'everest-forms'), ), 'AX' => array(), 'BD' => array( // Bangladeshi districts. 'BD-05' => __('Bagerhat', 'everest-forms'), 'BD-01' => __('Bandarban', 'everest-forms'), 'BD-02' => __('Barguna', 'everest-forms'), 'BD-06' => __('Barishal', 'everest-forms'), 'BD-07' => __('Bhola', 'everest-forms'), 'BD-03' => __('Bogura', 'everest-forms'), 'BD-04' => __('Brahmanbaria', 'everest-forms'), 'BD-09' => __('Chandpur', 'everest-forms'), 'BD-10' => __('Chattogram', 'everest-forms'), 'BD-12' => __('Chuadanga', 'everest-forms'), 'BD-11' => __("Cox's Bazar", 'everest-forms'), 'BD-08' => __('Cumilla', 'everest-forms'), 'BD-13' => __('Dhaka', 'everest-forms'), 'BD-14' => __('Dinajpur', 'everest-forms'), 'BD-15' => __('Faridpur ', 'everest-forms'), 'BD-16' => __('Feni', 'everest-forms'), 'BD-19' => __('Gaibandha', 'everest-forms'), 'BD-18' => __('Gazipur', 'everest-forms'), 'BD-17' => __('Gopalganj', 'everest-forms'), 'BD-20' => __('Habiganj', 'everest-forms'), 'BD-21' => __('Jamalpur', 'everest-forms'), 'BD-22' => __('Jashore', 'everest-forms'), 'BD-25' => __('Jhalokati', 'everest-forms'), 'BD-23' => __('Jhenaidah', 'everest-forms'), 'BD-24' => __('Joypurhat', 'everest-forms'), 'BD-29' => __('Khagrachhari', 'everest-forms'), 'BD-27' => __('Khulna', 'everest-forms'), 'BD-26' => __('Kishoreganj', 'everest-forms'), 'BD-28' => __('Kurigram', 'everest-forms'), 'BD-30' => __('Kushtia', 'everest-forms'), 'BD-31' => __('Lakshmipur', 'everest-forms'), 'BD-32' => __('Lalmonirhat', 'everest-forms'), 'BD-36' => __('Madaripur', 'everest-forms'), 'BD-37' => __('Magura', 'everest-forms'), 'BD-33' => __('Manikganj ', 'everest-forms'), 'BD-39' => __('Meherpur', 'everest-forms'), 'BD-38' => __('Moulvibazar', 'everest-forms'), 'BD-35' => __('Munshiganj', 'everest-forms'), 'BD-34' => __('Mymensingh', 'everest-forms'), 'BD-48' => __('Naogaon', 'everest-forms'), 'BD-43' => __('Narail', 'everest-forms'), 'BD-40' => __('Narayanganj', 'everest-forms'), 'BD-42' => __('Narsingdi', 'everest-forms'), 'BD-44' => __('Natore', 'everest-forms'), 'BD-45' => __('Nawabganj', 'everest-forms'), 'BD-41' => __('Netrakona', 'everest-forms'), 'BD-46' => __('Nilphamari', 'everest-forms'), 'BD-47' => __('Noakhali', 'everest-forms'), 'BD-49' => __('Pabna', 'everest-forms'), 'BD-52' => __('Panchagarh', 'everest-forms'), 'BD-51' => __('Patuakhali', 'everest-forms'), 'BD-50' => __('Pirojpur', 'everest-forms'), 'BD-53' => __('Rajbari', 'everest-forms'), 'BD-54' => __('Rajshahi', 'everest-forms'), 'BD-56' => __('Rangamati', 'everest-forms'), 'BD-55' => __('Rangpur', 'everest-forms'), 'BD-58' => __('Satkhira', 'everest-forms'), 'BD-62' => __('Shariatpur', 'everest-forms'), 'BD-57' => __('Sherpur', 'everest-forms'), 'BD-59' => __('Sirajganj', 'everest-forms'), 'BD-61' => __('Sunamganj', 'everest-forms'), 'BD-60' => __('Sylhet', 'everest-forms'), 'BD-63' => __('Tangail', 'everest-forms'), 'BD-64' => __('Thakurgaon', 'everest-forms'), ), 'BE' => array(), 'BG' => array( // Bulgarian states. 'BG-01' => __('Blagoevgrad', 'everest-forms'), 'BG-02' => __('Burgas', 'everest-forms'), 'BG-08' => __('Dobrich', 'everest-forms'), 'BG-07' => __('Gabrovo', 'everest-forms'), 'BG-26' => __('Haskovo', 'everest-forms'), 'BG-09' => __('Kardzhali', 'everest-forms'), 'BG-10' => __('Kyustendil', 'everest-forms'), 'BG-11' => __('Lovech', 'everest-forms'), 'BG-12' => __('Montana', 'everest-forms'), 'BG-13' => __('Pazardzhik', 'everest-forms'), 'BG-14' => __('Pernik', 'everest-forms'), 'BG-15' => __('Pleven', 'everest-forms'), 'BG-16' => __('Plovdiv', 'everest-forms'), 'BG-17' => __('Razgrad', 'everest-forms'), 'BG-18' => __('Ruse', 'everest-forms'), 'BG-27' => __('Shumen', 'everest-forms'), 'BG-19' => __('Silistra', 'everest-forms'), 'BG-20' => __('Sliven', 'everest-forms'), 'BG-21' => __('Smolyan', 'everest-forms'), 'BG-23' => __('Sofia', 'everest-forms'), 'BG-22' => __('Sofia-Grad', 'everest-forms'), 'BG-24' => __('Stara Zagora', 'everest-forms'), 'BG-25' => __('Targovishte', 'everest-forms'), 'BG-03' => __('Varna', 'everest-forms'), 'BG-04' => __('Veliko Tarnovo', 'everest-forms'), 'BG-05' => __('Vidin', 'everest-forms'), 'BG-06' => __('Vratsa', 'everest-forms'), 'BG-28' => __('Yambol', 'everest-forms'), ), 'BH' => array(), 'BI' => array(), 'BJ' => array( // Beninese states. 'AL' => __('Alibori', 'everest-forms'), 'AK' => __('Atakora', 'everest-forms'), 'AQ' => __('Atlantique', 'everest-forms'), 'BO' => __('Borgou', 'everest-forms'), 'CO' => __('Collines', 'everest-forms'), 'KO' => __('Kouffo', 'everest-forms'), 'DO' => __('Donga', 'everest-forms'), 'LI' => __('Littoral', 'everest-forms'), 'MO' => __('Mono', 'everest-forms'), 'OU' => __('Ouémé', 'everest-forms'), 'PL' => __('Plateau', 'everest-forms'), 'ZO' => __('Zou', 'everest-forms'), ), 'BO' => array( // Bolivian states. 'BO-B' => __('Beni', 'everest-forms'), 'BO-H' => __('Chuquisaca', 'everest-forms'), 'BO-C' => __('Cochabamba', 'everest-forms'), 'BO-L' => __('La Paz', 'everest-forms'), 'BO-O' => __('Oruro', 'everest-forms'), 'BO-N' => __('Pando', 'everest-forms'), 'BO-P' => __('Potosí', 'everest-forms'), 'BO-S' => __('Santa Cruz', 'everest-forms'), 'BO-T' => __('Tarija', 'everest-forms'), ), 'BR' => array( // Brazilian states. 'AC' => __('Acre', 'everest-forms'), 'AL' => __('Alagoas', 'everest-forms'), 'AP' => __('Amapá', 'everest-forms'), 'AM' => __('Amazonas', 'everest-forms'), 'BA' => __('Bahia', 'everest-forms'), 'CE' => __('Ceará', 'everest-forms'), 'DF' => __('Distrito Federal', 'everest-forms'), 'ES' => __('Espírito Santo', 'everest-forms'), 'GO' => __('Goiás', 'everest-forms'), 'MA' => __('Maranhão', 'everest-forms'), 'MT' => __('Mato Grosso', 'everest-forms'), 'MS' => __('Mato Grosso do Sul', 'everest-forms'), 'MG' => __('Minas Gerais', 'everest-forms'), 'PA' => __('Pará', 'everest-forms'), 'PB' => __('Paraíba', 'everest-forms'), 'PR' => __('Paraná', 'everest-forms'), 'PE' => __('Pernambuco', 'everest-forms'), 'PI' => __('Piauí', 'everest-forms'), 'RJ' => __('Rio de Janeiro', 'everest-forms'), 'RN' => __('Rio Grande do Norte', 'everest-forms'), 'RS' => __('Rio Grande do Sul', 'everest-forms'), 'RO' => __('Rondônia', 'everest-forms'), 'RR' => __('Roraima', 'everest-forms'), 'SC' => __('Santa Catarina', 'everest-forms'), 'SP' => __('São Paulo', 'everest-forms'), 'SE' => __('Sergipe', 'everest-forms'), 'TO' => __('Tocantins', 'everest-forms'), ), 'CA' => array( // Canadian states. 'AB' => __('Alberta', 'everest-forms'), 'BC' => __('British Columbia', 'everest-forms'), 'MB' => __('Manitoba', 'everest-forms'), 'NB' => __('New Brunswick', 'everest-forms'), 'NL' => __('Newfoundland and Labrador', 'everest-forms'), 'NT' => __('Northwest Territories', 'everest-forms'), 'NS' => __('Nova Scotia', 'everest-forms'), 'NU' => __('Nunavut', 'everest-forms'), 'ON' => __('Ontario', 'everest-forms'), 'PE' => __('Prince Edward Island', 'everest-forms'), 'QC' => __('Quebec', 'everest-forms'), 'SK' => __('Saskatchewan', 'everest-forms'), 'YT' => __('Yukon Territory', 'everest-forms'), ), 'CH' => array( // Swiss cantons. 'AG' => __('Aargau', 'everest-forms'), 'AR' => __('Appenzell Ausserrhoden', 'everest-forms'), 'AI' => __('Appenzell Innerrhoden', 'everest-forms'), 'BL' => __('Basel-Landschaft', 'everest-forms'), 'BS' => __('Basel-Stadt', 'everest-forms'), 'BE' => __('Bern', 'everest-forms'), 'FR' => __('Fribourg', 'everest-forms'), 'GE' => __('Geneva', 'everest-forms'), 'GL' => __('Glarus', 'everest-forms'), 'GR' => __('Graubünden', 'everest-forms'), 'JU' => __('Jura', 'everest-forms'), 'LU' => __('Luzern', 'everest-forms'), 'NE' => __('Neuchâtel', 'everest-forms'), 'NW' => __('Nidwalden', 'everest-forms'), 'OW' => __('Obwalden', 'everest-forms'), 'SH' => __('Schaffhausen', 'everest-forms'), 'SZ' => __('Schwyz', 'everest-forms'), 'SO' => __('Solothurn', 'everest-forms'), 'SG' => __('St. Gallen', 'everest-forms'), 'TG' => __('Thurgau', 'everest-forms'), 'TI' => __('Ticino', 'everest-forms'), 'UR' => __('Uri', 'everest-forms'), 'VS' => __('Valais', 'everest-forms'), 'VD' => __('Vaud', 'everest-forms'), 'ZG' => __('Zug', 'everest-forms'), 'ZH' => __('Zürich', 'everest-forms'), ), 'CL' => array( // Chilean states. 'CL-AI' => __('Aisén del General Carlos Ibañez del Campo', 'everest-forms'), 'CL-AN' => __('Antofagasta', 'everest-forms'), 'CL-AP' => __('Arica y Parinacota', 'everest-forms'), 'CL-AR' => __('La Araucanía', 'everest-forms'), 'CL-AT' => __('Atacama', 'everest-forms'), 'CL-BI' => __('Biobío', 'everest-forms'), 'CL-CO' => __('Coquimbo', 'everest-forms'), 'CL-LI' => __('Libertador General Bernardo O\'Higgins', 'everest-forms'), 'CL-LL' => __('Los Lagos', 'everest-forms'), 'CL-LR' => __('Los Ríos', 'everest-forms'), 'CL-MA' => __('Magallanes', 'everest-forms'), 'CL-ML' => __('Maule', 'everest-forms'), 'CL-NB' => __('Ñuble', 'everest-forms'), 'CL-RM' => __('Región Metropolitana de Santiago', 'everest-forms'), 'CL-TA' => __('Tarapacá', 'everest-forms'), 'CL-VS' => __('Valparaíso', 'everest-forms'), ), 'CN' => array( // Chinese states. 'CN1' => __('Yunnan / 云南', 'everest-forms'), 'CN2' => __('Beijing / 北京', 'everest-forms'), 'CN3' => __('Tianjin / 天津', 'everest-forms'), 'CN4' => __('Hebei / 河北', 'everest-forms'), 'CN5' => __('Shanxi / 山西', 'everest-forms'), 'CN6' => __('Inner Mongolia / 內蒙古', 'everest-forms'), 'CN7' => __('Liaoning / 辽宁', 'everest-forms'), 'CN8' => __('Jilin / 吉林', 'everest-forms'), 'CN9' => __('Heilongjiang / 黑龙江', 'everest-forms'), 'CN10' => __('Shanghai / 上海', 'everest-forms'), 'CN11' => __('Jiangsu / 江苏', 'everest-forms'), 'CN12' => __('Zhejiang / 浙江', 'everest-forms'), 'CN13' => __('Anhui / 安徽', 'everest-forms'), 'CN14' => __('Fujian / 福建', 'everest-forms'), 'CN15' => __('Jiangxi / 江西', 'everest-forms'), 'CN16' => __('Shandong / 山东', 'everest-forms'), 'CN17' => __('Henan / 河南', 'everest-forms'), 'CN18' => __('Hubei / 湖北', 'everest-forms'), 'CN19' => __('Hunan / 湖南', 'everest-forms'), 'CN20' => __('Guangdong / 广东', 'everest-forms'), 'CN21' => __('Guangxi Zhuang / 广西壮族', 'everest-forms'), 'CN22' => __('Hainan / 海南', 'everest-forms'), 'CN23' => __('Chongqing / 重庆', 'everest-forms'), 'CN24' => __('Sichuan / 四川', 'everest-forms'), 'CN25' => __('Guizhou / 贵州', 'everest-forms'), 'CN26' => __('Shaanxi / 陕西', 'everest-forms'), 'CN27' => __('Gansu / 甘肃', 'everest-forms'), 'CN28' => __('Qinghai / 青海', 'everest-forms'), 'CN29' => __('Ningxia Hui / 宁夏', 'everest-forms'), 'CN30' => __('Macao / 澳门', 'everest-forms'), 'CN31' => __('Tibet / 西藏', 'everest-forms'), 'CN32' => __('Xinjiang / 新疆', 'everest-forms'), ), 'CO' => array( // Colombian states. 'CO-AMA' => __('Amazonas', 'everest-forms'), 'CO-ANT' => __('Antioquia', 'everest-forms'), 'CO-ARA' => __('Arauca', 'everest-forms'), 'CO-ATL' => __('Atlántico', 'everest-forms'), 'CO-BOL' => __('Bolívar', 'everest-forms'), 'CO-BOY' => __('Boyacá', 'everest-forms'), 'CO-CAL' => __('Caldas', 'everest-forms'), 'CO-CAQ' => __('Caquetá', 'everest-forms'), 'CO-CAS' => __('Casanare', 'everest-forms'), 'CO-CAU' => __('Cauca', 'everest-forms'), 'CO-CES' => __('Cesar', 'everest-forms'), 'CO-CHO' => __('Chocó', 'everest-forms'), 'CO-COR' => __('Córdoba', 'everest-forms'), 'CO-CUN' => __('Cundinamarca', 'everest-forms'), 'CO-DC' => __('Capital District', 'everest-forms'), 'CO-GUA' => __('Guainía', 'everest-forms'), 'CO-GUV' => __('Guaviare', 'everest-forms'), 'CO-HUI' => __('Huila', 'everest-forms'), 'CO-LAG' => __('La Guajira', 'everest-forms'), 'CO-MAG' => __('Magdalena', 'everest-forms'), 'CO-MET' => __('Meta', 'everest-forms'), 'CO-NAR' => __('Nariño', 'everest-forms'), 'CO-NSA' => __('Norte de Santander', 'everest-forms'), 'CO-PUT' => __('Putumayo', 'everest-forms'), 'CO-QUI' => __('Quindío', 'everest-forms'), 'CO-RIS' => __('Risaralda', 'everest-forms'), 'CO-SAN' => __('Santander', 'everest-forms'), 'CO-SAP' => __('San Andrés & Providencia', 'everest-forms'), 'CO-SUC' => __('Sucre', 'everest-forms'), 'CO-TOL' => __('Tolima', 'everest-forms'), 'CO-VAC' => __('Valle del Cauca', 'everest-forms'), 'CO-VAU' => __('Vaupés', 'everest-forms'), 'CO-VID' => __('Vichada', 'everest-forms'), ), 'CR' => array( // Costa Rican states. 'CR-A' => __('Alajuela', 'everest-forms'), 'CR-C' => __('Cartago', 'everest-forms'), 'CR-G' => __('Guanacaste', 'everest-forms'), 'CR-H' => __('Heredia', 'everest-forms'), 'CR-L' => __('Limón', 'everest-forms'), 'CR-P' => __('Puntarenas', 'everest-forms'), 'CR-SJ' => __('San José', 'everest-forms'), ), 'CZ' => array(), 'DE' => array( // German states. 'DE-BW' => __('Baden-Württemberg', 'everest-forms'), 'DE-BY' => __('Bavaria', 'everest-forms'), 'DE-BE' => __('Berlin', 'everest-forms'), 'DE-BB' => __('Brandenburg', 'everest-forms'), 'DE-HB' => __('Bremen', 'everest-forms'), 'DE-HH' => __('Hamburg', 'everest-forms'), 'DE-HE' => __('Hesse', 'everest-forms'), 'DE-MV' => __('Mecklenburg-Vorpommern', 'everest-forms'), 'DE-NI' => __('Lower Saxony', 'everest-forms'), 'DE-NW' => __('North Rhine-Westphalia', 'everest-forms'), 'DE-RP' => __('Rhineland-Palatinate', 'everest-forms'), 'DE-SL' => __('Saarland', 'everest-forms'), 'DE-SN' => __('Saxony', 'everest-forms'), 'DE-ST' => __('Saxony-Anhalt', 'everest-forms'), 'DE-SH' => __('Schleswig-Holstein', 'everest-forms'), 'DE-TH' => __('Thuringia', 'everest-forms'), ), 'DK' => array(), 'DO' => array( // Dominican states. 'DO-01' => __('Distrito Nacional', 'everest-forms'), 'DO-02' => __('Azua', 'everest-forms'), 'DO-03' => __('Baoruco', 'everest-forms'), 'DO-04' => __('Barahona', 'everest-forms'), 'DO-33' => __('Cibao Nordeste', 'everest-forms'), 'DO-34' => __('Cibao Noroeste', 'everest-forms'), 'DO-35' => __('Cibao Norte', 'everest-forms'), 'DO-36' => __('Cibao Sur', 'everest-forms'), 'DO-05' => __('Dajabón', 'everest-forms'), 'DO-06' => __('Duarte', 'everest-forms'), 'DO-08' => __('El Seibo', 'everest-forms'), 'DO-37' => __('El Valle', 'everest-forms'), 'DO-07' => __('Elías Piña', 'everest-forms'), 'DO-38' => __('Enriquillo', 'everest-forms'), 'DO-09' => __('Espaillat', 'everest-forms'), 'DO-30' => __('Hato Mayor', 'everest-forms'), 'DO-19' => __('Hermanas Mirabal', 'everest-forms'), 'DO-39' => __('Higüamo', 'everest-forms'), 'DO-10' => __('Independencia', 'everest-forms'), 'DO-11' => __('La Altagracia', 'everest-forms'), 'DO-12' => __('La Romana', 'everest-forms'), 'DO-13' => __('La Vega', 'everest-forms'), 'DO-14' => __('María Trinidad Sánchez', 'everest-forms'), 'DO-28' => __('Monseñor Nouel', 'everest-forms'), 'DO-15' => __('Monte Cristi', 'everest-forms'), 'DO-29' => __('Monte Plata', 'everest-forms'), 'DO-40' => __('Ozama', 'everest-forms'), 'DO-16' => __('Pedernales', 'everest-forms'), 'DO-17' => __('Peravia', 'everest-forms'), 'DO-18' => __('Puerto Plata', 'everest-forms'), 'DO-20' => __('Samaná', 'everest-forms'), 'DO-21' => __('San Cristóbal', 'everest-forms'), 'DO-31' => __('San José de Ocoa', 'everest-forms'), 'DO-22' => __('San Juan', 'everest-forms'), 'DO-23' => __('San Pedro de Macorís', 'everest-forms'), 'DO-24' => __('Sánchez Ramírez', 'everest-forms'), 'DO-25' => __('Santiago', 'everest-forms'), 'DO-26' => __('Santiago Rodríguez', 'everest-forms'), 'DO-32' => __('Santo Domingo', 'everest-forms'), 'DO-41' => __('Valdesia', 'everest-forms'), 'DO-27' => __('Valverde', 'everest-forms'), 'DO-42' => __('Yuma', 'everest-forms'), ), 'DZ' => array( // Algerian states. 'DZ-01' => __('Adrar', 'everest-forms'), 'DZ-02' => __('Chlef', 'everest-forms'), 'DZ-03' => __('Laghouat', 'everest-forms'), 'DZ-04' => __('Oum El Bouaghi', 'everest-forms'), 'DZ-05' => __('Batna', 'everest-forms'), 'DZ-06' => __('Béjaïa', 'everest-forms'), 'DZ-07' => __('Biskra', 'everest-forms'), 'DZ-08' => __('Béchar', 'everest-forms'), 'DZ-09' => __('Blida', 'everest-forms'), 'DZ-10' => __('Bouira', 'everest-forms'), 'DZ-11' => __('Tamanghasset', 'everest-forms'), 'DZ-12' => __('Tébessa', 'everest-forms'), 'DZ-13' => __('Tlemcen', 'everest-forms'), 'DZ-14' => __('Tiaret', 'everest-forms'), 'DZ-15' => __('Tizi Ouzou', 'everest-forms'), 'DZ-16' => __('Algiers', 'everest-forms'), 'DZ-17' => __('Djelfa', 'everest-forms'), 'DZ-18' => __('Jijel', 'everest-forms'), 'DZ-19' => __('Sétif', 'everest-forms'), 'DZ-20' => __('Saïda', 'everest-forms'), 'DZ-21' => __('Skikda', 'everest-forms'), 'DZ-22' => __('Sidi Bel Abbès', 'everest-forms'), 'DZ-23' => __('Annaba', 'everest-forms'), 'DZ-24' => __('Guelma', 'everest-forms'), 'DZ-25' => __('Constantine', 'everest-forms'), 'DZ-26' => __('Médéa', 'everest-forms'), 'DZ-27' => __('Mostaganem', 'everest-forms'), 'DZ-28' => __('M’Sila', 'everest-forms'), 'DZ-29' => __('Mascara', 'everest-forms'), 'DZ-30' => __('Ouargla', 'everest-forms'), 'DZ-31' => __('Oran', 'everest-forms'), 'DZ-32' => __('El Bayadh', 'everest-forms'), 'DZ-33' => __('Illizi', 'everest-forms'), 'DZ-34' => __('Bordj Bou Arréridj', 'everest-forms'), 'DZ-35' => __('Boumerdès', 'everest-forms'), 'DZ-36' => __('El Tarf', 'everest-forms'), 'DZ-37' => __('Tindouf', 'everest-forms'), 'DZ-38' => __('Tissemsilt', 'everest-forms'), 'DZ-39' => __('El Oued', 'everest-forms'), 'DZ-40' => __('Khenchela', 'everest-forms'), 'DZ-41' => __('Souk Ahras', 'everest-forms'), 'DZ-42' => __('Tipasa', 'everest-forms'), 'DZ-43' => __('Mila', 'everest-forms'), 'DZ-44' => __('Aïn Defla', 'everest-forms'), 'DZ-45' => __('Naama', 'everest-forms'), 'DZ-46' => __('Aïn Témouchent', 'everest-forms'), 'DZ-47' => __('Ghardaïa', 'everest-forms'), 'DZ-48' => __('Relizane', 'everest-forms'), ), 'EE' => array(), 'EC' => array( // Ecuadorian states. 'EC-A' => __('Azuay', 'everest-forms'), 'EC-B' => __('Bolívar', 'everest-forms'), 'EC-F' => __('Cañar', 'everest-forms'), 'EC-C' => __('Carchi', 'everest-forms'), 'EC-H' => __('Chimborazo', 'everest-forms'), 'EC-X' => __('Cotopaxi', 'everest-forms'), 'EC-O' => __('El Oro', 'everest-forms'), 'EC-E' => __('Esmeraldas', 'everest-forms'), 'EC-W' => __('Galápagos', 'everest-forms'), 'EC-G' => __('Guayas', 'everest-forms'), 'EC-I' => __('Imbabura', 'everest-forms'), 'EC-L' => __('Loja', 'everest-forms'), 'EC-R' => __('Los Ríos', 'everest-forms'), 'EC-M' => __('Manabí', 'everest-forms'), 'EC-S' => __('Morona-Santiago', 'everest-forms'), 'EC-N' => __('Napo', 'everest-forms'), 'EC-D' => __('Orellana', 'everest-forms'), 'EC-Y' => __('Pastaza', 'everest-forms'), 'EC-P' => __('Pichincha', 'everest-forms'), 'EC-SE' => __('Santa Elena', 'everest-forms'), 'EC-SD' => __('Santo Domingo de los Tsáchilas', 'everest-forms'), 'EC-U' => __('Sucumbíos', 'everest-forms'), 'EC-T' => __('Tungurahua', 'everest-forms'), 'EC-Z' => __('Zamora-Chinchipe', 'everest-forms'), ), 'EG' => array( // Egyptian states. 'EGALX' => __('Alexandria', 'everest-forms'), 'EGASN' => __('Aswan', 'everest-forms'), 'EGAST' => __('Asyut', 'everest-forms'), 'EGBA' => __('Red Sea', 'everest-forms'), 'EGBH' => __('Beheira', 'everest-forms'), 'EGBNS' => __('Beni Suef', 'everest-forms'), 'EGC' => __('Cairo', 'everest-forms'), 'EGDK' => __('Dakahlia', 'everest-forms'), 'EGDT' => __('Damietta', 'everest-forms'), 'EGFYM' => __('Faiyum', 'everest-forms'), 'EGGH' => __('Gharbia', 'everest-forms'), 'EGGZ' => __('Giza', 'everest-forms'), 'EGIS' => __('Ismailia', 'everest-forms'), 'EGJS' => __('South Sinai', 'everest-forms'), 'EGKB' => __('Qalyubia', 'everest-forms'), 'EGKFS' => __('Kafr el-Sheikh', 'everest-forms'), 'EGKN' => __('Qena', 'everest-forms'), 'EGLX' => __('Luxor', 'everest-forms'), 'EGMN' => __('Minya', 'everest-forms'), 'EGMNF' => __('Monufia', 'everest-forms'), 'EGMT' => __('Matrouh', 'everest-forms'), 'EGPTS' => __('Port Said', 'everest-forms'), 'EGSHG' => __('Sohag', 'everest-forms'), 'EGSHR' => __('Al Sharqia', 'everest-forms'), 'EGSIN' => __('North Sinai', 'everest-forms'), 'EGSUZ' => __('Suez', 'everest-forms'), 'EGWAD' => __('New Valley', 'everest-forms'), ), 'ES' => array( // Spanish states. 'C' => __('A Coruña', 'everest-forms'), 'VI' => __('Araba/Álava', 'everest-forms'), 'AB' => __('Albacete', 'everest-forms'), 'A' => __('Alicante', 'everest-forms'), 'AL' => __('Almería', 'everest-forms'), 'O' => __('Asturias', 'everest-forms'), 'AV' => __('Ávila', 'everest-forms'), 'BA' => __('Badajoz', 'everest-forms'), 'PM' => __('Baleares', 'everest-forms'), 'B' => __('Barcelona', 'everest-forms'), 'BU' => __('Burgos', 'everest-forms'), 'CC' => __('Cáceres', 'everest-forms'), 'CA' => __('Cádiz', 'everest-forms'), 'S' => __('Cantabria', 'everest-forms'), 'CS' => __('Castellón', 'everest-forms'), 'CE' => __('Ceuta', 'everest-forms'), 'CR' => __('Ciudad Real', 'everest-forms'), 'CO' => __('Córdoba', 'everest-forms'), 'CU' => __('Cuenca', 'everest-forms'), 'GI' => __('Girona', 'everest-forms'), 'GR' => __('Granada', 'everest-forms'), 'GU' => __('Guadalajara', 'everest-forms'), 'SS' => __('Gipuzkoa', 'everest-forms'), 'H' => __('Huelva', 'everest-forms'), 'HU' => __('Huesca', 'everest-forms'), 'J' => __('Jaén', 'everest-forms'), 'LO' => __('La Rioja', 'everest-forms'), 'GC' => __('Las Palmas', 'everest-forms'), 'LE' => __('León', 'everest-forms'), 'L' => __('Lleida', 'everest-forms'), 'LU' => __('Lugo', 'everest-forms'), 'M' => __('Madrid', 'everest-forms'), 'MA' => __('Málaga', 'everest-forms'), 'ML' => __('Melilla', 'everest-forms'), 'MU' => __('Murcia', 'everest-forms'), 'NA' => __('Navarra', 'everest-forms'), 'OR' => __('Ourense', 'everest-forms'), 'P' => __('Palencia', 'everest-forms'), 'PO' => __('Pontevedra', 'everest-forms'), 'SA' => __('Salamanca', 'everest-forms'), 'TF' => __('Santa Cruz de Tenerife', 'everest-forms'), 'SG' => __('Segovia', 'everest-forms'), 'SE' => __('Sevilla', 'everest-forms'), 'SO' => __('Soria', 'everest-forms'), 'T' => __('Tarragona', 'everest-forms'), 'TE' => __('Teruel', 'everest-forms'), 'TO' => __('Toledo', 'everest-forms'), 'V' => __('Valencia', 'everest-forms'), 'VA' => __('Valladolid', 'everest-forms'), 'BI' => __('Biscay', 'everest-forms'), 'ZA' => __('Zamora', 'everest-forms'), 'Z' => __('Zaragoza', 'everest-forms'), ), 'FI' => array(), 'FR' => array(), 'GF' => array(), 'GH' => array( // Ghanaian regions. 'AF' => __('Ahafo', 'everest-forms'), 'AH' => __('Ashanti', 'everest-forms'), 'BA' => __('Brong-Ahafo', 'everest-forms'), 'BO' => __('Bono', 'everest-forms'), 'BE' => __('Bono East', 'everest-forms'), 'CP' => __('Central', 'everest-forms'), 'EP' => __('Eastern', 'everest-forms'), 'AA' => __('Greater Accra', 'everest-forms'), 'NE' => __('North East', 'everest-forms'), 'NP' => __('Northern', 'everest-forms'), 'OT' => __('Oti', 'everest-forms'), 'SV' => __('Savannah', 'everest-forms'), 'UE' => __('Upper East', 'everest-forms'), 'UW' => __('Upper West', 'everest-forms'), 'TV' => __('Volta', 'everest-forms'), 'WP' => __('Western', 'everest-forms'), 'WN' => __('Western North', 'everest-forms'), ), 'GP' => array(), 'GR' => array( // Greek regions. 'I' => __('Attica', 'everest-forms'), 'A' => __('East Macedonia and Thrace', 'everest-forms'), 'B' => __('Central Macedonia', 'everest-forms'), 'C' => __('West Macedonia', 'everest-forms'), 'D' => __('Epirus', 'everest-forms'), 'E' => __('Thessaly', 'everest-forms'), 'F' => __('Ionian Islands', 'everest-forms'), 'G' => __('West Greece', 'everest-forms'), 'H' => __('Central Greece', 'everest-forms'), 'J' => __('Peloponnese', 'everest-forms'), 'K' => __('North Aegean', 'everest-forms'), 'L' => __('South Aegean', 'everest-forms'), 'M' => __('Crete', 'everest-forms'), ), 'GT' => array( // Guatemalan states. 'GT-AV' => __('Alta Verapaz', 'everest-forms'), 'GT-BV' => __('Baja Verapaz', 'everest-forms'), 'GT-CM' => __('Chimaltenango', 'everest-forms'), 'GT-CQ' => __('Chiquimula', 'everest-forms'), 'GT-PR' => __('El Progreso', 'everest-forms'), 'GT-ES' => __('Escuintla', 'everest-forms'), 'GT-GU' => __('Guatemala', 'everest-forms'), 'GT-HU' => __('Huehuetenango', 'everest-forms'), 'GT-IZ' => __('Izabal', 'everest-forms'), 'GT-JA' => __('Jalapa', 'everest-forms'), 'GT-JU' => __('Jutiapa', 'everest-forms'), 'GT-PE' => __('Petén', 'everest-forms'), 'GT-QZ' => __('Quetzaltenango', 'everest-forms'), 'GT-QC' => __('Quiché', 'everest-forms'), 'GT-RE' => __('Retalhuleu', 'everest-forms'), 'GT-SA' => __('Sacatepéquez', 'everest-forms'), 'GT-SM' => __('San Marcos', 'everest-forms'), 'GT-SR' => __('Santa Rosa', 'everest-forms'), 'GT-SO' => __('Sololá', 'everest-forms'), 'GT-SU' => __('Suchitepéquez', 'everest-forms'), 'GT-TO' => __('Totonicapán', 'everest-forms'), 'GT-ZA' => __('Zacapa', 'everest-forms'), ), 'HK' => array( // Hong Kong states. 'HONG KONG' => __('Hong Kong Island', 'everest-forms'), 'KOWLOON' => __('Kowloon', 'everest-forms'), 'NEW TERRITORIES' => __('New Territories', 'everest-forms'), ), 'HN' => array( // Honduran states. 'HN-AT' => __('Atlántida', 'everest-forms'), 'HN-IB' => __('Bay Islands', 'everest-forms'), 'HN-CH' => __('Choluteca', 'everest-forms'), 'HN-CL' => __('Colón', 'everest-forms'), 'HN-CM' => __('Comayagua', 'everest-forms'), 'HN-CP' => __('Copán', 'everest-forms'), 'HN-CR' => __('Cortés', 'everest-forms'), 'HN-EP' => __('El Paraíso', 'everest-forms'), 'HN-FM' => __('Francisco Morazán', 'everest-forms'), 'HN-GD' => __('Gracias a Dios', 'everest-forms'), 'HN-IN' => __('Intibucá', 'everest-forms'), 'HN-LE' => __('Lempira', 'everest-forms'), 'HN-LP' => __('La Paz', 'everest-forms'), 'HN-OC' => __('Ocotepeque', 'everest-forms'), 'HN-OL' => __('Olancho', 'everest-forms'), 'HN-SB' => __('Santa Bárbara', 'everest-forms'), 'HN-VA' => __('Valle', 'everest-forms'), 'HN-YO' => __('Yoro', 'everest-forms'), ), 'HU' => array( // Hungarian states. 'BK' => __('Bács-Kiskun', 'everest-forms'), 'BE' => __('Békés', 'everest-forms'), 'BA' => __('Baranya', 'everest-forms'), 'BZ' => __('Borsod-Abaúj-Zemplén', 'everest-forms'), 'BU' => __('Budapest', 'everest-forms'), 'CS' => __('Csongrád-Csanád', 'everest-forms'), 'FE' => __('Fejér', 'everest-forms'), 'GS' => __('Győr-Moson-Sopron', 'everest-forms'), 'HB' => __('Hajdú-Bihar', 'everest-forms'), 'HE' => __('Heves', 'everest-forms'), 'JN' => __('Jász-Nagykun-Szolnok', 'everest-forms'), 'KE' => __('Komárom-Esztergom', 'everest-forms'), 'NO' => __('Nógrád', 'everest-forms'), 'PE' => __('Pest', 'everest-forms'), 'SO' => __('Somogy', 'everest-forms'), 'SZ' => __('Szabolcs-Szatmár-Bereg', 'everest-forms'), 'TO' => __('Tolna', 'everest-forms'), 'VA' => __('Vas', 'everest-forms'), 'VE' => __('Veszprém', 'everest-forms'), 'ZA' => __('Zala', 'everest-forms'), ), 'ID' => array( // Indonesian provinces. 'AC' => __('Daerah Istimewa Aceh', 'everest-forms'), 'SU' => __('Sumatera Utara', 'everest-forms'), 'SB' => __('Sumatera Barat', 'everest-forms'), 'RI' => __('Riau', 'everest-forms'), 'KR' => __('Kepulauan Riau', 'everest-forms'), 'JA' => __('Jambi', 'everest-forms'), 'SS' => __('Sumatera Selatan', 'everest-forms'), 'BB' => __('Bangka Belitung', 'everest-forms'), 'BE' => __('Bengkulu', 'everest-forms'), 'LA' => __('Lampung', 'everest-forms'), 'JK' => __('DKI Jakarta', 'everest-forms'), 'JB' => __('Jawa Barat', 'everest-forms'), 'BT' => __('Banten', 'everest-forms'), 'JT' => __('Jawa Tengah', 'everest-forms'), 'JI' => __('Jawa Timur', 'everest-forms'), 'YO' => __('Daerah Istimewa Yogyakarta', 'everest-forms'), 'BA' => __('Bali', 'everest-forms'), 'NB' => __('Nusa Tenggara Barat', 'everest-forms'), 'NT' => __('Nusa Tenggara Timur', 'everest-forms'), 'KB' => __('Kalimantan Barat', 'everest-forms'), 'KT' => __('Kalimantan Tengah', 'everest-forms'), 'KI' => __('Kalimantan Timur', 'everest-forms'), 'KS' => __('Kalimantan Selatan', 'everest-forms'), 'KU' => __('Kalimantan Utara', 'everest-forms'), 'SA' => __('Sulawesi Utara', 'everest-forms'), 'ST' => __('Sulawesi Tengah', 'everest-forms'), 'SG' => __('Sulawesi Tenggara', 'everest-forms'), 'SR' => __('Sulawesi Barat', 'everest-forms'), 'SN' => __('Sulawesi Selatan', 'everest-forms'), 'GO' => __('Gorontalo', 'everest-forms'), 'MA' => __('Maluku', 'everest-forms'), 'MU' => __('Maluku Utara', 'everest-forms'), 'PA' => __('Papua', 'everest-forms'), 'PB' => __('Papua Barat', 'everest-forms'), ), 'IE' => array( // Irish states. 'CW' => __('Carlow', 'everest-forms'), 'CN' => __('Cavan', 'everest-forms'), 'CE' => __('Clare', 'everest-forms'), 'CO' => __('Cork', 'everest-forms'), 'DL' => __('Donegal', 'everest-forms'), 'D' => __('Dublin', 'everest-forms'), 'G' => __('Galway', 'everest-forms'), 'KY' => __('Kerry', 'everest-forms'), 'KE' => __('Kildare', 'everest-forms'), 'KK' => __('Kilkenny', 'everest-forms'), 'LS' => __('Laois', 'everest-forms'), 'LM' => __('Leitrim', 'everest-forms'), 'LK' => __('Limerick', 'everest-forms'), 'LD' => __('Longford', 'everest-forms'), 'LH' => __('Louth', 'everest-forms'), 'MO' => __('Mayo', 'everest-forms'), 'MH' => __('Meath', 'everest-forms'), 'MN' => __('Monaghan', 'everest-forms'), 'OY' => __('Offaly', 'everest-forms'), 'RN' => __('Roscommon', 'everest-forms'), 'SO' => __('Sligo', 'everest-forms'), 'TA' => __('Tipperary', 'everest-forms'), 'WD' => __('Waterford', 'everest-forms'), 'WH' => __('Westmeath', 'everest-forms'), 'WX' => __('Wexford', 'everest-forms'), 'WW' => __('Wicklow', 'everest-forms'), ), 'IN' => array( // Indian states. 'AP' => __('Andhra Pradesh', 'everest-forms'), 'AR' => __('Arunachal Pradesh', 'everest-forms'), 'AS' => __('Assam', 'everest-forms'), 'BR' => __('Bihar', 'everest-forms'), 'CT' => __('Chhattisgarh', 'everest-forms'), 'GA' => __('Goa', 'everest-forms'), 'GJ' => __('Gujarat', 'everest-forms'), 'HR' => __('Haryana', 'everest-forms'), 'HP' => __('Himachal Pradesh', 'everest-forms'), 'JK' => __('Jammu and Kashmir', 'everest-forms'), 'JH' => __('Jharkhand', 'everest-forms'), 'KA' => __('Karnataka', 'everest-forms'), 'KL' => __('Kerala', 'everest-forms'), 'LA' => __('Ladakh', 'everest-forms'), 'MP' => __('Madhya Pradesh', 'everest-forms'), 'MH' => __('Maharashtra', 'everest-forms'), 'MN' => __('Manipur', 'everest-forms'), 'ML' => __('Meghalaya', 'everest-forms'), 'MZ' => __('Mizoram', 'everest-forms'), 'NL' => __('Nagaland', 'everest-forms'), 'OR' => __('Odisha', 'everest-forms'), 'PB' => __('Punjab', 'everest-forms'), 'RJ' => __('Rajasthan', 'everest-forms'), 'SK' => __('Sikkim', 'everest-forms'), 'TN' => __('Tamil Nadu', 'everest-forms'), 'TS' => __('Telangana', 'everest-forms'), 'TR' => __('Tripura', 'everest-forms'), 'UK' => __('Uttarakhand', 'everest-forms'), 'UP' => __('Uttar Pradesh', 'everest-forms'), 'WB' => __('West Bengal', 'everest-forms'), 'AN' => __('Andaman and Nicobar Islands', 'everest-forms'), 'CH' => __('Chandigarh', 'everest-forms'), 'DN' => __('Dadra and Nagar Haveli', 'everest-forms'), 'DD' => __('Daman and Diu', 'everest-forms'), 'DL' => __('Delhi', 'everest-forms'), 'LD' => __('Lakshadeep', 'everest-forms'), 'PY' => __('Pondicherry (Puducherry)', 'everest-forms'), ), 'IR' => array( // Irania states. 'KHZ' => __('Khuzestan (خوزستان)', 'everest-forms'), 'THR' => __('Tehran (تهران)', 'everest-forms'), 'ILM' => __('Ilaam (ایلام)', 'everest-forms'), 'BHR' => __('Bushehr (بوشهر)', 'everest-forms'), 'ADL' => __('Ardabil (اردبیل)', 'everest-forms'), 'ESF' => __('Isfahan (اصفهان)', 'everest-forms'), 'YZD' => __('Yazd (یزد)', 'everest-forms'), 'KRH' => __('Kermanshah (کرمانشاه)', 'everest-forms'), 'KRN' => __('Kerman (کرمان)', 'everest-forms'), 'HDN' => __('Hamadan (همدان)', 'everest-forms'), 'GZN' => __('Ghazvin (قزوین)', 'everest-forms'), 'ZJN' => __('Zanjan (زنجان)', 'everest-forms'), 'LRS' => __('Luristan (لرستان)', 'everest-forms'), 'ABZ' => __('Alborz (البرز)', 'everest-forms'), 'EAZ' => __('East Azarbaijan (آذربایجان شرقی)', 'everest-forms'), 'WAZ' => __('West Azarbaijan (آذربایجان غربی)', 'everest-forms'), 'CHB' => __('Chaharmahal and Bakhtiari (چهارمحال و بختیاری)', 'everest-forms'), 'SKH' => __('South Khorasan (خراسان جنوبی)', 'everest-forms'), 'RKH' => __('Razavi Khorasan (خراسان رضوی)', 'everest-forms'), 'NKH' => __('North Khorasan (خراسان شمالی)', 'everest-forms'), 'SMN' => __('Semnan (سمنان)', 'everest-forms'), 'FRS' => __('Fars (فارس)', 'everest-forms'), 'QHM' => __('Qom (قم)', 'everest-forms'), 'KRD' => __('Kurdistan / کردستان)', 'everest-forms'), 'KBD' => __('Kohgiluyeh and BoyerAhmad (کهگیلوییه و بویراحمد)', 'everest-forms'), 'GLS' => __('Golestan (گلستان)', 'everest-forms'), 'GIL' => __('Gilan (گیلان)', 'everest-forms'), 'MZN' => __('Mazandaran (مازندران)', 'everest-forms'), 'MKZ' => __('Markazi (مرکزی)', 'everest-forms'), 'HRZ' => __('Hormozgan (هرمزگان)', 'everest-forms'), 'SBN' => __('Sistan and Baluchestan (سیستان و بلوچستان)', 'everest-forms'), ), 'IS' => array(), 'IT' => array( // Italian provinces. 'AG' => __('Agrigento', 'everest-forms'), 'AL' => __('Alessandria', 'everest-forms'), 'AN' => __('Ancona', 'everest-forms'), 'AO' => __('Aosta', 'everest-forms'), 'AR' => __('Arezzo', 'everest-forms'), 'AP' => __('Ascoli Piceno', 'everest-forms'), 'AT' => __('Asti', 'everest-forms'), 'AV' => __('Avellino', 'everest-forms'), 'BA' => __('Bari', 'everest-forms'), 'BT' => __('Barletta-Andria-Trani', 'everest-forms'), 'BL' => __('Belluno', 'everest-forms'), 'BN' => __('Benevento', 'everest-forms'), 'BG' => __('Bergamo', 'everest-forms'), 'BI' => __('Biella', 'everest-forms'), 'BO' => __('Bologna', 'everest-forms'), 'BZ' => __('Bolzano', 'everest-forms'), 'BS' => __('Brescia', 'everest-forms'), 'BR' => __('Brindisi', 'everest-forms'), 'CA' => __('Cagliari', 'everest-forms'), 'CL' => __('Caltanissetta', 'everest-forms'), 'CB' => __('Campobasso', 'everest-forms'), 'CE' => __('Caserta', 'everest-forms'), 'CT' => __('Catania', 'everest-forms'), 'CZ' => __('Catanzaro', 'everest-forms'), 'CH' => __('Chieti', 'everest-forms'), 'CO' => __('Como', 'everest-forms'), 'CS' => __('Cosenza', 'everest-forms'), 'CR' => __('Cremona', 'everest-forms'), 'KR' => __('Crotone', 'everest-forms'), 'CN' => __('Cuneo', 'everest-forms'), 'EN' => __('Enna', 'everest-forms'), 'FM' => __('Fermo', 'everest-forms'), 'FE' => __('Ferrara', 'everest-forms'), 'FI' => __('Firenze', 'everest-forms'), 'FG' => __('Foggia', 'everest-forms'), 'FC' => __('Forlì-Cesena', 'everest-forms'), 'FR' => __('Frosinone', 'everest-forms'), 'GE' => __('Genova', 'everest-forms'), 'GO' => __('Gorizia', 'everest-forms'), 'GR' => __('Grosseto', 'everest-forms'), 'IM' => __('Imperia', 'everest-forms'), 'IS' => __('Isernia', 'everest-forms'), 'SP' => __('La Spezia', 'everest-forms'), 'AQ' => __("L'Aquila", 'everest-forms'), 'LT' => __('Latina', 'everest-forms'), 'LE' => __('Lecce', 'everest-forms'), 'LC' => __('Lecco', 'everest-forms'), 'LI' => __('Livorno', 'everest-forms'), 'LO' => __('Lodi', 'everest-forms'), 'LU' => __('Lucca', 'everest-forms'), 'MC' => __('Macerata', 'everest-forms'), 'MN' => __('Mantova', 'everest-forms'), 'MS' => __('Massa-Carrara', 'everest-forms'), 'MT' => __('Matera', 'everest-forms'), 'ME' => __('Messina', 'everest-forms'), 'MI' => __('Milano', 'everest-forms'), 'MO' => __('Modena', 'everest-forms'), 'MB' => __('Monza e della Brianza', 'everest-forms'), 'NA' => __('Napoli', 'everest-forms'), 'NO' => __('Novara', 'everest-forms'), 'NU' => __('Nuoro', 'everest-forms'), 'OR' => __('Oristano', 'everest-forms'), 'PD' => __('Padova', 'everest-forms'), 'PA' => __('Palermo', 'everest-forms'), 'PR' => __('Parma', 'everest-forms'), 'PV' => __('Pavia', 'everest-forms'), 'PG' => __('Perugia', 'everest-forms'), 'PU' => __('Pesaro e Urbino', 'everest-forms'), 'PE' => __('Pescara', 'everest-forms'), 'PC' => __('Piacenza', 'everest-forms'), 'PI' => __('Pisa', 'everest-forms'), 'PT' => __('Pistoia', 'everest-forms'), 'PN' => __('Pordenone', 'everest-forms'), 'PZ' => __('Potenza', 'everest-forms'), 'PO' => __('Prato', 'everest-forms'), 'RG' => __('Ragusa', 'everest-forms'), 'RA' => __('Ravenna', 'everest-forms'), 'RC' => __('Reggio Calabria', 'everest-forms'), 'RE' => __('Reggio Emilia', 'everest-forms'), 'RI' => __('Rieti', 'everest-forms'), 'RN' => __('Rimini', 'everest-forms'), 'RM' => __('Roma', 'everest-forms'), 'RO' => __('Rovigo', 'everest-forms'), 'SA' => __('Salerno', 'everest-forms'), 'SS' => __('Sassari', 'everest-forms'), 'SV' => __('Savona', 'everest-forms'), 'SI' => __('Siena', 'everest-forms'), 'SR' => __('Siracusa', 'everest-forms'), 'SO' => __('Sondrio', 'everest-forms'), 'SU' => __('Sud Sardegna', 'everest-forms'), 'TA' => __('Taranto', 'everest-forms'), 'TE' => __('Teramo', 'everest-forms'), 'TR' => __('Terni', 'everest-forms'), 'TO' => __('Torino', 'everest-forms'), 'TP' => __('Trapani', 'everest-forms'), 'TN' => __('Trento', 'everest-forms'), 'TV' => __('Treviso', 'everest-forms'), 'TS' => __('Trieste', 'everest-forms'), 'UD' => __('Udine', 'everest-forms'), 'VA' => __('Varese', 'everest-forms'), 'VE' => __('Venezia', 'everest-forms'), 'VB' => __('Verbano-Cusio-Ossola', 'everest-forms'), 'VC' => __('Vercelli', 'everest-forms'), 'VR' => __('Verona', 'everest-forms'), 'VV' => __('Vibo Valentia', 'everest-forms'), 'VI' => __('Vicenza', 'everest-forms'), 'VT' => __('Viterbo', 'everest-forms'), ), 'IL' => array(), 'IM' => array(), 'JM' => array( // Jamaican parishes. 'JM-01' => __('Kingston', 'everest-forms'), 'JM-02' => __('Saint Andrew', 'everest-forms'), 'JM-03' => __('Saint Thomas', 'everest-forms'), 'JM-04' => __('Portland', 'everest-forms'), 'JM-05' => __('Saint Mary', 'everest-forms'), 'JM-06' => __('Saint Ann', 'everest-forms'), 'JM-07' => __('Trelawny', 'everest-forms'), 'JM-08' => __('Saint James', 'everest-forms'), 'JM-09' => __('Hanover', 'everest-forms'), 'JM-10' => __('Westmoreland', 'everest-forms'), 'JM-11' => __('Saint Elizabeth', 'everest-forms'), 'JM-12' => __('Manchester', 'everest-forms'), 'JM-13' => __('Clarendon', 'everest-forms'), 'JM-14' => __('Saint Catherine', 'everest-forms'), ), 'JP' => array( 'JP01' => __('Hokkaido', 'everest-forms'), 'JP02' => __('Aomori', 'everest-forms'), 'JP03' => __('Iwate', 'everest-forms'), 'JP04' => __('Miyagi', 'everest-forms'), 'JP05' => __('Akita', 'everest-forms'), 'JP06' => __('Yamagata', 'everest-forms'), 'JP07' => __('Fukushima', 'everest-forms'), 'JP08' => __('Ibaraki', 'everest-forms'), 'JP09' => __('Tochigi', 'everest-forms'), 'JP10' => __('Gunma', 'everest-forms'), 'JP11' => __('Saitama', 'everest-forms'), 'JP12' => __('Chiba', 'everest-forms'), 'JP13' => __('Tokyo', 'everest-forms'), 'JP14' => __('Kanagawa', 'everest-forms'), 'JP15' => __('Niigata', 'everest-forms'), 'JP16' => __('Toyama', 'everest-forms'), 'JP17' => __('Ishikawa', 'everest-forms'), 'JP18' => __('Fukui', 'everest-forms'), 'JP19' => __('Yamanashi', 'everest-forms'), 'JP20' => __('Nagano', 'everest-forms'), 'JP21' => __('Gifu', 'everest-forms'), 'JP22' => __('Shizuoka', 'everest-forms'), 'JP23' => __('Aichi', 'everest-forms'), 'JP24' => __('Mie', 'everest-forms'), 'JP25' => __('Shiga', 'everest-forms'), 'JP26' => __('Kyoto', 'everest-forms'), 'JP27' => __('Osaka', 'everest-forms'), 'JP28' => __('Hyogo', 'everest-forms'), 'JP29' => __('Nara', 'everest-forms'), 'JP30' => __('Wakayama', 'everest-forms'), 'JP31' => __('Tottori', 'everest-forms'), 'JP32' => __('Shimane', 'everest-forms'), 'JP33' => __('Okayama', 'everest-forms'), 'JP34' => __('Hiroshima', 'everest-forms'), 'JP35' => __('Yamaguchi', 'everest-forms'), 'JP36' => __('Tokushima', 'everest-forms'), 'JP37' => __('Kagawa', 'everest-forms'), 'JP38' => __('Ehime', 'everest-forms'), 'JP39' => __('Kochi', 'everest-forms'), 'JP40' => __('Fukuoka', 'everest-forms'), 'JP41' => __('Saga', 'everest-forms'), 'JP42' => __('Nagasaki', 'everest-forms'), 'JP43' => __('Kumamoto', 'everest-forms'), 'JP44' => __('Oita', 'everest-forms'), 'JP45' => __('Miyazaki', 'everest-forms'), 'JP46' => __('Kagoshima', 'everest-forms'), 'JP47' => __('Okinawa', 'everest-forms'), ), 'KE' => array( // Kenyan counties. 'KE01' => __('Baringo', 'everest-forms'), 'KE02' => __('Bomet', 'everest-forms'), 'KE03' => __('Bungoma', 'everest-forms'), 'KE04' => __('Busia', 'everest-forms'), 'KE05' => __('Elgeyo-Marakwet', 'everest-forms'), 'KE06' => __('Embu', 'everest-forms'), 'KE07' => __('Garissa', 'everest-forms'), 'KE08' => __('Homa Bay', 'everest-forms'), 'KE09' => __('Isiolo', 'everest-forms'), 'KE10' => __('Kajiado', 'everest-forms'), 'KE11' => __('Kakamega', 'everest-forms'), 'KE12' => __('Kericho', 'everest-forms'), 'KE13' => __('Kiambu', 'everest-forms'), 'KE14' => __('Kilifi', 'everest-forms'), 'KE15' => __('Kirinyaga', 'everest-forms'), 'KE16' => __('Kisii', 'everest-forms'), 'KE17' => __('Kisumu', 'everest-forms'), 'KE18' => __('Kitui', 'everest-forms'), 'KE19' => __('Kwale', 'everest-forms'), 'KE20' => __('Laikipia', 'everest-forms'), 'KE21' => __('Lamu', 'everest-forms'), 'KE22' => __('Machakos', 'everest-forms'), 'KE23' => __('Makueni', 'everest-forms'), 'KE24' => __('Mandera', 'everest-forms'), 'KE25' => __('Marsabit', 'everest-forms'), 'KE26' => __('Meru', 'everest-forms'), 'KE27' => __('Migori', 'everest-forms'), 'KE28' => __('Mombasa', 'everest-forms'), 'KE29' => __('Murang’a', 'everest-forms'), 'KE30' => __('Nairobi County', 'everest-forms'), 'KE31' => __('Nakuru', 'everest-forms'), 'KE32' => __('Nandi', 'everest-forms'), 'KE33' => __('Narok', 'everest-forms'), 'KE34' => __('Nyamira', 'everest-forms'), 'KE35' => __('Nyandarua', 'everest-forms'), 'KE36' => __('Nyeri', 'everest-forms'), 'KE37' => __('Samburu', 'everest-forms'), 'KE38' => __('Siaya', 'everest-forms'), 'KE39' => __('Taita-Taveta', 'everest-forms'), 'KE40' => __('Tana River', 'everest-forms'), 'KE41' => __('Tharaka-Nithi', 'everest-forms'), 'KE42' => __('Trans Nzoia', 'everest-forms'), 'KE43' => __('Turkana', 'everest-forms'), 'KE44' => __('Uasin Gishu', 'everest-forms'), 'KE45' => __('Vihiga', 'everest-forms'), 'KE46' => __('Wajir', 'everest-forms'), 'KE47' => __('West Pokot', 'everest-forms'), ), 'KR' => array(), 'KW' => array(), 'LA' => array( // Laotian provinces. 'AT' => __('Attapeu', 'everest-forms'), 'BK' => __('Bokeo', 'everest-forms'), 'BL' => __('Bolikhamsai', 'everest-forms'), 'CH' => __('Champasak', 'everest-forms'), 'HO' => __('Houaphanh', 'everest-forms'), 'KH' => __('Khammouane', 'everest-forms'), 'LM' => __('Luang Namtha', 'everest-forms'), 'LP' => __('Luang Prabang', 'everest-forms'), 'OU' => __('Oudomxay', 'everest-forms'), 'PH' => __('Phongsaly', 'everest-forms'), 'SL' => __('Salavan', 'everest-forms'), 'SV' => __('Savannakhet', 'everest-forms'), 'VI' => __('Vientiane Province', 'everest-forms'), 'VT' => __('Vientiane', 'everest-forms'), 'XA' => __('Sainyabuli', 'everest-forms'), 'XE' => __('Sekong', 'everest-forms'), 'XI' => __('Xiangkhouang', 'everest-forms'), 'XS' => __('Xaisomboun', 'everest-forms'), ), 'LB' => array(), 'LR' => array( // Liberian provinces. 'BM' => __('Bomi', 'everest-forms'), 'BN' => __('Bong', 'everest-forms'), 'GA' => __('Gbarpolu', 'everest-forms'), 'GB' => __('Grand Bassa', 'everest-forms'), 'GC' => __('Grand Cape Mount', 'everest-forms'), 'GG' => __('Grand Gedeh', 'everest-forms'), 'GK' => __('Grand Kru', 'everest-forms'), 'LO' => __('Lofa', 'everest-forms'), 'MA' => __('Margibi', 'everest-forms'), 'MY' => __('Maryland', 'everest-forms'), 'MO' => __('Montserrado', 'everest-forms'), 'NM' => __('Nimba', 'everest-forms'), 'RV' => __('Rivercess', 'everest-forms'), 'RG' => __('River Gee', 'everest-forms'), 'SN' => __('Sinoe', 'everest-forms'), ), 'LU' => array(), 'MD' => array( // Moldovan states. 'C' => __('Chișinău', 'everest-forms'), 'BL' => __('Bălți', 'everest-forms'), 'AN' => __('Anenii Noi', 'everest-forms'), 'BS' => __('Basarabeasca', 'everest-forms'), 'BR' => __('Briceni', 'everest-forms'), 'CH' => __('Cahul', 'everest-forms'), 'CT' => __('Cantemir', 'everest-forms'), 'CL' => __('Călărași', 'everest-forms'), 'CS' => __('Căușeni', 'everest-forms'), 'CM' => __('Cimișlia', 'everest-forms'), 'CR' => __('Criuleni', 'everest-forms'), 'DN' => __('Dondușeni', 'everest-forms'), 'DR' => __('Drochia', 'everest-forms'), 'DB' => __('Dubăsari', 'everest-forms'), 'ED' => __('Edineț', 'everest-forms'), 'FL' => __('Fălești', 'everest-forms'), 'FR' => __('Florești', 'everest-forms'), 'GE' => __('UTA Găgăuzia', 'everest-forms'), 'GL' => __('Glodeni', 'everest-forms'), 'HN' => __('Hîncești', 'everest-forms'), 'IL' => __('Ialoveni', 'everest-forms'), 'LV' => __('Leova', 'everest-forms'), 'NS' => __('Nisporeni', 'everest-forms'), 'OC' => __('Ocnița', 'everest-forms'), 'OR' => __('Orhei', 'everest-forms'), 'RZ' => __('Rezina', 'everest-forms'), 'RS' => __('Rîșcani', 'everest-forms'), 'SG' => __('Sîngerei', 'everest-forms'), 'SR' => __('Soroca', 'everest-forms'), 'ST' => __('Strășeni', 'everest-forms'), 'SD' => __('Șoldănești', 'everest-forms'), 'SV' => __('Ștefan Vodă', 'everest-forms'), 'TR' => __('Taraclia', 'everest-forms'), 'TL' => __('Telenești', 'everest-forms'), 'UN' => __('Ungheni', 'everest-forms'), ), 'MQ' => array(), 'MT' => array(), 'MX' => array( // Mexican states. 'DF' => __('Ciudad de México', 'everest-forms'), 'JA' => __('Jalisco', 'everest-forms'), 'NL' => __('Nuevo León', 'everest-forms'), 'AG' => __('Aguascalientes', 'everest-forms'), 'BC' => __('Baja California', 'everest-forms'), 'BS' => __('Baja California Sur', 'everest-forms'), 'CM' => __('Campeche', 'everest-forms'), 'CS' => __('Chiapas', 'everest-forms'), 'CH' => __('Chihuahua', 'everest-forms'), 'CO' => __('Coahuila', 'everest-forms'), 'CL' => __('Colima', 'everest-forms'), 'DG' => __('Durango', 'everest-forms'), 'GT' => __('Guanajuato', 'everest-forms'), 'GR' => __('Guerrero', 'everest-forms'), 'HG' => __('Hidalgo', 'everest-forms'), 'MX' => __('Estado de México', 'everest-forms'), 'MI' => __('Michoacán', 'everest-forms'), 'MO' => __('Morelos', 'everest-forms'), 'NA' => __('Nayarit', 'everest-forms'), 'OA' => __('Oaxaca', 'everest-forms'), 'PU' => __('Puebla', 'everest-forms'), 'QT' => __('Querétaro', 'everest-forms'), 'QR' => __('Quintana Roo', 'everest-forms'), 'SL' => __('San Luis Potosí', 'everest-forms'), 'SI' => __('Sinaloa', 'everest-forms'), 'SO' => __('Sonora', 'everest-forms'), 'TB' => __('Tabasco', 'everest-forms'), 'TM' => __('Tamaulipas', 'everest-forms'), 'TL' => __('Tlaxcala', 'everest-forms'), 'VE' => __('Veracruz', 'everest-forms'), 'YU' => __('Yucatán', 'everest-forms'), 'ZA' => __('Zacatecas', 'everest-forms'), ), 'MY' => array( // Malaysian states. 'JHR' => __('Johor', 'everest-forms'), 'KDH' => __('Kedah', 'everest-forms'), 'KTN' => __('Kelantan', 'everest-forms'), 'LBN' => __('Labuan', 'everest-forms'), 'MLK' => __('Malacca (Melaka)', 'everest-forms'), 'NSN' => __('Negeri Sembilan', 'everest-forms'), 'PHG' => __('Pahang', 'everest-forms'), 'PNG' => __('Penang (Pulau Pinang)', 'everest-forms'), 'PRK' => __('Perak', 'everest-forms'), 'PLS' => __('Perlis', 'everest-forms'), 'SBH' => __('Sabah', 'everest-forms'), 'SWK' => __('Sarawak', 'everest-forms'), 'SGR' => __('Selangor', 'everest-forms'), 'TRG' => __('Terengganu', 'everest-forms'), 'PJY' => __('Putrajaya', 'everest-forms'), 'KUL' => __('Kuala Lumpur', 'everest-forms'), ), 'MZ' => array( // Mozambican provinces. 'MZP' => __('Cabo Delgado', 'everest-forms'), 'MZG' => __('Gaza', 'everest-forms'), 'MZI' => __('Inhambane', 'everest-forms'), 'MZB' => __('Manica', 'everest-forms'), 'MZL' => __('Maputo Province', 'everest-forms'), 'MZMPM' => __('Maputo', 'everest-forms'), 'MZN' => __('Nampula', 'everest-forms'), 'MZA' => __('Niassa', 'everest-forms'), 'MZS' => __('Sofala', 'everest-forms'), 'MZT' => __('Tete', 'everest-forms'), 'MZQ' => __('Zambézia', 'everest-forms'), ), 'NA' => array( // Namibian regions. 'ER' => __('Erongo', 'everest-forms'), 'HA' => __('Hardap', 'everest-forms'), 'KA' => __('Karas', 'everest-forms'), 'KE' => __('Kavango East', 'everest-forms'), 'KW' => __('Kavango West', 'everest-forms'), 'KH' => __('Khomas', 'everest-forms'), 'KU' => __('Kunene', 'everest-forms'), 'OW' => __('Ohangwena', 'everest-forms'), 'OH' => __('Omaheke', 'everest-forms'), 'OS' => __('Omusati', 'everest-forms'), 'ON' => __('Oshana', 'everest-forms'), 'OT' => __('Oshikoto', 'everest-forms'), 'OD' => __('Otjozondjupa', 'everest-forms'), 'CA' => __('Zambezi', 'everest-forms'), ), 'NG' => array( // Nigerian provinces. 'AB' => __('Abia', 'everest-forms'), 'FC' => __('Abuja', 'everest-forms'), 'AD' => __('Adamawa', 'everest-forms'), 'AK' => __('Akwa Ibom', 'everest-forms'), 'AN' => __('Anambra', 'everest-forms'), 'BA' => __('Bauchi', 'everest-forms'), 'BY' => __('Bayelsa', 'everest-forms'), 'BE' => __('Benue', 'everest-forms'), 'BO' => __('Borno', 'everest-forms'), 'CR' => __('Cross River', 'everest-forms'), 'DE' => __('Delta', 'everest-forms'), 'EB' => __('Ebonyi', 'everest-forms'), 'ED' => __('Edo', 'everest-forms'), 'EK' => __('Ekiti', 'everest-forms'), 'EN' => __('Enugu', 'everest-forms'), 'GO' => __('Gombe', 'everest-forms'), 'IM' => __('Imo', 'everest-forms'), 'JI' => __('Jigawa', 'everest-forms'), 'KD' => __('Kaduna', 'everest-forms'), 'KN' => __('Kano', 'everest-forms'), 'KT' => __('Katsina', 'everest-forms'), 'KE' => __('Kebbi', 'everest-forms'), 'KO' => __('Kogi', 'everest-forms'), 'KW' => __('Kwara', 'everest-forms'), 'LA' => __('Lagos', 'everest-forms'), 'NA' => __('Nasarawa', 'everest-forms'), 'NI' => __('Niger', 'everest-forms'), 'OG' => __('Ogun', 'everest-forms'), 'ON' => __('Ondo', 'everest-forms'), 'OS' => __('Osun', 'everest-forms'), 'OY' => __('Oyo', 'everest-forms'), 'PL' => __('Plateau', 'everest-forms'), 'RI' => __('Rivers', 'everest-forms'), 'SO' => __('Sokoto', 'everest-forms'), 'TA' => __('Taraba', 'everest-forms'), 'YO' => __('Yobe', 'everest-forms'), 'ZA' => __('Zamfara', 'everest-forms'), ), 'NL' => array(), 'NO' => array(), 'NP' => array( // Nepalese zones. 'BAG' => __('Bagmati', 'everest-forms'), 'BHE' => __('Bheri', 'everest-forms'), 'DHA' => __('Dhaulagiri', 'everest-forms'), 'GAN' => __('Gandaki', 'everest-forms'), 'JAN' => __('Janakpur', 'everest-forms'), 'KAR' => __('Karnali', 'everest-forms'), 'KOS' => __('Koshi', 'everest-forms'), 'LUM' => __('Lumbini', 'everest-forms'), 'MAH' => __('Mahakali', 'everest-forms'), 'MEC' => __('Mechi', 'everest-forms'), 'NAR' => __('Narayani', 'everest-forms'), 'RAP' => __('Rapti', 'everest-forms'), 'SAG' => __('Sagarmatha', 'everest-forms'), 'SET' => __('Seti', 'everest-forms'), ), 'NI' => array( // Nicaraguan states. 'NI-AN' => __('Atlántico Norte', 'everest-forms'), 'NI-AS' => __('Atlántico Sur', 'everest-forms'), 'NI-BO' => __('Boaco', 'everest-forms'), 'NI-CA' => __('Carazo', 'everest-forms'), 'NI-CI' => __('Chinandega', 'everest-forms'), 'NI-CO' => __('Chontales', 'everest-forms'), 'NI-ES' => __('Estelí', 'everest-forms'), 'NI-GR' => __('Granada', 'everest-forms'), 'NI-JI' => __('Jinotega', 'everest-forms'), 'NI-LE' => __('León', 'everest-forms'), 'NI-MD' => __('Madriz', 'everest-forms'), 'NI-MN' => __('Managua', 'everest-forms'), 'NI-MS' => __('Masaya', 'everest-forms'), 'NI-MT' => __('Matagalpa', 'everest-forms'), 'NI-NS' => __('Nueva Segovia', 'everest-forms'), 'NI-RI' => __('Rivas', 'everest-forms'), 'NI-SJ' => __('Río San Juan', 'everest-forms'), ), 'NZ' => array( // New Zealand states. 'NL' => __('Northland', 'everest-forms'), 'AK' => __('Auckland', 'everest-forms'), 'WA' => __('Waikato', 'everest-forms'), 'BP' => __('Bay of Plenty', 'everest-forms'), 'TK' => __('Taranaki', 'everest-forms'), 'GI' => __('Gisborne', 'everest-forms'), 'HB' => __('Hawke’s Bay', 'everest-forms'), 'MW' => __('Manawatu-Wanganui', 'everest-forms'), 'WE' => __('Wellington', 'everest-forms'), 'NS' => __('Nelson', 'everest-forms'), 'MB' => __('Marlborough', 'everest-forms'), 'TM' => __('Tasman', 'everest-forms'), 'WC' => __('West Coast', 'everest-forms'), 'CT' => __('Canterbury', 'everest-forms'), 'OT' => __('Otago', 'everest-forms'), 'SL' => __('Southland', 'everest-forms'), ), 'PA' => array( // Panamanian states. 'PA-1' => __('Bocas del Toro', 'everest-forms'), 'PA-2' => __('Coclé', 'everest-forms'), 'PA-3' => __('Colón', 'everest-forms'), 'PA-4' => __('Chiriquí', 'everest-forms'), 'PA-5' => __('Darién', 'everest-forms'), 'PA-6' => __('Herrera', 'everest-forms'), 'PA-7' => __('Los Santos', 'everest-forms'), 'PA-8' => __('Panamá', 'everest-forms'), 'PA-9' => __('Veraguas', 'everest-forms'), 'PA-10' => __('West Panamá', 'everest-forms'), 'PA-EM' => __('Emberá', 'everest-forms'), 'PA-KY' => __('Guna Yala', 'everest-forms'), 'PA-NB' => __('Ngöbe-Buglé', 'everest-forms'), ), 'PE' => array( // Peruvian states. 'CAL' => __('El Callao', 'everest-forms'), 'LMA' => __('Municipalidad Metropolitana de Lima', 'everest-forms'), 'AMA' => __('Amazonas', 'everest-forms'), 'ANC' => __('Ancash', 'everest-forms'), 'APU' => __('Apurímac', 'everest-forms'), 'ARE' => __('Arequipa', 'everest-forms'), 'AYA' => __('Ayacucho', 'everest-forms'), 'CAJ' => __('Cajamarca', 'everest-forms'), 'CUS' => __('Cusco', 'everest-forms'), 'HUV' => __('Huancavelica', 'everest-forms'), 'HUC' => __('Huánuco', 'everest-forms'), 'ICA' => __('Ica', 'everest-forms'), 'JUN' => __('Junín', 'everest-forms'), 'LAL' => __('La Libertad', 'everest-forms'), 'LAM' => __('Lambayeque', 'everest-forms'), 'LIM' => __('Lima', 'everest-forms'), 'LOR' => __('Loreto', 'everest-forms'), 'MDD' => __('Madre de Dios', 'everest-forms'), 'MOQ' => __('Moquegua', 'everest-forms'), 'PAS' => __('Pasco', 'everest-forms'), 'PIU' => __('Piura', 'everest-forms'), 'PUN' => __('Puno', 'everest-forms'), 'SAM' => __('San Martín', 'everest-forms'), 'TAC' => __('Tacna', 'everest-forms'), 'TUM' => __('Tumbes', 'everest-forms'), 'UCA' => __('Ucayali', 'everest-forms'), ), 'PH' => array( // Philippine provinces. 'ABR' => __('Abra', 'everest-forms'), 'AGN' => __('Agusan del Norte', 'everest-forms'), 'AGS' => __('Agusan del Sur', 'everest-forms'), 'AKL' => __('Aklan', 'everest-forms'), 'ALB' => __('Albay', 'everest-forms'), 'ANT' => __('Antique', 'everest-forms'), 'APA' => __('Apayao', 'everest-forms'), 'AUR' => __('Aurora', 'everest-forms'), 'BAS' => __('Basilan', 'everest-forms'), 'BAN' => __('Bataan', 'everest-forms'), 'BTN' => __('Batanes', 'everest-forms'), 'BTG' => __('Batangas', 'everest-forms'), 'BEN' => __('Benguet', 'everest-forms'), 'BIL' => __('Biliran', 'everest-forms'), 'BOH' => __('Bohol', 'everest-forms'), 'BUK' => __('Bukidnon', 'everest-forms'), 'BUL' => __('Bulacan', 'everest-forms'), 'CAG' => __('Cagayan', 'everest-forms'), 'CAN' => __('Camarines Norte', 'everest-forms'), 'CAS' => __('Camarines Sur', 'everest-forms'), 'CAM' => __('Camiguin', 'everest-forms'), 'CAP' => __('Capiz', 'everest-forms'), 'CAT' => __('Catanduanes', 'everest-forms'), 'CAV' => __('Cavite', 'everest-forms'), 'CEB' => __('Cebu', 'everest-forms'), 'COM' => __('Compostela Valley', 'everest-forms'), 'NCO' => __('Cotabato', 'everest-forms'), 'DAV' => __('Davao del Norte', 'everest-forms'), 'DAS' => __('Davao del Sur', 'everest-forms'), 'DAC' => __('Davao Occidental', 'everest-forms'), 'DAO' => __('Davao Oriental', 'everest-forms'), 'DIN' => __('Dinagat Islands', 'everest-forms'), 'EAS' => __('Eastern Samar', 'everest-forms'), 'GUI' => __('Guimaras', 'everest-forms'), 'IFU' => __('Ifugao', 'everest-forms'), 'ILN' => __('Ilocos Norte', 'everest-forms'), 'ILS' => __('Ilocos Sur', 'everest-forms'), 'ILI' => __('Iloilo', 'everest-forms'), 'ISA' => __('Isabela', 'everest-forms'), 'KAL' => __('Kalinga', 'everest-forms'), 'LUN' => __('La Union', 'everest-forms'), 'LAG' => __('Laguna', 'everest-forms'), 'LAN' => __('Lanao del Norte', 'everest-forms'), 'LAS' => __('Lanao del Sur', 'everest-forms'), 'LEY' => __('Leyte', 'everest-forms'), 'MAG' => __('Maguindanao', 'everest-forms'), 'MAD' => __('Marinduque', 'everest-forms'), 'MAS' => __('Masbate', 'everest-forms'), 'MSC' => __('Misamis Occidental', 'everest-forms'), 'MSR' => __('Misamis Oriental', 'everest-forms'), 'MOU' => __('Mountain Province', 'everest-forms'), 'NEC' => __('Negros Occidental', 'everest-forms'), 'NER' => __('Negros Oriental', 'everest-forms'), 'NSA' => __('Northern Samar', 'everest-forms'), 'NUE' => __('Nueva Ecija', 'everest-forms'), 'NUV' => __('Nueva Vizcaya', 'everest-forms'), 'MDC' => __('Occidental Mindoro', 'everest-forms'), 'MDR' => __('Oriental Mindoro', 'everest-forms'), 'PLW' => __('Palawan', 'everest-forms'), 'PAM' => __('Pampanga', 'everest-forms'), 'PAN' => __('Pangasinan', 'everest-forms'), 'QUE' => __('Quezon', 'everest-forms'), 'QUI' => __('Quirino', 'everest-forms'), 'RIZ' => __('Rizal', 'everest-forms'), 'ROM' => __('Romblon', 'everest-forms'), 'WSA' => __('Samar', 'everest-forms'), 'SAR' => __('Sarangani', 'everest-forms'), 'SIQ' => __('Siquijor', 'everest-forms'), 'SOR' => __('Sorsogon', 'everest-forms'), 'SCO' => __('South Cotabato', 'everest-forms'), 'SLE' => __('Southern Leyte', 'everest-forms'), 'SUK' => __('Sultan Kudarat', 'everest-forms'), 'SLU' => __('Sulu', 'everest-forms'), 'SUN' => __('Surigao del Norte', 'everest-forms'), 'SUR' => __('Surigao del Sur', 'everest-forms'), 'TAR' => __('Tarlac', 'everest-forms'), 'TAW' => __('Tawi-Tawi', 'everest-forms'), 'ZMB' => __('Zambales', 'everest-forms'), 'ZAN' => __('Zamboanga del Norte', 'everest-forms'), 'ZAS' => __('Zamboanga del Sur', 'everest-forms'), 'ZSI' => __('Zamboanga Sibugay', 'everest-forms'), '00' => __('Metro Manila', 'everest-forms'), ), 'PK' => array( // Pakistani states. 'JK' => __('Azad Kashmir', 'everest-forms'), 'BA' => __('Balochistan', 'everest-forms'), 'TA' => __('FATA', 'everest-forms'), 'GB' => __('Gilgit Baltistan', 'everest-forms'), 'IS' => __('Islamabad Capital Territory', 'everest-forms'), 'KP' => __('Khyber Pakhtunkhwa', 'everest-forms'), 'PB' => __('Punjab', 'everest-forms'), 'SD' => __('Sindh', 'everest-forms'), ), 'PL' => array(), 'PR' => array(), 'PT' => array(), 'PY' => array( // Paraguayan states. 'PY-ASU' => __('Asunción', 'everest-forms'), 'PY-1' => __('Concepción', 'everest-forms'), 'PY-2' => __('San Pedro', 'everest-forms'), 'PY-3' => __('Cordillera', 'everest-forms'), 'PY-4' => __('Guairá', 'everest-forms'), 'PY-5' => __('Caaguazú', 'everest-forms'), 'PY-6' => __('Caazapá', 'everest-forms'), 'PY-7' => __('Itapúa', 'everest-forms'), 'PY-8' => __('Misiones', 'everest-forms'), 'PY-9' => __('Paraguarí', 'everest-forms'), 'PY-10' => __('Alto Paraná', 'everest-forms'), 'PY-11' => __('Central', 'everest-forms'), 'PY-12' => __('Ñeembucú', 'everest-forms'), 'PY-13' => __('Amambay', 'everest-forms'), 'PY-14' => __('Canindeyú', 'everest-forms'), 'PY-15' => __('Presidente Hayes', 'everest-forms'), 'PY-16' => __('Alto Paraguay', 'everest-forms'), 'PY-17' => __('Boquerón', 'everest-forms'), ), 'RE' => array(), 'RO' => array( // Romanian states. 'AB' => __('Alba', 'everest-forms'), 'AR' => __('Arad', 'everest-forms'), 'AG' => __('Argeș', 'everest-forms'), 'BC' => __('Bacău', 'everest-forms'), 'BH' => __('Bihor', 'everest-forms'), 'BN' => __('Bistrița-Năsăud', 'everest-forms'), 'BT' => __('Botoșani', 'everest-forms'), 'BR' => __('Brăila', 'everest-forms'), 'BV' => __('Brașov', 'everest-forms'), 'B' => __('București', 'everest-forms'), 'BZ' => __('Buzău', 'everest-forms'), 'CL' => __('Călărași', 'everest-forms'), 'CS' => __('Caraș-Severin', 'everest-forms'), 'CJ' => __('Cluj', 'everest-forms'), 'CT' => __('Constanța', 'everest-forms'), 'CV' => __('Covasna', 'everest-forms'), 'DB' => __('Dâmbovița', 'everest-forms'), 'DJ' => __('Dolj', 'everest-forms'), 'GL' => __('Galați', 'everest-forms'), 'GR' => __('Giurgiu', 'everest-forms'), 'GJ' => __('Gorj', 'everest-forms'), 'HR' => __('Harghita', 'everest-forms'), 'HD' => __('Hunedoara', 'everest-forms'), 'IL' => __('Ialomița', 'everest-forms'), 'IS' => __('Iași', 'everest-forms'), 'IF' => __('Ilfov', 'everest-forms'), 'MM' => __('Maramureș', 'everest-forms'), 'MH' => __('Mehedinți', 'everest-forms'), 'MS' => __('Mureș', 'everest-forms'), 'NT' => __('Neamț', 'everest-forms'), 'OT' => __('Olt', 'everest-forms'), 'PH' => __('Prahova', 'everest-forms'), 'SJ' => __('Sălaj', 'everest-forms'), 'SM' => __('Satu Mare', 'everest-forms'), 'SB' => __('Sibiu', 'everest-forms'), 'SV' => __('Suceava', 'everest-forms'), 'TR' => __('Teleorman', 'everest-forms'), 'TM' => __('Timiș', 'everest-forms'), 'TL' => __('Tulcea', 'everest-forms'), 'VL' => __('Vâlcea', 'everest-forms'), 'VS' => __('Vaslui', 'everest-forms'), 'VN' => __('Vrancea', 'everest-forms'), ), 'SG' => array(), 'SK' => array(), 'SI' => array(), 'SV' => array( // Salvadoran states. 'SV-AH' => __('Ahuachapán', 'everest-forms'), 'SV-CA' => __('Cabañas', 'everest-forms'), 'SV-CH' => __('Chalatenango', 'everest-forms'), 'SV-CU' => __('Cuscatlán', 'everest-forms'), 'SV-LI' => __('La Libertad', 'everest-forms'), 'SV-MO' => __('Morazán', 'everest-forms'), 'SV-PA' => __('La Paz', 'everest-forms'), 'SV-SA' => __('Santa Ana', 'everest-forms'), 'SV-SM' => __('San Miguel', 'everest-forms'), 'SV-SO' => __('Sonsonate', 'everest-forms'), 'SV-SS' => __('San Salvador', 'everest-forms'), 'SV-SV' => __('San Vicente', 'everest-forms'), 'SV-UN' => __('La Unión', 'everest-forms'), 'SV-US' => __('Usulután', 'everest-forms'), ), 'TH' => array( // Thai states. 'TH-37' => __('Amnat Charoen', 'everest-forms'), 'TH-15' => __('Ang Thong', 'everest-forms'), 'TH-14' => __('Ayutthaya', 'everest-forms'), 'TH-10' => __('Bangkok', 'everest-forms'), 'TH-38' => __('Bueng Kan', 'everest-forms'), 'TH-31' => __('Buri Ram', 'everest-forms'), 'TH-24' => __('Chachoengsao', 'everest-forms'), 'TH-18' => __('Chai Nat', 'everest-forms'), 'TH-36' => __('Chaiyaphum', 'everest-forms'), 'TH-22' => __('Chanthaburi', 'everest-forms'), 'TH-50' => __('Chiang Mai', 'everest-forms'), 'TH-57' => __('Chiang Rai', 'everest-forms'), 'TH-20' => __('Chonburi', 'everest-forms'), 'TH-86' => __('Chumphon', 'everest-forms'), 'TH-46' => __('Kalasin', 'everest-forms'), 'TH-62' => __('Kamphaeng Phet', 'everest-forms'), 'TH-71' => __('Kanchanaburi', 'everest-forms'), 'TH-40' => __('Khon Kaen', 'everest-forms'), 'TH-81' => __('Krabi', 'everest-forms'), 'TH-52' => __('Lampang', 'everest-forms'), 'TH-51' => __('Lamphun', 'everest-forms'), 'TH-42' => __('Loei', 'everest-forms'), 'TH-16' => __('Lopburi', 'everest-forms'), 'TH-58' => __('Mae Hong Son', 'everest-forms'), 'TH-44' => __('Maha Sarakham', 'everest-forms'), 'TH-49' => __('Mukdahan', 'everest-forms'), 'TH-26' => __('Nakhon Nayok', 'everest-forms'), 'TH-73' => __('Nakhon Pathom', 'everest-forms'), 'TH-48' => __('Nakhon Phanom', 'everest-forms'), 'TH-30' => __('Nakhon Ratchasima', 'everest-forms'), 'TH-60' => __('Nakhon Sawan', 'everest-forms'), 'TH-80' => __('Nakhon Si Thammarat', 'everest-forms'), 'TH-55' => __('Nan', 'everest-forms'), 'TH-96' => __('Narathiwat', 'everest-forms'), 'TH-39' => __('Nong Bua Lam Phu', 'everest-forms'), 'TH-43' => __('Nong Khai', 'everest-forms'), 'TH-12' => __('Nonthaburi', 'everest-forms'), 'TH-13' => __('Pathum Thani', 'everest-forms'), 'TH-94' => __('Pattani', 'everest-forms'), 'TH-82' => __('Phang Nga', 'everest-forms'), 'TH-93' => __('Phatthalung', 'everest-forms'), 'TH-56' => __('Phayao', 'everest-forms'), 'TH-67' => __('Phetchabun', 'everest-forms'), 'TH-76' => __('Phetchaburi', 'everest-forms'), 'TH-66' => __('Phichit', 'everest-forms'), 'TH-65' => __('Phitsanulok', 'everest-forms'), 'TH-54' => __('Phrae', 'everest-forms'), 'TH-83' => __('Phuket', 'everest-forms'), 'TH-25' => __('Prachin Buri', 'everest-forms'), 'TH-77' => __('Prachuap Khiri Khan', 'everest-forms'), 'TH-85' => __('Ranong', 'everest-forms'), 'TH-70' => __('Ratchaburi', 'everest-forms'), 'TH-21' => __('Rayong', 'everest-forms'), 'TH-45' => __('Roi Et', 'everest-forms'), 'TH-27' => __('Sa Kaeo', 'everest-forms'), 'TH-47' => __('Sakon Nakhon', 'everest-forms'), 'TH-11' => __('Samut Prakan', 'everest-forms'), 'TH-74' => __('Samut Sakhon', 'everest-forms'), 'TH-75' => __('Samut Songkhram', 'everest-forms'), 'TH-19' => __('Saraburi', 'everest-forms'), 'TH-91' => __('Satun', 'everest-forms'), 'TH-17' => __('Sing Buri', 'everest-forms'), 'TH-33' => __('Sisaket', 'everest-forms'), 'TH-90' => __('Songkhla', 'everest-forms'), 'TH-64' => __('Sukhothai', 'everest-forms'), 'TH-72' => __('Suphan Buri', 'everest-forms'), 'TH-84' => __('Surat Thani', 'everest-forms'), 'TH-32' => __('Surin', 'everest-forms'), 'TH-63' => __('Tak', 'everest-forms'), 'TH-92' => __('Trang', 'everest-forms'), 'TH-23' => __('Trat', 'everest-forms'), 'TH-34' => __('Ubon Ratchathani', 'everest-forms'), 'TH-41' => __('Udon Thani', 'everest-forms'), 'TH-61' => __('Uthai Thani', 'everest-forms'), 'TH-53' => __('Uttaradit', 'everest-forms'), 'TH-95' => __('Yala', 'everest-forms'), 'TH-35' => __('Yasothon', 'everest-forms'), ), 'TR' => array( // Turkish states. 'TR01' => __('Adana', 'everest-forms'), 'TR02' => __('Adıyaman', 'everest-forms'), 'TR03' => __('Afyon', 'everest-forms'), 'TR04' => __('Ağrı', 'everest-forms'), 'TR05' => __('Amasya', 'everest-forms'), 'TR06' => __('Ankara', 'everest-forms'), 'TR07' => __('Antalya', 'everest-forms'), 'TR08' => __('Artvin', 'everest-forms'), 'TR09' => __('Aydın', 'everest-forms'), 'TR10' => __('Balıkesir', 'everest-forms'), 'TR11' => __('Bilecik', 'everest-forms'), 'TR12' => __('Bingöl', 'everest-forms'), 'TR13' => __('Bitlis', 'everest-forms'), 'TR14' => __('Bolu', 'everest-forms'), 'TR15' => __('Burdur', 'everest-forms'), 'TR16' => __('Bursa', 'everest-forms'), 'TR17' => __('Çanakkale', 'everest-forms'), 'TR18' => __('Çankırı', 'everest-forms'), 'TR19' => __('Çorum', 'everest-forms'), 'TR20' => __('Denizli', 'everest-forms'), 'TR21' => __('Diyarbakır', 'everest-forms'), 'TR22' => __('Edirne', 'everest-forms'), 'TR23' => __('Elazığ', 'everest-forms'), 'TR24' => __('Erzincan', 'everest-forms'), 'TR25' => __('Erzurum', 'everest-forms'), 'TR26' => __('Eskişehir', 'everest-forms'), 'TR27' => __('Gaziantep', 'everest-forms'), 'TR28' => __('Giresun', 'everest-forms'), 'TR29' => __('Gümüşhane', 'everest-forms'), 'TR30' => __('Hakkari', 'everest-forms'), 'TR31' => __('Hatay', 'everest-forms'), 'TR32' => __('Isparta', 'everest-forms'), 'TR33' => __('İçel', 'everest-forms'), 'TR34' => __('İstanbul', 'everest-forms'), 'TR35' => __('İzmir', 'everest-forms'), 'TR36' => __('Kars', 'everest-forms'), 'TR37' => __('Kastamonu', 'everest-forms'), 'TR38' => __('Kayseri', 'everest-forms'), 'TR39' => __('Kırklareli', 'everest-forms'), 'TR40' => __('Kırşehir', 'everest-forms'), 'TR41' => __('Kocaeli', 'everest-forms'), 'TR42' => __('Konya', 'everest-forms'), 'TR43' => __('Kütahya', 'everest-forms'), 'TR44' => __('Malatya', 'everest-forms'), 'TR45' => __('Manisa', 'everest-forms'), 'TR46' => __('Kahramanmaraş', 'everest-forms'), 'TR47' => __('Mardin', 'everest-forms'), 'TR48' => __('Muğla', 'everest-forms'), 'TR49' => __('Muş', 'everest-forms'), 'TR50' => __('Nevşehir', 'everest-forms'), 'TR51' => __('Niğde', 'everest-forms'), 'TR52' => __('Ordu', 'everest-forms'), 'TR53' => __('Rize', 'everest-forms'), 'TR54' => __('Sakarya', 'everest-forms'), 'TR55' => __('Samsun', 'everest-forms'), 'TR56' => __('Siirt', 'everest-forms'), 'TR57' => __('Sinop', 'everest-forms'), 'TR58' => __('Sivas', 'everest-forms'), 'TR59' => __('Tekirdağ', 'everest-forms'), 'TR60' => __('Tokat', 'everest-forms'), 'TR61' => __('Trabzon', 'everest-forms'), 'TR62' => __('Tunceli', 'everest-forms'), 'TR63' => __('Şanlıurfa', 'everest-forms'), 'TR64' => __('Uşak', 'everest-forms'), 'TR65' => __('Van', 'everest-forms'), 'TR66' => __('Yozgat', 'everest-forms'), 'TR67' => __('Zonguldak', 'everest-forms'), 'TR68' => __('Aksaray', 'everest-forms'), 'TR69' => __('Bayburt', 'everest-forms'), 'TR70' => __('Karaman', 'everest-forms'), 'TR71' => __('Kırıkkale', 'everest-forms'), 'TR72' => __('Batman', 'everest-forms'), 'TR73' => __('Şırnak', 'everest-forms'), 'TR74' => __('Bartın', 'everest-forms'), 'TR75' => __('Ardahan', 'everest-forms'), 'TR76' => __('Iğdır', 'everest-forms'), 'TR77' => __('Yalova', 'everest-forms'), 'TR78' => __('Karabük', 'everest-forms'), 'TR79' => __('Kilis', 'everest-forms'), 'TR80' => __('Osmaniye', 'everest-forms'), 'TR81' => __('Düzce', 'everest-forms'), ), 'TZ' => array( // Tanzanian states. 'TZ01' => __('Arusha', 'everest-forms'), 'TZ02' => __('Dar es Salaam', 'everest-forms'), 'TZ03' => __('Dodoma', 'everest-forms'), 'TZ04' => __('Iringa', 'everest-forms'), 'TZ05' => __('Kagera', 'everest-forms'), 'TZ06' => __('Pemba North', 'everest-forms'), 'TZ07' => __('Zanzibar North', 'everest-forms'), 'TZ08' => __('Kigoma', 'everest-forms'), 'TZ09' => __('Kilimanjaro', 'everest-forms'), 'TZ10' => __('Pemba South', 'everest-forms'), 'TZ11' => __('Zanzibar South', 'everest-forms'), 'TZ12' => __('Lindi', 'everest-forms'), 'TZ13' => __('Mara', 'everest-forms'), 'TZ14' => __('Mbeya', 'everest-forms'), 'TZ15' => __('Zanzibar West', 'everest-forms'), 'TZ16' => __('Morogoro', 'everest-forms'), 'TZ17' => __('Mtwara', 'everest-forms'), 'TZ18' => __('Mwanza', 'everest-forms'), 'TZ19' => __('Coast', 'everest-forms'), 'TZ20' => __('Rukwa', 'everest-forms'), 'TZ21' => __('Ruvuma', 'everest-forms'), 'TZ22' => __('Shinyanga', 'everest-forms'), 'TZ23' => __('Singida', 'everest-forms'), 'TZ24' => __('Tabora', 'everest-forms'), 'TZ25' => __('Tanga', 'everest-forms'), 'TZ26' => __('Manyara', 'everest-forms'), 'TZ27' => __('Geita', 'everest-forms'), 'TZ28' => __('Katavi', 'everest-forms'), 'TZ29' => __('Njombe', 'everest-forms'), 'TZ30' => __('Simiyu', 'everest-forms'), ), 'LK' => array(), 'RS' => array( // Serbian districts. 'RS00' => _x('Belgrade', 'district', 'everest-forms'), 'RS14' => _x('Bor', 'district', 'everest-forms'), 'RS11' => _x('Braničevo', 'district', 'everest-forms'), 'RS02' => _x('Central Banat', 'district', 'everest-forms'), 'RS10' => _x('Danube', 'district', 'everest-forms'), 'RS23' => _x('Jablanica', 'district', 'everest-forms'), 'RS09' => _x('Kolubara', 'district', 'everest-forms'), 'RS08' => _x('Mačva', 'district', 'everest-forms'), 'RS17' => _x('Morava', 'district', 'everest-forms'), 'RS20' => _x('Nišava', 'district', 'everest-forms'), 'RS01' => _x('North Bačka', 'district', 'everest-forms'), 'RS03' => _x('North Banat', 'district', 'everest-forms'), 'RS24' => _x('Pčinja', 'district', 'everest-forms'), 'RS22' => _x('Pirot', 'district', 'everest-forms'), 'RS13' => _x('Pomoravlje', 'district', 'everest-forms'), 'RS19' => _x('Rasina', 'district', 'everest-forms'), 'RS18' => _x('Raška', 'district', 'everest-forms'), 'RS06' => _x('South Bačka', 'district', 'everest-forms'), 'RS04' => _x('South Banat', 'district', 'everest-forms'), 'RS07' => _x('Srem', 'district', 'everest-forms'), 'RS12' => _x('Šumadija', 'district', 'everest-forms'), 'RS21' => _x('Toplica', 'district', 'everest-forms'), 'RS05' => _x('West Bačka', 'district', 'everest-forms'), 'RS15' => _x('Zaječar', 'district', 'everest-forms'), 'RS16' => _x('Zlatibor', 'district', 'everest-forms'), 'RS25' => _x('Kosovo', 'district', 'everest-forms'), 'RS26' => _x('Peć', 'district', 'everest-forms'), 'RS27' => _x('Prizren', 'district', 'everest-forms'), 'RS28' => _x('Kosovska Mitrovica', 'district', 'everest-forms'), 'RS29' => _x('Kosovo-Pomoravlje', 'district', 'everest-forms'), 'RSKM' => _x('Kosovo-Metohija', 'district', 'everest-forms'), 'RSVO' => _x('Vojvodina', 'district', 'everest-forms'), ), 'SE' => array(), 'UA' => array( // Ukrainian oblasts. 'VN' => __('Vinnytsia Oblast', 'everest-forms'), 'VL' => __('Volyn Oblast', 'everest-forms'), 'DP' => __('Dnipropetrovsk Oblast', 'everest-forms'), 'DT' => __('Donetsk Oblast', 'everest-forms'), 'ZT' => __('Zhytomyr Oblast', 'everest-forms'), 'ZK' => __('Zakarpattia Oblast', 'everest-forms'), 'ZP' => __('Zaporizhzhia Oblast', 'everest-forms'), 'IF' => __('Ivano-Frankivsk Oblast', 'everest-forms'), 'KV' => __('Kyiv Oblast', 'everest-forms'), 'KH' => __('Kirovohrad Oblast', 'everest-forms'), 'LH' => __('Luhansk Oblast', 'everest-forms'), 'LV' => __('Lviv Oblast', 'everest-forms'), 'MY' => __('Mykolaiv Oblast', 'everest-forms'), 'OD' => __('Odessa Oblast', 'everest-forms'), 'PL' => __('Poltava Oblast', 'everest-forms'), 'RV' => __('Rivne Oblast', 'everest-forms'), 'SM' => __('Sumy Oblast', 'everest-forms'), 'TP' => __('Ternopil Oblast', 'everest-forms'), 'KK' => __('Kharkiv Oblast', 'everest-forms'), 'KS' => __('Kherson Oblast', 'everest-forms'), 'KM' => __('Khmelnytskyi Oblast', 'everest-forms'), 'CK' => __('Cherkasy Oblast', 'everest-forms'), 'CH' => __('Chernihiv Oblast', 'everest-forms'), 'CV' => __('Chernivtsi Oblast', 'everest-forms'), ), 'UG' => array( // Ugandan districts. 'UG314' => __('Abim', 'everest-forms'), 'UG301' => __('Adjumani', 'everest-forms'), 'UG322' => __('Agago', 'everest-forms'), 'UG323' => __('Alebtong', 'everest-forms'), 'UG315' => __('Amolatar', 'everest-forms'), 'UG324' => __('Amudat', 'everest-forms'), 'UG216' => __('Amuria', 'everest-forms'), 'UG316' => __('Amuru', 'everest-forms'), 'UG302' => __('Apac', 'everest-forms'), 'UG303' => __('Arua', 'everest-forms'), 'UG217' => __('Budaka', 'everest-forms'), 'UG218' => __('Bududa', 'everest-forms'), 'UG201' => __('Bugiri', 'everest-forms'), 'UG235' => __('Bugweri', 'everest-forms'), 'UG420' => __('Buhweju', 'everest-forms'), 'UG117' => __('Buikwe', 'everest-forms'), 'UG219' => __('Bukedea', 'everest-forms'), 'UG118' => __('Bukomansimbi', 'everest-forms'), 'UG220' => __('Bukwa', 'everest-forms'), 'UG225' => __('Bulambuli', 'everest-forms'), 'UG416' => __('Buliisa', 'everest-forms'), 'UG401' => __('Bundibugyo', 'everest-forms'), 'UG430' => __('Bunyangabu', 'everest-forms'), 'UG402' => __('Bushenyi', 'everest-forms'), 'UG202' => __('Busia', 'everest-forms'), 'UG221' => __('Butaleja', 'everest-forms'), 'UG119' => __('Butambala', 'everest-forms'), 'UG233' => __('Butebo', 'everest-forms'), 'UG120' => __('Buvuma', 'everest-forms'), 'UG226' => __('Buyende', 'everest-forms'), 'UG317' => __('Dokolo', 'everest-forms'), 'UG121' => __('Gomba', 'everest-forms'), 'UG304' => __('Gulu', 'everest-forms'), 'UG403' => __('Hoima', 'everest-forms'), 'UG417' => __('Ibanda', 'everest-forms'), 'UG203' => __('Iganga', 'everest-forms'), 'UG418' => __('Isingiro', 'everest-forms'), 'UG204' => __('Jinja', 'everest-forms'), 'UG318' => __('Kaabong', 'everest-forms'), 'UG404' => __('Kabale', 'everest-forms'), 'UG405' => __('Kabarole', 'everest-forms'), 'UG213' => __('Kaberamaido', 'everest-forms'), 'UG427' => __('Kagadi', 'everest-forms'), 'UG428' => __('Kakumiro', 'everest-forms'), 'UG101' => __('Kalangala', 'everest-forms'), 'UG222' => __('Kaliro', 'everest-forms'), 'UG122' => __('Kalungu', 'everest-forms'), 'UG102' => __('Kampala', 'everest-forms'), 'UG205' => __('Kamuli', 'everest-forms'), 'UG413' => __('Kamwenge', 'everest-forms'), 'UG414' => __('Kanungu', 'everest-forms'), 'UG206' => __('Kapchorwa', 'everest-forms'), 'UG236' => __('Kapelebyong', 'everest-forms'), 'UG126' => __('Kasanda', 'everest-forms'), 'UG406' => __('Kasese', 'everest-forms'), 'UG207' => __('Katakwi', 'everest-forms'), 'UG112' => __('Kayunga', 'everest-forms'), 'UG407' => __('Kibaale', 'everest-forms'), 'UG103' => __('Kiboga', 'everest-forms'), 'UG227' => __('Kibuku', 'everest-forms'), 'UG432' => __('Kikuube', 'everest-forms'), 'UG419' => __('Kiruhura', 'everest-forms'), 'UG421' => __('Kiryandongo', 'everest-forms'), 'UG408' => __('Kisoro', 'everest-forms'), 'UG305' => __('Kitgum', 'everest-forms'), 'UG319' => __('Koboko', 'everest-forms'), 'UG325' => __('Kole', 'everest-forms'), 'UG306' => __('Kotido', 'everest-forms'), 'UG208' => __('Kumi', 'everest-forms'), 'UG333' => __('Kwania', 'everest-forms'), 'UG228' => __('Kween', 'everest-forms'), 'UG123' => __('Kyankwanzi', 'everest-forms'), 'UG422' => __('Kyegegwa', 'everest-forms'), 'UG415' => __('Kyenjojo', 'everest-forms'), 'UG125' => __('Kyotera', 'everest-forms'), 'UG326' => __('Lamwo', 'everest-forms'), 'UG307' => __('Lira', 'everest-forms'), 'UG229' => __('Luuka', 'everest-forms'), 'UG104' => __('Luwero', 'everest-forms'), 'UG124' => __('Lwengo', 'everest-forms'), 'UG114' => __('Lyantonde', 'everest-forms'), 'UG223' => __('Manafwa', 'everest-forms'), 'UG320' => __('Maracha', 'everest-forms'), 'UG105' => __('Masaka', 'everest-forms'), 'UG409' => __('Masindi', 'everest-forms'), 'UG214' => __('Mayuge', 'everest-forms'), 'UG209' => __('Mbale', 'everest-forms'), 'UG410' => __('Mbarara', 'everest-forms'), 'UG423' => __('Mitooma', 'everest-forms'), 'UG115' => __('Mityana', 'everest-forms'), 'UG308' => __('Moroto', 'everest-forms'), 'UG309' => __('Moyo', 'everest-forms'), 'UG106' => __('Mpigi', 'everest-forms'), 'UG107' => __('Mubende', 'everest-forms'), 'UG108' => __('Mukono', 'everest-forms'), 'UG334' => __('Nabilatuk', 'everest-forms'), 'UG311' => __('Nakapiripirit', 'everest-forms'), 'UG116' => __('Nakaseke', 'everest-forms'), 'UG109' => __('Nakasongola', 'everest-forms'), 'UG230' => __('Namayingo', 'everest-forms'), 'UG234' => __('Namisindwa', 'everest-forms'), 'UG224' => __('Namutumba', 'everest-forms'), 'UG327' => __('Napak', 'everest-forms'), 'UG310' => __('Nebbi', 'everest-forms'), 'UG231' => __('Ngora', 'everest-forms'), 'UG424' => __('Ntoroko', 'everest-forms'), 'UG411' => __('Ntungamo', 'everest-forms'), 'UG328' => __('Nwoya', 'everest-forms'), 'UG331' => __('Omoro', 'everest-forms'), 'UG329' => __('Otuke', 'everest-forms'), 'UG321' => __('Oyam', 'everest-forms'), 'UG312' => __('Pader', 'everest-forms'), 'UG332' => __('Pakwach', 'everest-forms'), 'UG210' => __('Pallisa', 'everest-forms'), 'UG110' => __('Rakai', 'everest-forms'), 'UG429' => __('Rubanda', 'everest-forms'), 'UG425' => __('Rubirizi', 'everest-forms'), 'UG431' => __('Rukiga', 'everest-forms'), 'UG412' => __('Rukungiri', 'everest-forms'), 'UG111' => __('Sembabule', 'everest-forms'), 'UG232' => __('Serere', 'everest-forms'), 'UG426' => __('Sheema', 'everest-forms'), 'UG215' => __('Sironko', 'everest-forms'), 'UG211' => __('Soroti', 'everest-forms'), 'UG212' => __('Tororo', 'everest-forms'), 'UG113' => __('Wakiso', 'everest-forms'), 'UG313' => __('Yumbe', 'everest-forms'), 'UG330' => __('Zombo', 'everest-forms'), ), 'UM' => array( '81' => __('Baker Island', 'everest-forms'), '84' => __('Howland Island', 'everest-forms'), '86' => __('Jarvis Island', 'everest-forms'), '67' => __('Johnston Atoll', 'everest-forms'), '89' => __('Kingman Reef', 'everest-forms'), '71' => __('Midway Atoll', 'everest-forms'), '76' => __('Navassa Island', 'everest-forms'), '95' => __('Palmyra Atoll', 'everest-forms'), '79' => __('Wake Island', 'everest-forms'), ), 'US' => array( // U.S. states. 'AL' => __('Alabama', 'everest-forms'), 'AK' => __('Alaska', 'everest-forms'), 'AZ' => __('Arizona', 'everest-forms'), 'AR' => __('Arkansas', 'everest-forms'), 'CA' => __('California', 'everest-forms'), 'CO' => __('Colorado', 'everest-forms'), 'CT' => __('Connecticut', 'everest-forms'), 'DE' => __('Delaware', 'everest-forms'), 'DC' => __('District Of Columbia', 'everest-forms'), 'FL' => __('Florida', 'everest-forms'), 'GA' => _x('Georgia', 'US state of Georgia', 'everest-forms'), 'HI' => __('Hawaii', 'everest-forms'), 'ID' => __('Idaho', 'everest-forms'), 'IL' => __('Illinois', 'everest-forms'), 'IN' => __('Indiana', 'everest-forms'), 'IA' => __('Iowa', 'everest-forms'), 'KS' => __('Kansas', 'everest-forms'), 'KY' => __('Kentucky', 'everest-forms'), 'LA' => __('Louisiana', 'everest-forms'), 'ME' => __('Maine', 'everest-forms'), 'MD' => __('Maryland', 'everest-forms'), 'MA' => __('Massachusetts', 'everest-forms'), 'MI' => __('Michigan', 'everest-forms'), 'MN' => __('Minnesota', 'everest-forms'), 'MS' => __('Mississippi', 'everest-forms'), 'MO' => __('Missouri', 'everest-forms'), 'MT' => __('Montana', 'everest-forms'), 'NE' => __('Nebraska', 'everest-forms'), 'NV' => __('Nevada', 'everest-forms'), 'NH' => __('New Hampshire', 'everest-forms'), 'NJ' => __('New Jersey', 'everest-forms'), 'NM' => __('New Mexico', 'everest-forms'), 'NY' => __('New York', 'everest-forms'), 'NC' => __('North Carolina', 'everest-forms'), 'ND' => __('North Dakota', 'everest-forms'), 'OH' => __('Ohio', 'everest-forms'), 'OK' => __('Oklahoma', 'everest-forms'), 'OR' => __('Oregon', 'everest-forms'), 'PA' => __('Pennsylvania', 'everest-forms'), 'RI' => __('Rhode Island', 'everest-forms'), 'SC' => __('South Carolina', 'everest-forms'), 'SD' => __('South Dakota', 'everest-forms'), 'TN' => __('Tennessee', 'everest-forms'), 'TX' => __('Texas', 'everest-forms'), 'UT' => __('Utah', 'everest-forms'), 'VT' => __('Vermont', 'everest-forms'), 'VA' => __('Virginia', 'everest-forms'), 'WA' => __('Washington', 'everest-forms'), 'WV' => __('West Virginia', 'everest-forms'), 'WI' => __('Wisconsin', 'everest-forms'), 'WY' => __('Wyoming', 'everest-forms'), 'AA' => __('Armed Forces (AA)', 'everest-forms'), 'AE' => __('Armed Forces (AE)', 'everest-forms'), 'AP' => __('Armed Forces (AP)', 'everest-forms'), ), 'UY' => array( // Uruguayan states. 'UY-AR' => __('Artigas', 'everest-forms'), 'UY-CA' => __('Canelones', 'everest-forms'), 'UY-CL' => __('Cerro Largo', 'everest-forms'), 'UY-CO' => __('Colonia', 'everest-forms'), 'UY-DU' => __('Durazno', 'everest-forms'), 'UY-FS' => __('Flores', 'everest-forms'), 'UY-FD' => __('Florida', 'everest-forms'), 'UY-LA' => __('Lavalleja', 'everest-forms'), 'UY-MA' => __('Maldonado', 'everest-forms'), 'UY-MO' => __('Montevideo', 'everest-forms'), 'UY-PA' => __('Paysandú', 'everest-forms'), 'UY-RN' => __('Río Negro', 'everest-forms'), 'UY-RV' => __('Rivera', 'everest-forms'), 'UY-RO' => __('Rocha', 'everest-forms'), 'UY-SA' => __('Salto', 'everest-forms'), 'UY-SJ' => __('San José', 'everest-forms'), 'UY-SO' => __('Soriano', 'everest-forms'), 'UY-TA' => __('Tacuarembó', 'everest-forms'), 'UY-TT' => __('Treinta y Tres', 'everest-forms'), ), 'VE' => array( // Venezuelan states. 'VE-A' => __('Capital', 'everest-forms'), 'VE-B' => __('Anzoátegui', 'everest-forms'), 'VE-C' => __('Apure', 'everest-forms'), 'VE-D' => __('Aragua', 'everest-forms'), 'VE-E' => __('Barinas', 'everest-forms'), 'VE-F' => __('Bolívar', 'everest-forms'), 'VE-G' => __('Carabobo', 'everest-forms'), 'VE-H' => __('Cojedes', 'everest-forms'), 'VE-I' => __('Falcón', 'everest-forms'), 'VE-J' => __('Guárico', 'everest-forms'), 'VE-K' => __('Lara', 'everest-forms'), 'VE-L' => __('Mérida', 'everest-forms'), 'VE-M' => __('Miranda', 'everest-forms'), 'VE-N' => __('Monagas', 'everest-forms'), 'VE-O' => __('Nueva Esparta', 'everest-forms'), 'VE-P' => __('Portuguesa', 'everest-forms'), 'VE-R' => __('Sucre', 'everest-forms'), 'VE-S' => __('Táchira', 'everest-forms'), 'VE-T' => __('Trujillo', 'everest-forms'), 'VE-U' => __('Yaracuy', 'everest-forms'), 'VE-V' => __('Zulia', 'everest-forms'), 'VE-W' => __('Federal Dependencies', 'everest-forms'), 'VE-X' => __('La Guaira (Vargas)', 'everest-forms'), 'VE-Y' => __('Delta Amacuro', 'everest-forms'), 'VE-Z' => __('Amazonas', 'everest-forms'), ), 'VN' => array(), 'YT' => array(), 'ZA' => array( // South African states. 'EC' => __('Eastern Cape', 'everest-forms'), 'FS' => __('Free State', 'everest-forms'), 'GP' => __('Gauteng', 'everest-forms'), 'KZN' => __('KwaZulu-Natal', 'everest-forms'), 'LP' => __('Limpopo', 'everest-forms'), 'MP' => __('Mpumalanga', 'everest-forms'), 'NC' => __('Northern Cape', 'everest-forms'), 'NW' => __('North West', 'everest-forms'), 'WC' => __('Western Cape', 'everest-forms'), ), 'ZM' => array( // Zambian provinces. 'ZM-01' => __('Western', 'everest-forms'), 'ZM-02' => __('Central', 'everest-forms'), 'ZM-03' => __('Eastern', 'everest-forms'), 'ZM-04' => __('Luapula', 'everest-forms'), 'ZM-05' => __('Northern', 'everest-forms'), 'ZM-06' => __('North-Western', 'everest-forms'), 'ZM-07' => __('Southern', 'everest-forms'), 'ZM-08' => __('Copperbelt', 'everest-forms'), 'ZM-09' => __('Lusaka', 'everest-forms'), 'ZM-10' => __('Muchinga', 'everest-forms'), ), ); return (array) apply_filters('everest_forms_states', $states); } /** * Get builder fields groups. * * @return array */ function evf_get_fields_groups() { return (array) apply_filters( 'everest_forms_builder_fields_groups', array( 'general' => __('General Fields', 'everest-forms'), 'advanced' => __('Advanced Fields', 'everest-forms'), 'payment' => __('Payment Fields', 'everest-forms'), 'survey' => __('Survey Fields', 'everest-forms'), ) ); } /** * Get a builder fields type's name. * * @param string $type Coupon type. * @return string */ function evf_get_fields_group($type = '') { $types = evf_get_fields_groups(); return isset($types[$type]) ? $types[$type] : ''; } /** * Get all fields settings. * * @return array Settings data. */ function evf_get_all_fields_settings() { $settings = array( 'label' => array( 'id' => 'label', 'title' => __('Label', 'everest-forms'), 'desc' => __('Enter text for the form field label. This is recommended and can be hidden in the Advanced Settings.', 'everest-forms'), 'default' => '', 'type' => 'text', 'desc_tip' => true, ), 'meta' => array( 'id' => 'meta-key', 'title' => __('Meta Key', 'everest-forms'), 'desc' => __('Enter meta key to be stored in database.', 'everest-forms'), 'default' => '', 'type' => 'text', 'desc_tip' => true, ), 'description' => array( 'id' => 'description', 'title' => __('Description', 'everest-forms'), 'type' => 'textarea', 'desc' => __('Enter text for the form field description.', 'everest-forms'), 'default' => '', 'desc_tip' => true, ), 'required' => array( 'id' => 'require', 'title' => __('Required', 'everest-forms'), 'type' => 'checkbox', 'desc' => __('Check this option to mark the field required.', 'everest-forms'), 'default' => 'no', 'desc_tip' => true, ), 'choices' => array( 'id' => 'choices', 'title' => __('Choices', 'everest-forms'), 'desc' => __('Add choices for the form field.', 'everest-forms'), 'type' => 'choices', 'desc_tip' => true, 'defaults' => array( 1 => __('First Choice', 'everest-forms'), 2 => __('Second Choice', 'everest-forms'), 3 => __('Third Choice', 'everest-forms'), ), ), 'placeholder' => array( 'id' => 'placeholder', 'title' => __('Placeholder Text', 'everest-forms'), 'desc' => __('Enter text for the form field placeholder.', 'everest-forms'), 'default' => '', 'type' => 'text', 'desc_tip' => true, ), 'css' => array( 'id' => 'css', 'title' => __('CSS Classes', 'everest-forms'), 'desc' => __('Enter CSS class for this field container. Class names should be separated with spaces.', 'everest-forms'), 'default' => '', 'type' => 'text', 'desc_tip' => true, ), 'label_hide' => array( 'id' => 'label_hide', 'title' => __('Hide Label', 'everest-forms'), 'type' => 'checkbox', 'desc' => __('Check this option to hide the form field label.', 'everest-forms'), 'default' => 'no', 'desc_tip' => true, ), 'sublabel_hide' => array( 'id' => 'sublabel_hide', 'title' => __('Hide Sub-Labels', 'everest-forms'), 'type' => 'checkbox', 'desc' => __('Check this option to hide the form field sub-label.', 'everest-forms'), 'default' => 'no', 'desc_tip' => true, ), ); return apply_filters('everest_form_all_fields_settings', $settings); } /** * Helper function to display debug data. * * @since 1.3.2 * * @param mixed $expression The expression to be printed. * @param bool $return Optional. Default false. Set to true to return the human-readable string. * * @return string */ function evf_debug_data($expression, $return = false) { if (defined('EVF_DEBUG') && true === EVF_DEBUG) { if (! $return) { 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>'; echo "==================== Everest Forms Debugging ====================\n\n"; if (is_array($expression) || is_object($expression)) { echo esc_html(evf_print_r($expression, true)); } else { echo esc_html($expression); } echo '</textarea>'; } else { $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>'; $output .= "==================== Everest Forms Debugging ====================\n\n"; if (is_array($expression) || is_object($expression)) { $output .= evf_print_r($expression, true); } else { $output .= $expression; } $output .= '</textarea>'; return $output; } } } /** * String translation function. * * @since 1.4.9 * * @param int $form_id Form ID. * @param string $field_id Field ID. * @param mixed $value The string that needs to be translated. * @param string $suffix The suffix to make the field have unique naem. * * @return mixed The translated string. */ function evf_string_translation($form_id, $field_id, $value, $suffix = '') { $context = isset($form_id) ? 'everest_forms_' . absint($form_id) : 0; $name = isset($field_id) ? evf_clean($field_id . $suffix) : ''; if (function_exists('icl_register_string')) { icl_register_string($context, $name, $value); } if (function_exists('icl_t')) { $value = icl_t($context, $name, $value); } return $value; } /** * Trigger logging cleanup using the logging class. * * @since 1.6.2 */ function evf_cleanup_logs() { $logger = evf_get_logger(); if (is_callable(array($logger, 'clear_expired_logs'))) { $logger->clear_expired_logs(); } } add_action('everest_forms_cleanup_logs', 'evf_cleanup_logs'); /** * Check whether it device is table or not from HTTP user agent * * @since 1.7.0 * * @return bool */ function evf_is_tablet() { return false !== stripos(evf_get_user_agent(), 'tablet') || false !== stripos(evf_get_user_agent(), 'tab'); } /** * Get user device from user agent from HTTP user agent. * * @since 1.7.0 * * @return string */ function evf_get_user_device() { if (evf_is_tablet()) { return esc_html__('Tablet', 'everest-forms'); } elseif (wp_is_mobile()) { return esc_html__('Mobile', 'everest-forms'); } else { return esc_html__('Desktop', 'everest-forms'); } } /** * A wp_parse_args() for multi-dimensional array. * * @see https://developer.wordpress.org/reference/functions/wp_parse_args/ * * @since 1.7.0 * * @param array $args Value to merge with $defaults. * @param array $defaults Array that serves as the defaults. * * @return array Merged user defined values with defaults. */ function evf_parse_args(&$args, $defaults) { $args = (array) $args; $defaults = (array) $defaults; $result = $defaults; foreach ($args as $k => &$v) { if (is_array($v) && isset($result[$k])) { $result[$k] = evf_parse_args($v, $result[$k]); } else { $result[$k] = $v; } } return $result; } /** * Get date of ranges. * * @since 1.7.0 * * @param string $first Starting date. * @param string $last End date. * @param string $step Date step. * @param string $format Date format. * * @return array Range dates. */ function evf_date_range($first, $last = '', $step = '+1 day', $format = 'Y/m/d') { $dates = array(); $current = strtotime($first); $last = strtotime($last); while ($current <= $last) { $dates[] = date_i18n($format, $current); $current = strtotime($step, $current); } return $dates; } /** * Process syntaxes in a text. * * @since 1.7.0 * * @param string $text Text to be processed. * @param bool $escape_html Whether to escape all the htmls before processing or not. * @param bool $trim_trailing_spaces Whether to trim trailing spaces or not. * * @return string Processed text. */ function evf_process_syntaxes($text, $escape_html = true, $trim_trailing_spaces = true) { if (true === $trim_trailing_spaces) { $text = trim($text); } if (true === $escape_html) { $text = esc_html($text); } $text = evf_process_hyperlink_syntax($text); $text = evf_process_italic_syntax($text); $text = evf_process_bold_syntax($text); $text = evf_process_underline_syntax($text); $text = evf_process_line_breaks($text); return $text; } /** * Extract page ids from a text. * * @since 1.7.0 * * @param string $text Text to extract page ids from. * * @return mixed */ function evf_extract_page_ids($text) { $page_id_syntax_matches = array(); $page_ids = array(); while (preg_match('/page_id=([0-9]+)/', $text, $page_id_syntax_matches)) { $page_id = $page_id_syntax_matches[1]; $page_ids[] = $page_id; $text = str_replace('page_id=' . $page_id, '', $text); } if (count($page_ids) > 0) { return $page_ids; } return false; } /** * Process hyperlink syntaxes in a text. * The syntax used for hyperlink is: [Link Label](Link URL) * Example: [Google Search Page](https://google.com) * * @since 1.7.0 * * @param string $text Text to process. * @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, * as the html tags are escaped in a CSV file. * * @return string Processed text. */ function evf_process_hyperlink_syntax($text, $use_no_a_tag = false) { $matches = array(); $regex = '/(\[[^\[\]]*\])(\([^\(\)]*\))/'; while (preg_match($regex, $text, $matches)) { $matched_string = $matches[0]; $label = $matches[1]; $link = $matches[2]; $class = ''; $page_id = ''; // Trim brackets. $label = trim(substr($label, 1, -1)); $link = trim(substr($link, 1, -1)); // Proceed only if label or link is not empty. if (! empty($label) || ! empty($link)) { // Use hash(#) if the link is empty. if (empty($link)) { $link = '#'; } // Use link as label if it's empty. if (empty($label)) { $label = $link; } // See if it's a link to a local page. if (strpos($link, '?') === 0) { $class .= ' evf-privacy-policy-local-page-link'; // Extract page id. $page_ids = evf_extract_page_ids($link); if (false !== $page_ids) { $page_id = $page_ids[0]; $link = get_page_link($page_id); if (empty($link)) { $link = '#'; } } } // Insert hyperlink html. if (true === $use_no_a_tag) { $html = $link; } else { $html = sprintf('<a data-page-id="%s" target="_blank" rel="noopener noreferrer nofollow" href="%s" class="%s">%s</a>', $page_id, $link, $class, $label); } $text = str_replace($matched_string, $html, $text); } else { // If both label and link are empty then replace it with empty string. $text = str_replace($matched_string, '', $text); } } return $text; } /** * Process italic syntaxes in a text. * The syntax used for italic text is: `text` * Just wrap the text with back tick characters. To escape a backtick insert a backslash(\) before the character like "\`". * * @since 1.7.0 * * @param string $text Text to process. * * @return string Processed text. */ function evf_process_italic_syntax($text) { $matches = array(); $regex = '/`[^`]+`/'; $text = str_replace('\`', '<&&&&&>', $text); // To preserve an escaped special character '`'. while (preg_match($regex, $text, $matches)) { $matched_string = $matches[0]; $label = substr(trim($matched_string), 1, -1); $html = sprintf('<i>%s</i>', $label); $text = str_replace($matched_string, $html, $text); } return str_replace('<&&&&&>', '`', $text); } /** * Process bold syntaxes in a text. * The syntax used for bold text is: *text* * Just wrap the text with asterisk characters. To escape an asterisk insert a backslash(\) before the character like "\*". * * @since 1.7.0 * * @param string $text Text to process. * * @return string Processed text. */ function evf_process_bold_syntax($text) { $matches = array(); $regex = '/\*[^*]+\*/'; $text = str_replace('\*', '<&&&&&>', $text); // To preserve an escaped special character '*'. while (preg_match($regex, $text, $matches)) { $matched_string = $matches[0]; $label = substr(trim($matched_string), 1, -1); $html = sprintf('<b>%s</b>', $label); $text = str_replace($matched_string, $html, $text); } return str_replace('<&&&&&>', '*', $text); } /** * Process underline syntaxes in a text. * The syntax used for bold text is: __text__ * Wrap the text with double underscore characters. To escape an underscore insert a backslash(\) before the character like "\_". * * @since 1.7.0 * * @param string $text Text to process. * * @return string Processed text. */ function evf_process_underline_syntax($text) { $matches = array(); $regex = '/__[^_]+__/'; $text = str_replace('\_', '<&&&&&>', $text); // To preserve an escaped special character '_'. while (preg_match($regex, $text, $matches)) { $matched_string = $matches[0]; $label = substr(trim($matched_string), 2, -2); $html = sprintf('<u>%s</u>', $label); $text = str_replace($matched_string, $html, $text); } $text = str_replace('<&&&&&>', '_', $text); return $text; } /** * It replaces `\n` characters with `<br/>` tag because new line `\n` character is not supported in html. * * @since 1.7.0 * * @param string $text Text to process. * * @return string Processed text. */ function evf_process_line_breaks($text) { return str_replace("\n", '<br/>', $text); } /** * Check whether the current page is in AMP mode or not. * We need to check for specific functions, as there is no special AMP header. * * @since 1.8.4 * * @param bool $check_theme_support Whether theme support should be checked. Defaults to true. * * @return bool */ function evf_is_amp($check_theme_support = true) { $is_amp = false; if ( // AMP by Automattic. (function_exists('amp_is_request') && amp_is_request()) || // Better AMP. (function_exists('is_better_amp') && is_better_amp()) ) { $is_amp = true; } if ($is_amp && $check_theme_support) { $is_amp = current_theme_supports('amp'); } return apply_filters('evf_is_amp', $is_amp); } /** * EVF KSES. * * @since 1.8.2.1 * * @param string $context Context. */ function evf_get_allowed_html_tags($context = '') { $post_tags = wp_kses_allowed_html('post'); if ('builder' === $context) { $builder_tags = get_transient('evf-builder-tags-list'); if (! empty($builder_tags)) { return $builder_tags; } $allowed_tags = evf_get_json_file_contents('assets/allowed_tags/allowed_tags.json', true); if (! empty($allowed_tags)) { foreach ($allowed_tags as $tag => $args) { if (array_key_exists($tag, $post_tags)) { foreach ($args as $arg => $value) { if (! array_key_exists($arg, $post_tags[$tag])) { $post_tags[$tag][$arg] = true; } } } else { $post_tags[$tag] = $args; } } set_transient('evf-builder-tags-list', $post_tags, DAY_IN_SECONDS); } return $post_tags; } return wp_parse_args( $post_tags, array( 'input' => array( 'type' => true, 'name' => true, 'value' => true, ), 'select' => array( 'name' => true, 'id' => true, ), 'option' => array( 'value' => true, 'selected' => true, ), 'textarea' => array( 'style' => true, ), ) ); } /** * Parse Builder Post Data. * * @param mixed $post_data Post Data. * * @since 1.8.2.2 */ function evf_sanitize_builder($post_data = array()) { if (empty($post_data) || ! is_array($post_data)) { return array(); } $form_data = array(); foreach ( $post_data as $data_key => $data ) { $name = sanitize_text_field( $data->name ); if ( preg_match( '/\<.*\>/', $data->value ) ) { $value = wp_kses_post( $data->value ); } elseif ( 'settings[external_url]' === $data->name ) { $value = esc_url_raw( $data->value ); } elseif ( preg_match( '/evf_email_message/', $data->name ) || preg_match( '/telegram_message/', $data->name ) || preg_match( '/slack_message/', $data->name ) ) { $value = wp_kses_post( $data->value ); } elseif ( preg_match( '/calculation_field/', $data->name ) ) { $value = wp_kses_post( $data->value ); } elseif ( preg_match( '/successful_form_submission_message/', $data->name ) ) { $value = wp_kses_post( $data->value ); } elseif ( preg_match( '/meta-key/', $data->name ) ) { $value = sanitize_key( $data->value ); } else { $value = sanitize_text_field($data->value); } $form_data[sanitize_text_field($data_key)] = (object) array( 'name' => $name, 'value' => $value, ); } return $form_data; } /** * Entry Post Data. * * @param mixed $entry Post Data. * * @since 1.8.2.2 */ function evf_sanitize_entry($entry = array()) { if (empty($entry) || ! is_array($entry) || empty($entry['form_fields'])) { return $entry; } $form_id = absint($entry['id']); $form_data = evf()->form->get($form_id, array('contents_only' => true)); if (! $form_data) { return array(); } $form_data = evf_decode($form_data->post_content); $form_fields = $form_data['form_fields']; if (empty($form_fields)) { return array(); } foreach ($form_fields as $key => $field) { $key = sanitize_text_field($key); if (array_key_exists($key, $entry['form_fields'])) { switch ($field['type']) { case 'email': if (isset($entry['form_fields'][$key]['primary'])) { $entry['form_fields'][$key]['primary'] = sanitize_email($entry['form_fields'][$key]['primary']); $entry['form_fields'][$key]['secondary'] = sanitize_email($entry['form_fields'][$key]['secondary']); } else { $entry['form_fields'][$key] = sanitize_email($entry['form_fields'][$key]); } break; case 'file-upload': case 'signature': case 'image-upload': $entry['form_fields'][$key] = is_array($entry['form_fields'][$key]) ? $entry['form_fields'][$key] : esc_url_raw($entry['form_fields'][$key]); break; case 'textarea': case 'html': case 'privacy-policy': case 'wysiwug': $entry['form_fields'][$key] = wp_kses_post($entry['form_fields'][$key]); break; case 'repeater-fields': $entry['form_fields'][$key] = $entry['form_fields'][$key]; break; default: if (is_array($entry['form_fields'][$key])) { foreach ($entry['form_fields'][$key] as $field_key => $value) { $field_key = sanitize_text_field($field_key); $entry['form_fields'][$key][$field_key] = sanitize_text_field($value); } } else { $entry['form_fields'][$key] = sanitize_text_field($entry['form_fields'][$key]); } } } return $entry; } } /** * EVF Get json file contents. * * @param mixed $file File path. * @param mixed $to_array Returned data in array. */ function evf_get_json_file_contents($file, $to_array = false) { if ($to_array) { return json_decode(evf_file_get_contents($file), true); } return json_decode(evf_file_get_contents($file)); } /** * EVF file get contents. * * @param mixed $file File path. */ function evf_file_get_contents($file) { if ($file) { $local_file = preg_replace('/\\\\|\/\//', '/', plugin_dir_path(EVF_PLUGIN_FILE) . $file); $response = file_get_contents($local_file); if ($response) { return $response; } global $wp_filesystem; require_once ABSPATH . '/wp-admin/includes/file.php'; WP_Filesystem(); $local_file = preg_replace('/\\\\|\/\//', '/', plugin_dir_path(EVF_PLUGIN_FILE) . $file); if ($wp_filesystem->exists($local_file)) { $response = $wp_filesystem->get_contents($local_file); return $response; } } return; } /** * Parses datetime values based on the provided format and mode. * * @param string $datetime_value The datetime value to parse. * @param string $datetime_format The format of the datetime value. * @param string $date_format The format of the date. * @param string $mode The mode of the datetime field. * @param int $time_interval The time interval in minutes. * @param int $entry_id The entry id. * @return array */ function parse_datetime_values($datetime_value, $datetime_format, $date_format, $mode, $time_interval, $entry_id = 0) { $datetime_arr = array(); switch ($datetime_format) { case 'time': $current_date = gmdate('Y-m-d'); $datetime_value = gmdate('H:i', strtotime($datetime_value)); $datetime_start = "$current_date $datetime_value"; $date_time = new DateTime($datetime_start); $date_time->modify("+$time_interval minute"); $datetime_end = $date_time->format('Y-m-d H:i'); $datetime_arr[$entry_id] = array($datetime_start, $datetime_end); break; case 'date': if ('range' === $mode) { $datetime_value = apply_filters('everest_forms_time_date_format', $datetime_value); $selected_dates = explode(' to ', $datetime_value); if (count($selected_dates) >= 2) { if (count($selected_dates) >= 2) { $start_date = DateTime::createFromFormat($date_format, $selected_dates[0]); if ($start_date === false) { evf_get_logger()->debug(print_r("Invalid start date format: {$selected_dates[0]}", true)); } $start_date->setTime(0, 0); $datetime_start = $start_date->format('Y-m-d H:i'); $end_date = DateTime::createFromFormat($date_format, $selected_dates[1]); if ($end_date === false) { evf_get_logger()->debug(print_r("Invalid end date format: {$selected_dates[1]}", true)); } $end_date->modify('+23 hours'); $datetime_end = $end_date->format('Y-m-d H:i'); $datetime_arr[$entry_id] = array($datetime_start, $datetime_end); } } else { if (!empty($datetime_value) && ! is_array($datetime_value)) { $datetime_arr[$entry_id] = $datetime_value; } } } else { $selected_dates = explode(', ', $datetime_value); foreach ($selected_dates as $selected_date) { $datetime_start = "$selected_date 00:00"; $datetime_start = gmdate('Y-m-d H:i', strtotime($datetime_start)); $date_time = new DateTime($datetime_start); $date_time->modify('+23 hour'); $datetime_end = $date_time->format('Y-m-d H:i'); $datetime_arr[$entry_id] = array($datetime_start, $datetime_end); } } break; case 'date-time': if ('range' === $mode) { $datetime_value = apply_filters('everest_forms_time_date_format', $datetime_value); $selected_dates = explode(' to ', $datetime_value); if (count($selected_dates) >= 2) { $datetime_start = gmdate('Y-m-d H:i', strtotime($selected_dates[0])); $datetime_end = gmdate('Y-m-d H:i', strtotime($selected_dates[1])); $datetime_arr[$entry_id] = array($datetime_start, $datetime_end); } } else { $selected_dates = explode(', ', $datetime_value); foreach ($selected_dates as $selected_date) { $datetime_start = gmdate('Y-m-d H:i', strtotime($selected_date)); $date_time = new DateTime($datetime_start); $date_time->modify("+$time_interval minute"); $datetime_end = $date_time->format('Y-m-d H:i'); $datetime_arr[$entry_id] = array($datetime_start, $datetime_end); } } break; } return $datetime_arr; } /** * EVF word Count. * * @param string $text Text. * @param string $type Type of text. * @param array $settings Settings. * * @since 2.0.2 */ function _evf_word_count($text, $type = 'words', $settings = array()) { $defaults = array( 'html_regexp' => '/<\/?[a-z][^>]*?>/i', 'html_comment_regexp' => '/<!--[\s\S]*?-->/', 'space_regexp' => '/ | /i', 'html_entity_regexp' => '/&\S+?;/', 'connector_regexp' => "/--|\x{2014}/u", '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", 'astral_regexp' => "/[\x{010000}-\x{10FFFF}]/u", 'words_regexp' => '/\S\s+/u', 'characters_excluding_spaces_regexp' => '/\S/u', 'characters_including_spaces_regexp' => "/[^\f\n\r\t\v\x{00AD}\x{2028}\x{2029}]/u", 'shortcodes' => array(), ); $count = 0; if ('' === trim($text)) { return $count; } $settings = wp_parse_args($settings, $defaults); // If there are any shortcodes, add this as a shortcode regular expression. if (is_array($settings['shortcodes']) && ! empty($settings['shortcodes'])) { $settings['shortcodes_regexp'] = '/\\[\\/?(?:' . implode('|', $settings['shortcodes']) . ')[^\\]]*?\\]/'; } // Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'. if ('characters_excluding_spaces' !== $type && 'characters_including_spaces' !== $type) { $type = 'words'; } $text .= "\n"; // Replace all HTML with a new-line. $text = preg_replace($settings['html_regexp'], "\n", $text); // Remove all HTML comments. $text = preg_replace($settings['html_comment_regexp'], '', $text); // If a shortcode regular expression has been provided use it to remove shortcodes. if (! empty($settings['shortcodes_regexp'])) { $text = preg_replace($settings['shortcodes_regexp'], "\n", $text); } // Normalize non-breaking space to a normal space. $text = preg_replace($settings['space_regexp'], ' ', $text); if ('words' === $type) { // Remove HTML Entities. $text = preg_replace($settings['html_entity_regexp'], '', $text); // Convert connectors to spaces to count attached text as words. $text = preg_replace($settings['connector_regexp'], ' ', $text); // Remove unwanted characters. $text = preg_replace($settings['remove_regexp'], '', $text); } else { // Convert HTML Entities to "a". $text = preg_replace($settings['html_entity_regexp'], 'a', $text); // Remove surrogate points. $text = preg_replace($settings['astral_regexp'], 'a', $text); } // Match with the selected type regular expression to count the items. return (int) preg_match_all($settings[$type . '_regexp'], $text); } /** * EVF word Count * * @param string $text Text. * @param string $type Type of text. * @param array $settings Settings. * * @since 2.0.2 */ function evf_word_count($text, $type = 'words', $settings = array()) { if (function_exists(' wp_word_count ')) { return wp_word_count($text, $type = 'words', $settings = array()); } else { return _evf_word_count($text, $type = 'words', $settings = array()); } } if (! function_exists('evf_maybe_get_local_font_url')) { /** * If load fonts locally option is checked in settings, we download the font * locally and return the url for download font file. * * @param [string] $font_url Remote font url. * @return string */ function evf_maybe_get_local_font_url($font_url) { $load_locally = get_option('everest_forms_load_fonts_locally', 'no'); if ('yes' === $load_locally) { $font_url = wptt_get_webfont_url($font_url); } return $font_url; } } if (! function_exists('evf_is_akismet_configured')) { /** * Has the Akismet plugin been configured wih a valid API key? * * @since 2.4.0 * * @return bool */ function evf_is_akismet_configured() { if (! is_plugin_active('akismet/akismet.php')) { return false; } require_once WP_PLUGIN_DIR . '/akismet/akismet.php'; $akismet_instance = new Akismet(); // Akismet will only allow an API key to be saved if it is a valid key. // We can assume that if there is an API key saved, it is valid. $api_key = $akismet_instance->get_api_key(); if (! empty($api_key)) { return true; } return false; } } if (! function_exists('evf_current_url')) { /** * Get the current URL. * * @since 2.4.0 * * @return string */ function evf_current_url() { $parsed_home_url = wp_parse_url(home_url()); $url = $parsed_home_url['scheme'] . '://' . $parsed_home_url['host']; if (! empty($parsed_home_url['port'])) { $url .= ':' . $parsed_home_url['port']; } // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized $url .= wp_unslash($_SERVER['REQUEST_URI']); return esc_url_raw($url); } } if (! function_exists('evf_get_utc_time_to')) { /** * Formats the end time in UTC format. * * @since 2.0.9 * * @param string $evf_entries_report_summary_offset Time offest to be formatted in UTC time. * @param string $evf_format DateTime format for UTC time. * @param bool $evf_display Display the time. * * @return datetime end_time in UTC format. */ function evf_get_utc_time_to($evf_entries_report_summary_offset, $evf_format = 'Y-m-d H:i:s', $evf_display = false) { // Get local time 23:59:59 today. $evf_time_to_local = wp_date('Y-m-d 23:59:59'); $evf_format = 'Y-m-d H:i:s'; // Get local time to. $evf_time_to_offset = strtotime($evf_entries_report_summary_offset, strtotime($evf_time_to_local)); if ($evf_display) { return gmdate($evf_format, $evf_time_to_offset); } else { return strtotime(get_gmt_from_date(gmdate($evf_format, $evf_time_to_offset))); } } } if (! function_exists('evf_get_utc_time_from')) { /** * Extarcts the start time in UTC format. * * @since 2.0.9 * * @param string $evf_entries_report_summary_offset Start time to be formated in UTC format. * @param string $evf_format DateTime format for start time. * @param bool $evf_display To hide or display the time. * * @return datetime start_time in utc format. */ function evf_get_utc_time_from($evf_entries_report_summary_offset, $evf_format = 'Y-m-d H:i:s', $evf_display = false) { // Get local time midnight today. $evf_time_from_local = wp_date('Y-m-d 00:00:00'); $evf_format = 'Y-m-d H:i:s'; // Get local time from. $evf_time_from_offset = strtotime($evf_entries_report_summary_offset, strtotime($evf_time_from_local)); if ($evf_display) { return gmdate($evf_format, $evf_time_from_offset); } else { return strtotime(get_gmt_from_date(gmdate($evf_format, $evf_time_from_offset))); } } } if (! function_exists('evf_summary_start_offset_time')) { /** * Extracts the start offset time according to the duration. * * @since 2.0.9 * @return datetime $starttime. */ function evf_summary_start_offset_time() { // Get options. $evf_report_frequency = get_option('everest_forms_entries_reporting_frequency', 'Weekly'); $evf_report_offset_from = ''; $evf_report_email_to = ''; $evf_date_format = ''; $evf_report_offset_to = ''; // Set everest forms reporting frequency specific variables. switch ($evf_report_frequency) { case 'Daily': $evf_report_email_title = __('Everest Forms Daily Entries Statistics Report', 'everest-forms'); $evf_report_offset_from = '-1 days'; break; case 'Weekly': $evf_report_email_title = __('Everest Forms Weekly Entries Statistics Report', 'everest-forms'); $evf_report_offset_from = '-8 days'; break; case 'Monthly': $evf_report_email_title = __('Everest Forms Monthly Entries Statistics Report', 'everest-forms'); $evf_report_offset_from = '-1 month -1 day'; break; } // Build date range. $date_format = get_option('date_format'); $start_time = evf_get_utc_time_from($evf_report_offset_from, $date_format, true); return $start_time; } } if (! function_exists('evf_summary_end_offset_time')) { /** * Extracts the end offset time according to the duration. * * @since 2.0.9 * @return datetime $end_time. */ function evf_summary_end_offset_time() { // Get options. $evf_report_frequency = get_option('everest_forms_entries_reporting_frequency', 'Weekly'); $evf_report_offset_from = ''; $evf_report_email_to = ''; $evf_date_format = ''; $evf_report_offset_to = ''; // Set everest forms reporting frequency specific variables. switch ($evf_report_frequency) { case 'Daily': $evf_report_email_title = __('Everest Forms Daily Entries Statistics Report', 'everest-forms'); $evf_report_offset_to = '-1 day'; break; case 'Weekly': $evf_report_email_title = __('Everest Forms Weekly Entries Statistics Report', 'everest-forms'); $evf_report_offset_to = '-1 day'; break; case 'Monthly': $evf_report_email_title = __('Everest Forms Monthly Entries Statistics Report', 'everest-forms'); $evf_report_offset_to = '-1 day'; break; } // Build date range. $date_format = get_option('date_format'); $end_time = evf_get_utc_time_to($evf_report_offset_to, $date_format, true); return $end_time; } } if (! function_exists('evf_entries_summaries')) { /** * Function to extract the entries summary from the database. * * @since 2.0.9. * @return array $evf_stat_data_output Statistics data from the database as an output. */ function evf_entries_summaries() { // Get options. $evf_report_frequency = get_option('everest_forms_entries_reporting_frequency', 'Weekly'); $offset_from = ''; $offset_to = ''; // Set everest forms reporting frequency specific variables. switch ($evf_report_frequency) { case 'Daily': $evf_report_email_title = __('Everest Forms Daily Entries Statistics Report', 'everest-forms'); $offset_from = '-1 days'; $offset_to = '-1 day'; break; case 'Weekly': $evf_report_email_title = __('Everest Forms Weekly Entries Statistics Report', 'everest-forms'); $offset_from = '-8 days'; $offset_to = '-1 day'; break; case 'Monthly': $evf_report_email_title = __('Everest Forms Monthly Entries Statistics Report', 'everest-forms'); $offset_from = '-1 month -1 day'; $offset_to = '-1 day'; break; } global $wpdb; $evf_date_format = 'Y-m-d H:i:s'; $evf_stat_start = evf_get_utc_time_from($offset_from, $evf_date_format, true); $evf_stat_end = evf_get_utc_time_to($offset_to, $evf_date_format, true); $evf_stat_selected_forms = get_option('everest_forms_reporting_form_lists', array()); $evf_stat_data_output = ''; foreach ($evf_stat_selected_forms as $evf_stat_selected_form) { $evf_stat_data_output = $wpdb->get_results( $wpdb->prepare( "SELECT {$wpdb->prefix}posts.post_title, {$wpdb->prefix}evf_entries.form_id, COUNT(form_id) AS entries_count FROM {$wpdb->prefix}posts INNER JOIN {$wpdb->prefix}evf_entries ON {$wpdb->prefix}posts.id = {$wpdb->prefix}evf_entries.form_id WHERE {$wpdb->prefix}evf_entries.date_created BETWEEN '%1s' AND '%2s' GROUP BY {$wpdb->prefix}evf_entries.form_id", $evf_stat_start, $evf_stat_end ) ); break; } return $evf_stat_data_output; } } if (! function_exists('evf_process_all_fields_smart_tag')) { /** * Return email content wrapped in email template if {all_fields} is there in email content. * * @since 2.0.5 * @param string $email_content Email Content. * @return string */ function evf_process_all_fields_smart_tag($email_content) { $email_content = '<div class="evf-all-fields-smart-tag-email-body" background-color: #ebebeb;">'; $email_content .= '<table border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width:100%;border-collapse:collapse background:#cccccc" >'; $email_content .= '<tbody>'; $email_content .= '<tr>'; $email_content .= '<td valign="top">'; $email_content .= '<table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width:100%;border-collapse:collapse" class="mcnTextContentContainer">'; $email_content .= '<tbody>'; $email_content .= '<tr>'; $email_content .= '<td valign = "top" class = "mcnTextContent">'; $email_content .= "<table align = 'left' border = '0' cellpadding = '0' cellspacing = '0' width = '100%' style = 'display:block;min-width:100%;border-collapse:collapse;width:100%'>"; $email_content .= '<tbody>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'><strong>Name</strong></td>"; $email_content .= '</tr>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px'>Demo Name</td>"; $email_content .= '</tr>'; $email_content .= '</tbody>'; $email_content .= '</table>'; $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%'>"; $email_content .= '<tbody>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'> <strong>Email</strong><tr / td >"; $email_content .= '</tr>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px' > <a href = '#' target = '_blank'>Demo Email</a></td>"; $email_content .= '</tr>'; $email_content .= '</tbody>'; $email_content .= '</table>'; $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%'>"; $email_content .= '<tbody>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'><strong>Email Subject</strong></td>"; $email_content .= '</tr>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px'>Demo Email Subject</td>"; $email_content .= '</tr>'; $email_content .= '</tbody>'; $email_content .= '</table>'; $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%'>"; $email_content .= '<tbody>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#333333;padding-top:20px;padding-bottom:3px'><strong>Email Message</strong></td>"; $email_content .= '</tr>'; $email_content .= '<tr>'; $email_content .= "<td style = 'color:#555555;padding-top:3px;padding-bottom:20px'>Demo Email Message</td>"; $email_content .= '</tr>'; $email_content .= '</tbody>'; $email_content .= '</table>'; $email_content .= '</td>'; $email_content .= '</tr>'; $email_content .= '</tbody>'; $email_content .= '</table>'; $email_content .= '</td>'; $email_content .= '</tr>'; $email_content .= '</tbody>'; $email_content .= '</table>'; $email_content .= '</div>'; return $email_content; } } /** * Get one time draggable fields fields. * * @return array */ function evf_get_one_time_draggable_fields() { return apply_filters( 'everest_forms_one_time_draggable_form_fields', array( 'file-upload', ) ); } /** * Retrieve the next key in an array from given key. * * @param array $arr List of items in a form of array. * @param integer $key Key to search and find within the array. * @return mixed */ function evf_get_next_key_array($arr, $key) { $keys = array_keys($arr); $position = array_search($key, $keys, true); if (isset($keys[$position + 1])) { $next_key = $keys[$position + 1]; } return isset($next_key) ? $next_key : ''; } /** * Function to generate the api key base on the string. * * @since 3.0.5 * @param $string The string value. */ function generate_api_key($string = 'evf_restapi', $length = 32) { $key = bin2hex(random_bytes($length)); return $key; } if (! function_exists('evf_hex_to_rgb')) { /** * Converts a hex color code to an RGB array. * * @since 3.0.5 * @param string $hexcolor Hex color code, with or without '#'. * @return array RGB values as [red, green, blue]. */ function evf_hex_to_rgb($hexcolor) { $hexcolor = ltrim($hexcolor, '#'); if (strlen($hexcolor) == 6) { $r = hexdec(substr($hexcolor, 0, 2)); $g = hexdec(substr($hexcolor, 2, 2)); $b = hexdec(substr($hexcolor, 4, 2)); } elseif (strlen($hexcolor) == 3) { $r = hexdec(str_repeat(substr($hexcolor, 0, 1), 2)); $g = hexdec(str_repeat(substr($hexcolor, 1, 1), 2)); $b = hexdec(str_repeat(substr($hexcolor, 2, 1), 2)); } else { return array(0, 0, 0); } return array($r, $g, $b); } } add_action('wp_mail_failed', 'evf_email_send_failed_handler', 1); if (! function_exists('evf_email_send_failed_handler')) { /** * Handle errors fetch mechanism when mail send failed. * * @param object $error_instance WP_Error message instance. */ function evf_email_send_failed_handler($error_instance) { $error_message = ''; $decoded_message = json_decode($error_instance->get_error_message()); if (json_last_error() === JSON_ERROR_NONE && ! empty($decoded_message)) { /* translators: %s: Status Log URL */ $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'))); } else { $error_message = $error_instance->get_error_message(); } evf_get_logger()->info( $error_message, array('source' => 'evf_mail_errors') ); if (! empty($error_message)) { add_filter( 'everest_forms_email_send_failed_message', function ($msg) use ($error_message) { return $error_message; } ); } } } /** * Get form data by field key. * * @param array $form_data Form Data. * @param string $key Field Key. * * @return array */ function evf_get_form_data_by_key($form_data, $key = null) { $form_data_array = array(); foreach ($form_data['form_fields'] as $field_data) { $field_key = isset($field_data['type']) && null !== $field_data['type'] ? $field_data['type'] : ''; if (! empty($field_key)) { if ($field_key === $key) { $form_data_array[] = $field_data; } } } return $form_data_array; } add_action( 'admin_head', function () { $js = <<<JS const isSidebarEnabled = localStorage.getItem( 'isPremiumSidebarEnabled' ); const interval = setInterval( () => { if ( document.body ) { clearInterval(interval); if ('true' === isSidebarEnabled) { document.body.classList.add( 'evf-premium-sidebar-show' ); } else { document.body.classList.add( 'evf-premium-sidebar-hidden' ); } } }, 1 ); JS; if (function_exists('wp_print_inline_script_tag')) { wp_print_inline_script_tag($js); } } ); /** * Get the list of addons or module that are depended on another plugins. * * @since 3.2.2 */ function evf_get_addons_list_depend_on_another_plugins() { $required_plugins = apply_filters( 'everest_forms_required_plugins_lists', array( 'everest-forms-woocommerce' => array( 'file' => 'woocommerce/woocommerce.php', 'name' => 'WooCommerce', ), 'everest-forms-mailpoet' => array( 'file' => 'mailpoet/mailpoet.php', 'name' => 'MailPoet', ), 'everest-forms-oxygen-builder' => array( 'file' => 'oxygen/functions.php', 'name' => 'Oxygen Builder', ), 'everest-forms-beaver-builder' => array( 'file' => array( 'beaver-builder-lite-version/fl-builder.php', 'bb-plugin/fl-builder.php', ), 'name' => 'Beaver Builder', ), 'everest-forms-wpbakery-builder' => array( 'file' => 'js_composer/js_composer.php', 'name' => 'WPBakery Builder', ), 'everest-forms-divi-builder' => array( 'is_theme' => true, 'name' => 'Divi Builder', 'id' => 'Divi', ), 'everest-forms-bricks-builder' => array( 'is_theme' => true, 'name' => 'Bricks Builder', 'id' => 'bricks', ), ) ); return $required_plugins; } if (! function_exists('evf_maybe_unserialize')) { /** * EVF Unserialize data. * * @param string $data Data that might be unserialized. * @param array $options Options. * * @return mixed Unserialized data can be any type. * * @since 3.1.2 */ function evf_maybe_unserialize($data, $options = array()) { if (is_serialized($data)) { if (version_compare(PHP_VERSION, '7.1.0', '>=')) { $options = wp_parse_args($options, array('allowed_classes' => false)); return @unserialize(trim($data), $options); //phpcs:ignore. } //Blocked unserialize() attempt on PHP < 7.1 return null; } return $data; } } /** * Confimation backward compatiblity. * * @since 3.4.0 * @param [type] $form_data The old form data. */ function evf_form_confirmation_backward_compatibility($form_data) { if (empty($form_data)) { return $form_data; } //If the form is updated then return original form data. if (get_post_meta($form_data['id'], 'updated_form_confirmation', true)) { return $form_data; } $settings = $form_data['settings']; $submission_redirection = isset($settings['submission_redirection']) ? $settings['submission_redirection'] : array(); if (empty($submission_redirection)) { return $form_data; } $updated_conditionals = array(); if (isset($submission_redirection['connection_1']['conditionals'])) { $conditionals = isset($submission_redirection['connection_1']['conditionals']) ? $submission_redirection['connection_1']['conditionals'] : array(); $rules = isset($submission_redirection['connection_1']['rules']) ? $submission_redirection['connection_1']['rules'] : array(); if (empty($rules) || empty($conditionals)) { return $form_data; } foreach ($conditionals['rules'] as $key => $conditional) { $updated_conditionals['rules'][$key] = $conditional; $settings = array( 'title' => 'Conditional Confirmations', 'redirect_to' => isset($rules[$key]['conditional_option']) ? ('same_page' === $rules[$key]['conditional_option'] ? 'same' : $rules[$key]['conditional_option']) : 'same', 'custom_page' => isset($rules[$key]['conditional_option_redirection_custom_page']) ? $rules[$key]['conditional_option_redirection_custom_page'] : 0, 'external_url' => isset($rules[$key]['conditional_option_redirection_external_url']) ? $rules[$key]['conditional_option_redirection_custom_page'] : 0, 'enable_redirect_in_new_tab' => 0, 'enable_redirect_query_string' => 0, 'query_string' => isset($settings['query_string']) ? $settings['query_string'] : '', 'successful_form_submission_message' => isset( $settings[' [successful_form_submission_message] => Thanks for contacting us! We will be in touch with you shortly '] ) ? $settings[' [successful_form_submission_message] => Thanks for contacting us! We will be in touch with you shortly '] : 'Thanks for contacting us! We will be in touch with you shortly', 'submission_message_scroll' => isset($settings['submission_message_scroll']) ? $settings['submission_message_scroll'] : 0, 'form_state_type' => 'hide', 'preview_confirmation' => isset($settings['preview_confirmation']) ? $settings['preview_confirmation'] : 0, 'preview_confirmation_select' => isset($settings['preview_confirmation_select']) ? $settings['preview_confirmation_select'] : 'basic', 'message_display_location_of_hide' => 'hide', 'message_display_location_of_reset' => 'top', 'active' => 1, ); $updated_conditionals['rules'][$key]['settings'] = $settings; } } if (! empty($updated_conditionals)) { $form_data['settings']['submission_redirection']['connection_1']['conditionals'] = $updated_conditionals; } return $form_data; }
Save
Cancel