[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fuOCTDdp4AxQoH62Jy4VHl0Nsm48YUevd3OJX6r5R07I":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":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":39,"analysis":138,"fingerprints":324},"geotargeting","GeoTargeting Lite – WordPress Geolocation","1.3.6.1","Damian","https:\u002F\u002Fprofiles.wordpress.org\u002Ftimersys\u002F","\u003Cp>Based on \u003Ca href=\"http:\u002F\u002Fwww.maxmind.com\u002F?rId=timersys\" rel=\"nofollow ugc\">Maxmind GeoIP2\u003C\u002Fa> data Geo Targeting plugin for WordPress will let you create dynamic content based on your users country.\u003C\u002Fp>\n\u003Cp>With a simple shortcode you will be able to specify which countries are capable of seeing the content.\u003C\u002Fp>\n\u003Cp>Compatible with \u003Ca href=\"https:\u002F\u002Ftimersys.com\u002Fpopups\u002F?utm_source=geot-readme&utm_medium=link&utm_term=popus%20premium&utm_campaign=Popups%20premium\" rel=\"nofollow ugc\">WordPress Popups Plugin\u003C\u002Fa>. You can now geotarget your popups\u003C\u002Fp>\n\u003Cp>If you use popular firewall services such as Cloudflare, Reblaze, Sucuri, Ezoic, Akamai or Clouways the plugin will auto detect real IP from users.\u003C\u002Fp>\n\u003Cp>This plugin it’s a basic version with limited functionality. For a full geo plugin please refer to https:\u002F\u002Fgeotargetingwp.com\u003C\u002Fp>\n\u003Cp>Usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geot country=\"Argentina\"] Messi is the best! [\u002Fgeot]``\n[geot country=\"Portugal\"] Cristiano ronaldo is the best! [\u002Fgeot]``\n[geot exclude_country=\"Portugal\"] This text is seeing by everyone except Portuguese people [\u002Fgeot]``\nCurrent user is located in [geot_country_name]``\nCurrent user country code is [geot_country_code]``\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The plugin save into it’s own cache the country you are in. If you need to test for different countries you have two options:\u003C\u002Fp>\n\u003Cp>You can pass a country iso code in the url like this:\u003Cbr \u002F>\n    http:\u002F\u002Fdemo.com\u002Fsome-page\u002F?geot_debug=US“\u003C\u002Fp>\n\u003Cp>Or you can add in wp-config.php the following to use your own VPN\u003Cbr \u002F>\n    define(‘GEOT_DEBUG’,true);“\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Premium Version\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Check the \u003Cstrong>new premium version\u003C\u002Fstrong> available in (\u003Ca href=\"https:\u002F\u002Fgeotargetingwp.com\u002F?utm_source=geot-readme&utm_medium=link&utm_term=geot%20premium&utm_campaign=Geot%20premium\" rel=\"nofollow ugc\">https:\u002F\u002Fgeotargetingwp.com\u002F\u003C\u002Fa>) that comes with Premium database with much more accuracy.\u003Cbr \u002F>\n  * Geo Redirects\u003Cbr \u002F>\n  * GeoTarget countries, cities and states\u003Cbr \u002F>\n  * Cloudflare geolocation support\u003Cbr \u002F>\n  * Geotarget posts \u002F pages entirely\u003Cbr \u002F>\n  * Create multiple Redirects based on user countries states or cities\u003Cbr \u002F>\n  * Editor button to easily add shortcodes\u003Cbr \u002F>\n  * Create multiple regions (group of countries or cities) to use with shortcodes\u003Cbr \u002F>\n  * Exclude countries, cities and regions shortcode\u003Cbr \u002F>\n  * Dropdown Widget to let users change their country (with flags)\u003Cbr \u002F>\n  * Complete set of PHP functions\u003Cbr \u002F>\n  * Hide Woocommerce or Easy digital downloads products. Works with any plugin\u003Cbr \u002F>\n  * AJAX mode that make plugin compatible with Cache plugins\u003Cbr \u002F>\n  * Geotarget menu items, widgets, everything\u003Cbr \u002F>\n  * Upcoming integration with other populars plugins\u003Cbr \u002F>\n  * Premium support\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>WordPress Popups\u003C\u002Fh4>\n\u003Cp>Best popups plugin ever (\u003Ca href=\"https:\u002F\u002Fwppopups.com\u002F?utm_source=wsi-free-plugin&utm_medium=readme\" rel=\"nofollow ugc\">https:\u002F\u002Fwppopups.com\u002F\u003C\u002Fa>)\u003C\u002Fp>\n","GeoTargeting for WordPress will let you country-target your content based on users IP's and Geocountry Ip database",1000,66127,78,32,"2022-08-15T15:56:00.000Z","6.1.10","3.6","",[20,21,22,4,23],"cloudflare","geo-target","geolocation","wordpress-geotargeting","https:\u002F\u002Ftimersys.com\u002Fgeotargeting\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeotargeting.1.3.6.1.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"timersys",6,34410,79,181,64,"2026-04-04T19:05:19.663Z",[40,61,83,102,118],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":11,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":18,"tags":54,"homepage":18,"download_link":57,"security_score":58,"vuln_count":59,"unpatched_count":27,"last_vuln_date":60,"fetched_at":29},"belingogeo","belingoGeo","1.13.2","Belingo","https:\u002F\u002Fprofiles.wordpress.org\u002Fbelingo\u002F","\u003Cp>The plugin adds the ability to select cities, unique pages are created with a unique url for each city. This allows you to uniqueize content for search engines.\u003C\u002Fp>\n\u003Cp>If for some reason the video is unavailable, you can watch it on \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gTIPR8cmQmM\" rel=\"nofollow ugc\">Youtube\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fdzen.ru\u002Fvideo\u002Fwatch\u002F6759510b565b5409ab52b754?share_to=link\" rel=\"nofollow ugc\">Zen\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Frutube.ru\u002Fvideo\u002F0c08cc8493b2893a7c33b2ff5252a1db\u002F\" rel=\"nofollow ugc\">Rutube\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fvkvideo.ru\u002Fvideo-54775454_456239017\" rel=\"nofollow ugc\">VK Video\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Plugin capabilities:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Creating virtual URLs for all WordPress pages and posts\u003C\u002Fli>\n\u003Cli>Ability to combine cities into regions.\u003C\u002Fli>\n\u003Cli>Ability to exclude pages, posts or taxonomies for which there is no need to create a URL\u003C\u002Fli>\n\u003Cli>Pre-made pop-up windows for confirming the found city, as well as for selecting other cities.\u003C\u002Fli>\n\u003Cli>Defining those cities that are not added to the list\u003C\u002Fli>\n\u003Cli>Shortcodes for displaying cities in different cases\u003C\u002Fli>\n\u003Cli>Shortcodes with a phone number and address for each city\u003C\u002Fli>\n\u003Cli>Shortcodes that allow you to add any content, depending on the selected city\u003C\u002Fli>\n\u003Cli>Shortcodes for regions, allowing you to display different content for a group of cities.\u003C\u002Fli>\n\u003Cli>Creating virtual URLs for Woocommerce categories and products\u003C\u002Fli>\n\u003Cli>Support for Yoast.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fproducts\u002Fbelingogeo-pro\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">Extended version of the plugin\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Useful articles:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fustanovka-i-nastrojka-plagina-belingogeo\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">Installing and configuring the plugin\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fkak-sortirovat-goroda-v-plagine-belingogeo\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">How to sort cities in plugin\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fkak-sozdat-dopolnitelnoe-pole-dlya-goroda-v-plagine-belingogeo\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">How to create an additional field for the city in the plugin\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fopisanie-vsex-nastroek-plagina-belingogeo\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">Description of all settings of the BelingoGeo plugin\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fnastrojka-plagina-belingogeo-v-rezhime-poddomenov\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">Setting up the BelingoGeo plugin in the “city in a subdomain” mode\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fbelingo.ru\u002Fopisanie-shortkodov-plagina-belingogeo\u002F?utm_source=wordpress.org&utm_medium=description\" rel=\"nofollow ugc\">Description of shortcodes of the BelingoGeo plugin\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>We are on social networks:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ft.me\u002Fbelingollc\" rel=\"nofollow ugc\">Telegram channel\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fvk.com\u002Fitbelingo\" rel=\"nofollow ugc\">VK Group\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdzen.ru\u002Fbelingo\" rel=\"nofollow ugc\">Zen channel\u003C\u002Fa>\u003C\u002Fp>\n","The plugin adds the ability to select cities, unique pages are created with a unique url for each city. This allows you to uniqueize content.",10847,100,13,"2026-01-22T17:25:00.000Z","6.8.5","5.0.0",[21,55,22,4,56],"geo-targeting","targeted-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbelingogeo.1.13.2.zip",98,1,"2025-05-09 00:00:00",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":71,"num_ratings":50,"last_updated":72,"tested_up_to":52,"requires_at_least":73,"requires_php":18,"tags":74,"homepage":18,"download_link":80,"security_score":58,"vuln_count":81,"unpatched_count":27,"last_vuln_date":82,"fetched_at":29},"dologin","DoLogin Security","4.3","WPDO","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpdo5ea\u002F","\u003Cp>In one click, your WordPress login page will be pretected with the smart brute force attack protection! Any login attempts more than 6 in 10 minutes (default value) will be limited.\u003C\u002Fp>\n\u003Cp>Limit the number of login attempts through both the login and the auth cookies.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Two-factor Authentication login.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Text SMS message passcode for 2nd step verification support.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Cloudflare Turnstile (better than Google reCAPTCHA).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>GeoLocation (Continent\u002FCountry\u002FCity) or IP range to limit login attempts.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Passwordless login link.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Support Whitelist and Blacklist.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>GDPR compliant. With this feature turned on, all logged IPs get obfuscated (md5-hashed).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WooCommerce Login supported.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>XMLRPC gateway protection.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>API\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>Call the function \u003Ccode>$link = function_exists( 'dologin_gen_link' ) ? dologin_gen_link( 'your plugin name or tag' ) : '';\u003C\u002Fcode> to generate one passwordless login link for the current user.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Call the function \u003Ccode>$link = function_exists( 'dologin_gen_link' ) ? dologin_gen_link( 'note\u002Ftip for this generation', $user_id ) : '';\u003C\u002Fcode> to generate a passwordless login link for the user which ID is \u003Ccode>$user_id\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The generated one-time used link will be expired after 7 days.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Define const \u003Ccode>SILENCE_INSTALL\u003C\u002Fcode> to avoid redirecting to setting page after installtion.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>CLI\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>List all passwordless links: \u003Ccode>wp dologin list\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Generate a passwordless link for one username (for the login name \u003Ccode>root\u003C\u002Fcode>): \u003Ccode>wp dologin gen root\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Delete a passwordless link w\u002F the ID in list (for the record w\u002F ID 5): \u003Ccode>wp dologin del 5\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How GeoLocation works\u003C\u002Fh4>\n\u003Cp>When visitors hit the login page, this plugin will lookup the Geolocation info from API, compare the Geolocation setting (if has) with the whitelist\u002Fblacklist to decide if allow login attempts.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>The online IP lookup service is provided by https:\u002F\u002Fwww.doapi.us. The provider’s privacy policy is https:\u002F\u002Fwww.doapi.us\u002Fprivacy.\u003C\u002Fp>\n\u003Cp>Based on the original code from Limit Login Attemps plugin and Limit Login Attemps Reloaded plugin.\u003C\u002Fp>\n","Easy Login. 2FA login. Passwordless login. Cloudflare Turnstile reCAPTCHA. GeoLocation (Continent\u002FCountry\u002FCity)\u002FIP range to limit login attempts.",7000,162727,90,"2025-06-11T14:21:00.000Z","4.0",[75,76,77,78,79],"2fa-login","cloudflare-turnstile-recaptcha","easy-login","geolocation-login-limit","login-security","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdologin.4.3.zip",4,"2023-10-24 00:00:00",{"slug":84,"name":85,"version":86,"author":87,"author_profile":88,"description":89,"short_description":90,"active_installs":11,"downloaded":91,"rating":58,"num_ratings":92,"last_updated":93,"tested_up_to":94,"requires_at_least":95,"requires_php":18,"tags":96,"homepage":100,"download_link":101,"security_score":49,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"cloudguard","CloudGuard","1.4.6","pipdig","https:\u002F\u002Fprofiles.wordpress.org\u002Fpipdig\u002F","\u003Cp>Use the power of the cloud and a global CDN to restrict access to your login page.\u003C\u002Fp>\n\u003Cp>CloudGuard brings global and cloud driven protection to your login page. Using Cloudflare’s free Geolocation service, this super lightweight plugin restricts access to your login page, allowing access to only your chosen countries.  This means that any login attempts from the rest of the world will be automatically blocked.\u003C\u002Fp>\n\u003Cp>Additionally, this plugin tracks any unauthorized login attempts and displays them on a \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcloudguard\u002Fscreenshots\u002F\" rel=\"ugc\">world map\u003C\u002Fa> in your dashboard.\u003C\u002Fp>\n\u003Ch3>Main Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Protect your login page globally.\u003C\u002Fli>\n\u003Cli>Reduce server load.\u003C\u002Fli>\n\u003Cli>Country based IP ranges constantly updated by Cloudflare.\u003C\u002Fli>\n\u003Cli>Monitor login attempts via your dashboard.\u003C\u002Fli>\n\u003Cli>Block access to the login page or redirect to a URL.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Why Cloudflare’s Geolocation?\u003C\u002Fh3>\n\u003Cp>There are other plugins which can \u003Cstrong>restrict your login page by geographic location\u003C\u002Fstrong>. However, these plugins use your server to detect the IP and compare this to a geographic location. This adds extra overhead to your site, takes up space on your server, and requires frequent updates to keep the IP list relevant.\u003C\u002Fp>\n\u003Cp>CloudGuard is different. Since we leverage Cloudflare’s geolocation service, your server simply has to read the data, rather than compute and store it locally. Cloudflare does the grunt work, leaving your site safe, secure and optimized.\u003C\u002Fp>\n\u003Cp>Note: This plugin requires that you have an account (including the free option) on \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\" rel=\"nofollow ugc\">Cloudflare\u003C\u002Fa> with \u003Ca href=\"https:\u002F\u002Fsupport.cloudflare.com\u002Fhc\u002Fen-us\u002Farticles\u002F200168236-What-does-Cloudflare-IP-Geolocation-do-\" rel=\"nofollow ugc\">Geolocation\u003C\u002Fa> enabled.\u003C\u002Fp>\n\u003Cp>This free plugin is brought to you by \u003Ca href=\"https:\u002F\u002Fwww.pipdig.co\u002F\" rel=\"nofollow ugc\">pipdig\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Please consider \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fview\u002Fplugin-reviews\u002Fcloudguard?rate=5#postform\" rel=\"ugc\">leaving a 5-star rating\u003C\u002Fa> if this plugin has helped you.\u003C\u002Fp>\n","Use Cloudflare's free geolocation service to restrict access to your site's login page.",28284,30,"2025-12-03T16:06:00.000Z","6.9.4","4.9",[20,22,97,98,99],"ip","login","security","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcloudguard\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcloudguard.zip",{"slug":103,"name":104,"version":105,"author":106,"author_profile":107,"description":108,"short_description":109,"active_installs":11,"downloaded":110,"rating":49,"num_ratings":81,"last_updated":111,"tested_up_to":94,"requires_at_least":112,"requires_php":18,"tags":113,"homepage":18,"download_link":117,"security_score":49,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"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!",20240,"2025-12-11T21:50:00.000Z","4.0.1",[114,22,115,4,116],"geoip","geolocation-redirect","location-based-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fif-so-geolocation.1.5.zip",{"slug":119,"name":120,"version":121,"author":122,"author_profile":123,"description":124,"short_description":125,"active_installs":11,"downloaded":126,"rating":127,"num_ratings":128,"last_updated":129,"tested_up_to":130,"requires_at_least":131,"requires_php":18,"tags":132,"homepage":136,"download_link":137,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"wt-geotargeting","WT GeoTargeting","1.9","Roman Kusty","https:\u002F\u002Fprofiles.wordpress.org\u002Fkustyrt\u002F","\u003Cp>\u003Cstrong>WT Geotargeting\u003C\u002Fstrong> – бесплатный плагин для CMS WordPress, позволяющий с помощью Шорткодов настраивать геотаргетинг на страницах сайта.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Геотаргетинг\u003C\u002Fstrong> – вывод на страницах сайта контента (заголовки, текст, адреса, телефоны и т.д.), соответствующего географическому местоположению посетителя.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fweb-technology.biz\u002Fblog\u002Fgeotargeting-odin-sajt-dlya-vsex-gorodov\u002F?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=wt-geotargeting\" rel=\"nofollow ugc\">«Зачем нужен геотаргетинг на сайте?»\u003C\u002Fa> – полезная статья для начинающих разработчиков.\u003C\u002Fp>\n\u003Ch4>Основные возможности плагина:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Геолокация на основе баз IP-адресов «IP Geolocation API», «Sypex Geo», «DaData» или «MaxMind»;\u003C\u002Fli>\n\u003Cli>Определение местоположения посетителей с точностью до страны;\u003C\u002Fli>\n\u003Cli>Определение местоположения посетителей России, Украины и Беларуси с точностью до города;\u003C\u002Fli>\n\u003Cli>Отображение контента с привязкой к местоположению посетителя;\u003C\u002Fli>\n\u003Cli>Отображение местоположения посетителя.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fweb-technology.biz\u002Fcms-wordpress\u002Fplugin-wt-geotargeting-for-cms-wordpress\u002Fbystryj-start\u002F?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=wt-geotargeting\" rel=\"nofollow ugc\">Быстрый старт\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Возможности расширенной версии плагина:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Управление регионами и контактными данными регионов в панели администратора;\u003C\u002Fli>\n\u003Cli>Написание названий регионов в различных падежах;\u003C\u002Fli>\n\u003Cli>Изменение заголовков H1 и Title;\u003C\u002Fli>\n\u003Cli>Статические методы (PHP) для настройки геотаргетинга;\u003C\u002Fli>\n\u003Cli>Импорт городов;\u003C\u002Fli>\n\u003Cli>Поддержка поддоменов (субдоменов);\u003C\u002Fli>\n\u003Cli>Добавление разных цен товара WooCommerce.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fweb-technology.biz\u002Fcms-wordpress\u002Fplugin-wt-geotargeting-pro\u002F?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=wt-geotargeting\" rel=\"nofollow ugc\">Подробнее о стандарной и расширенной версиях\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Перед настройкой \u003Cstrong>рекомендуем прочитать\u003C\u002Fstrong> нашу статью \u003Ca href=\"http:\u002F\u002Fweb-technology.biz\u002Fprimenenie-geotargetinga-na-sajte\u002F?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=wt-geotargeting\" rel=\"nofollow ugc\">«Юзабилити сайта с геотаргетингом»\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Официальная страница плагина:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fweb-technology.biz\u002Fcms-wordpress\u002Fplugin-wt-geotargeting-pro\u002F?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=wt-geotargeting\" rel=\"nofollow ugc\">WT Geotargeting\u003C\u002Fa>.\u003Cbr \u002F>\n\u003Cstrong>Документация:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fweb-technology.biz\u002Fcms-wordpress\u002Fplugin-wt-geotargeting-for-cms-wordpress\u002F?utm_source=wordpress-org&utm_medium=plugin-page&utm_campaign=wt-geotargeting\" rel=\"nofollow ugc\">WT Geotargeting\u003C\u002Fa>.\u003Cbr \u002F>\n\u003Cstrong>Новости и обсуждение Вконтакте:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fvk.com\u002Fagency_web_technology\" rel=\"nofollow ugc\">vk.com\u002Fagency_web_technology\u003C\u002Fa>.\u003C\u002Fp>\n","Гибкая настройка геотаргетинга.",23514,92,20,"2022-11-26T15:54:00.000Z","6.0.11","3.9",[133,134,22,4,135],"dadata","geo","ip-api","https:\u002F\u002Fweb-technology.biz\u002Fcms-wordpress\u002Fplugin-wt-geotargeting","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwt-geotargeting.zip",{"attackSurface":139,"codeSignals":225,"taintFlows":275,"riskAssessment":313,"analyzedAt":323},{"hooks":140,"ajaxHandlers":205,"restRoutes":206,"shortcodes":207,"cronEvents":220,"entryPointCount":224,"unprotectedCount":27},[141,148,154,159,164,167,170,173,176,178,181,184,186,188,191,194,197,200],{"type":142,"name":143,"callback":144,"priority":145,"file":146,"line":147},"filter","cron_schedules","register_schedules",10,"includes\\class-geot-maxmind-cron.php",18,{"type":149,"name":150,"callback":151,"file":152,"line":153},"action","geot_maxmind_cron","maybe_download_maxmind","includes\\class-geot-maxmind.php",16,{"type":149,"name":155,"callback":156,"file":157,"line":158},"init","setUserCountry","includes\\class-geotarget-functions.php",40,{"type":149,"name":160,"callback":161,"file":162,"line":163},"plugins_loaded","anonymous","includes\\class-geotarget.php",183,{"type":142,"name":165,"callback":161,"file":162,"line":166},"geot\u002Fget_post_types",195,{"type":142,"name":168,"callback":161,"file":162,"line":169},"geot\u002Fget_countries",196,{"type":149,"name":171,"callback":161,"file":162,"line":172},"admin_notices",210,{"type":149,"name":174,"callback":161,"file":162,"line":175},"admin_enqueue_scripts",212,{"type":149,"name":174,"callback":161,"file":162,"line":177},213,{"type":149,"name":179,"callback":161,"file":162,"line":180},"admin_menu",215,{"type":149,"name":182,"callback":161,"file":162,"line":183},"wp_enqueue_scripts",231,{"type":149,"name":182,"callback":161,"file":162,"line":185},232,{"type":149,"name":155,"callback":161,"file":162,"line":187},235,{"type":142,"name":189,"callback":161,"file":162,"line":190},"spu\u002Fmetaboxes\u002Frule_types",236,{"type":142,"name":192,"callback":161,"file":162,"line":193},"spu\u002Frules\u002Frule_values\u002Fgeot_country",237,{"type":142,"name":195,"callback":161,"file":162,"line":196},"spu\u002Frules\u002Frule_match\u002Fgeot_country",238,{"type":149,"name":198,"callback":161,"file":162,"line":199},"wp_footer",240,{"type":149,"name":201,"callback":202,"priority":145,"file":203,"line":204},"spu\u002Frules\u002Fprint_geot_country_field","print_select","public\\class-geotarget-public.php",108,[],[],[208,212,216],{"tag":209,"callback":210,"file":162,"line":211},"geot","geot_filter",251,{"tag":213,"callback":214,"file":162,"line":215},"geot_country_name","geot_name",252,{"tag":217,"callback":218,"file":162,"line":219},"geot_country_code","geot_code",253,[221],{"hook":150,"callback":150,"file":222,"line":223},"includes\\class-geot-maxmind-activator.php",44,3,{"dangerousFunctions":226,"sqlUsage":227,"outputEscaping":244,"fileOperations":81,"externalRequests":27,"nonceChecks":267,"capabilityChecks":59,"bundledLibraries":268},[],{"prepared":228,"raw":81,"locations":229},5,[230,234,237,241],{"file":231,"line":232,"context":233},"includes\\class-geotarget-activator.php",49,"$wpdb->get_var() with variable interpolation",{"file":231,"line":235,"context":236},51,"$wpdb->query() with variable interpolation",{"file":238,"line":239,"context":240},"includes\\class-geotarget-filters.php",95,"$wpdb->get_results() with variable interpolation",{"file":242,"line":243,"context":236},"uninstall.php",43,{"escaped":59,"rawEcho":145,"locations":245},[246,250,251,254,257,258,259,261,263,265],{"file":247,"line":248,"context":249},"admin\\partials\\metabox-options.php",27,"raw output",{"file":247,"line":248,"context":249},{"file":252,"line":253,"context":249},"admin\\partials\\settings-page.php",23,{"file":255,"line":256,"context":249},"includes\\class-geotarget-notices.php",41,{"file":255,"line":243,"context":249},{"file":255,"line":223,"context":249},{"file":255,"line":260,"context":249},52,{"file":255,"line":262,"context":249},55,{"file":203,"line":264,"context":249},172,{"file":203,"line":266,"context":249},174,2,[269,272],{"name":270,"version":28,"knownCves":271},"jQuery",[],{"name":273,"version":28,"knownCves":274},"TinyMCE",[],[276,294,305],{"entryPoint":277,"graph":278,"unsanitizedCount":27,"severity":293},"\u003Csettings-page> (admin\\partials\\settings-page.php:0)",{"nodes":279,"edges":290},[280,285],{"id":281,"type":282,"label":283,"file":252,"line":284},"n0","source","$_POST",8,{"id":286,"type":287,"label":288,"file":252,"line":145,"wp_function":289},"n1","sink","update_option() [Settings Manipulation]","update_option",[291],{"from":281,"to":286,"sanitized":292},true,"low",{"entryPoint":295,"graph":296,"unsanitizedCount":59,"severity":293},"__construct (includes\\class-geotarget-notices.php:29)",{"nodes":297,"edges":302},[298,301],{"id":281,"type":282,"label":299,"file":255,"line":300},"$_GET['geot_notice']",33,{"id":286,"type":287,"label":288,"file":255,"line":300,"wp_function":289},[303],{"from":281,"to":286,"sanitized":304},false,{"entryPoint":306,"graph":307,"unsanitizedCount":59,"severity":293},"\u003Cclass-geotarget-notices> (includes\\class-geotarget-notices.php:0)",{"nodes":308,"edges":311},[309,310],{"id":281,"type":282,"label":299,"file":255,"line":300},{"id":286,"type":287,"label":288,"file":255,"line":300,"wp_function":289},[312],{"from":281,"to":286,"sanitized":304},{"summary":314,"deductions":315},"The geotargeting plugin version 1.3.6.1 exhibits a mixed security posture. On the positive side, there are no known vulnerabilities (CVEs) recorded for this plugin, suggesting a history of responsible development or a lack of prior exploitation. Furthermore, the attack surface appears well-contained with no unprotected entry points, and there are no reported critical or high-severity taint flows.  However, the static analysis reveals significant areas for concern, particularly regarding output escaping, where only 9% of outputs are properly escaped. This indicates a high risk of Cross-Site Scripting (XSS) vulnerabilities, where malicious scripts could be injected and executed within the WordPress environment. Additionally, 2 out of 3 analyzed taint flows have unsanitized paths, which, while not classified as critical or high severity in this analysis, still represent potential pathways for unintended data manipulation or information leakage. The presence of SQL queries, with 56% using prepared statements, is a positive sign, but the remaining 44% are a potential concern for SQL injection if not handled with extreme care in their implementation.\n\nWhile the lack of known CVEs is a strength, the low percentage of properly escaped output and the unsanitized taint flows are significant weaknesses that could lead to vulnerabilities. The plugin's security relies heavily on the absence of discovered flaws rather than robust preventative measures in output handling. Therefore, a cautious approach is warranted, prioritizing the correction of output escaping deficiencies and further investigation into the identified unsanitized taint flows to ensure the plugin's long-term security.",[316,319,321],{"reason":317,"points":318},"Low output escaping percentage",15,{"reason":320,"points":284},"Unsanitized paths in taint flows",{"reason":322,"points":228},"SQL queries not using prepared statements","2026-03-16T18:50:41.952Z",{"wat":325,"direct":339},{"assetPaths":326,"generatorPatterns":331,"scriptPaths":332,"versionParams":335},[327,328,329,330],"\u002Fwp-content\u002Fplugins\u002Fgeotargeting\u002Fadmin\u002Fcss\u002Fchosen.min.css","\u002Fwp-content\u002Fplugins\u002Fgeotargeting\u002Fadmin\u002Fcss\u002Fgeotarget.css","\u002Fwp-content\u002Fplugins\u002Fgeotargeting\u002Fadmin\u002Fjs\u002Fchosen.jquery.min.js","\u002Fwp-content\u002Fplugins\u002Fgeotargeting\u002Fadmin\u002Fjs\u002Fgeotargeting-admin.js",[],[333,334],"admin\u002Fjs\u002Fchosen.jquery.min.js","admin\u002Fjs\u002Fgeotargeting-admin.js",[336,337,338],"geot-chosen?ver=","geotarget.css?ver=","geotargeting-admin.js?ver=",{"cssClasses":340,"htmlComments":342,"htmlAttributes":344,"restEndpoints":348,"jsGlobals":349,"shortcodeOutput":351},[341],"geot-settings-wrap",[343],"\u003C!-- This file should primarily consist of the admin specific CSS file -->",[345,346,347],"data-geotargeting-settings","data-geot-options","data-geot-options-nonce",[],[209,350],"geotarget_options",[]]