[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f7fRyEYjRh8YLON_fuYh4eSEgAbL-xdydNX4nT8kkWKE":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":39,"analysis":140,"fingerprints":265},"wpml-country-detector","WPML Country Detector","0.2","Ayebare Mucunguzi Brooks","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrooksx\u002F","\u003Cp>This plugin is a WPML addon that detects the user country and shows his country flag next to the available languages.\u003Cbr \u002F>\nYou can also redirect visitors based on visitor country if user locale translation exists. E.g if you have a language with locale code\u003Cbr \u002F>\nen_US, the code can be devided into the language part ‘en’ and the geographical part ‘US’.\u003Cbr \u002F>\nThis plugin has an option to redirect according to the geographical parts of the locale codes of the languages served on your WPML translated site.\u003C\u002Fp>\n\u003Cp>The Native WPML language switcher CSS for the footer and widget are used to preserve brand consistency.\u003C\u002Fp>\n\u003Ch4>How usefull is this?\u003C\u002Fh4>\n\u003Cp>To get a clear picture of how usefull this is, see the language switcher used by \u003Ca href=\"http:\u002F\u002Fpaypal.com\" title=\"paypal language switcher\" rel=\"nofollow ugc\">pay pal\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>How to use it\u003C\u002Fh4>\n\u003Cp>There are two ways of showing the langauge switcher.\u003Cbr \u002F>\n1- Using the widget (available in wp-admin>appearance>widgets)\u003Cbr \u002F>\n2- Enabling the WPML Country Detector  switcher in the  footer from the settings in WPML>languages\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fshop.zanto.org\u002Fshop\u002Fwpml-country-detector\u002F\" rel=\"nofollow ugc\">learn more\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Quick Support\u003C\u002Fh4>\n\u003Cp>for quick support, submit a support ticket \u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fsupport\" rel=\"nofollow ugc\">here\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Want More?\u003C\u002Fh4>\n\u003Cp>To keep up to date with the latest WordPress translation, localization and Internationalization news, subscribe to our blog at \u003Ca href=\"http:\u002F\u002Fzanto.org\" title=\"WordPress translation, Internationalization and localization\" rel=\"nofollow ugc\"> Zanto\u003C\u002Fa>\u003Cbr \u002F>\nor follow Zanto on \u003Ca title=\"multilingual plugin developement\" href=\"http:\u002F\u002Ftwitter.com\u002Fwpzanto\" rel=\"nofollow ugc\">twitter\u003C\u002Fa> and influence what gets developed next!\u003Cbr \u002F>\nFor more free and premium multilingual plugins for WPML, and  Zanto visit our\u003Ca href=\"http:\u002F\u002Fshop.zanto.org\" title=\"wordpress multilingual plugins\" rel=\"nofollow ugc\"> Multilingual plugins page\u003C\u002Fa>. all GPL\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Language Switcher Widget that shows user country flag\u003C\u002Fli>\n\u003Cli>Footer language Swicher with user country flag and available langauges\u003C\u002Fli>\n\u003Cli>User redirection to the appropriate language locale based on the user country\u003C\u002Fli>\n\u003C\u002Ful>\n","WPML Addon for detecting the user country and show his country flag in the language switcher. Redirect user to his country page",90,6553,100,1,"2014-09-08T13:47:00.000Z","4.0.38","3.1","",[20,21,22,23,24],"country-detector","geo","maxmind","translation","wpml","http:\u002F\u002Fshop.zanto.org","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpml-country-detector.0.2.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":27,"computed_at":38},"brooksx",8,340,87,30,"2026-04-04T15:38:01.794Z",[40,53,78,99,119],{"slug":41,"name":42,"version":43,"author":7,"author_profile":8,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":49,"requires_at_least":17,"requires_php":18,"tags":50,"homepage":25,"download_link":52,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"zanto-country-detector","Zanto Country Detector","0.1","\u003Cp>This plugin is a Zanto addon that detects the user country and shows his country flag next to the available languages.\u003Cbr \u002F>\nYou can also redirect visitors based on visitor country if user locale translation exists. E.g if you have a language with locale code\u003Cbr \u002F>\nen_US, the code can be devided into the language part ‘en’ and the geographical part ‘US’.\u003Cbr \u002F>\nThis plugin has an option to redirect according to the geographical parts of the locale codes of the languages served on your ZANTO translated site.\u003C\u002Fp>\n\u003Ch4>How usefull is this?\u003C\u002Fh4>\n\u003Cp>Since flags do not equate to language and several countries share the same national language but different flags, the solution is to\u003Cbr \u002F>\nshow the country flag of the user next to the languages. A good example can be seen with the popular  \u003Ca href=\"http:\u002F\u002Fpaypal.com\" title=\"paypal language switcher\" rel=\"nofollow ugc\">pay pal\u003C\u002Fa> website.\u003C\u002Fp>\n\u003Ch4>Quick Support\u003C\u002Fh4>\n\u003Cp>for support, submit a support ticket \u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fsupport\" rel=\"nofollow ugc\">here\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Want More?\u003C\u002Fh4>\n\u003Cp>To keep up to date with the latest WordPress translation, localization and Internationalization news, subscribe to our blog at \u003Ca href=\"http:\u002F\u002Fzanto.org\" title=\"WordPress translation, Internationalization and localization\" rel=\"nofollow ugc\"> Zanto\u003C\u002Fa>\u003Cbr \u002F>\nor follow Zanto on \u003Ca title=\"multilingual plugin developement\" href=\"http:\u002F\u002Ftwitter.com\u002Fwpzanto\" rel=\"nofollow ugc\">twitter\u003C\u002Fa> and influence what gets developed next!\u003Cbr \u002F>\nFor more free and premium multilingual plugins from Zanto, visit our\u003Ca href=\"http:\u002F\u002Fshop.zanto.org\" title=\"wordpress multilingual plugins\" rel=\"nofollow ugc\"> Multilingual plugins page\u003C\u002Fa>. all GPL\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Language Switcher Widget that shows user country flag alongside languages either in a drop down format or horizontal format\u003C\u002Fli>\n\u003Cli>Footer language Swicher with user country flag alongside the available langauges\u003C\u002Fli>\n\u003Cli>User redirection to the appropriate language locale based on the user country\u003C\u002Fli>\n\u003C\u002Ful>\n","Zanto Addon for detecting the user country and show his country flag in the language switcher. Redirect user to his country page",10,1615,"2014-09-15T10:00:00.000Z","3.9.40",[20,21,22,23,51],"zanto","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fzanto-country-detector.0.1.zip",{"slug":54,"name":55,"version":56,"author":57,"author_profile":58,"description":59,"short_description":60,"active_installs":61,"downloaded":62,"rating":63,"num_ratings":64,"last_updated":65,"tested_up_to":66,"requires_at_least":67,"requires_php":68,"tags":69,"homepage":74,"download_link":75,"security_score":76,"vuln_count":14,"unpatched_count":28,"last_vuln_date":77,"fetched_at":30},"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",[70,71,72,73,22],"geoip","geolocation","ipstack","locator","http:\u002F\u002Fwww.yellowtree.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeoip-detect.5.6.1.zip",99,"2025-09-22 00:00:00",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":66,"requires_at_least":91,"requires_php":92,"tags":93,"homepage":97,"download_link":98,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"events-manager-wpml","Events Manager and WPML Compatibility","2.0.4","Marcus (aka @msykes)","https:\u002F\u002Fprofiles.wordpress.org\u002Fnetweblogic\u002F","\u003Cp>This plugin helps make \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fevents-manager\u002F\" rel=\"ugc\">Events Manager\u003C\u002Fa> and \u003Ca href=\"http:\u002F\u002Fwpml.org\" rel=\"nofollow ugc\">WPML\u003C\u002Fa> work better together by allowing translation of all event-related features:\u003C\u002Fp>\n\u003Cp>** Version 2.0 is a major revamp that fixes \u003Cem>all known issues\u003C\u002Fem>, nuances and limitiation. 2.0 enables \u003Cem>full compatiblity\u003C\u002Fem> with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fevents-manager\u002F\" rel=\"ugc\">Events Manager\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Feventsmanagerpro.com\" rel=\"nofollow ugc\">Events Manager Pro Add-ons\u003C\u002Fa> **\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Detects translated pages of specific EM pages (assigned in Events > Settings > Pages) and displays relevant language content\u003C\u002Fli>\n\u003Cli>Searching locations and events within the context of the current language being viewed.\u003C\u002Fli>\n\u003Cli>Recurring events can be created in multiple languages, recurrence translations are correctly created.\u003C\u002Fli>\n\u003Cli>Event translations will share relevant information across all translations, including\n\u003Cul>\n\u003Cli>Event Times\u003C\u002Fli>\n\u003Cli>Location Information\u003C\u002Fli>\n\u003Cli>If translations for the location exist, translated events will show\u002Flink to location of the same language, if not the original location translation.\u003C\u002Fli>\n\u003Cli>Bookings and Booking Forms\u003C\u002Fli>\n\u003Cli>If you delete an event that is the originally translated event, booking and other meta info is transferred to default language or next available language translation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Location address information can be translated, whilst sharing coordinate, country\u002Fzip information accross translations.\u003C\u002Fli>\n\u003Cli>Event-related text can be translated for each language including:\n\u003Cul>\n\u003Cli>Custom texts, emails templates and formats on the settings page.\u003C\u002Fli>\n\u003Cli>Booking and attendee custom forms (available in Pro)\u003C\u002Fli>\n\u003Cli>Custom event and gateway emails (available in Pro)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>MultiSite cross-site support, including showing events from other blogs in your network when EM Global Tables Mode is enabled.\u003C\u002Fli>\n\u003Cli>Displaying untranslated items in lists or hiding them, according to WPML settings.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Special Installation Steps\u003C\u002Fh4>\n\u003Cp>Please ensure that WPML 4.2 and EM 5.6.7 or higher are installed BEFORE updating or activating this plugin.\u003C\u002Fp>\n\u003Cp>When setting up EM and WPML, you should create translated versions of the event, location, category, tag, etc. pages assigned in Events > Settings > Pages of your admin area. Duplicating them using WPML is enough.\u003C\u002Fp>\n\u003Cp>Given the flexibiltiy of both plugins, there is an huge number of possible setting\u002Flanguage combinations to test, and despite our rigorous testing it is impossible to test every setting combination and scenario. To the best of our knowledge, we have achieved 100% compatibility, but should you come across on your setup and we’ll do our best to fix them as time permits.\u003C\u002Fp>\n","Integrates the Events Manager and WPML plugins together to provide a smoother multilingual experience (Requires Events Manager and WPML)",1000,38031,56,13,"2025-04-23T10:15:00.000Z","3.3","5.2",[94,95,96,23,24],"events","languages","multilingual","https:\u002F\u002Fwp-events-plugin.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fevents-manager-wpml.2.0.4.zip",{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":107,"downloaded":108,"rating":13,"num_ratings":109,"last_updated":110,"tested_up_to":111,"requires_at_least":112,"requires_php":18,"tags":113,"homepage":117,"download_link":118,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wpml-shortcodes","WPML Shortcodes","1.2.6","Mirco Babini","https:\u002F\u002Fprofiles.wordpress.org\u002Fmirkolofio\u002F","\u003Cp>Adds the wpml__ and wpml_e functions to your theme and the wpml__ shortcode to your WordPress website. Make your WordPress \u003Cstrong>full WPML ready\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003C?php wpml__( $text, $context ); ?>\n\u003C?php wpml_e( $text, $context ); ?>\u003C\u002Fpre>\n\u003Cp>Similarly to the behaviour of the __, _e functions, you must provide a string to make translateable and a context.\u003Cbr \u002F>\nThat’s it; just provide translations from the WPML > String Translations admin panel.\u003C\u002Fp>\n\u003Cp>Check how to use the shortcode below.\u003C\u002Fp>\n\u003Ch4>Usage (via code)\u003C\u002Fh4>\n\u003Cpre>\u003Ch1>\u003C?php echo wpml__( 'Title', 'wpmlshortcodes' ); ?>\u003C\u002Fh1>\n\u003Ch2>\u003C?php wpml_e( 'Subtitle', 'wpmlshortcodes' ); ?>\u003C\u002Fh2>\u003C\u002Fpre>\n\u003Ch4>Usage (via shortcode)\u003C\u002Fh4>\n\u003Cpre>\u003Ch1>[wpml__ context=wpmlshortcodes]Title[\u002Fwpml__]\u003C\u002Fh1>\n\u003Ch2>[wpml__ context=wpmlshortcodes]Subtitle[\u002Fwpml__]\u003C\u002Fh2>\u003C\u002Fpre>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>NEWS! WPML Translate (+ shortcode)\u003C\u002Fstrong>\u003Cbr \u002F>\n  Adds the wpml_if (ex wpml_translate) shortcode to your WPML suite. You can also use the wpml_e__if_language( $content, $lang ) in your php code.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>Usage (via code)\u003C\u002Fh4>\n\u003Cpre>\u003Cp>\u003C?php\nwpml_e__if_language( 'Text', 'en' );\nwpml_e__if_language( 'Testo', 'it' );\n?>\u003C\u002Fp>\u003C\u002Fpre>\n\u003Ch4>Usage (via shortcode)\u003C\u002Fh4>\n\u003Cpre>[wpml_if lang='en']Text[\u002Fwpml_if][wpml_if lang='it']Testo[\u002Fwpml_if]\u003C\u002Fpre>\n\u003Cp>It also supports backward compatibility for wpml_translate and wpml_language from WPML Translate Shortcode (deprecated plugin);\u003C\u002Fp>\n\u003Ch4>WPML Translate Shortcode > WPML Shortcodes\u003C\u002Fh4>\n\u003Cp>Welcome to the new WPML Shortcodes. This plugin is the new WPML Translate Shortcode, became a full-translation suite.\u003C\u002Fp>\n\u003Cp>Of course we still support WPML Translate Shortcode, with a new shortcode (1.2.4+): wpml_if (see usage above).\u003Cbr \u002F>\nAlso, we provide full backward compatibility (yes, you can still use wpml_translate or wpml_language shortcodes) on 1.2.6+.\u003C\u002Fp>\n\u003Ch4>Contribute\u003C\u002Fh4>\n\u003Cp>Pull requests on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmircobabini\u002Fwpml-shortcodes\" rel=\"nofollow ugc\">github.com\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Author: \u003Ca href=\"http:\u002F\u002Fgithub.com\u002Fmircobabini\" rel=\"nofollow ugc\">Mirco Babini\u003C\u002Fa>, \u003Cstrong>Web Developer and Mobile App Developer; WordPress Consultant\u003C\u002Fstrong>.\u003C\u002Fp>\n","Adds shortcodes to the WPML environment, like wpml__, wpml_e and more. Makes WP full WPML ready.",900,9721,5,"2016-03-05T15:08:00.000Z","4.4.34","2.8",[114,115,23,116,24],"language","translate","translator","http:\u002F\u002Fgithub.com\u002Fmircobabini\u002Fwpml-shortcodes","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpml-shortcodes.1.2.6.zip",{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":13,"num_ratings":14,"last_updated":129,"tested_up_to":130,"requires_at_least":131,"requires_php":132,"tags":133,"homepage":138,"download_link":139,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"quform-wpml","Quform WPML","1.0.1","ThemeCatcher","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemecatcher\u002F","\u003Cp>With this add-on, a form can be translated into multiple languages using WPML. Gone are the days of having duplicate forms for each language!\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cp>Translate unlimited forms into other languages through WPML.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Deep integration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>All user-facing strings are fully translatable, including all form settings, fields settings and validation error messages. Emails sent to users can also be translated, along with the confirmation (success) message shown after the form is submitted.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Advanced WPML compatibility\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Compatible with both the String Translation workflow, and the Advanced Translation Editor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Datepicker\u002Ftimepicker support\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Automatically converts the locale of the datepickers and timepickers into the current WPML language. The dates and times will be automatically formatted according to regional standards.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Note: this plugin is a free add-on for the \u003Ca href=\"https:\u002F\u002Fwww.quform.com\u002F\" rel=\"nofollow ugc\">Quform Premium WordPress Form Builder plugin\u003C\u002Fa>. For this plugin to function, Quform version 2.16.0 or later, WPML version 3.2 or later, and the WPML String Translation plugin must be installed.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","Translate Quform forms into multiple languages using WPML.",600,6090,"2025-12-01T11:00:00.000Z","6.9.4","4.6","5.2.4",[134,135,136,137,24],"form-builder","forms","quform","translations","https:\u002F\u002Fwww.quform.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquform-wpml.1.0.1.zip",{"attackSurface":141,"codeSignals":204,"taintFlows":256,"riskAssessment":257,"analyzedAt":264},{"hooks":142,"ajaxHandlers":196,"restRoutes":201,"shortcodes":202,"cronEvents":203,"entryPointCount":14,"unprotectedCount":28},[143,149,151,156,161,163,167,172,175,180,185,188,192],{"type":144,"name":145,"callback":146,"file":147,"line":148},"action","wp_print_scripts","scripts","inc\\country-redirect.php",9,{"type":144,"name":150,"callback":150,"file":147,"line":64},"init",{"type":144,"name":152,"callback":153,"file":154,"line":155},"admin_init","register_settings","wcd-plugin-settings.class.php",11,{"type":144,"name":157,"callback":158,"file":159,"line":160},"admin_enqueue_scripts","wcd_add_admin_JS","wpml-country-detector.php",53,{"type":144,"name":150,"callback":150,"file":159,"line":162},54,{"type":144,"name":164,"callback":165,"file":159,"line":166},"plugins_loaded","wcd_add_textdomain",61,{"type":168,"name":169,"callback":170,"priority":46,"file":159,"line":171},"filter","plugin_row_meta","plugin_support_link",62,{"type":144,"name":152,"callback":173,"priority":109,"file":159,"line":174},"wcd_register_settings",65,{"type":144,"name":176,"callback":177,"priority":178,"file":159,"line":179},"wp_enqueue_scripts","remove_unwanted_scripts",15,68,{"type":144,"name":181,"callback":182,"priority":183,"file":159,"line":184},"wp_footer","language_selector_footer",19,93,{"type":144,"name":186,"callback":187,"file":159,"line":63},"wp_head","language_selector_footer_style",{"type":144,"name":189,"callback":190,"file":159,"line":191},"wcdp_lang_switcher","lang_switcher",96,{"type":144,"name":193,"callback":194,"file":159,"line":195},"widgets_init","wcdp_widgets_init",419,[197],{"action":198,"nopriv":199,"callback":198,"hasNonce":200,"hasCapCheck":199,"file":154,"line":178},"wcd_store_ajax",false,true,[],[],[],{"dangerousFunctions":205,"sqlUsage":206,"outputEscaping":208,"fileOperations":28,"externalRequests":28,"nonceChecks":14,"capabilityChecks":28,"bundledLibraries":255},[],{"prepared":28,"raw":28,"locations":207},[],{"escaped":209,"rawEcho":210,"locations":211},4,25,[212,214,216,218,219,220,222,224,226,227,229,231,233,235,237,238,239,241,243,245,247,248,249,251,253],{"file":154,"line":166,"context":213},"raw output",{"file":159,"line":215,"context":213},162,{"file":159,"line":217,"context":213},164,{"file":159,"line":217,"context":213},{"file":159,"line":217,"context":213},{"file":159,"line":221,"context":213},183,{"file":159,"line":223,"context":213},192,{"file":159,"line":225,"context":213},193,{"file":159,"line":225,"context":213},{"file":159,"line":228,"context":213},207,{"file":159,"line":230,"context":213},243,{"file":159,"line":232,"context":213},247,{"file":159,"line":234,"context":213},248,{"file":159,"line":236,"context":213},254,{"file":159,"line":236,"context":213},{"file":159,"line":236,"context":213},{"file":159,"line":240,"context":213},300,{"file":159,"line":242,"context":213},309,{"file":159,"line":244,"context":213},328,{"file":159,"line":246,"context":213},389,{"file":159,"line":246,"context":213},{"file":159,"line":246,"context":213},{"file":159,"line":250,"context":213},402,{"file":159,"line":252,"context":213},405,{"file":159,"line":254,"context":213},410,[],[],{"summary":258,"deductions":259},"The \"wpml-country-detector\" plugin v0.2 exhibits a generally good security posture based on the provided static analysis. The absence of dangerous functions, file operations, external HTTP requests, and the exclusive use of prepared statements for SQL queries are strong indicators of secure coding practices. The presence of a nonce check on the single AJAX handler, while positive, is slightly undermined by the lack of explicit capability checks, meaning any authenticated user could potentially trigger the AJAX action without proper authorization.\n\nThe static analysis reveals a concern regarding output escaping, with only 14% of outputs being properly escaped. This presents a significant Cross-Site Scripting (XSS) risk, as untrusted data rendered on the frontend could be manipulated to inject malicious scripts. Despite the lack of reported vulnerabilities in its history, this unaddressed output escaping issue warrants careful consideration. The plugin's attack surface is minimal, with only one AJAX handler, and importantly, it appears to require authentication to be triggered, which mitigates some risks.\n\nIn conclusion, while the plugin demonstrates strengths in areas like SQL security and the absence of critical taint flows, the low rate of proper output escaping is a notable weakness that could lead to XSS vulnerabilities. The lack of capability checks on the AJAX handler also represents a potential authorization bypass. The clean vulnerability history is a positive sign, suggesting past development has been secure, but it does not negate the risks identified in the current code.",[260,262],{"reason":261,"points":34},"Low percentage of properly escaped output",{"reason":263,"points":109},"AJAX handler without capability checks","2026-03-16T21:21:52.398Z",{"wat":266,"direct":274},{"assetPaths":267,"generatorPatterns":270,"scriptPaths":271,"versionParams":272},[268,269],"\u002Fwp-content\u002Fplugins\u002Fwpml-country-detector\u002Fjs\u002Fstgscript.js","\u002Fwp-content\u002Fplugins\u002Fwpml-country-detector\u002Finc\u002Fcountry-redirect.php",[],[268],[273],"wpml-country-detector\u002Fjs\u002Fstgscript.js?ver=",{"cssClasses":275,"htmlComments":277,"htmlAttributes":278,"restEndpoints":280,"jsGlobals":281,"shortcodeOutput":364},[276],"iclflag",[],[279],"id=\"lang_sel\"",[],[282,283,284,285,189,286,287,288,289,290,291,292,293,164,294,152,295,296,297,177,170,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,158,150,165,173,317,176,318,319,320,321,322,190,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,276,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,181,182,186,187,189],"wcdp","WCD_Plugin_Base","wcd_on_activate_callback","wcd_on_deactivate_callback","geoip_open","geoip_country_code_by_addr","geoip_country_name_by_addr","geoip_close","get_option","add_action","register_activation_hook","register_deactivation_hook","add_filter","wp_enqueue_script","wp_register_script","plugins_url","isset","array_key_exists","explode","trim","filter_var","class_exists","include","global","dirname","basename","define","WCDP_VERSION","WCDP_PATH","WCDP_PATH_INCLUDES","WCDP_FOLDER","WCDP_URL","WCDP_URL_INCLUDES","sitepress_settings","geo_data","wcd_setting","require_once","wpml-browser-redirect","wpml_country_detector","Zanto","Addons","widget_list","sitepress","get_ls_languages","active_languages","main_language","unset","w_this_lang","icl_language_switcher","icl_lang_sel_type","list","display:none","icl_rtl","lang_sel_sel","icl-","get_flag_url","country_name","icl_lso_native_lang","native_name","icl_lso_display_lang","translated_name","lang_native","lang_translated","lang_native_hidden","lang_translated_hidden","icl_disp_language","ie_ver","empty","else","ie_ver > 6","table","tr","td","ul","li","language_code","rel=\"alternate\"","hreflang","apply_filters","WPML_filter_link","url","lang",[]]