{"id":340264,"date":"2026-07-28T03:29:18","date_gmt":"2026-07-28T03:29:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/geolocation-for-wpforms\/"},"modified":"2026-07-28T03:28:56","modified_gmt":"2026-07-28T03:28:56","slug":"thenameda-form-location-tracker-wpforms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/thenameda-form-location-tracker-wpforms\/","author":21117532,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Thenameda Form Location Tracker for WPForms","header_author":"thenameda123","header_description":"Capture visitor geolocation data when WPForms are submitted. Stores records in a dedicated admin Entries area with search, filters, CSV export, and Google Maps.","assets_banners_color":"366aa1","last_updated":"2026-07-28 03:28:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/thenameda-form-location-tracker-wpforms\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"thenameda123","date":"2026-07-28 03:28:56"}},"upgrade_notice":{"1.0.0":"<p>Initial release of Thenameda Form Location Tracker for WPForms.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3625337,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3625337,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3625337,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3625337,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3625337,"resolution":"1","location":"assets","locale":"","width":1896,"height":714},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3625337,"resolution":"2","location":"assets","locale":"","width":1896,"height":808},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3625337,"resolution":"3","location":"assets","locale":"","width":1896,"height":612},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3625337,"resolution":"4","location":"assets","locale":"","width":1896,"height":799},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3625337,"resolution":"5","location":"assets","locale":"","width":1896,"height":842}},"screenshots":{"1":"Location Tracker settings page.","2":"Per-form geolocation settings in the form builder.","3":"Entries list with filters and export.","4":"Single entry view with embedded map."}},"plugin_section":[],"plugin_tags":[4124,1571,3919,69628,130711],"plugin_category":[49],"plugin_contributors":[271255],"plugin_business_model":[],"class_list":["post-340264","plugin","type-plugin","status-publish","hentry","plugin_tags-geolocation","plugin_tags-google-maps","plugin_tags-ip-address","plugin_tags-location-tracking","plugin_tags-wpforms","plugin_category-maps-and-location","plugin_contributors-thenameda123","plugin_committers-thenameda123"],"banners":{"banner":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/banner-772x250.png?rev=3625337","banner_2x":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/banner-1544x500.png?rev=3625337","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/icon-128x128.png?rev=3625337","icon_2x":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/icon-256x256.png?rev=3625337","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/screenshot-1.png?rev=3625337","caption":"Location Tracker settings page."},{"src":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/screenshot-2.png?rev=3625337","caption":"Per-form geolocation settings in the form builder."},{"src":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/screenshot-3.png?rev=3625337","caption":"Entries list with filters and export."},{"src":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/screenshot-4.png?rev=3625337","caption":"Single entry view with embedded map."},{"src":"https:\/\/ps.w.org\/thenameda-form-location-tracker-wpforms\/assets\/screenshot-5.png?rev=3625337","caption":""}],"raw_content":"<!--section=description-->\n<p>Thenameda Form Location Tracker for WPForms adds IP-based and optional browser-based location tracking to your WPForms submissions. All geolocation records are stored in a dedicated database table and managed from a standalone <strong>Thenameda Form Location Tracker for WPForms<\/strong> admin menu \u2014 independent of the WPForms Entries screen.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Capture IP address, country, state\/region, city, postal code, latitude\/longitude, browser\/device, and operating system on form submission.<\/li>\n<li>Optional browser geolocation with visitor permission for more accurate coordinates.<\/li>\n<li>Per-form enable\/disable controls in the WPForms builder.<\/li>\n<li>Dedicated <strong>Entries<\/strong> admin page with search, filters, sorting, pagination, bulk actions, and CSV export.<\/li>\n<li>Single entry view with full geolocation details and an optional embedded Google Map.<\/li>\n<li>Smart tags for notification emails, including a Google Maps static image tag.<\/li>\n<li>Supports IPstack (with API key), ipapi.co, and KeyCDN fallback providers.<\/li>\n<li>Respects WPForms GDPR and per-form IP collection settings.<\/li>\n<\/ul>\n\n<h4>Smart Tags<\/h4>\n\n<p>Use these tags in WPForms notification emails:<\/p>\n\n<ul>\n<li><code>{geolocation}<\/code> - full text summary<\/li>\n<li><code>{geolocation_country}<\/code><\/li>\n<li><code>{geolocation_state}<\/code><\/li>\n<li><code>{geolocation_city}<\/code><\/li>\n<li><code>{geolocation_postal}<\/code><\/li>\n<li><code>{geolocation_ip}<\/code><\/li>\n<li><code>{geolocation_lat_long}<\/code><\/li>\n<li><code>{geolocation_map}<\/code> - Google Maps static image (HTML emails)<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>Browser location is only requested when enabled on a form and only after the visitor grants permission. IP collection follows WPForms GDPR settings. See <strong>External services<\/strong> below for details on third-party APIs used for IP lookup and maps.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party services to resolve visitor location from IP addresses and to display maps. These connections are required for the plugin's core features.<\/p>\n\n<h4>IPstack<\/h4>\n\n<p>This plugin connects to the IPstack API (by APILayer \/ Apilayer) to look up approximate visitor location (country, region, city, postal code, latitude, and longitude) from an IP address. IPstack is optional and is used only when you add an IPstack access key in the plugin settings.<\/p>\n\n<p>It sends the visitor's IP address and your IPstack access key on each WPForms submission where geolocation tracking is enabled and WPForms allows IP collection.\nThis service is provided by IPstack: terms of use https:\/\/ipstack.com\/terms , privacy policy https:\/\/ipstack.com\/privacy<\/p>\n\n<h4>ipapi.co<\/h4>\n\n<p>This plugin connects to the ipapi.co API (by Kloudend, Inc.) as a free IP geolocation fallback when IPstack is not configured or does not return usable coordinates.<\/p>\n\n<p>It sends the visitor's IP address on form submission when geolocation tracking is enabled, WPForms allows IP collection, and a prior provider did not return location data (or no IPstack key is set).\nThis service is provided by ipapi.co: terms of use https:\/\/ipapi.co\/terms\/ , privacy policy https:\/\/ipapi.co\/privacy\/<\/p>\n\n<h4>KeyCDN IP Location Finder<\/h4>\n\n<p>This plugin connects to KeyCDN's Geo tools API as a final IP geolocation fallback when earlier providers do not return usable coordinates.<\/p>\n\n<p>It sends the visitor's IP address, and your site URL in the request User-Agent header (required by KeyCDN), on form submission when geolocation tracking is enabled, WPForms allows IP collection, and earlier IP lookup providers did not return location data.\nThis service is provided by KeyCDN: terms of use https:\/\/www.keycdn.com\/terms , privacy policy https:\/\/www.keycdn.com\/privacy<\/p>\n\n<h4>Google Maps<\/h4>\n\n<p>This plugin connects to Google Maps to show an embedded map on the admin entry view and (optionally) a static map image in notification emails via the Google Maps Static API. Map links may also open Google Maps in the browser.<\/p>\n\n<p>It sends latitude and longitude coordinates for the submission. If you configure a Google Maps API key, that key is included in Static Maps requests. When an admin or email client loads a map, Google may also receive standard web request data (such as IP address and user agent) from that browser or email client.<\/p>\n\n<p>This happens when an admin opens an entry with map display enabled, when a notification email containing the <code>{geolocation_map}<\/code> smart tag is viewed, or when someone opens a Google Maps link from the plugin.\nThis service is provided by Google: terms of use https:\/\/cloud.google.com\/maps-platform\/terms , privacy policy https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>icanhazip<\/h4>\n\n<p>This plugin connects to icanhazip (operated by Cloudflare) only in local\/development environments to discover the server's public IP when the submitter IP is a private or localhost address, so geolocation can still be tested.<\/p>\n\n<p>It sends a simple HTTP request from your WordPress server (no form field data). The service returns the public IP of the requesting server. This runs during form submission processing only if the detected visitor IP is private\/reserved (for example, localhost testing).\nThis service is provided by Cloudflare (icanhazip): terms of use https:\/\/www.cloudflare.com\/website-terms\/ , privacy policy https:\/\/www.cloudflare.com\/privacypolicy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/thenameda-form-location-tracker-wpforms<\/code> directory, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Make sure WPForms Lite or WPForms Pro is installed and active.<\/li>\n<li>Open <strong>Thenameda Location Tracker &gt; Settings<\/strong> to configure API keys.<\/li>\n<li>Edit a form, open <strong>Settings &gt; Geolocation<\/strong>, and enable tracking for that form.<\/li>\n<li>View captured records under <strong>Thenameda Location Tracker &gt; Entries<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20wpforms%20lite%3F\"><h3>Does this work with WPForms Lite?<\/h3><\/dt>\n<dd><p>Yes. The plugin integrates with WPForms Lite and WPForms Pro for form submission handling. Geolocation records are stored and managed in the plugin's own admin area.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20maps%20api%20key%3F\"><h3>Do I need a Google Maps API key?<\/h3><\/dt>\n<dd><p>Only if you want static map images in emails. Embedded maps in the entry view screen work without an API key.<\/p><\/dd>\n<dt id=\"which%20ip%20lookup%20service%20is%20used%3F\"><h3>Which IP lookup service is used?<\/h3><\/dt>\n<dd><p>If you add an IPstack access key, that service is used first. Otherwise the plugin falls back to ipapi.co and then KeyCDN.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with dedicated Entries admin, custom database table, and CSV export.<\/li>\n<\/ul>","raw_excerpt":"Capture visitor geolocation data when WPForms are submitted.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/340264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=340264"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/thenameda123"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=340264"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=340264"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=340264"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=340264"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=340264"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=340264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}