Auto Select Country in Address Field

Automatically selects the user’s current country based on IP in a designated address field.

Instructions

  1. Install this snippet with our free Custom JavaScript plugin. https://gravitywiz.com/gravity-forms-code-chest/
  2. Customize the selector for the $country variable below.

Code

Filename: gw-auto-select-country-in-address-field.js

/**
 * Gravity Wiz // Gravity Forms // Auto Select Country in Address Field
 * https://gravitywiz.com/
 *
 * Automatically selects the user's current country based on IP in a designated address field.
 *
 * Instructions:
 *
 * 1. Install this snippet with our free Custom JavaScript plugin.
 *    https://gravitywiz.com/gravity-forms-code-chest/
 * 2. Customize the selector for the $country variable below.
 */
var $country = jQuery( '#input_GFFORMID_1_6' );
jQuery
	.get( {
		url: 'https://ipinfo.io',
		dataType: 'json',
	} )
	.always( function ( resp ) {
		const countryCode = resp && resp.country ? resp.country : null;

		var oldValue = $country.val();
		var newValue = countryCode in isoAlpha2ToCountry ? isoAlpha2ToCountry[countryCode] : '';

		$country.val( newValue );
		if ( newValue != oldValue ) {
			$country.trigger( 'change' );
		}
	} );

const isoAlpha2ToCountry = {
	'AF': 'Afghanistan',
	'AX': 'Åland Islands',
	'AL': 'Albania',
	'DZ': 'Algeria',
	'AS': 'American Samoa',
	'AD': 'Andorra',
	'AO': 'Angola',
	'AI': 'Anguilla',
	'AQ': 'Antarctica',
	'AG': 'Antigua and Barbuda',
	'AR': 'Argentina',
	'AM': 'Armenia',
	'AW': 'Aruba',
	'AU': 'Australia',
	'AT': 'Austria',
	'AZ': 'Azerbaijan',
	'BS': 'Bahamas',
	'BH': 'Bahrain',
	'BD': 'Bangladesh',
	'BB': 'Barbados',
	'BY': 'Belarus',
	'BE': 'Belgium',
	'BZ': 'Belize',
	'BJ': 'Benin',
	'BM': 'Bermuda',
	'BT': 'Bhutan',
	'BO': 'Bolivia',
	'BQ': 'Bonaire, Sint Eustatius and Saba',
	'BA': 'Bosnia and Herzegovina',
	'BW': 'Botswana',
	'BV': 'Bouvet Island',
	'BR': 'Brazil',
	'IO': 'British Indian Ocean Territory',
	'BN': 'Brunei Darussalam',
	'BG': 'Bulgaria',
	'BF': 'Burkina Faso',
	'BI': 'Burundi',
	'CV': 'Cabo Verde',
	'KH': 'Cambodia',
	'CM': 'Cameroon',
	'CA': 'Canada',
	'KY': 'Cayman Islands',
	'CF': 'Central African Republic',
	'TD': 'Chad',
	'CL': 'Chile',
	'CN': 'China',
	'CX': 'Christmas Island',
	'CC': 'Cocos Islands',
	'CO': 'Colombia',
	'KM': 'Comoros',
	'CD': 'Congo, Democratic Republic of the',
	'CG': 'Congo',
	'CK': 'Cook Islands',
	'CR': 'Costa Rica',
	'CI': "Côte d'Ivoire",
	'HR': 'Croatia',
	'CU': 'Cuba',
	'CW': 'Curaçao',
	'CY': 'Cyprus',
	'CZ': 'Czechia',
	'DK': 'Denmark',
	'DJ': 'Djibouti',
	'DM': 'Dominica',
	'DO': 'Dominican Republic',
	'EC': 'Ecuador',
	'EG': 'Egypt',
	'SV': 'El Salvador',
	'GQ': 'Equatorial Guinea',
	'ER': 'Eritrea',
	'EE': 'Estonia',
	'SZ': 'Eswatini',
	'ET': 'Ethiopia',
	'FK': 'Falkland Islands',
	'FO': 'Faroe Islands',
	'FJ': 'Fiji',
	'FI': 'Finland',
	'FR': 'France',
	'GF': 'French Guiana',
	'PF': 'French Polynesia',
	'TF': 'French Southern Territories',
	'GA': 'Gabon',
	'GM': 'Gambia',
	'GE': 'Georgia',
	'DE': 'Germany',
	'GH': 'Ghana',
	'GI': 'Gibraltar',
	'GR': 'Greece',
	'GL': 'Greenland',
	'GD': 'Grenada',
	'GP': 'Guadeloupe',
	'GU': 'Guam',
	'GT': 'Guatemala',
	'GG': 'Guernsey',
	'GN': 'Guinea',
	'GW': 'Guinea-Bissau',
	'GY': 'Guyana',
	'HT': 'Haiti',
	'HM': 'Heard Island and McDonald Islands',
	'VA': 'Holy See',
	'HN': 'Honduras',
	'HK': 'Hong Kong',
	'HU': 'Hungary',
	'IS': 'Iceland',
	'IN': 'India',
	'ID': 'Indonesia',
	'IR': 'Iran',
	'IQ': 'Iraq',
	'IE': 'Ireland',
	'IM': 'Isle of Man',
	'IL': 'Israel',
	'IT': 'Italy',
	'JM': 'Jamaica',
	'JP': 'Japan',
	'JE': 'Jersey',
	'JO': 'Jordan',
	'KZ': 'Kazakhstan',
	'KE': 'Kenya',
	'KI': 'Kiribati',
	'KP': "Korea, Democratic People's Republic of",
	'KR': 'Korea, Republic of',
	'KW': 'Kuwait',
	'KG': 'Kyrgyzstan',
	'LA': "Lao People's Democratic Republic",
	'LV': 'Latvia',
	'LB': 'Lebanon',
	'LS': 'Lesotho',
	'LR': 'Liberia',
	'LY': 'Libya',
	'LI': 'Liechtenstein',
	'LT': 'Lithuania',
	'LU': 'Luxembourg',
	'MO': 'Macao',
	'MG': 'Madagascar',
	'MW': 'Malawi',
	'MY': 'Malaysia',
	'MV': 'Maldives',
	'ML': 'Mali',
	'MT': 'Malta',
	'MH': 'Marshall Islands',
	'MQ': 'Martinique',
	'MR': 'Mauritania',
	'MU': 'Mauritius',
	'YT': 'Mayotte',
	'MX': 'Mexico',
	'FM': 'Micronesia',
	'MD': 'Moldova',
	'MC': 'Monaco',
	'MN': 'Mongolia',
	'ME': 'Montenegro',
	'MS': 'Montserrat',
	'MA': 'Morocco',
	'MZ': 'Mozambique',
	'MM': 'Myanmar',
	'NA': 'Namibia',
	'NR': 'Nauru',
	'NP': 'Nepal',
	'NL': 'Netherlands',
	'NC': 'New Caledonia',
	'NZ': 'New Zealand',
	'NI': 'Nicaragua',
	'NE': 'Niger',
	'NG': 'Nigeria',
	'NU': 'Niue',
	'NF': 'Norfolk Island',
	'MK': 'North Macedonia',
	'MP': 'Northern Mariana Islands',
	'NO': 'Norway',
	'OM': 'Oman',
	'PK': 'Pakistan',
	'PW': 'Palau',
	'PS': 'Palestine, State of',
	'PA': 'Panama',
	'PG': 'Papua New Guinea',
	'PY': 'Paraguay',
	'PE': 'Peru',
	'PH': 'Philippines',
	'PN': 'Pitcairn',
	'PL': 'Poland',
	'PT': 'Portugal',
	'PR': 'Puerto Rico',
	'QA': 'Qatar',
	'RE': 'Réunion',
	'RO': 'Romania',
	'RU': 'Russian Federation',
	'RW': 'Rwanda',
	'BL': 'Saint Barthélemy',
	'SH': 'Saint Helena, Ascension and Tristan da Cunha',
	'KN': 'Saint Kitts and Nevis',
	'LC': 'Saint Lucia',
	'MF': 'Saint Martin',
	'PM': 'Saint Pierre and Miquelon',
	'VC': 'Saint Vincent and the Grenadines',
	'WS': 'Samoa',
	'SM': 'San Marino',
	'ST': 'Sao Tome and Principe',
	'SA': 'Saudi Arabia',
	'SN': 'Senegal',
	'RS': 'Serbia',
	'SC': 'Seychelles',
	'SL': 'Sierra Leone',
	'SG': 'Singapore',
	'SX': 'Sint Maarten',
	'SK': 'Slovakia',
	'SI': 'Slovenia',
	'SB': 'Solomon Islands',
	'SO': 'Somalia',
	'ZA': 'South Africa',
	'GS': 'South Georgia and the South Sandwich Islands',
	'SS': 'South Sudan',
	'ES': 'Spain',
	'LK': 'Sri Lanka',
	'SD': 'Sudan',
	'SR': 'Suriname',
	'SJ': 'Svalbard and Jan Mayen',
	'SE': 'Sweden',
	'CH': 'Switzerland',
	'SY': 'Syria Arab Republic',
	'TW': 'Taiwan',
	'TJ': 'Tajikistan',
	'TZ': 'Tanzania, the United Republic of',
	'TH': 'Thailand',
	'TL': 'Timor-Leste',
	'TG': 'Togo',
	'TK': 'Tokelau',
	'TO': 'Tonga',
	'TT': 'Trinidad and Tobago',
	'TN': 'Tunisia',
	'TR': 'Türkiye',
	'TM': 'Turkmenistan',
	'TC': 'Turks and Caicos Islands',
	'TV': 'Tuvalu',
	'UG': 'Uganda',
	'UA': 'Ukraine',
	'AE': 'United Arab Emirates',
	'GB': 'United Kingdom',
	'US': 'United States',
	'UY': 'Uruguay',
	'UM': 'US Minor Outlying Islands',
	'UZ': 'Uzbekistan',
	'VU': 'Vanuatu',
	'VE': 'Venezuela',
	'VN': 'Viet Nam',
	'VG': 'Virgin Islands, British',
	'VI': 'Virgin Islands, U.S.',
	'WF': 'Wallis and Futuna',
	'EH': 'Western Sahara',
	'YE': 'Yemen',
	'ZM': 'Zambia',
	'ZW': 'Zimbabwe',
}

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Trouble installing this snippet? See our troubleshooting tips.
  • Need to include code? Create a gist and link to it in your comment.
  • Reporting a bug? Provide a URL where this issue can be recreated.

By commenting, I understand that I may receive emails related to Gravity Wiz and can unsubscribe at any time.