It would really be great if s2member could preselect the country based on the IP address.
The standard tool for getting the IP address referenced is the plugin:
Geolocation IP Detection - by yellowtree
Then it’s quite easy to check via php what country to select - e.g.:
// Plugin GeoIP Detection
$userInfo = geoip_detect2_get_info_from_current_ip();
$country_from_ip = $userInfo->country->isoCode;
$result .= ";
I am not sure if you need to translate the country iso code into the full string for s2member pro form - but if so then you could use:
/* Country codes for the country selction window*/
$countries = array(
“AF” => “Afghanistan (افغانستان)”,
“AX” => “Åland Islands (Åland)”,
“AL” => “Albania (Shqipëri)”,
“DZ” => “Algeria (الجزائر)”,
“AS” => “American Samoa”,
“AD” => “Andorra”,
“AO” => “Angola”,
“AI” => “Anguilla”,
“AQ” => “Antarctica”,
“AG” => “Antigua and Barbuda”,
“AR” => “Argentina”,
“AM” => “Armenia (Հայաստան)”,
“AW” => “Aruba”,
“AC” => “Ascension Island”,
“AU” => “Australia”,
“AT” => “Austria (Österreich)”,
“AZ” => “Azerbaijan (Azərbaycan)”,
“BS” => “Bahamas”,
“BH” => “Bahrain (البحرين)”,
“BD” => “Bangladesh (বাংলাদেশ)”,
“BB” => “Barbados”,
“BY” => “Belarus (Беларусь)”,
“BE” => “Belgium (België)”,
“BZ” => “Belize”,
“BJ” => “Benin (Bénin)”,
“BM” => “Bermuda”,
“BT” => “Bhutan (འབྲུག)”,
“BO” => “Bolivia”,
“BA” => “Bosnia and Herzegovina (Босна и Херцеговина)”,
“BW” => “Botswana”,
“BV” => “Bouvet Island”,
“BR” => “Brazil (Brasil)”,
“IO” => “British Indian Ocean Territory”,
“VG” => “British Virgin Islands”,
“BN” => “Brunei”,
“BG” => “Bulgaria (България)”,
“BF” => “Burkina Faso”,
“BI” => “Burundi (Uburundi)”,
“KH” => “Cambodia (កម្ពុជា)”,
“CM” => “Cameroon (Cameroun)”,
“CA” => “Canada”,
“IC” => “Canary Islands (islas Canarias)”,
“CV” => “Cape Verde (Kabu Verdi)”,
“BQ” => “Caribbean Netherlands”,
“KY” => “Cayman Islands”,
“CF” => “Central African Republic (République centrafricaine)”,
“EA” => “Ceuta and Melilla (Ceuta y Melilla)”,
“TD” => “Chad (Tchad)”,
“CL” => “Chile”,
“CN” => “China (中国)”,
“CX” => “Christmas Island”,
“CP” => “Clipperton Island”,
“CC” => “Cocos (Keeling) Islands (Kepulauan Cocos (Keeling))”,
“CO” => “Colombia”,
“KM” => “Comoros (جزر القمر)”,
“CD” => “Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)”,
“CG” => “Congo (Republic) (Congo-Brazzaville)”,
“CK” => “Cook Islands”,
“CR” => “Costa Rica”,
“CI” => “Côte d’Ivoire”,
“HR” => “Croatia (Hrvatska)”,
“CU” => “Cuba”,
“CW” => “Curaçao”,
“CY” => “Cyprus (Κύπρος)”,
“CZ” => “Czech Republic (Česká republika)”,
“DK” => “Denmark (Danmark)”,
“DG” => “Diego Garcia”,
“DJ” => “Djibouti”,
“DM” => “Dominica”,
“DO” => “Dominican Republic (República Dominicana)”,
“EC” => “Ecuador”,
“EG” => “Egypt (مصر)”,
“SV” => “El Salvador”,
“GQ” => “Equatorial Guinea (Guinea Ecuatorial)”,
“ER” => “Eritrea”,
“EE” => “Estonia (Eesti)”,
“ET” => “Ethiopia”,
“FK” => “Falkland Islands (Islas Malvinas)”,
“FO” => “Faroe Islands (Føroyar)”,
“FJ” => “Fiji”,
“FI” => “Finland (Suomi)”,
“FR” => “France”,
“GF” => “French Guiana (Guyane française)”,
“PF” => “French Polynesia (Polynésie française)”,
“TF” => “French Southern Territories (Terres australes françaises)”,
“GA” => “Gabon”,
“GM” => “Gambia”,
“GE” => “Georgia (საქართველო)”,
“DE” => “Germany (Deutschland)”,
“GH” => “Ghana (Gaana)”,
“GI” => “Gibraltar”,
“GR” => “Greece (Ελλάδα)”,
“GL” => “Greenland (Kalaallit Nunaat)”,
“GD” => “Grenada”,
“GP” => “Guadeloupe”,
“GU” => “Guam”,
“GT” => “Guatemala”,
“GG” => “Guernsey”,
“GN” => “Guinea (Guinée)”,
“GW” => “Guinea-Bissau (Guiné Bissau)”,
“GY” => “Guyana”,
“HT” => “Haiti”,
“HM” => “Heard & McDonald Islands”,
“HN” => “Honduras”,
“HK” => “Hong Kong (香港)”,
“HU” => “Hungary (Magyarország)”,
“IS” => “Iceland (Ísland)”,
“IN” => “India (भारत)”,
“ID” => “Indonesia”,
“IR” => “Iran (ایران)”,
“IQ” => “Iraq (العراق)”,
“IE” => “Ireland”,
“IM” => “Isle of Man”,
“IL” => “Israel (ישראל)”,
“IT” => “Italy (Italia)”,
“JM” => “Jamaica”,
“JP” => “Japan (日本)”,
“JE” => “Jersey”,
“JO” => “Jordan (الأردن)”,
“KZ” => “Kazakhstan (Казахстан)”,
“KE” => “Kenya”,
“KI” => “Kiribati”,
“XK” => “Kosovo (Kosovë)”,
“KW” => “Kuwait (الكويت)”,
“KG” => “Kyrgyzstan (Кыргызстан)”,
“LA” => “Laos (ລາວ)”,
“LV” => “Latvia (Latvija)”,
“LB” => “Lebanon (لبنان)”,
“LS” => “Lesotho”,
“LR” => “Liberia”,
“LY” => “Libya (ليبيا)”,
“LI” => “Liechtenstein”,
“LT” => “Lithuania (Lietuva)”,
“LU” => “Luxembourg”,
“MO” => “Macau (澳門)”,
“MK” => “Macedonia (FYROM) (Македонија)”,
“MG” => “Madagascar (Madagasikara)”,
“MW” => “Malawi”,
“MY” => “Malaysia”,
“MV” => “Maldives”,
“ML” => “Mali”,
“MT” => “Malta”,
“MH” => “Marshall Islands”,
“MQ” => “Martinique”,
“MR” => “Mauritania (موريتانيا)”,
“MU” => “Mauritius (Moris)”,
“YT” => “Mayotte”,
“MX” => “Mexico (México)”,
“FM” => “Micronesia”,
“MD” => “Moldova (Republica Moldova)”,
“MC” => “Monaco”,
“MN” => “Mongolia (Монгол)”,
“ME” => “Montenegro (Crna Gora)”,
“MS” => “Montserrat”,
“MA” => “Morocco (المغرب)”,
“MZ” => “Mozambique (Moçambique)”,
“MM” => “Myanmar (Burma) (မြန်မာ)”,
“NA” => “Namibia (Namibië)”,
“NR” => “Nauru”,
“NP” => “Nepal (नेपाल)”,
“NL” => “Netherlands (Nederland)”,
“NC” => “New Caledonia (Nouvelle-Calédonie)”,
“NZ” => “New Zealand”,
“NI” => “Nicaragua”,
“NE” => “Niger (Nijar)”,
“NG” => “Nigeria”,
“NU” => “Niue”,
“NF” => “Norfolk Island”,
“MP” => “Northern Mariana Islands”,
“KP” => “North Korea (조선 민주주의 인민 공화국)”,
“NO” => “Norway (Norge)”,
“OM” => “Oman (عُمان)”,
“PK” => “Pakistan (پاکستان)”,
“PW” => “Palau”,
“PS” => “Palestine (فلسطين)”,
“PA” => “Panama (Panamá)”,
“PG” => “Papua New Guinea”,
“PY” => “Paraguay”,
“PE” => “Peru (Perú)”,
“PH” => “Philippines”,
“PN” => “Pitcairn Islands”,
“PL” => “Poland (Polska)”,
“PT” => “Portugal”,
“PR” => “Puerto Rico”,
“QA” => “Qatar (قطر)”,
“RE” => “Réunion (La Réunion)”,
“RO” => “Romania (România)”,
“RU” => “Russia (Россия)”,
“RW” => “Rwanda”,
“BL” => “Saint Barthélemy (Saint-Barthélemy)”,
“SH” => “Saint Helena”,
“KN” => “Saint Kitts and Nevis”,
“LC” => “Saint Lucia”,
“MF” => “Saint Martin (Saint-Martin (partie française))”,
“PM” => “Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)”,
“WS” => “Samoa”,
“SM” => “San Marino”,
“ST” => “São Tomé and Príncipe (São Tomé e Príncipe)”,
“SA” => “Saudi Arabia (المملكة العربية السعودية)”,
“SN” => “Senegal (Sénégal)”,
“RS” => “Serbia (Србија)”,
“SC” => “Seychelles”,
“SL” => “Sierra Leone”,
“SG” => “Singapore”,
“SX” => “Sint Maarten”,
“SK” => “Slovakia (Slovensko)”,
“SI” => “Slovenia (Slovenija)”,
“SB” => “Solomon Islands”,
“SO” => “Somalia (Soomaaliya)”,
“ZA” => “South Africa”,
“GS” => “South Georgia & South Sandwich Islands”,
“KR” => “South Korea (대한민국)”,
“SS” => “South Sudan (جنوب السودان)”,
“ES” => “Spain (España)”,
“LK” => “Sri Lanka (ශ්රී ලංකාව)”,
“VC” => “St. Vincent & Grenadines”,
“SD” => “Sudan (السودان)”,
“SR” => “Suriname”,
“SJ” => “Svalbard and Jan Mayen (Svalbard og Jan Mayen)”,
“SZ” => “Swaziland”,
“SE” => “Sweden (Sverige)”,
“CH” => “Switzerland (Schweiz)”,
“SY” => “Syria (سوريا)”,
“TW” => “Taiwan (台灣)”,
“TJ” => “Tajikistan”,
“TZ” => “Tanzania”,
“TH” => “Thailand (ไทย)”,
“TL” => “Timor-Leste”,
“TG” => “Togo”,
“TK” => “Tokelau”,
“TO” => “Tonga”,
“TT” => “Trinidad and Tobago”,
“TA” => “Tristan da Cunha”,
“TN” => “Tunisia (تونس)”,
“TR” => “Turkey (Türkiye)”,
“TM” => “Turkmenistan”,
“TC” => “Turks and Caicos Islands”,
“TV” => “Tuvalu”,
“UM” => “U.S. Outlying Islands”,
“VI” => “U.S. Virgin Islands”,
“UG” => “Uganda”,
“UA” => “Ukraine (Україна)”,
“AE” => “United Arab Emirates (الإمارات العربية المتحدة)”,
“GB” => “United Kingdom”,
“US” => “United States”,
“UY” => “Uruguay”,
“UZ” => “Uzbekistan (Oʻzbekiston)”,
“VU” => “Vanuatu”,
“VA” => “Vatican City (Città del Vaticano)”,
“VE” => “Venezuela”,
“VN” => “Vietnam (Việt Nam)”,
“WF” => “Wallis and Futuna”,
“EH” => “Western Sahara (الصحراء الغربية)”,
“YE” => “Yemen (اليمن)”,
“ZM” => “Zambia”,
“ZW” => “Zimbabwe”
);