Display the country from which the form is being submitted
In this article we will describe how to get the IP address of a submitting client and displaying the country which it belongs to.
In order to achieve this functionality, just create a hidden field with the following code placed in the "Default Value" area.
//<code> try { if (!function_exists('rsform_get_ip')) { function rsform_get_ip($ip) { // Get the HTTP transport $http = Joomla\CMS\Http\HttpFactory::getHttp(); // Create the URL for the API request $url = 'http://ip-api.com/json/'.urlencode($ip); // Get response $response = $http->get($url); // Check if request is successful, a 200 code should be received. if ($response->code == 200) { $json = json_decode($response->body, true); if (isset($json['country'])) { return $json['country']; } } return 'Unknown'; } } // Let's cache results for better performance $cache = Joomla\CMS\Factory::getCache(); $cache->setCaching(true); // Grab the IP $ip = Joomla\CMS\Factory::getApplication()->input->server->getString('REMOTE_ADDR'); // Call function through cache return $cache->get('rsform_get_ip', $ip); } catch (Exception $e) {} //</code>Let's say, for example that you named your hidden field "location". To display the calculated value in the "Thank you" page or email just use this syntax: {location:value}.
18 persons found this article helpful.