[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fHT3sae_gf-bjATE-mECgaqGwNfAEb74KJX8SVZ664X0":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":35,"analysis":136,"fingerprints":531},"geoip-content-switcher","GeoIP Content Switcher","1.0.5","RAJ PATHAK","https:\u002F\u002Fprofiles.wordpress.org\u002Fpathakhrkinc\u002F","\u003Cp>GeoIP Content Switcher is a professional WordPress plugin that automatically detects your visitor’s country and dynamically switches content, payments, shipping methods, and products accordingly. Perfect for international WooCommerce stores and multi-country websites.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Automatic Country Detection\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>MaxMind GeoLite2 Database integration\u003C\u002Fli>\n\u003Cli>Cloudflare CF-IPCountry header support\u003C\u002Fli>\n\u003Cli>Session caching for optimal performance\u003C\u002Fli>\n\u003Cli>Accurate IP-based geolocation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Subdomain Redirection\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic redirect to country-specific subdomains\u003C\u002Fli>\n\u003Cli>Example: US visitors \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> us.yoursite.com\u003C\u002Fli>\n\u003Cli>Geo-lock option to prevent manual country switching\u003C\u002Fli>\n\u003Cli>Seamless cross-subdomain session management\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>WooCommerce Integration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Filter payment gateways by country\u003C\u002Fli>\n\u003Cli>Filter shipping methods by country\u003C\u002Fli>\n\u003Cli>Hide products or categories by country\u003C\u002Fli>\n\u003Cli>Full WooCommerce HPOS compatibility\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Content Switching\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Country-specific homepage\u003C\u002Fli>\n\u003Cli>Custom header content per country\u003C\u002Fli>\n\u003Cli>Custom footer content per country\u003C\u002Fli>\n\u003Cli>Full Elementor and page builder support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Performance Optimized\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Session caching with configurable duration\u003C\u002Fli>\n\u003Cli>Cloudflare integration\u003C\u002Fli>\n\u003Cli>Compatible with WP Rocket, LiteSpeed Cache, W3 Total Cache\u003C\u002Fli>\n\u003Cli>Minimal server resource usage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Security Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Database files protected from direct access\u003C\u002Fli>\n\u003Cli>Input sanitization and validation\u003C\u002Fli>\n\u003Cli>Nonce verification for all forms\u003C\u002Fli>\n\u003Cli>Capability checks for admin functions\u003C\u002Fli>\n\u003Cli>Secure session handling\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Clean, well-documented code\u003C\u002Fli>\n\u003Cli>Shortcodes for displaying country info\u003C\u002Fli>\n\u003Cli>Hooks and filters for customization\u003C\u002Fli>\n\u003Cli>PSR-4 autoloading\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Shortcodes\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>[geoip_country]\u003C\u002Fcode> – Display visitor’s country name\u003C\u002Fli>\n\u003Cli>\u003Ccode>[geoip_country format=\"code\"]\u003C\u002Fcode> – Display country code (e.g., US, UK, IN)\u003C\u002Fli>\n\u003Cli>\u003Ccode>[geoip_ip]\u003C\u002Fcode> – Display visitor’s IP address\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.8 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.4 or higher (compatible with PHP 8.0, 8.1, 8.2, 8.3)\u003C\u002Fli>\n\u003Cli>WooCommerce 5.0 or higher (optional, for e-commerce features)\u003C\u002Fli>\n\u003Cli>MaxMind GeoLite2 Country Database (free download)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Use Cases\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>International e-commerce stores\u003C\u002Fli>\n\u003Cli>Multi-country business websites\u003C\u002Fli>\n\u003Cli>Region-specific content delivery\u003C\u002Fli>\n\u003Cli>Localized payment and shipping options\u003C\u002Fli>\n\u003Cli>Country-based product catalogs\u003C\u002Fli>\n\u003Cli>Geo-targeted marketing campaigns\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Themes:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Woodmart (fully tested)\u003Cbr \u002F>\n* Astra\u003Cbr \u002F>\n* Divi\u003Cbr \u002F>\n* Elementor\u003Cbr \u002F>\n* Any WordPress theme\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cache Plugins:\u003C\u002Fstrong>\u003Cbr \u002F>\n* WP Rocket\u003Cbr \u002F>\n* LiteSpeed Cache\u003Cbr \u002F>\n* W3 Total Cache\u003Cbr \u002F>\n* WP Super Cache\u003Cbr \u002F>\n* Cloudflare\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Page Builders:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Elementor\u003Cbr \u002F>\n* WPBakery\u003Cbr \u002F>\n* Beaver Builder\u003Cbr \u002F>\n* Divi Builder\u003C\u002Fp>\n\u003Ch3>Additional Information\u003C\u002Fh3>\n\u003Ch4>About MaxMind GeoLite2\u003C\u002Fh4>\n\u003Cp>This plugin uses the free GeoLite2 database created by MaxMind, available from https:\u002F\u002Fwww.maxmind.com. The database provides country-level IP geolocation data.\u003C\u002Fp>\n\u003Ch4>Privacy Policy\u003C\u002Fh4>\n\u003Cp>This plugin:\u003Cbr \u002F>\n* Detects visitor country using IP address\u003Cbr \u002F>\n* Stores only country code in PHP sessions (temporary)\u003Cbr \u002F>\n* Does not store IP addresses in the database\u003Cbr \u002F>\n* Does not share data with third parties\u003Cbr \u002F>\n* Does not use tracking cookies\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>MaxMind GeoLite2: https:\u002F\u002Fwww.maxmind.com\u002F\u003C\u002Fli>\n\u003Cli>GeoIP2 PHP Library: https:\u002F\u002Fgithub.com\u002Fmaxmind\u002FGeoIP2-php\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Developer\u003C\u002Fh4>\n\u003Cp>Developed by RAJ PATHAK\u003Cbr \u002F>\nEmail: Rajpathak.er@gmail.com\u003C\u002Fp>\n\u003Ch4>Support the Plugin\u003C\u002Fh4>\n\u003Cp>If you find this plugin helpful, please:\u003Cbr \u002F>\n* Rate it 5 stars on WordPress.org\u003Cbr \u002F>\n* Share it with others who might need it\u003Cbr \u002F>\n* Report bugs or suggest features in the support forum\u003C\u002Fp>\n\u003Ch3>Technical Details\u003C\u002Fh3>\n\u003Ch4>System Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.8+\u003C\u002Fli>\n\u003Cli>PHP 7.4+ (8.0, 8.1, 8.2, 8.3 supported)\u003C\u002Fli>\n\u003Cli>MySQL 5.6+ or MariaDB 10.0+\u003C\u002Fli>\n\u003Cli>WooCommerce 5.0+ (optional)\u003C\u002Fli>\n\u003Cli>MaxMind GeoLite2 Country Database\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>File Structure\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fincludes\u002F\u003C\u002Fcode> – Core plugin classes\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fassets\u002F\u003C\u002Fcode> – CSS and JavaScript files\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fdatabase\u002F\u003C\u002Fcode> – MaxMind database location\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fvendor\u002F\u003C\u002Fcode> – Composer dependencies\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Flanguages\u002F\u003C\u002Fcode> – Translation files\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Hooks and Filters\u003C\u002Fh4>\n\u003Cp>Developers can extend the plugin using WordPress hooks and filters. Documentation available in the code comments.\u003C\u002Fp>\n\u003Ch4>License\u003C\u002Fh4>\n\u003Cp>This plugin is licensed under the GPL v2 or later.\u003C\u002Fp>\n\u003Cp>This program is free software; you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\u003C\u002Fp>\n\u003Cp>You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\u003C\u002Fp>\n","Automatically switches content, payments, shipping, and products based on visitor's country using GeoIP detection.",0,167,100,1,"2026-02-12T19:06:00.000Z","6.9.4","5.8","7.4",[20,21,22,23,24],"content-switcher","country-detection","geoip","geolocation","woocommerce","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeoip-content-switcher.1.0.5.zip",null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"pathakhrkinc",30,94,"2026-04-04T18:41:03.476Z",[36,59,79,99,117],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":33,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":55,"download_link":56,"security_score":57,"vuln_count":14,"unpatched_count":11,"last_vuln_date":58,"fetched_at":28},"geoip-detect","Geolocation IP Detection","5.6.1","Benjamin Pick","https:\u002F\u002Fprofiles.wordpress.org\u002Fbenjaminpick\u002F","\u003Cp>Provides geographic information detected by an IP adress. This can be used in themes or other plugins, as a shortcode, or via CSS body classes. The city & country names are translated in different languages (\u003Ca href=\"https:\u002F\u002Fdev.maxmind.com\u002Fgeoip\u002Fgeoip2\u002Fweb-services\u002F#Languages-8\" rel=\"nofollow ugc\">supported languages\u003C\u002Fa>).\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>You can use one of these data sources (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FFAQ#which-data-source-should-i-choose\" rel=\"nofollow ugc\">comparison\u003C\u002Fa>):\n\u003Cul>\n\u003Cli>Free (default source): \u003Ca href=\"http:\u002F\u002Fwww.hostip.info\u002F\" rel=\"nofollow ugc\">HostIP.info\u003C\u002Fa> (IPv4 only)\u003C\u002Fli>\n\u003Cli>Free with registration: \u003Ca href=\"http:\u002F\u002Fdev.maxmind.com\u002Fgeoip\u002Fgeoip2\u002Fgeolite2\u002F\" rel=\"nofollow ugc\">Maxmind GeoIP2 Lite City\u003C\u002Fa>, automatically updated weekly\u003C\u002Fli>\n\u003Cli>Commercial: \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\u002Fen\u002Fgeoip2-country-database\" rel=\"nofollow ugc\">Maxmind GeoIP2 City\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\u002Fen\u002Fgeoip2-city\" rel=\"nofollow ugc\">Maxmind GeoIP2 Country\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Commercial Web-API: \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\u002Fen\u002Fgeoip2-precision-services\" rel=\"nofollow ugc\">Maxmind GeoIP2 Precision\u003C\u002Fa> (City, Country or Insights)\u003C\u002Fli>\n\u003Cli>Hosting-Provider dependent: \u003Ca href=\"https:\u002F\u002Fsupport.cloudflare.com\u002Fhc\u002Fen-us\u002Farticles\u002F200168236-What-does-CloudFlare-IP-Geolocation-do-\" rel=\"nofollow ugc\">Cloudflare\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Faws\u002Fenhanced-cloudfront-customization\u002F\" rel=\"nofollow ugc\">Amazon AWS CloudFront\u003C\u002Fa> (Country)\u003C\u002Fli>\n\u003Cli>Free or Commercial Web-API: \u003Ca href=\"https:\u002F\u002Fipstack.com\" rel=\"nofollow ugc\">Ipstack\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Commercial Web-API via AWS Marketplace: \u003Ca href=\"https:\u002F\u002Faws.amazon.com\u002Fmarketplace\u002Fpp\u002Fprodview-k5gjowexrefl2\" rel=\"nofollow ugc\">Fastah\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Provides these 5 functions (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FAPI:-PHP\" rel=\"nofollow ugc\">API Documentation\u003C\u002Fa>):\n\u003Cul>\n\u003Cli>\u003Ccode>geoip_detect2_get_info_from_ip($ip, $locales = array('en'), $options = array())\u003C\u002Fcode>: Lookup Geo-Information of the specified IP\u003C\u002Fli>\n\u003Cli>\u003Ccode>geoip_detect2_get_info_from_current_ip($locales = array('en'), $options = array())\u003C\u002Fcode>: Lookup Geo-Information of the current website user\u003C\u002Fli>\n\u003Cli>\u003Ccode>geoip_detect2_get_current_source_description(...)\u003C\u002Fcode>: Return a human-readable label of the currently chosen source.\u003C\u002Fli>\n\u003Cli>\u003Ccode>geoip_detect2_get_external_ip_adress()\u003C\u002Fcode>: Fetch the internet adress of the webserver\u003C\u002Fli>\n\u003Cli>\u003Ccode>geoip_detect2_get_client_ip()\u003C\u002Fcode>: Get client IP (even if it is behind a reverse proxy)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>For the property names, see the results of a specific IP in the wordpress backend (under \u003Cem>Tools > Geolocation IP Detection\u003C\u002Fem>).\u003C\u002Fli>\n\u003Cli>You can include these properties into your posts and pages by using the shortcode \u003Ccode>[geoip_detect2 property=\"country.name\" default=\"(country could not be detected)\" lang=\"en\"]\u003C\u002Fcode> (where ‘country.name’ can be one of the other property names as well, and ‘default’ and ‘lang’ are optional).\u003C\u002Fli>\n\u003Cli>You can show or hide content by using a shortcode \u003Ccode>[geoip_detect2_show_if country=\"FR, DE\" not_city=\"Berlin\"]TEXT[\u002Fgeoip_detect2_show_if]\u003C\u002Fcode>. See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FAPI:-Shortcodes#show-or-hide-content-depending-on-the-location\" rel=\"nofollow ugc\">Shortcode Documentation\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>When enabled on the options page, it adds CSS classes to the body tag such as \u003Ccode>geoip-province-HE\u003C\u002Fcode>, \u003Ccode>geoip-country-DE\u003C\u002Fcode> and \u003Ccode>geoip-continent-EU\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>If you are using a page cache, it is recommended to use the AJAX mode (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FAPI:-AJAX\" rel=\"nofollow ugc\">AJAX\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>When enabled on the options page, the client IP respects a reverse proxy of the server.\u003C\u002Fli>\n\u003Cli>If you are using \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcontact-form-7\u002F\" rel=\"ugc\">Contact Form 7\u003C\u002Fa>, you can use these shortcodes:\n\u003Cul>\n\u003Cli>A select input with all countries, the detected country being selected by default: \u003Ccode>[geoip_detect2_countries mycountry]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>A text input that is pre-filled with the detected city (or other property): \u003Ccode>[geoip_detect2_text_input city property:city lang:fr id:id class:class default:Paris]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Geolocation information for the email text: \u003Ccode>[geoip_detect2_user_info]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>If you are using \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpforms-lite\u002F\" rel=\"ugc\">WP Forms\u003C\u002Fa>, you can use this shortcode:\n\u003Cul>\n\u003Cli>Geolocation information for the email text: \u003Ccode>[geoip_detect2_user_info]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Together with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsvg-flags-lite\u002F\" rel=\"ugc\">SVG Flags\u003C\u002Fa> you can show the flag of the detected country: \u003Ccode>[geoip_detect2_current_flag]\u003C\u002Fcode> (see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FAPI:-Shortcodes#add-a-flag-of-the-visitors-country\" rel=\"nofollow ugc\">documentation\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> for more info.\u003C\u002Fp>\n\u003Ch4>How can I use these functions?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>You could choose the currency of the store based on the country name\u003C\u002Fli>\n\u003Cli>You could pre-fill the shipping country\u003C\u002Fli>\n\u003Cli>You could show the store nearest to your customer\u003C\u002Fli>\n\u003Cli>You show or hide content specific to a geographic target group\u003C\u002Fli>\n\u003Cli>Etc. … You tell me! I’m rather curious what you’ll do with this plugin!\u003C\u002Fli>\n\u003Cli>Be careful to comply to the applicable laws. For example Regulation (EU) 2018\u002F302 …\u003C\u002Fli>\n\u003Cli>If you need to get the user’s timezone, it is more accurate to use JS solutions.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>System Requirements\u003C\u002Fstrong>: You will need at least PHP 7.2.5 . Also, if you use the plugin WooCommerce, you’ll need at least WooCommerce 3.9.0 .\u003C\u002Fp>\n\u003Cp>\u003Cem>GDPR: See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FFAQ#is-this-plugin-gdpr-compliant\" rel=\"nofollow ugc\">Is this plugin GDPR-compliant?\u003C\u002Fa>\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>This extension is “charity-ware”. If you are happy with it, please \u003Ca href=\"https:\u002F\u002Fwww.paypal.com\u002Fcgi-bin\u002Fwebscr?cmd=_s-xclick&hosted_button_id=BSYUZHS8FH3CL\" rel=\"nofollow ugc\">leave a tip\u003C\u002Fa> for the benefit of \u003Ca href=\"http:\u002F\u002Fwww.jmem-hainichen.de\u002Fhomepage\" rel=\"nofollow ugc\">this charity\u003C\u002Fa>. (See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FFAQ#what-you-mean-by-this-plugin-is-charity-ware\" rel=\"nofollow ugc\">FAQ\u003C\u002Fa> for more infos.)\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md\" rel=\"nofollow ugc\">Here are other ways to contribute to the development of this plugin.\u003C\u002Fa>\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>This product can provide GeoLite2 data created by MaxMind, available from http:\u002F\u002Fwww.maxmind.com.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Does \u003Ccode>geoip_detect2_get_info_from_current_ip()\u003C\u002Fcode> return the same country, regardless of where you are visiting the site from? \u003C\u002Fli>\n\u003Cli>Maybe your server has a reverse proxy configured. You can check this: Go to the options page and look for “reverse proxy”. Are there 2 IPs listed there? If so, which one corresponds to your \u003Ca href=\"https:\u002F\u002Fwww.whatismyip.com\u002F\" rel=\"nofollow ugc\">public IP\u003C\u002Fa>?\u003C\u002Fli>\n\u003Cli>Or maybe you are using a site cache plugin. Then enable the option \u003Ccode>Disable caching a page that contains a shortcode or API call to geo-dependent functions.\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyellowtree\u002Fgeoip-detect\u002Fwiki\u002FTroubleshooting\" rel=\"nofollow ugc\">More Troubleshooting Hints\u003C\u002Fa>\u003C\u002Fp>\n","Provides geographic information detected by an IP adress.",20000,560277,59,"2025-10-29T20:59:00.000Z","6.8.5","5.0","7.2.5",[22,23,52,53,54],"ipstack","locator","maxmind","http:\u002F\u002Fwww.yellowtree.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeoip-detect.5.6.1.zip",99,"2025-09-22 00:00:00",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":44,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":70,"tested_up_to":16,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":77,"download_link":78,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"woocommerce-product-price-based-on-countries","Price Based on Country for WooCommerce","4.2.2","Oscar Gare","https:\u002F\u002Fprofiles.wordpress.org\u002Foscargare\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.pricebasedcountry.com\u002Fdocs\u002F?utm_medium=banner&utm_campaign=upgrade-pro&utm_source=wordpress\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.pricebasedcountry.com\u002Fpricing\u002F?utm_medium=banner&utm_campaign=upgrade-pro&utm_source=wordpress\" rel=\"nofollow ugc\">Upgrade to Pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.pricebasedcountry.com\u002F?utm_medium=banner&utm_campaign=upgrade-pro&utm_source=wordpress\" rel=\"nofollow ugc\">Price Based on Country for WooCommerce\u003C\u002Fa> allows you to define country-specific prices for your WooCommerce products, either in a single currency or across multiple currencies.\u003C\u002Fp>\n\u003Cp>The plugin is designed for stores that sell internationally and need greater control over how prices are presented to customers across regions. You can adapt your pricing strategy to reflect local markets and currencies.\u003C\u002Fp>\n\u003Ch3>KEY FEATURES\u003C\u002Fh3>\n\u003Cp>The core plugin is 100% free. It provides all functionality needed to sell internationally with localized pricing.\u003C\u002Fp>\n\u003Cp>✔️ \u003Cstrong>Multi-Currency\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Add multi-currency support to WooCommerce to enable selling products in multiple currencies and reduce checkout friction.\u003C\u002Fp>\n\u003Cp>✔️ \u003Cstrong>Geolocation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The plugin detects the country of the website visitor automatically through the geolocation feature included in WooCommerce and displays the price and currency you have defined previously for this country. Compatible with cache plugins.\u003C\u002Fp>\n\u003Cp>✔️  \u003Cstrong>Manual Fixed Price\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Leave the price to be calculated using the exchange rate, or set a fixed price manually for each country or region.\u003C\u002Fp>\n\u003Cp>✔️  \u003Cstrong>Country Switcher Widget\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Add a country switcher to your store to let users manually change their country.\u003C\u002Fp>\n\u003Cp>✔️  \u003Cstrong>Multilingual Ready\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Compatible with WPML and Polylang workflows (sync data between product translations).\u003C\u002Fp>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Cp>Prices are organized into pricing zones, each one associated with one or more countries. For each zone, you can choose a currency.\u003C\u002Fp>\n\u003Cp>You may rely on automatic currency conversion using exchange rates, or define fixed prices manually for full control.\u003C\u002Fp>\n\u003Cp>Once configured, prices are displayed dynamically based on the customer’s country, while remaining compatible with caching and performance plugins.\u003C\u002Fp>\n\u003Ch3>Use Cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Boost international sales\u003C\u002Fstrong> – Display price in local currency to reduce checkout friction and cart abandonment.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Regional strategy\u003C\u002Fstrong> – Adjust prices based on regional purchasing power.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Absorb shipping costs\u003C\u002Fstrong> – Set higher prices for countries with expensive shipping without scaring away local customers.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Keeping profit\u003C\u002Fstrong> – Maintain consistent margins across international markets.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Price Based on Country PRO\u003C\u002Fh3>\n\u003Cp>The \u003Ca href=\"https:\u002F\u002Fwww.pricebasedcountry.com\u002Fpricing\u002F?utm_medium=banner&utm_campaign=upgrade-pro&utm_source=wordpress\" rel=\"nofollow ugc\">PRO version\u003C\u002Fa> extends the core functionality with features that save time, automate tasks, and provide integration with professional plugins.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Automatic Exchange Rate Updates\u003C\u002Fstrong> – The daily automatic update of the exchange rate allows prices to stay in sync without manual intervention.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pretty prices\u003C\u002Fstrong> – Converted prices can be rounded to clean values, helping maintain a professional appearance across currencies (e.g., 19.99 instead of 19.43).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Currency Symbol\u003C\u002Fstrong> – Display the prices as USD 99.99, US$ 99.99, …\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Updates from file\u003C\u002Fstrong> – Save hours of manual work by updating the product prices in bulk using the CSV import or “WP All Import” integration.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Support for Manual Orders\u003C\u002Fstrong> – Update the order with the regional price from the administration panel.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Additional Shortcodes and Widgets\u003C\u002Fstrong> – Display custom content based on the user’s country or the price of a specific product in a pricing table with the PRO shortcodes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Exclusive Compatibilities and Integrations\u003C\u002Fstrong> – The PRO version adds compatibility with several WooCommerce.com extensions, including \u003Cem>WooCommerce Subscriptions by Woo\u003C\u002Fem>, \u003Cem>Product Bundles for WooCommerce by Woo\u003C\u002Fem>, \u003Cem>Product Add-Ons for WooCommerce by Woo\u003C\u002Fem>, and other professional extensions like \u003Cem>German Market by Marketpress\u003C\u002Fem> or \u003Cem>WP All Import\u003C\u002Fem>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.pricebasedcountry.com\u002Fproduct-tour\u002Ffree-vs-pro\u002F?utm_medium=banner&utm_campaign=upgrade-pro&utm_source=wordpress\" rel=\"nofollow ugc\">\u003Cstrong>Free vs PRO full comparison\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\n","Product Pricing and Currency based on Shopper's Country for WooCommerce with multi-currency support and geolocation to boost international sales.",1295389,96,261,"2026-03-05T10:30:00.000Z","3.8","7.0",[74,23,75,76,24],"country-based-pricing","multi-currency","price-by-country","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce-product-price-based-on-countries\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoocommerce-product-price-based-on-countries.4.2.2.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":89,"num_ratings":90,"last_updated":91,"tested_up_to":16,"requires_at_least":92,"requires_php":72,"tags":93,"homepage":97,"download_link":98,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"woo-product-country-base-restrictions","Country Based Restrictions for WooCommerce","3.7.7","Zorem","https:\u002F\u002Fprofiles.wordpress.org\u002Fzorem\u002F","\u003Cp>\u003Cstrong>Country Based Restrictions for WooCommerce (CBR)\u003C\u002Fstrong> lets you control which products customers can see and purchase based on their country. Whether you need to comply with regional regulations, limit shipping to certain destinations, or create country-specific catalogs, CBR gives you per-product control using WooCommerce’s built-in geolocation.\u003C\u002Fp>\n\u003Cp>If a product shouldn’t be sold in a particular country — because of shipping limitations, legal requirements, licensing, or business strategy — CBR makes sure customers in that country either can’t see it or can’t buy it. No code required.\u003C\u002Fp>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Hide Restricted Products Completely\u003C\u002Fstrong> — Remove products from your shop, search results, and catalog for customers in restricted countries. Products become invisible as if they don’t exist.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hide from Catalog, Keep Direct Links\u003C\u002Fstrong> — Remove products from shop pages and search, but still allow access via a direct URL. Useful for wholesale or private distribution.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Visible but Not Purchasable\u003C\u002Fstrong> — Keep products visible in your shop and search results, but disable the Add to Cart button for restricted countries. Customers can browse but not buy.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Per-Product Include or Exclude Rules\u003C\u002Fstrong> — For each product, choose whether to allow it in specific countries (include) or block it in specific countries (exclude). Flexible enough for any restriction scenario.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic Country Detection\u003C\u002Fstrong> — Uses WooCommerce Geolocation (IP-based) and the customer’s shipping address to determine their country — no manual input needed from the shopper.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Translation Ready\u003C\u002Fstrong> — Fully translatable and compatible with multilingual stores.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Common Use Cases\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Legal & Regulatory Compliance\u003C\u002Fstrong> — Block products that can’t legally be sold in certain countries (alcohol, supplements, electronics, age-restricted items).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shipping Limitations\u003C\u002Fstrong> — Don’t sell products in countries your logistics provider can’t deliver to. Avoid failed deliveries and refund requests.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Regional Licensing\u003C\u002Fstrong> — Restrict digital or licensed products to territories covered by your distribution agreement.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Country-Specific Catalogs\u003C\u002Fstrong> — Show different product selections to different markets, creating a tailored shopping experience per region.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reduce Chargebacks & Wrong Orders\u003C\u002Fstrong> — Prevent customers from ordering products that can’t be fulfilled in their location.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How Country Detection Works\u003C\u002Fh4>\n\u003Cp>CBR determines the customer’s country in this order:\u003C\u002Fp>\n\u003Col>\n\u003Cli>If the visitor is a \u003Cstrong>logged-in customer\u003C\u002Fstrong> with a shipping address on file, CBR uses that shipping country.\u003C\u002Fli>\n\u003Cli>If no shipping country is set (or the visitor is a guest), CBR falls back to \u003Cstrong>WooCommerce Geolocation\u003C\u002Fstrong> (IP-based detection).\u003C\u002Fli>\n\u003Cli>You can optionally force the plugin to always use geolocation only.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Upgrade to Country Based Restrictions PRO\u003C\u002Fh4>\n\u003Cp>Need to manage restrictions at scale? \u003Ca href=\"https:\u002F\u002Fwww.zorem.com\u002Fproduct\u002Fcountry-based-restriction-pro\u002F\" rel=\"nofollow ugc\">CBR PRO\u003C\u002Fa> adds powerful bulk tools and advanced controls:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Bulk Restrictions by Category, Tag, Attribute, or Shipping Class\u003C\u002Fstrong> — Apply country rules to entire groups of products at once instead of editing each product individually.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Global (All Products) Restrictions\u003C\u002Fstrong> — Set a single rule that applies to your entire catalog.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disable Payment Methods by Country\u003C\u002Fstrong> — Control which payment gateways are available based on the customer’s country.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hide Product Prices for Restricted Products\u003C\u002Fstrong> — Instead of hiding the product entirely, hide only the price and Add to Cart button.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Remove Single Product Rules in Bulk\u003C\u002Fstrong> — Clean up individual product rules using bulk actions.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Debug Mode\u003C\u002Fstrong> — Display a front-end toolbar (visible to admins only) showing the detected country, so you can test restrictions without affecting customers.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Country Detection Widget\u003C\u002Fstrong> — Display the detected shipping country to shoppers and let them change their location while browsing.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.zorem.com\u002Fproduct\u002Fcountry-based-restriction-pro\u002F\" rel=\"nofollow ugc\">Get Country Based Restrictions PRO\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Documentation & Support\u003C\u002Fh4>\n\u003Cp>Setup guides, configuration tutorials, and developer resources are available in the \u003Ca href=\"https:\u002F\u002Fdocs.zorem.com\u002Fdocs\u002Fcountry-based-restrictions-pro\u002F\" rel=\"nofollow ugc\">CBR documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Need help? Visit the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwoo-product-country-base-restrictions\u002F\" rel=\"ugc\">support forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>More Plugins by Zorem\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.zorem.com\u002Fproduct\u002Fwoocommerce-advanced-shipment-tracking\u002F\" rel=\"nofollow ugc\">Advanced Shipment Tracking PRO\u003C\u002Fa> — Add tracking numbers to orders and share them with customers automatically.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzorem.com\u002Fplugins\u002Fsms-for-woocommerce\u002F\" rel=\"nofollow ugc\">SMS for WooCommerce\u003C\u002Fa> — Send SMS order notifications to customers.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzorem.com\u002Fplugins\u002Fzorem-local-pickup-pro\u002F\" rel=\"nofollow ugc\">Zorem Local Pickup Pro\u003C\u002Fa> — Local pickup and store pickup for WooCommerce.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzorem.com\u002Fplugins\u002Fcustomer-email-verification-for-woocommerce\u002F\" rel=\"nofollow ugc\">Customer Email Verification for WooCommerce\u003C\u002Fa> — Verify customer emails during registration.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fzorem.com\u002Fplugins\u002Fzorem-returns\u002F\" rel=\"nofollow ugc\">Zorem Returns\u003C\u002Fa> — Manage product returns and RMA requests.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Explore all plugins at \u003Ca href=\"https:\u002F\u002Fwww.zorem.com\u002F\" rel=\"nofollow ugc\">zorem.com\u003C\u002Fa>.\u003C\u002Fp>\n","Restrict WooCommerce products by country — hide or block purchases using geolocation so only customers in allowed countries can buy.",5000,224381,90,52,"2026-02-10T13:26:00.000Z","5.3",[94,23,95,96,24],"country-restriction","product-visibility","restrict-products","https:\u002F\u002Fwww.zorem.com\u002Fshop\u002Fwoocommerce-product-country-based-restrictions\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwoo-product-country-base-restrictions.3.7.7.zip",{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":107,"downloaded":108,"rating":13,"num_ratings":109,"last_updated":110,"tested_up_to":16,"requires_at_least":111,"requires_php":25,"tags":112,"homepage":25,"download_link":116,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"if-so-geolocation","If-So Geolocation","1.5","If-So Dynamic Content","https:\u002F\u002Fprofiles.wordpress.org\u002Fifso\u002F","\u003Cp>Create location-based content in minutes. No coding required. Works with any page builder. No need to sync an IP-to-location database.\u003C\u002Fp>\n\u003Cp>This plugin enhances the Geolocation capabilities of the core \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fif-so\u002F\" rel=\"ugc\">If-So Dynamic Content plugin\u003C\u002Fa>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>HTML5 Geolocation API (browser location) – Can be used in addition to or instead of the IP-to-location service.\u003C\u002Fli>\n\u003Cli>Location override – Allow users to manually select their location and override the default IP-based location detection.\u003C\u002Fli>\n\u003Cli>Display the user’s country flag (image or emoji).\u003C\u002Fli>\n\u003Cli>Log geolocation requests and analyze the log to find and exclude bot traffic.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WHY IF-SO?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Show dynamic content based on City, State, Country, Continent, or Time zoneSimple to use – No coding is required\u003C\u002Fli>\n\u003Cli>Geolocation DKi\u003C\u002Fli>\n\u003Cli>No need to sync with an IP-to-location database\u003C\u002Fli>\n\u003Cli>Works with any page builder\u003C\u002Fli>\n\u003Cli>100% compatible with all caching plugins (no need to disable the cache)\u003C\u002Fli>\n\u003Cli>A simple way to improve engagement and conversion rates\u003C\u002Fli>\n\u003Cli>Conditional Gutenberg Blocks and Elementor Widgets\u003C\u002Fli>\n\u003Cli>Create location-based pop-ups\u003C\u002Fli>\n\u003Cli>Built-in stats system\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>……………………………………………………………\u003C\u002Fp>\n\u003Ch3>HOW IT WORKS\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Select a condition >> Set a version of content to be displayed if it is met.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>All page builder users\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Create a trigger.\u003C\u002Fli>\n\u003Cli>Select a condition and set the personalized content version.\u003C\u002Fli>\n\u003Cli>Optional – create more dynamic versions and set the default content.\u003C\u002Fli>\n\u003Cli>Paste the shortcode wherever you want to display the content.\u003Cbr \u002F>\nWhenever a page with the shortcode is loaded, one of the content versions will be displayed accordingly.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fhelp\u002Fdocumentation\u002Fhow-to-create-dynamic-content-trigger\u002F?utm_source=WordPressGeo&utm_medium=Readme&utm_campaign=v2&utm_term=dynamic-trigger\" rel=\"nofollow ugc\">Learn more >>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Gutenberg and Elementor users\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Select the block or element.\u003C\u002Fli>\n\u003Cli>On the side menu, select the condition to display the block\u002Felement.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Felementor-personalization\u002F?utm_source=WordPressGeo&utm_medium=Readme&utm_campaign=v2&utm_term=elementor\" rel=\"nofollow ugc\"> – More about conditional  Elementor Elements >>\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fconditional-gutenberg-blocks\u002F?utm_source=WordPressGeo&utm_medium=Readme&utm_campaign=v2&utm_term=gutenberg\" rel=\"nofollow ugc\"> – More about conditional  Gutenberg Blocks >>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>……………………………………………………………\u003C\u002Fp>\n\u003Ch3>HTML5 Geolocation API (browser location)\u003C\u002Fh3>\n\u003Cp>The Geolocation API-based content option is an alternative method for presenting location-specific content. This approach is significantly more accurate in determining the user’s location compared to the IP-to-location method (which is not crucial at the country and state level, but might be significant at the city level).\u003C\u002Fp>\n\u003Cp>The drawback of this approach is that it necessitates the user’s consent to share their location.\u003C\u002Fp>\n\u003Cp>The HTML5 Geolocation API method can be used in addition to or instead of the IP-to-location service.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fthe-html-geolocation-api\u002F?utm_source=WordPress&utm_medium=Readme&utm_campaign=v2&utm_term=html5_api\" rel=\"nofollow ugc\">– More about the HTML5 Geolocation API.\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>LOCATION OVERRIDE (MANUAL USER LOCATION SELECTION)\u003C\u002Fh3>\n\u003Cp>With the manual user location selection option, users can override the location detected by our IP-to-location service and manually select a different location. This allows for dynamic content to be displayed based on the user’s chosen location.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fdynamic-select-form\u002Fmanual-user-location-selection\u002F\" rel=\"nofollow ugc\"> – More about the Location Override option >>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>LOG GEOLOCATION REQUESTS\u003C\u002Fh3>\n\u003Cp>Track bots that visit your site and exhaust your session quota. Log the geolocation requests to identify their IPs, analyze them,  and chose if you want to block them from the geolocation service.\u003C\u002Fp>\n\u003Cp>Although the site will remain open to visits from the blocked IPs, the geolocation service will be disabled for them and default content will be displayed instead of the location-based version.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Ffaq-items\u002Fthe-geolocation-session-count-doesnt-seem-to-behave-as-expected\u002F\" rel=\"nofollow ugc\"> – More about logging geolocation requests >>\u003C\u002Fa>\u003Cbr \u002F>\n……………………………………………………………\u003C\u002Fp>\n\u003Ch3>Use cases and examples\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Display the user’s country flag\u003C\u002Fli>\n\u003Cli>Highlight different products in specific locations\u003C\u002Fli>\n\u003Cli>Show reviews in the visitor’s language\u003C\u002Fli>\n\u003Cli>Display the time of an event in the user’s time zone (auto-local time display)\u003C\u002Fli>\n\u003Cli>Set up a conditional redirect\u003C\u002Fli>\n\u003Cli>Redirect all .com pages to corresponding pages on the local version of the site\u003C\u002Fli>\n\u003Cli>Allow users to manually set their location (location override)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fdynamic-content\u002Fexamples\u002F?category_filter%5B%5D=%7B%22cat%22%3A564%2C%22subcat%22%3A565%7D&category_filter%5B%5D=%7B%22cat%22%3A517%2C%22subcat%22%3A518%7D&apply_filter=\" rel=\"nofollow ugc\">More usage examples >>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>……………………………………………………………\u003C\u002Fp>\n\u003Ch3>Built-in stats\u003C\u002Fh3>\n\u003Cp>Get clear insights into your content performance! See real-time results with a built-in analytics system, like how many times each version was displayed and how it affected the conversion rate.\u003C\u002Fp>\n\u003Cp>……………………………………………………………\u003C\u002Fp>\n\u003Ch3>DYNAMIC KEYWORD INSERTION (DKI)\u003C\u002Fh3>\n\u003Cp>The Dynamic Keyword Insertion (DKI) option allows you to display values using shortcodes:\u003Cbr \u002F>\nDisplaying the user’s country:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Insert the user’s country:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='geo' show='country' fallback='' ajax='yes']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Insert the user’s state:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='geo' show='state' fallback='' ajax='yes']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Insert the user’s city:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='geo' show='city' fallback='' ajax='yes']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Insert the user’s continent:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='geo' show='continent' fallback='' ajax='yes']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Insert the user’s time zone:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='geo' show='timezone' fallback='' ajax='yes']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Insert the user’s country flag (image):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI ajax='yes' type='geo' show='flag' width='50px']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Insert the user’s country flag (emoji):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='geo' show='emoji-flag']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fgeolocation-dki\u002F?utm_source=WordPressGeo&utm_medium=Readme&utm_campaign=v2&utm_term=geo-dki\" rel=\"nofollow ugc\">More Geolocation DKI shortcode options >>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The Auto-Local Time Display shortcode\u003C\u002Fstrong>\u003Cbr \u002F>\nDisplay the event time auto-adjusted to the user’s time zone.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[ifsoDKI type='time' show='user-geo-timezone-sensitive' time='04\u002F25\u002F2024 08:00' format='n\u002Fj\u002Fo, G:i']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.if-so.com\u002Fauto-local-time-display\u002F?utm_source=WordPressGeo&utm_medium=Readme&utm_campaign=v2&utm_term=local-time-display-dki\" rel=\"nofollow ugc\">More about the Auto-Local Time Display Shortcode >>\u003C\u002Fa>\u003C\u002Fp>\n","All-in-one geolocation. Personalized content, geolocation Dynamic Keyword Insertion shortcodes, Rediects, and more. No coding required!",1000,20240,4,"2025-12-11T21:50:00.000Z","4.0.1",[22,23,113,114,115],"geolocation-redirect","geotargeting","location-based-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fif-so-geolocation.1.5.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":107,"downloaded":125,"rating":13,"num_ratings":126,"last_updated":127,"tested_up_to":16,"requires_at_least":128,"requires_php":18,"tags":129,"homepage":133,"download_link":134,"security_score":13,"vuln_count":14,"unpatched_count":11,"last_vuln_date":135,"fetched_at":28},"map-location-picker-at-checkout-for-woocommerce","Kikote – Location Picker at Checkout & Google Address AutoFill Plugin for WooCommerce","1.10.10","Uriahs Victor","https:\u002F\u002Fprofiles.wordpress.org\u002Furiahs-victor\u002F","\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FvDlIxPeBs1M?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>Do you run a WooCommerce store where you need more detailed location information from a customer? If so, then why not let them choose their exact location on Google Maps?\u003C\u002Fp>\n\u003Cp>Kikote (pronounced Key-Ko-tay) is a Location Picker At Checkout plugin for WooCommerce which allows store owners to add more flexibility to their WooCommerce store by letting their customers choose exactly where they’d like their product(s) delivered.\u003C\u002Fp>\n\u003Cp>This plugin is excellent for stores with delivery personnel that ship products to customers within a moderate geographical area. It can also work for websites which offer Pickup services such as Private Taxi websites.\u003C\u002Fp>\n\u003Cp>Kikote – Location Picker At Checkout for WooCommerce enables store owners to get more precise location details without having to contact customers via other means for location information or directions. With this plugin, lots of time can be saved by allowing customers to select their exact location on Google Maps at checkout with WooCommerce.\u003C\u002Fp>\n\u003Ch3>NOTE 🛑\u003C\u002Fh3>\n\u003Cp>The plugin does not currently support the WooCommerce Blocks checkout. To use this plugin you need to have a normal checkout page that has the \u003Ccode>[woocommerce_checkout]\u003C\u002Fcode> shortcode. If you’re setting up a brand new website with a fresh version of WooCommerce installed on it, then by default, WooCommerce will create your checkout page as a Blocks checkout page.\u003C\u002Fp>\n\u003Cp>For this plugin to work, you need to \u003Cstrong>delete all contents of that blocks page\u003C\u002Fstrong> and add the shortcode: \u003Ccode>[woocommerce_checkout]\u003C\u002Fcode> inside it. You can see this link for reverting to classic checkout \u003Ca href=\"https:\u002F\u002Fwoo.com\u002Fdocument\u002Fcart-checkout-blocks-status\u002F#section-6\" rel=\"nofollow ugc\">WooCommerce doc\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Once thats done you’ll have the normal WooCommerce checkout page and the plugin options will show. Still need help? Submit a support request \u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fcontact\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Works Great with Delivery & Scheduling WooCommerce Plugin!\u003C\u002Fp>\n\u003Cp>The plugin works great with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdelivery-and-pickup-scheduling-for-woocommerce\u002F\" rel=\"ugc\">Delivery & Pickup Scheduling for WooCommerce\u003C\u002Fa>. Feel free to try them both out!\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>How Can Location Picker At Checkout for WooCommerce Help Me?\u003C\u002Fh3>\n\u003Cp>Kikote is a Checkout Location Picker plugin for WooCommerce that is suitable for any website that offers Delivery or Pickups for their customers. A Delivery website example would be an online restaurant, a Pickup website example would be a private taxi website. The plugin adds a Google map on the WooCommerce checkout page that customers can use to select their desired location. Alternatively, the plugin can be set up to also allow it to automatically detect the customer’s location on checkout page load and allow them to make any corrections\u003C\u002Fp>\n\u003Cp>Kikote – Location Picker at Checkout makes use of the Google Maps API to carry out it’s functions; it can work as any of the following:\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Checkout Map Plugin\u003C\u002Fh3>\n\u003Cp>This plugin adds a Google Map to the checkout page of WooCommerce which customers can use to select their location whether for deliveries or pickups.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Billing & Shipping Address AutoFill Plugin\u003C\u002Fh3>\n\u003Cp>Kikote can work as a checkout address autofill for WooCommerce making it a full-featured autocomplete address and location picker for WooCommerce plugin. It can automatically fill in the WooCommerce checkout fields with the information pulled from the Google map or from the Google Places API. Save users some typing while pulling accurate address information.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Shipping Zones (Regions) by Drawing Plugin\u003C\u002Fh3>\n\u003Cp>Kikote comes with a PREMIUM Shipping Zones by Drawing feature for WooCommerce which lets store owners draw custom shipping regions. Drawn shipping regions can have a name, price and background color. It’s also possible to display the shipping regions on the checkout page’s google map so customers can see the cost for shipping to different regions.\u003C\u002Fp>\n\u003Cp>During checkout, if a customer location falls within a shipping region, the cost set for that shipping region will automatically be set as the shipping fee for the customer.\u003C\u002Fp>\n\u003Cp>Create as many shipping zones and draw as many shipping regions as you like. Kikote will automatically set the cost of the shipping method once a customer falls within those drawn regions.\u003C\u002Fp>\n\u003Cp>Optionally, set Kikote to only allow customers to place an order if their geolocation falls within shipping zones\u002Fregions that you draw.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Shipping Cost by Distance Plugin\u003C\u002Fh3>\n\u003Cp>Kikote is a robust WooCommerce checkout location picker plugin that also allows you to calculate the shipping cost for a customer’s order based on how far away that customer is from your location. Simply set the cost per Kilometer or Mile and let Kikote do the rest.\u003C\u002Fp>\n\u003Cp>Optionally, set Kikote to only allow customers to place an order if their geolocation falls within a maximum distance that you have set for shipping.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Shipping Cost by Store Plugin\u003C\u002Fh3>\n\u003Cp>Does your store have multiple locations(branches, pickup spots) ? Great! Set the cost for each of your store locations and let customers select which one they’d like their order to originate from. The shipping price will update based on the store location selected.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Restaurant & Food Delivery Plugin\u003C\u002Fh3>\n\u003Cp>Kikote is excellent for online restaurants or food delivery websites that deliver customer orders after they have been placed. You can also create mulitple store locations that customers can select from at checkout if you business has multiple branches!\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Works Great with Printus – Cloud Printing Plugin for WooCommerce!\u003C\u002Fp>\n\u003Cp>The plugin works great with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fprintus-cloud-printing-for-woocommerce\u002F\" rel=\"ugc\">Printus – Cloud Printing Plugin for WooCommerce\u003C\u002Fa>. A remote cloud printing plugin that allows you to print receipts, invoices and package labels for WooCommerce. Feel free to try them both out!\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>✅ WooCommerce Pickup Plugin\u003C\u002Fh3>\n\u003Cp>If you ran a website where customers select their location for pickup then Location Picker at Checkout for WooCommerce(Kikote) would be a suitable plugin for your website.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Autocomplete\u002FAutofill Checkout Address Plugin\u003C\u002Fh3>\n\u003Cp>Though the primary focus of the plugin is to allow customers to select accurate locations by using a map. Location Picker at Checkout for WooCommerce also allows store owners to enable the Places autocomplete feature on their checkout address fields. This feature shows customers address predictions as they type in their address. When a customer clicks the desired address from the dropdown, it can also automatically fill in the rest of the checkout fields. This feature is also known as Google Address Autofill.\u003C\u002Fp>\n\u003Ch3>✅ Saved Addresses for WooCommerce Plugin\u003C\u002Fh3>\n\u003Cp>Allow customers to save multiple different addresses to their account that they can select from when placing an order. This feature is useful for customers who might be placing orders on your store from multiple locations.\u003C\u002Fp>\n\u003Cp>A customer placing an order might not always be at the previously used address, with this feature they can select any previously saved address such as “Work”, “Home”, “Grandma’s” etc. Think of it as an address book for WooCommerce.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Custom Shipping Zones Plugin\u003C\u002Fh3>\n\u003Cp>The PRO version of Kikote allows you to create custom shipping zones by drawing them on a Google Map. These Zones can each have their own shipping cost and you can additionally prevent customers from checking out if they do not fall in any of the custom shipping zones.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Delivery Area Plugin\u003C\u002Fh3>\n\u003Cp>Kikote comes with multiple features to fine tune where you deliver to and how much you wish to charge. These include features such as “Cost by Distance”, “Cost by Distance Range”, “Cost by Region”, “Cost by Store Distance”, Maximum shipping distance, as well as Cost by Store.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Map Plugin\u003C\u002Fh3>\n\u003Cp>The plugin comes with a Map Builder feature that allows store owners to create custom Google Maps with their store locations and shipping regions and add those maps anywhere on their website using a shortcode.\u003C\u002Fp>\n\u003Ch3>✅ WooCommerce Multistore Shipping Plugin\u003C\u002Fh3>\n\u003Cp>In the PRO version of Kikote, you can attach shipping methods to the store locations you’ve created. Then you can attach Shipping Workflows to those shipping methods.\u003Cbr \u002F>\nThis allows you to create powerful shipping options for the customer by charging Cost by Region for a certain origin store (location) and Cost by Distance for a different origin store (location).\u003Cbr \u002F>\nCustomers will only be able to select the shipping method that is available for a particular origin store (location). In this context “origin” and “store” means where the order will be getting shipped from or taking place.\u003C\u002Fp>\n\u003Ch3>Below are a few types of stores that would benefit tremendously from this plugin:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Online food delivery websites\u003C\u002Fli>\n\u003Cli>Online supermarkets\u003C\u002Fli>\n\u003Cli>Online furniture websites\u003C\u002Fli>\n\u003Cli>Restaurants offering delivery via their website\u003C\u002Fli>\n\u003Cli>Hardware Rental & Delivery websites\u003C\u002Fli>\n\u003Cli>Car Rental websites\u003C\u002Fli>\n\u003Cli>Pickup service websites\u003C\u002Fli>\n\u003Cli>Taxi and pickup scheduling websites\u003C\u002Fli>\n\u003Cli>And more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Free Features ⭐\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Detect current location of customer at checkout (Automatically or on click of a button)\u003C\u002Fli>\n\u003Cli>Allow customers to pick their exact location using Google Maps\u003C\u002Fli>\n\u003Cli>Autofill checkout fields with information pulled from Google Maps\u003C\u002Fli>\n\u003Cli>Open directions to customers in Google Maps or Waze\u003C\u002Fli>\n\u003Cli>Store Location Selector – Create multiple store locations and allow customers to choose the one they’d like to order from.\u003C\u002Fli>\n\u003Cli>Show\u002FHide Map based on Shipping Method\u003C\u002Fli>\n\u003Cli>Show\u002FHide Map based on Shipping Class\u003C\u002Fli>\n\u003Cli>Show Map based on Coupon Code\u003C\u002Fli>\n\u003Cli>Hide Map for Guest Checkout\u003C\u002Fli>\n\u003Cli>Include a QR Code, Static Map or Button link to the customer’s selected location in the WooCommerce order emails.\u003C\u002Fli>\n\u003Cli>“View on map” button to allow admin to view exact location for delivery of any order.\u003C\u002Fli>\n\u003Cli>Customers can see the delivery location they selected on past orders.\u003C\u002Fli>\n\u003Cli>Option to turn on Places Autocomplete(Google Autofill) feature. \u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fdocs\u002Fplaces-autocomplete-feature\u002F\" rel=\"nofollow ugc\">Learn More\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Customizable Map container\u003C\u002Fli>\n\u003Cli>Automatically translated map buttons based on the website’s language (set in WordPress’ general settings) or using a filter.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Premium Features 🌟\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Custom Google Maps designs\u003C\u002Fli>\n\u003Cli>Custom Marker Icons\u003C\u002Fli>\n\u003Cli>Export Order Locations\u003C\u002Fli>\n\u003Cli>Plot Orders on a map – See where your orders are coming from and determine your most popular order locations\u003C\u002Fli>\n\u003Cli>Multiple Customer Saved Addresses\u003C\u002Fli>\n\u003Cli>Shipping Cost by Region\u003C\u002Fli>\n\u003Cli>Shipping Cost by Distance\u003C\u002Fli>\n\u003Cli>Shipping Cost by Distance Range\u003C\u002Fli>\n\u003Cli>Shipping Cost by Store Distance\u003C\u002Fli>\n\u003Cli>Shipping Cost by Store Location\u003C\u002Fli>\n\u003Cli>Multi-store distance pricing – Set the cost by distanced based on the origin store the customer selected.\u003C\u002Fli>\n\u003Cli>Show\u002FHide Map based on Shipping Zone\u003C\u002Fli>\n\u003Cli>Hide Map until a minimum cart total is reached\u003C\u002Fli>\n\u003Cli>Hide Map when a maximum cart total is reached\u003C\u002Fli>\n\u003Cli>More Map Visibility Rules\u003C\u002Fli>\n\u003Cli>Restrict Places Autocomplete feature to selected countries\u003C\u002Fli>\n\u003Cli>Map Builder – Create custom WooCommerce Google Maps with your store locations and shipping regions and add them to anywhere on your website using a shortcode.\u003C\u002Fli>\n\u003Cli>Attach shipping methods to store locations. Allow customers to only select a particular shipping method for a certain store. Attach different Shipping workflows to speficific shipping methods to create powerful and accurate shipping costs.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fpricing\" rel=\"nofollow ugc\">And More\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>🌟 \u003Ca href=\"https:\u002F\u002Fapp.instawp.io\u002Flaunch?t=lpac\" rel=\"nofollow ugc\">Checkout the PRO Demo\u003C\u002Fa> 🌟\u003C\u002Fp>\n\u003Ch3>Feature Requests\u003C\u002Fh3>\n\u003Cp>Have a feature in mind? Feel free to \u003Ca href=\"https:\u002F\u002Fplugins.soaringleads.com\u002F\" rel=\"nofollow ugc\">submit it here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Kikote has support for the following custom checkout page plugins:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Funnel Builder for WordPress by FunnelKit\u003C\u002Fli>\n\u003Cli>FunnelKit (AeroCheckout)\u003C\u002Fli>\n\u003Cli>Fluid Checkout for WooCommerce\u003C\u002Fli>\n\u003Cli>Online Ordering System For Restaurants & Local Retail by Orderable\u003C\u002Fli>\n\u003Cli>CheckoutWC custom checkout plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>\u003Cem>Kikote – Location Picker at Checkout is the last WooCommerce checkout map plugin you’ll need.\u003C\u002Fem>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>Configuring Plugin:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>The plugin settings are located in \u003Cstrong>WordPress Admin Dashboard->SoaringLeads->Kikote – Location Picker At Checkout\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Plugin Documentation\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>You can find the plugin documentation \u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>[kikote_store_selector]\u003C\u002Fcode> – Adds a store selector dropdown that lets user’s choose their preferred store to order from.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[kikote_map id='x']\u003C\u002Fcode> – Adds a custom Google Map that you’ve created using the Map Builder anywhere on your website. The ID for the map can be retrieved from within the Map Builder screen.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Translating\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Translators are welcome! Please consider translating to your language \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fmap-location-picker-at-checkout-for-woocommerce\u002F\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Misc\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Learn more about Location Picker at Checkout for WooCommerce or Purchase the PRO version \u003Ca href=\"https:\u002F\u002Flpacwp.com\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Meet E-commerce store owners like yourself to discuss on ways to help grow your E-commerce store \u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fe-commerce-support-community\u002F\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Checkout our Blog: \u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fblog?utm_source=wp.org&utm_medium=readme&utm_campaign=blog-promo\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Take a look at our other plugin to help further manage your store by adding a checkout calendar so customers can select the order Date and Time during checkout: Delivery & Pickup Scheduling for WooCommerce \u003Ca href=\"https:\u002F\u002Fchwazidatetime.com\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Checkout \u003Ca href=\"https:\u002F\u002Fprintus.cloud\" rel=\"nofollow ugc\">Printus\u003C\u002Fa>, a remote cloud printing plugin for WooCommerce that automatically prints your orders as soon as they come in \u003Ca href=\"https:\u002F\u002Fprintus.cloud\" rel=\"nofollow ugc\">Here >>>\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Assets \u003Ca href=\"https:\u002F\u002Flpacwp.com\u002Fattribution\u002F\" rel=\"nofollow ugc\">Attribution\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is free software, and the most important features have been kept free and open to use so that all can benefit. If you like the plugin and believe that it’s helped grow your business, then please consider \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmap-location-picker-at-checkout-for-woocommerce\u002Freviews\u002F#new-post\" rel=\"ugc\">leaving a review\u003C\u002Fa>.\u003C\u002Fp>\n","Allow customers to select delivery\u002Fpickup spots on Google Maps at Checkout. Create shipping workflows for smooth order handling and better pricing.",77750,65,"2026-02-26T16:36:00.000Z","5.7",[130,23,131,132,24],"checkout-map","google-map","location-picker","https:\u002F\u002Flpacwp.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmap-location-picker-at-checkout-for-woocommerce.1.10.10.zip","2024-01-31 00:00:00",{"attackSurface":137,"codeSignals":363,"taintFlows":388,"riskAssessment":524,"analyzedAt":530},{"hooks":138,"ajaxHandlers":342,"restRoutes":343,"shortcodes":344,"cronEvents":361,"entryPointCount":362,"unprotectedCount":11},[139,145,150,154,158,162,166,169,172,177,181,186,190,194,199,203,207,211,215,219,223,228,232,236,239,241,245,248,251,254,257,261,263,266,269,272,274,277,280,284,287,290,292,294,295,296,297,298,299,300,301,302,304,305,306,307,309,310,311,312,313,314,315,316,318,320,321,322,324,325,326,327,328,329,330,331,332,333,334,336,337,339,340,341],{"type":140,"name":141,"callback":142,"file":143,"line":144},"action","admin_notices","composer_missing_notice","geoip-switcher.php",55,{"type":140,"name":146,"callback":147,"priority":148,"file":143,"line":149},"plugins_loaded","init_plugin",5,80,{"type":140,"name":151,"callback":152,"priority":14,"file":143,"line":153},"init","register_shortcodes",81,{"type":140,"name":155,"callback":156,"file":143,"line":157},"admin_menu","add_admin_menu",82,{"type":140,"name":159,"callback":160,"file":143,"line":161},"admin_enqueue_scripts","enqueue_admin_assets",83,{"type":140,"name":163,"callback":164,"file":143,"line":165},"before_woocommerce_init","declare_hpos_compatibility",84,{"type":140,"name":151,"callback":167,"priority":14,"file":143,"line":168},"add_cors_headers",85,{"type":140,"name":170,"callback":167,"priority":14,"file":143,"line":171},"rest_api_init",86,{"type":173,"name":174,"callback":175,"priority":11,"file":143,"line":176},"filter","rest_pre_serve_request","add_cors_to_rest",87,{"type":140,"name":151,"callback":178,"priority":14,"file":179,"line":180},"set_cache_headers","includes\\cache-handler.php",13,{"type":173,"name":182,"callback":183,"priority":184,"file":179,"line":185},"rocket_cache_reject_uri","wp_rocket_exclude_uris",10,14,{"type":173,"name":187,"callback":188,"priority":184,"file":179,"line":189},"litespeed_cache_get_vary","litespeed_vary_cookies",15,{"type":173,"name":191,"callback":192,"priority":184,"file":179,"line":193},"w3tc_pagecache_reject_request","w3tc_exclude_cache",16,{"type":173,"name":195,"callback":196,"priority":184,"file":197,"line":198},"woocommerce_available_payment_gateways","filter_payment_gateways","includes\\content-switcher.php",23,{"type":173,"name":200,"callback":201,"priority":184,"file":197,"line":202},"woocommerce_package_rates","filter_shipping_methods",24,{"type":140,"name":204,"callback":205,"priority":184,"file":197,"line":206},"pre_get_posts","filter_products",25,{"type":140,"name":208,"callback":209,"priority":184,"file":197,"line":210},"template_redirect","block_direct_access",26,{"type":173,"name":212,"callback":213,"priority":184,"file":197,"line":214},"woocommerce_shortcode_products_query","filter_shortcode_products",27,{"type":173,"name":216,"callback":217,"priority":184,"file":197,"line":218},"woocommerce_products_widget_query_args","filter_widget_products",28,{"type":140,"name":220,"callback":221,"priority":14,"file":197,"line":222},"wp_head","add_custom_header",31,{"type":140,"name":224,"callback":225,"priority":226,"file":197,"line":227},"wp_footer","add_custom_footer",999,32,{"type":140,"name":204,"callback":229,"priority":14,"file":230,"line":231},"switch_homepage","includes\\homepage-switcher.php",19,{"type":140,"name":233,"callback":234,"file":235,"line":180},"add_meta_boxes","add_product_meta_box","includes\\product-meta.php",{"type":140,"name":237,"callback":238,"priority":184,"file":235,"line":185},"save_post_product","save_product_meta",{"type":140,"name":159,"callback":240,"file":235,"line":189},"enqueue_admin_scripts",{"type":173,"name":242,"callback":243,"priority":184,"file":244,"line":180},"wc_session_cookie_params","set_wc_session_cookie_domain","includes\\session-handler.php",{"type":173,"name":246,"callback":247,"priority":184,"file":244,"line":185},"woocommerce_cookie_domain","set_woocommerce_cookie_domain",{"type":140,"name":249,"callback":250,"priority":184,"file":244,"line":189},"woocommerce_set_cart_cookies","sync_woocommerce_cookies",{"type":140,"name":252,"callback":253,"priority":184,"file":244,"line":193},"wp_login","sync_login_cookies",{"type":140,"name":151,"callback":255,"priority":14,"file":244,"line":256},"set_country_cookie",17,{"type":140,"name":258,"callback":259,"priority":184,"file":244,"line":260},"woocommerce_add_to_cart","ensure_cart_cookies",18,{"type":140,"name":262,"callback":259,"priority":184,"file":244,"line":231},"woocommerce_cart_loaded_from_session",{"type":140,"name":264,"callback":259,"priority":184,"file":244,"line":265},"woocommerce_after_cart_item_quantity_update",20,{"type":140,"name":267,"callback":259,"priority":184,"file":244,"line":268},"woocommerce_cart_item_removed",21,{"type":140,"name":270,"callback":259,"priority":184,"file":244,"line":271},"woocommerce_cart_item_restored",22,{"type":140,"name":273,"callback":259,"priority":184,"file":244,"line":198},"woocommerce_after_cart",{"type":140,"name":208,"callback":275,"priority":14,"file":276,"line":260},"redirect_to_country_subdomain","includes\\subdomain-redirect.php",{"type":173,"name":278,"callback":279,"file":276,"line":231},"allowed_redirect_hosts","allow_subdomain_redirects",{"type":173,"name":281,"callback":282,"priority":184,"file":283,"line":214},"woodmart_header_id","switch_header","includes\\woodmart-layout-manager.php",{"type":173,"name":285,"callback":286,"priority":184,"file":283,"line":218},"woodmart_get_opt","switch_footer",{"type":173,"name":288,"callback":229,"priority":184,"file":283,"line":289},"pre_option_page_on_front",29,{"type":140,"name":204,"callback":291,"priority":14,"file":283,"line":32},"switch_homepage_query",{"type":140,"name":141,"callback":142,"file":293,"line":144},"trunk\\geoip-switcher.php",{"type":140,"name":146,"callback":147,"priority":148,"file":293,"line":149},{"type":140,"name":151,"callback":152,"priority":14,"file":293,"line":153},{"type":140,"name":155,"callback":156,"file":293,"line":157},{"type":140,"name":159,"callback":160,"file":293,"line":161},{"type":140,"name":163,"callback":164,"file":293,"line":165},{"type":140,"name":151,"callback":167,"priority":14,"file":293,"line":168},{"type":140,"name":170,"callback":167,"priority":14,"file":293,"line":171},{"type":173,"name":174,"callback":175,"priority":11,"file":293,"line":176},{"type":140,"name":151,"callback":178,"priority":14,"file":303,"line":180},"trunk\\includes\\cache-handler.php",{"type":173,"name":182,"callback":183,"priority":184,"file":303,"line":185},{"type":173,"name":187,"callback":188,"priority":184,"file":303,"line":189},{"type":173,"name":191,"callback":192,"priority":184,"file":303,"line":193},{"type":173,"name":195,"callback":196,"priority":184,"file":308,"line":198},"trunk\\includes\\content-switcher.php",{"type":173,"name":200,"callback":201,"priority":184,"file":308,"line":202},{"type":140,"name":204,"callback":205,"priority":184,"file":308,"line":206},{"type":140,"name":208,"callback":209,"priority":184,"file":308,"line":210},{"type":173,"name":212,"callback":213,"priority":184,"file":308,"line":214},{"type":173,"name":216,"callback":217,"priority":184,"file":308,"line":218},{"type":140,"name":220,"callback":221,"priority":14,"file":308,"line":222},{"type":140,"name":224,"callback":225,"priority":226,"file":308,"line":227},{"type":140,"name":204,"callback":229,"priority":14,"file":317,"line":231},"trunk\\includes\\homepage-switcher.php",{"type":140,"name":233,"callback":234,"file":319,"line":180},"trunk\\includes\\product-meta.php",{"type":140,"name":237,"callback":238,"priority":184,"file":319,"line":185},{"type":140,"name":159,"callback":240,"file":319,"line":189},{"type":173,"name":242,"callback":243,"priority":184,"file":323,"line":180},"trunk\\includes\\session-handler.php",{"type":173,"name":246,"callback":247,"priority":184,"file":323,"line":185},{"type":140,"name":249,"callback":250,"priority":184,"file":323,"line":189},{"type":140,"name":252,"callback":253,"priority":184,"file":323,"line":193},{"type":140,"name":151,"callback":255,"priority":14,"file":323,"line":256},{"type":140,"name":258,"callback":259,"priority":184,"file":323,"line":260},{"type":140,"name":262,"callback":259,"priority":184,"file":323,"line":231},{"type":140,"name":264,"callback":259,"priority":184,"file":323,"line":265},{"type":140,"name":267,"callback":259,"priority":184,"file":323,"line":268},{"type":140,"name":270,"callback":259,"priority":184,"file":323,"line":271},{"type":140,"name":273,"callback":259,"priority":184,"file":323,"line":198},{"type":140,"name":208,"callback":275,"priority":14,"file":335,"line":260},"trunk\\includes\\subdomain-redirect.php",{"type":173,"name":278,"callback":279,"file":335,"line":231},{"type":173,"name":281,"callback":282,"priority":184,"file":338,"line":214},"trunk\\includes\\woodmart-layout-manager.php",{"type":173,"name":285,"callback":286,"priority":184,"file":338,"line":218},{"type":173,"name":288,"callback":229,"priority":184,"file":338,"line":289},{"type":140,"name":204,"callback":291,"priority":14,"file":338,"line":32},[],[],[345,349,353,355,357,358,359,360],{"tag":346,"callback":347,"file":143,"line":348},"geoip_country","geoip_country_shortcode_handler",174,{"tag":350,"callback":351,"file":143,"line":352},"geoip_ip","geoip_ip_shortcode_handler",178,{"tag":346,"callback":354,"file":197,"line":231},"geoip_country_shortcode",{"tag":350,"callback":356,"file":197,"line":265},"geoip_ip_shortcode",{"tag":346,"callback":347,"file":293,"line":348},{"tag":350,"callback":351,"file":293,"line":352},{"tag":346,"callback":354,"file":308,"line":231},{"tag":350,"callback":356,"file":308,"line":265},[],8,{"dangerousFunctions":364,"sqlUsage":365,"outputEscaping":367,"fileOperations":11,"externalRequests":11,"nonceChecks":109,"capabilityChecks":109,"bundledLibraries":387},[],{"prepared":11,"raw":11,"locations":366},[],{"escaped":368,"rawEcho":184,"locations":369},348,[370,373,375,377,379,381,383,384,385,386],{"file":371,"line":189,"context":372},"includes\\admin-settings.php","raw output",{"file":371,"line":374,"context":372},198,{"file":371,"line":376,"context":372},282,{"file":197,"line":378,"context":372},166,{"file":197,"line":380,"context":372},182,{"file":382,"line":189,"context":372},"trunk\\includes\\admin-settings.php",{"file":382,"line":374,"context":372},{"file":382,"line":376,"context":372},{"file":308,"line":378,"context":372},{"file":308,"line":380,"context":372},[],[389,408,418,428,437,445,453,461,469,477,485,499,508,516],{"entryPoint":390,"graph":391,"unsanitizedCount":14,"severity":407},"add_cors_to_rest (geoip-switcher.php:90)",{"nodes":392,"edges":404},[393,398],{"id":394,"type":395,"label":396,"file":143,"line":397},"n0","source","$_SERVER",91,{"id":399,"type":400,"label":401,"file":143,"line":402,"wp_function":403},"n1","sink","header() [Header Injection]",103,"header",[405],{"from":394,"to":399,"sanitized":406},false,"medium",{"entryPoint":409,"graph":410,"unsanitizedCount":14,"severity":407},"add_cors_headers (geoip-switcher.php:113)",{"nodes":411,"edges":416},[412,414],{"id":394,"type":395,"label":396,"file":143,"line":413},119,{"id":399,"type":400,"label":401,"file":143,"line":415,"wp_function":403},137,[417],{"from":394,"to":399,"sanitized":406},{"entryPoint":419,"graph":420,"unsanitizedCount":427,"severity":407},"\u003Cgeoip-switcher> (geoip-switcher.php:0)",{"nodes":421,"edges":425},[422,424],{"id":394,"type":395,"label":423,"file":143,"line":397},"$_SERVER (x2)",{"id":399,"type":400,"label":401,"file":143,"line":402,"wp_function":403},[426],{"from":394,"to":399,"sanitized":406},2,{"entryPoint":429,"graph":430,"unsanitizedCount":14,"severity":407},"set_cache_headers (includes\\cache-handler.php:19)",{"nodes":431,"edges":435},[432,434],{"id":394,"type":395,"label":433,"file":179,"line":210},"$_COOKIE['geo_country']",{"id":399,"type":400,"label":401,"file":179,"line":210,"wp_function":403},[436],{"from":394,"to":399,"sanitized":406},{"entryPoint":438,"graph":439,"unsanitizedCount":14,"severity":407},"\u003Ccache-handler> (includes\\cache-handler.php:0)",{"nodes":440,"edges":443},[441,442],{"id":394,"type":395,"label":433,"file":179,"line":210},{"id":399,"type":400,"label":401,"file":179,"line":210,"wp_function":403},[444],{"from":394,"to":399,"sanitized":406},{"entryPoint":446,"graph":447,"unsanitizedCount":14,"severity":407},"add_cors_to_rest (trunk\\geoip-switcher.php:90)",{"nodes":448,"edges":451},[449,450],{"id":394,"type":395,"label":396,"file":293,"line":397},{"id":399,"type":400,"label":401,"file":293,"line":402,"wp_function":403},[452],{"from":394,"to":399,"sanitized":406},{"entryPoint":454,"graph":455,"unsanitizedCount":14,"severity":407},"add_cors_headers (trunk\\geoip-switcher.php:113)",{"nodes":456,"edges":459},[457,458],{"id":394,"type":395,"label":396,"file":293,"line":413},{"id":399,"type":400,"label":401,"file":293,"line":415,"wp_function":403},[460],{"from":394,"to":399,"sanitized":406},{"entryPoint":462,"graph":463,"unsanitizedCount":427,"severity":407},"\u003Cgeoip-switcher> (trunk\\geoip-switcher.php:0)",{"nodes":464,"edges":467},[465,466],{"id":394,"type":395,"label":423,"file":293,"line":397},{"id":399,"type":400,"label":401,"file":293,"line":402,"wp_function":403},[468],{"from":394,"to":399,"sanitized":406},{"entryPoint":470,"graph":471,"unsanitizedCount":14,"severity":407},"set_cache_headers (trunk\\includes\\cache-handler.php:19)",{"nodes":472,"edges":475},[473,474],{"id":394,"type":395,"label":433,"file":303,"line":210},{"id":399,"type":400,"label":401,"file":303,"line":210,"wp_function":403},[476],{"from":394,"to":399,"sanitized":406},{"entryPoint":478,"graph":479,"unsanitizedCount":14,"severity":407},"\u003Ccache-handler> (trunk\\includes\\cache-handler.php:0)",{"nodes":480,"edges":483},[481,482],{"id":394,"type":395,"label":433,"file":303,"line":210},{"id":399,"type":400,"label":401,"file":303,"line":210,"wp_function":403},[484],{"from":394,"to":399,"sanitized":406},{"entryPoint":486,"graph":487,"unsanitizedCount":14,"severity":498},"save_settings (includes\\admin-settings.php:705)",{"nodes":488,"edges":496},[489,492],{"id":394,"type":395,"label":490,"file":371,"line":491},"$_POST",728,{"id":399,"type":400,"label":493,"file":371,"line":494,"wp_function":495},"update_option() [Settings Manipulation]",745,"update_option",[497],{"from":394,"to":399,"sanitized":406},"low",{"entryPoint":500,"graph":501,"unsanitizedCount":11,"severity":498},"\u003Cadmin-settings> (includes\\admin-settings.php:0)",{"nodes":502,"edges":505},[503,504],{"id":394,"type":395,"label":490,"file":371,"line":491},{"id":399,"type":400,"label":493,"file":371,"line":494,"wp_function":495},[506],{"from":394,"to":399,"sanitized":507},true,{"entryPoint":509,"graph":510,"unsanitizedCount":14,"severity":498},"save_settings (trunk\\includes\\admin-settings.php:705)",{"nodes":511,"edges":514},[512,513],{"id":394,"type":395,"label":490,"file":382,"line":491},{"id":399,"type":400,"label":493,"file":382,"line":494,"wp_function":495},[515],{"from":394,"to":399,"sanitized":406},{"entryPoint":517,"graph":518,"unsanitizedCount":11,"severity":498},"\u003Cadmin-settings> (trunk\\includes\\admin-settings.php:0)",{"nodes":519,"edges":522},[520,521],{"id":394,"type":395,"label":490,"file":382,"line":491},{"id":399,"type":400,"label":493,"file":382,"line":494,"wp_function":495},[523],{"from":394,"to":399,"sanitized":507},{"summary":525,"deductions":526},"The 'geoip-content-switcher' plugin version 1.0.5 exhibits a generally strong security posture based on the provided static analysis and vulnerability history.  The absence of known CVEs, dangerous functions, direct SQL queries, file operations, and external HTTP requests is highly positive. The plugin also demonstrates good practices with a significant percentage of properly escaped output and the presence of nonce and capability checks on its entry points.  The taint analysis, while showing a high number of flows with unsanitized paths, did not flag any critical or high-severity issues, suggesting that these paths may not lead to exploitable vulnerabilities in this specific version.  \n\nHowever, a notable concern is the presence of 12 flows with unsanitized paths in the taint analysis. While these did not result in critical or high severities, they represent potential weaknesses that could be exploited if a vulnerability is discovered in the future or if the plugin is updated in a way that alters how these paths are handled.  The attack surface, consisting of 8 shortcodes, is entirely unprotected by authentication checks, which is acceptable given that shortcodes are generally client-side invoked and not typically direct attack vectors requiring authentication.  Overall, the plugin appears to be built with security in mind, but the identified unsanitized paths warrant attention for future hardening.",[527],{"reason":528,"points":529},"Flows with unsanitized paths found",7,"2026-03-17T07:07:20.141Z",{"wat":532,"direct":541},{"assetPaths":533,"generatorPatterns":536,"scriptPaths":537,"versionParams":538},[534,535],"\u002Fwp-content\u002Fplugins\u002Fgeoip-content-switcher\u002Fassets\u002Fcss\u002Fadmin-style.css","\u002Fwp-content\u002Fplugins\u002Fgeoip-content-switcher\u002Fassets\u002Fjs\u002Fadmin-script.js",[],[535],[539,540],"geoip-content-switcher\u002Fassets\u002Fcss\u002Fadmin-style.css?ver=","geoip-content-switcher\u002Fassets\u002Fjs\u002Fadmin-script.js?ver=",{"cssClasses":542,"htmlComments":543,"htmlAttributes":544,"restEndpoints":545,"jsGlobals":546,"shortcodeOutput":547},[],[],[],[],[],[548,549],"[geoip_country]","[geoip_ip]"]