[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGM4Hn4dFwxyXvDuEnKR1oLSFkyDZwtCOiXEk8kYInBo":3},{"slug":4,"name":4,"version":5,"author":6,"author_profile":7,"description":8,"short_description":9,"active_installs":10,"downloaded":11,"rating":12,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":21,"download_link":22,"security_score":23,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":36,"analysis":147,"fingerprints":166},"whats-my-ip","0.5.2","Darshan Sawardekar","https:\u002F\u002Fprofiles.wordpress.org\u002Fdsawardekar\u002F","\u003Cp>This plugin adds an \u003Ccode>[whatsmyip]\u003C\u002Fcode> shortcode tag to WordPress. You can use it\u003Cbr \u002F>\nto embed the current User’s IP address inline in a Post.\u003C\u002Fp>\n\u003Cp>The shortcode takes 3 attributes, \u003Ccode>ip\u003C\u002Fcode>, \u003Ccode>country\u003C\u002Fcode> and \u003Ccode>coords\u003C\u002Fcode>. Each of\u003Cbr \u002F>\nthese can take boolean values like 1, yes, no, true. Truthy values\u003Cbr \u002F>\nenable the display of the corresponding field.\u003C\u002Fp>\n\u003Cp>For Eg:- To display \u003Ccode>ip\u003C\u002Fcode> and \u003Ccode>country\u003C\u002Fcode> details use,\u003C\u002Fp>\n\u003Cpre>\u003Ccode>    [whatsmyip ip='yes' country='yes']\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The \u003Ccode>ip\u003C\u002Fcode> attributes defaults to true if absent. Rest of the attributes\u003Cbr \u002F>\nare false by default.\u003C\u002Fp>\n\u003Cp>A Widget is also provided for use inside sidebars. Use the checkboxes in\u003Cbr \u002F>\nthe Widget customization screen to change the displayed fields.\u003C\u002Fp>\n","Display the current User's IP address in Widgets & Shortcodes.",10,2503,46,3,"2014-08-07T14:17:00.000Z","3.9.40","3.5.0","",[19,20],"geoip","ip","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwhats-my-ip","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwhats-my-ip.0.5.2.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":29,"display_name":6,"profile_url":7,"plugin_count":30,"total_installs":31,"avg_security_score":32,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"dsawardekar",6,70,88,30,86,"2026-04-04T14:32:17.349Z",[37,63,87,106,125],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":58,"download_link":59,"security_score":60,"vuln_count":61,"unpatched_count":24,"last_vuln_date":62,"fetched_at":26},"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,94,59,"2025-10-29T20:59:00.000Z","6.8.5","5.0","7.2.5",[19,54,55,56,57],"geolocation","ipstack","locator","maxmind","http:\u002F\u002Fwww.yellowtree.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeoip-detect.5.6.1.zip",99,1,"2025-09-22 00:00:00",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":76,"requires_at_least":77,"requires_php":78,"tags":79,"homepage":17,"download_link":83,"security_score":84,"vuln_count":85,"unpatched_count":24,"last_vuln_date":86,"fetched_at":26},"cf7-antispam","AntiSpam for Contact Form 7","0.7.4","Erik","https:\u002F\u002Fprofiles.wordpress.org\u002Fcodekraft\u002F","\u003Cp>Are you unsatisfied with your current antispam solution for Contact Form 7? It might be using an ineffective method to combat the specific type of bot attacks you’re facing. Fortunately, I have a solution for you!\u003Cbr \u002F>\nAntispam for Contact Form 7 is a simple yet highly effective plugin that protects your mailbox from bot flooding. Say goodbye to tedious configurations and captchas, which often lead to reduced conversions and inconvenience for genuine users. Our plugin utilizes a combination of on-page and off-page bot traps, along with an auto-learning mechanism powered by a statistical “Bayesian” spam filter called B8.\u003Cbr \u002F>\nCF7-AntiSpam seamlessly integrates with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflamingo\u002F\" rel=\"ugc\">Flamingo\u003C\u002Fa> and enhances its functionality. When both plugins are installed, Flamingo gains additional controls, and an extra dashboard widget is enabled.\u003C\u002Fp>\n\u003Ch3>SETUP\u003C\u002Fh3>\n\u003Cp>Basic – Install and go! No configuration, keys, or registrations are required to activate the antispam protection. In this case, some protections, such as fingerprinting, language checks, and honeypots, will be enabled.\u003Cbr \u002F>\nAdvanced – For CF7A to properly analyze the email content using its dictionary, it needs to parse the input message field of your form. To notify the antispam to check this field, you’ll need to add a “marker” to each contact form on your website. Simply add ‘flamingo_message: “[your-message]”‘ in the additional settings panel of each contact form you want to secure. This process follows the same method used with Flamingo. While this step may seem tedious, it is required for advanced text statistical analysis. Without it, the B8 filter cannot be enabled.\u003Cbr \u002F>\nGeoIP – (Optional) If you need to restrict which countries or languages can email you, you can enable this functionality. To enable GeoIP, you’ll need to agree to the GeoLite2 End User License Agreement and sign up for GeoLite2 Downloadable Databases. This will provide you with the required key to download the database. For detailed instructions, please refer to the dedicated section in the cf7-antispam plugin settings.\u003C\u002Fp>\n\u003Ch3>Antispam Available Tests\u003C\u002Fh3>\n\u003Cp>✅ Browser Fingerprinting\u003Cbr \u002F>\n✅ Language checks (Geo-ip, http headers and browser)\u003Cbr \u002F>\n✅ Honeypot\u003Cbr \u002F>\n️🆕 Honeyform*\u003Cbr \u002F>\n✅ Domain Name System Blackhole List (aka DNSBL)\u003Cbr \u002F>\n✅ blocklists (with automatic ban after N failed attempts, user defined ip exclusion list)\u003Cbr \u002F>\n✅ Hidden fields with encrypted unique hash\u003Cbr \u002F>\n✅ Time elapsed (with min\u002Fmax values)\u003Cbr \u002F>\n✅ Prohibited words in message\u002Femail and user agent\u003Cbr \u002F>\n✅ B8 statistical “Bayesian” spam filter\u003Cbr \u002F>\n✅ Identity protection\u003Cbr \u002F>\n✅ Webmail protection\u003C\u002Fp>\n\u003Ch3>Extends Flamingo and turns it into a spam manager!\u003C\u002Fh3>\n\u003Cp>With this plugin, you can now review emails and train B8 to identify spam and legitimate messages. This feature proves useful, especially during the initial stages when some spam emails may slip through.\u003Cbr \u002F>\nAlready using Flamingo? Even better! Just remember to add ‘flamingo_message: “[your-message]”‘ to the advanced settings (similar to other Flamingo labels) before activating the plugin. Alternatively, you can explore the advanced options and select “rebuild dictionary.”\u003Cbr \u002F>\nUpon activating CF7A, all previously collected emails will be parsed, and B8 will learn and develop its vocabulary. This pre-trained algorithm gives you a head start. How cool is that?\u003Cbr \u002F>\nAdditional Notes:\u003Cbr \u002F>\n– A new column has been added to the right side of the Flamingo inbound page, displaying the level of spaminess for each email.\u003Cbr \u002F>\n– If you unban an email on the Flamingo “inbound” page, the corresponding IP will be removed from the blocklist. However, marking an email as spam will not blocklist the IP again.\u003Cbr \u002F>\n– Before activating this plugin, please make sure to mark all spam emails as spam in the Flamingo inbound section. This auto-training process will help the B8 algorithm.\u003Cbr \u002F>\n– If you receive a spam message, please avoid deleting it from the “ham” section. Instead, place it in the spam section to teach B8 how to differentiate between spam and legitimate messages.\u003C\u002Fp>\n\u003Ch3>B8 statistical “Bayesian” Filter\u003C\u002Fh3>\n\u003Cp>Originally created by \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGary_Robinson\" rel=\"nofollow ugc\">Gary Robinson\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.linuxjournal.com\u002Farticle\u002F6467\" rel=\"nofollow ugc\">b8 is a statistical “Bayesian”\u003C\u002Fa> spam filter implemented in PHP.\u003Cbr \u002F>\nThe B8 filter is a foundational example of \u003Cstrong>Machine Learning (ML)\u003C\u002Fstrong> for text classification, representing an early, yet powerful, statistical approach in Natural Language Processing (NLP). This approach precedes feature-weighting methods like \u003Cstrong>TF-IDF\u003C\u002Fstrong>, which in turn paved the way for modern deep learning architectures, such as \u003Cstrong>Transformers\u003C\u002Fstrong> and \u003Cstrong>GPT\u003C\u002Fstrong>.\u003Cbr \u002F>\nThe filter tells you whether a text is spam or not, using statistical text analysis. What it does is: you give b8 a text and it returns a value between 0 and 1, saying it’s ham when it’s near 0 and saying it’s spam when it’s near 1. See \u003Ca href=\"https:\u002F\u002Fnasauber.de\u002Fopensource\u002Fb8\u002Freadme.html#how-does-it-work\" rel=\"nofollow ugc\">How does it work?\u003C\u002Fa> for details about this.\u003Cbr \u002F>\nTo be able to distinguish spam and ham (non-spam), b8 first has to learn some spam and some ham texts. If it makes mistakes when classifying unknown texts or the result is not distinct enough, b8 can be told what the text actually is, getting better with each learned text.\u003Cbr \u002F>\nThis takes place on your own server without relying on third-party services.\u003Cbr \u002F>\nMore info: \u003Ca href=\"https:\u002F\u002Fnasauber.de\u002Fopensource\u002Fb8\u002F\" rel=\"nofollow ugc\">nasauber.de\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Identity protection\u003C\u002Fh3>\n\u003Cp>To fully protect the forms, it may be necessary to enable a couple of additional controls, because bots use the public data of the website to spam on it.\u003Cbr \u002F>\n– The first is user related and denies those who are not logged in the possibility of asking (sensitive) information about the user via wp-api and the protection for the xmlrpc exploit wordpress.\u003Cbr \u002F>\n– The second one is the WordPress protection that will obfuscate sensitive WordPress and server data, adding some headers in order to enhance security against xss and so on.\u003Cbr \u002F>\nWill be hidden the WordPress and WooCommerce version (wp_generator, woo_version), pingback (X-Pingback), server (nginx|apache|…) and php version (X-Powered-By), enabled xss protection headers (X-XSS-Protection), removes rest api link from header (but it will only continue to work if the link is not made public).\u003C\u002Fp>\n\u003Ch3>Mailbox Protection (Multiple Send)\u003C\u002Fh3>\n\u003Cp>Enhance email security by enabling the “Multiple Send” feature, which prevents consecutive email submissions to the user’s mailbox. This measure is effective in thwarting automated spam attempts and ensures a secure communication environment.\u003C\u002Fp>\n\u003Ch3>Security & Privacy: A Local-First Approach\u003C\u002Fh3>\n\u003Cp>AntiSpam for Contact Form 7 is built with your security and privacy as the \u003Cstrong>top priority\u003C\u002Fstrong>. Unlike many modern anti-spam solutions that rely on external cloud services or third-party subscriptions, our plugin is designed to run \u003Cstrong>entirely on your own WordPress installation\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>100% Local Processing:\u003C\u002Fstrong> All anti-spam logic, checks, and data processing are performed directly on your server. \u003Cstrong>No data is ever sent to, or stored by, any external third-party service\u003C\u002Fstrong> (including ours).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Not a Software as a Service (SaaS):\u003C\u002Fstrong> This plugin is a standalone, self-contained software solution, not an interface to a paid or subscription-based external service. Once installed, it works autonomously.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enhanced Security:\u003C\u002Fstrong> Since there is \u003Cstrong>no central server or external API endpoint\u003C\u002Fstrong> to communicate with, your website is immune to potential risks associated with centralized services, such as Single Point of Failure or data breach risks.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You retain complete control and ownership over the security of your Contact Form 7 submissions.\u003C\u002Fp>\n\u003Ch3>Privacy Notices\u003C\u002Fh3>\n\u003Cp>AntiSpam for Contact Form 7 only processes the IP but doesn’t store any personal data directly from the user input. However, it creates a dictionary of spam and ham (non-spam) words in the WordPress database.\u003Cbr \u002F>\nThis dictionary is built from words found in the submitted messages, meaning it \u003Cstrong>may contain words that were part of the user’s e-mail message or personal data\u003C\u002Fstrong>. This data is “degenerated,” which means the words might be normalized or altered before being stored.\u003Cbr \u002F>\nThe sole purpose of this word collecting is to build a dictionary used for local, decentralized spam detection.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Community support: via the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fcontact-form-7-antispam\u002F\" rel=\"ugc\">support forums\u003C\u002Fa> on wordpress.org\u003Cbr \u002F>\nBug reporting (preferred): file an issue on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ferikyo\u002Fcontact-form-7-antispam\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Contribute\u003C\u002Fh4>\n\u003Cp>We love your input! We want to make contributing to this project as easy and transparent as possible, whether it’s:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Reporting a bug\u003C\u002Fli>\n\u003Cli>Testing the plugin with different user agent and report fingerprinting failures\u003C\u002Fli>\n\u003Cli>Discussing the current state, features, improvements\u003C\u002Fli>\n\u003Cli>Submitting a fix or a new feature\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.\u003Cbr \u002F>\nBy contributing, you agree that your contributions will be licensed under its GPLv2 License.\u003C\u002Fp>\n\u003Cp>My goal is to create an antispam that protects cf7 definitively without relying on external services. And free for everyone.\u003Cbr \u002F>\nif you want to help me, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ferikyo\u002Fcontact-form-7-antispam\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> is the right place 😉\u003C\u002Fp>\n\u003Ch3>copyright\u003C\u002Fh3>\n\u003Cp>AntiSpam for Contact Form 7, Copyright 2021 Codekraft Studio\u003Cbr \u002F>\nAntiSpam for Contact Form 7 is distributed under the terms of the GNU GPL\u003C\u002Fp>\n\u003Cp>This program is free software: you can redistribute it and\u002For modify\u003Cbr \u002F>\nit under the terms of the GNU General Public License as published by\u003Cbr \u002F>\nthe Free Software Foundation, either version 3 of the License, or\u003Cbr \u002F>\n(at your option) any later version.\u003C\u002Fp>\n\u003Cp>This program is distributed in the hope that it will be useful,\u003Cbr \u002F>\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\u003Cbr \u002F>\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\u003Cbr \u002F>\nSee the LICENSE file for more details.\u003C\u002Fp>\n\u003Ch4>Resources\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Contact Form 7 and Flamingo © 2021 Takayuki Miyoshi,\u003Ca href=\"https:\u002F\u002Fit.wordpress.org\u002Fplugins\u002Fcontact-form-7\u002F\" rel=\"nofollow ugc\">LGPLv3 or later\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>B8 https:\u002F\u002Fnasauber.de\u002Fopensource\u002Fb8\u002F, © 2021 Tobias Leupold, \u003Ca href=\"https:\u002F\u002Fgitlab.com\u002Fl3u\u002Fb8\u002F-\u002Ftree\u002Fab26daa6b293e6aa059d24ce7cf77af6c8b9b052\u002FLICENSES\" rel=\"nofollow ugc\">LGPLv3 or later\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>GeoLite2 \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\u002Fen\u002Fgeolite2\u002Feula\" rel=\"nofollow ugc\">license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>GeoIP2 PHP API \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmaxmind\u002FGeoIP2-php\" rel=\"nofollow ugc\">GeoIP2-php\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>chart.js https:\u002F\u002Fwww.chartjs.org\u002F, © 2021 Chart.js \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchartjs\u002FChart.js\u002Fgraphs\u002Fcontributors\" rel=\"nofollow ugc\">contributors\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fchartjs\u002FChart.js\u002Fblob\u002Fmaster\u002FLICENSE.md\" rel=\"nofollow ugc\">MIT\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Sudden Shower in the Summer, Public domain, Wikimedia Commons https:\u002F\u002Fcommons.wikimedia.org\u002Fwiki\u002FFile:Sudden_Shower_in_the_Summer_(5759500422).jpg\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contibutions\u003C\u002Fh3>\n\u003Cp>Mirek Długosz – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ferikyo\u002Fcf7-antispam\u002Fpull\u002F30\" rel=\"nofollow ugc\">#30\u003C\u002Fa> fixes a crash that occurred when analysing flamingo metadata\u003Cbr \u002F>\nMeliEve – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-blocks\u002Fcf7-antispam\u002Fpull\u002F42\" rel=\"nofollow ugc\">#42\u003C\u002Fa> Fix “internal_server_error” when message is empty\u003Cbr \u002F>\nMeliEve – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-blocks\u002Fcf7-antispam\u002Fpull\u002F61\" rel=\"nofollow ugc\">#61\u003C\u002Fa>  Handle deferrer script loading\u003Cbr \u002F>\nZodiac1978 – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-blocks\u002Fcf7-antispam\u002Fpull\u002F67\" rel=\"nofollow ugc\">#67\u003C\u002Fa> Remove warning for unsafe email configuration w\u002Fo protection\u003Cbr \u002F>\nJohnHooks – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-blocks\u002Fcf7-antispam\u002Fpull\u002F61\" rel=\"nofollow ugc\">#66\u003C\u002Fa> Readme + plugin env\u003Cbr \u002F>\nsdellenb – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-blocks\u002Fcf7-antispam\u002Fpull\u002F163\" rel=\"nofollow ugc\">#66\u003C\u002Fa> Fix $reason parameter for calling cf7a_ban_by_ip\u003C\u002Fp>\n\u003Ch3>Special thanks\u003C\u002Fh3>\n\u003Cp>This project is tested with BrowserStack. \u003Ca href=\"https:\u002F\u002Fwww.browserstack.com\u002F\" rel=\"nofollow ugc\">Browserstack\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>MaxMind GeoIP2\u003C\u002Fh3>\n\u003Cp>This plugin on demand can enable GeoLite2 created by MaxMind, available from \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.maxmind.com\u003C\u002Fa>\u003Cbr \u002F>\nWhile enabled you may \u003Cstrong>have to mention it in the privacy policy\u003C\u002Fstrong> of your site, depending on the law regulating privacy in your state!\u003Cbr \u002F>\n* GeoIP2 databases \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\u002Fen\u002Faccounts\u002Fcurrent\u002Fgeoip\u002Fdownloads\" rel=\"nofollow ugc\">GeoLite2 Country\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>DNSBL servers privacy policies\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>dnsbl-1.uceprotect.net \u003Ca href=\"http:\u002F\u002Fwww.uceprotect.net\u002Fen\u002Findex.php?m=13&s=0\" rel=\"nofollow ugc\">www.uceprotect.net license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>dnsbl-2.uceprotect.net \u003Ca href=\"http:\u002F\u002Fwww.uceprotect.net\u002Fen\u002Findex.php?m=13&s=0\" rel=\"nofollow ugc\">www.uceprotect.net license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>dnsbl-3.uceprotect.net \u003Ca href=\"http:\u002F\u002Fwww.uceprotect.net\u002Fen\u002Findex.php?m=13&s=0\" rel=\"nofollow ugc\">www.uceprotect.net license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>dnsbl.sorbs.net \u003Ca href=\"http:\u002F\u002Fwww.sorbs.net\u002Finformation\u002Ffaq\u002F\" rel=\"nofollow ugc\">sorbs.net license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>zen.spamhaus.org \u003Ca href=\"https:\u002F\u002Fwww.spamhaus.org\u002Forganization\u002Fdnsblusage\u002F\" rel=\"nofollow ugc\">spamhaus.org license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>bl.spamcop.net \u003Ca href=\"https:\u002F\u002Fwww.spamcop.net\u002Ffom-serve\u002Fcache\u002F297.html\" rel=\"nofollow ugc\">spamcop.net license\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>b.barracudacentral.org \u003Ca href=\"https:\u002F\u002Fwww.barracuda.com\u002Fcompany\u002Flegal\u002Ftrust-center\u002Fdata-privacy\u002Fprivacy-policy\" rel=\"nofollow ugc\">barracudacentral.org privacy-policy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>dnsbl.dronebl.org \u003Ca href=\"https:\u002F\u002Fdronebl.org\u002Fdocs\u002Ffaq\" rel=\"nofollow ugc\">dronebl.org\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>all.spamrats.com \u003Ca href=\"https:\u002F\u002Fspamrats.com\u002Ftos.php\" rel=\"nofollow ugc\">spamrats.com tos\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>bl.ipv6.spameatingmonkey.net \u003Ca href=\"https:\u002F\u002Fspameatingmonkey.com\u002Ffaq\" rel=\"nofollow ugc\">spameatingmonkey.net\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Inspirations, links\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Nikolai Tschacher \u003Ca href=\"https:\u002F\u002Fincolumitas.com\u002Fpages\u002FBotOrNot\u002F\" rel=\"nofollow ugc\">incolumitas.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Antoine Vastel \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fantoinevastel\u002Ffpscanner\" rel=\"nofollow ugc\">fp-scanner\u003C\u002Fa>\u002F\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fantoinevastel\u002Ffp-collect\" rel=\"nofollow ugc\">fp-collect\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Niespodd \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fniespodd\u002Fbrowser-fingerprinting\" rel=\"nofollow ugc\">niespodd\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Thomas Breuss \u003Ca href=\"https:\u002F\u002Fgist.github.com\u002Ftbreuss\u002F74da96ff5f976ce770e6628badbd7dfc\" rel=\"nofollow ugc\">tbreuss\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Domain Name System-based blackhole list \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDomain_Name_System-based_blackhole_list\" rel=\"nofollow ugc\">wiki\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>dnsbl list \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FComparison_of_DNS_blacklists\" rel=\"nofollow ugc\">wiki\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","A trustworthy antispam plugin for Contact Form 7. Wave goodbye to spam and keep your inbox clean!",10000,81497,84,12,"2026-01-30T21:39:00.000Z","6.9.4","6.2","7.4",[80,19,81,82],"antispam","honeypot","security","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcf7-antispam.0.7.4.zip",98,2,"2025-07-16 00:00:00",{"slug":88,"name":89,"version":90,"author":91,"author_profile":92,"description":93,"short_description":94,"active_installs":95,"downloaded":96,"rating":97,"num_ratings":98,"last_updated":99,"tested_up_to":76,"requires_at_least":100,"requires_php":17,"tags":101,"homepage":17,"download_link":105,"security_score":97,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"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,100,4,"2025-12-11T21:50:00.000Z","4.0.1",[19,54,102,103,104],"geolocation-redirect","geotargeting","location-based-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fif-so-geolocation.1.5.zip",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":114,"downloaded":115,"rating":97,"num_ratings":98,"last_updated":116,"tested_up_to":117,"requires_at_least":118,"requires_php":17,"tags":119,"homepage":123,"download_link":124,"security_score":23,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"geolocation-detector-for-gravity-forms","Geolocation Detector for Gravity Forms","1.0.3","David Davis","https:\u002F\u002Fprofiles.wordpress.org\u002Fdcgws\u002F","\u003Cp>Provides a dynamic country detection for Gravity Forms . Requires GeoIP Detect Plugin.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>Provides a new Advanced Field named “Geolocation”\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Creates 5 new filters, ipcountry, ipprovince, ipcity, iplongitude, iplatitude, iptimezone\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Integrates with WordPress MU\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Important: Gravity Forms (https:\u002F\u002Fwww.gravityforms.com) and GeoIP Detection (https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgeoip-detect\u002F) should be installed and activated in order to use this plugin.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Help\u003C\u002Fh3>\n\u003Cp>Please contact at us http:\u002F\u002Fdcgws.com\u002Fcontact\u002F for any question\u003C\u002Fp>\n","Provides a dynamic country detection for Gravity Forms . Requires GeoIP Detect Plugin.",300,7034,"2019-08-10T08:38:00.000Z","5.2.24","4.0",[120,121,19,122],"country-ip","geodetection","gravityforms","http:\u002F\u002Fdcgws.com\u002Fresources\u002Fplugins-software\u002Fgeolocation-detector-for-gravity-forms\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeolocation-detector-for-gravity-forms.1.0.3.zip",{"slug":126,"name":127,"version":128,"author":129,"author_profile":130,"description":131,"short_description":132,"active_installs":114,"downloaded":133,"rating":134,"num_ratings":135,"last_updated":136,"tested_up_to":137,"requires_at_least":138,"requires_php":17,"tags":139,"homepage":144,"download_link":145,"security_score":146,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"wpengine-geoip","WP Engine GeoTarget","1.2.9","WP Engine","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpengine\u002F","\u003Cp>WP Engine GeoTarget integrates with the variables on your WP Engine site to display content catered to the visitor’s location. With the ability to access variables from as broad as country to as specific as latitude and longitude, your website can now display geographically relevant content.\u003C\u002Fp>\n\u003Ch4>Geo-Marketing\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Create marketing campaigns targeted only at certain locations.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Localization\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Redirect incoming traffic to content in the local language or currency.\u003C\u002Fli>\n\u003Cli>Businesses with local branches can direct customers to a relevant physical location or local microsite.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Ecommerce\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Filter out merchandise or services that are not available in a certain locale.\u003C\u002Fli>\n\u003Cli>Display country-specific shipping, tax, or sales information.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Legal Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Filter required legal notices from countries for whom those notices may not be relevant.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>* Please Note *\u003C\u002Fh4>\n\u003Cp>Customers on Premium and Enterprise plans can use this plugin at no additional cost. If you are on another plan type and would like to use GeoTarget on one of your sites, you can add it to your plan \u003Ca href=\"http:\u002F\u002Fwpengine.com\u002Fplans\u002F?utm_source=wpengine-geoip\" rel=\"nofollow ugc\">here\u003C\u002Fa>. This will not function outside of the WP Engine environment.\u003C\u002Fp>\n\u003Ch3>Location Variable Shortcodes\u003C\u002Fh3>\n\u003Cp>You can use any of the following location variable shortcodes to return the various geographic location the user is visiting your site from:\u003C\u002Fp>\n\u003Cp>1) Continent: \u003Ccode>[geoip-continent]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>2) Country: \u003Ccode>[geoip-country]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>3) Region: \u003Ccode>[geoip-region]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>In the US region will return States\u003C\u002Fli>\n\u003Cli>In Canada region will return Provinces\u003C\u002Fli>\n\u003Cli>Outside the US\u002FCA this will return a Region number. Please note region numbers are not unique between countries\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>4) City: \u003Ccode>[geoip-city]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>5) Postal Code: \u003Ccode>[geoip-postalcode]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>This variable is only available in the US due to limitations with the location data GeoTarget uses\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>6) Latitude: \u003Ccode>[geoip-latitude]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>7) Longitude: \u003Ccode>[geoip-longitude]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>8) Location: \u003Ccode>[geoip-location]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>Example\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>Hi, and welcome to [geoip-city]! The place to be in [geoip-region],[geoip-country].\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>A visitor from Austin, Texas would see the following:\u003Cbr \u002F>\n    Hi, and welcome to Austin! The place to be in TX, US.\u003C\u002Fp>\n\u003Ch3>Localized Content\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>[geoip-content country=\"US\"]Your US specific content goes here[\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The content shortcode allows you to hide or show specific content based on visitor geographies:\u003C\u002Fp>\n\u003Cp>Below are all the supported geography options, this allows to you SHOW content for only specific locations:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>continent\u003C\u002Fli>\n\u003Cli>country\u003C\u002Fli>\n\u003Cli>areacode\u003C\u002Fli>\n\u003Cli>region\u003C\u002Fli>\n\u003Cli>city\u003C\u002Fli>\n\u003Cli>postalcode\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Below are all the supported negative geography options, this allows to you HIDE content for only specific locations:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>not_continent\u003C\u002Fli>\n\u003Cli>not_country\u003C\u002Fli>\n\u003Cli>not_areacode\u003C\u002Fli>\n\u003Cli>not_region\u003C\u002Fli>\n\u003Cli>not_city\u003C\u002Fli>\n\u003Cli>not_postalcode\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Examples of the Content Shortcode\u003C\u002Fh4>\n\u003Cp>This will display “Content just for US visitors” strictly for visitors viewing from the United States.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content country=\"US\"] Content just for US visitors [\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This will display “Content just for everyone in Texas and California” strictly for visitors from Texas and California.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content region=\"TX, CA.\"] Content just for everyone in Texas and California [\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can mix and match geography and negative geography options to create verbose logic in a single shortcode:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content country=\"US\" not_city=\"Austin\"]Content for US visitors but not for visitors in Austin[\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Limitations\u003C\u002Fh4>\n\u003Cp>There is a single limitation in the logic that lets you filter content for multiple geographic areas.\u003C\u002Fp>\n\u003Cp>You can progressively limit the area that content is shown in. But once your content is hidden from an area, a subset of that area can’t be added back in.\u003C\u002Fp>\n\u003Cp>For example,\u003Cbr \u002F>\nIf I limit my content to Europe, then limit my content from Great Britain, I can’t go back and show it to London.\u003C\u002Fp>\n\u003Ch4>Creative Work Arounds\u003C\u002Fh4>\n\u003Ch3>Limit content to some regions of a country (or some cities of a state)\u003C\u002Fh3>\n\u003Cp>You want to show an offer for free shipping to every state in the US \u003Cem>but\u003C\u002Fem> Alaska and Hawaii. You may be inclined to write something like\u003C\u002Fp>\n\u003Cp>\u003Cstrong>BAD\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content country=\"US\" not_state=\"AK, HI\"]Lorem ipsum dolor sit amet[\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Instead, show it to all other 48 states\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GOOD\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content state=\"AL, AZ, AR, CA, CO, CT, DE, FL, GA, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY\"]Free shipping on all orders over $50![\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Duplicate location names\u003C\u002Fh3>\n\u003Cp>You want to show discount airfare on a flight to Paris, France. The content should show to all of the US and France, but not Paris itself.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>BAD\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content country=\"US, FR\" not_city=\"Paris\"]Fly to Paris for only $199![\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The problem here is that Paris, Texas will be hidden. The solution? Just have two geoip-content shortcodes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GOOD\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content country=\"FR\" not_city=\"Paris\"]Fly to Paris for only $199![\u002Fgeoip-content][geoip-content country=\"US\"]Fly to Paris for only $199![\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Adding an area into an omitted region\u003C\u002Fh3>\n\u003Cp>You want to show an ad written in Spanish to all of South America except for Brazil. Brasilia, however, has enough Spanish speakers that you want to include Brasilia.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>BAD\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content continent=\"SA\" not_country=\"BR\" city=\"Brasilia\"]Lorem ipsum dolor sit amet[\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>GOOD\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[geoip-content continent=\"SA\" not_country=\"BR\"]Venta de la Navidad en los adaptadores USB[\u002Fgeoip-content]\n\n\n\n[geoip-content city=\"Brasilia\"]Venta de la Navidad en los adaptadores USB[\u002Fgeoip-content]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Calculate distance between points\u003C\u002Fh3>\n\u003Cp>You have a utility function that will calculate the distance from your provided lat\u002Flng coordinate to the visitor’s location in either miles or kilometers. This can be useful for determining approximate distances, as results may be cached at the state or country level, depending on your configuration.\u003C\u002Fp>\n\u003Cp>Example use:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$latitude  = 30.268246;\n$longitude = -97.745992;\n$geo = WPEngine\\GeoIp::instance();\nif ( false !== $geo->distance_to( $latitude, $longitude ) ) {\n    $miles_to_wp_engine = $geo->distance_to( $latitude, $longitude );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Testing Parameters\u003C\u002Fh3>\n\u003Cp>You can use the following URL parameters to test how your localized content will appear to visitors from various geographic locations. You can add any of the parameters below to any URL of a page using the GeoTarget shortcodes or API calls:\u003C\u002Fp>\n\u003Cp>Spoof visitor from the state of Texas:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>yourdomain.com\u002F?geoip&region=TX\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Spoof visitor from the United States:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>yourdomain.com\u002F?geoip&country=US\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Spoof visitor from Austin, Texas\u003C\u002Fp>\n\u003Cpre>\u003Ccode>yourdomain.com\u002F?geoip&city=Austin\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Spoof visitor from the U.S. zip code 78701:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>yourdomain.com\u002F?geoip&zip=78701\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Please note: full page redirects and TLD redirects still need to be implemented with the necessary API calls.\u003C\u002Fp>\n","Create a personalized user experience based on location.",74449,72,15,"2025-02-03T12:20:00.000Z","6.7.5","3.0.1",[19,140,141,142,143],"geotarget","localization","wpe","wpengine","https:\u002F\u002Fwpengine.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpengine-geoip.1.2.9.zip",92,{"attackSurface":148,"codeSignals":154,"taintFlows":161,"riskAssessment":162,"analyzedAt":165},{"hooks":149,"ajaxHandlers":150,"restRoutes":151,"shortcodes":152,"cronEvents":153,"entryPointCount":24,"unprotectedCount":24},[],[],[],[],[],{"dangerousFunctions":155,"sqlUsage":156,"outputEscaping":158,"fileOperations":24,"externalRequests":24,"nonceChecks":24,"capabilityChecks":24,"bundledLibraries":160},[],{"prepared":24,"raw":24,"locations":157},[],{"escaped":24,"rawEcho":24,"locations":159},[],[],[],{"summary":163,"deductions":164},"The \"whats-my-ip\" plugin version 0.5.2 exhibits a remarkably clean static analysis report.  There are no identified entry points such as AJAX handlers, REST API routes, shortcodes, or cron events, which significantly reduces the potential attack surface.  Furthermore, the code demonstrates excellent security practices by utilizing prepared statements for all SQL queries and ensuring all output is properly escaped.  The absence of dangerous functions, file operations, external HTTP requests, and bundled libraries also contributes to a strong security posture.  The plugin's vulnerability history is also completely clear, with no known CVEs or past vulnerabilities, indicating a history of secure development and maintenance.\n\nWhile the lack of identified vulnerabilities and entry points is highly positive, the complete absence of nonce checks and capability checks across any potential (though currently non-existent) entry points is a theoretical weakness. If future versions were to introduce any user-facing functionality, the lack of these fundamental WordPress security measures would immediately become a critical concern. However, based solely on the provided data for version 0.5.2, the plugin appears to be exceptionally secure with no actionable security risks.",[],"2026-03-16T23:42:22.669Z",{"wat":167,"direct":176},{"assetPaths":168,"generatorPatterns":171,"scriptPaths":172,"versionParams":173},[169,170],"\u002Fwp-content\u002Fplugins\u002Fwhats-my-ip\u002Fresources\u002Fcss\u002Fwhats-my-ip.css","\u002Fwp-content\u002Fplugins\u002Fwhats-my-ip\u002Fresources\u002Fjs\u002Fwhats-my-ip.js",[],[170],[174,175],"whats-my-ip\u002Fresources\u002Fcss\u002Fwhats-my-ip.css?ver=","whats-my-ip\u002Fresources\u002Fjs\u002Fwhats-my-ip.js?ver=",{"cssClasses":177,"htmlComments":178,"htmlAttributes":179,"restEndpoints":180,"jsGlobals":181,"shortcodeOutput":182},[],[],[],[],[],[183,184],"\u003C!--WhatsMyIP START-->","\u003C!--WhatsMyIP END-->"]