[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fatPplmZyzcbxYl978_Va35zL_9F5viKizV_PvWZnb-4":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":15,"tags":16,"homepage":22,"download_link":23,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":36,"analysis":153,"fingerprints":440},"team-manager-unified","Team Manager Unified","1.0.0","polyxgo","https:\u002F\u002Fprofiles.wordpress.org\u002Fsanddesert88\u002F","\u003Cp>Manage branch, department, position, and staff information. Supports displaying employee details, department structure, and branches. Automatically supports schema.org, including both Microdata and LD-JSON, and more.\u003C\u002Fp>\n\u003Cp>Thank you for your interest and use of Team Manager Unified plugin! Feedback, suggestions, and reviews are motivation to keep improving, integrating, and developing new features. If you need help with conflict resolution, feature adjustments, or have new feature ideas, feel free to share your thoughts with me!\u003C\u002Fp>\n\u003Ch3>Core Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Create and manage branch and office lists, including contact details and addresses.\u003C\u002Fli>\n\u003Cli>Create and manage department lists by branch or office.\u003C\u002Fli>\n\u003Cli>Create and manage position and role lists by department.\u003C\u002Fli>\n\u003Cli>Create and manage staff lists by department, including contact info, phone, email, socials, etc.\u003C\u002Fli>\n\u003Cli>Display staff information list.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Upcoming Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Templates for displaying profiles, staff information, and related articles on site.\u003C\u002Fli>\n\u003Cli>Support for displaying organizational charts and staff structure by branch and department.\u003C\u002Fli>\n\u003Cli>Display department-specific staff charts, allowing targeted personnel display on relevant landing pages.\u003C\u002Fli>\n\u003Cli>Support for assigning diverse display templates, showcasing organizational structure and company professionalism.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support, please visit \u003Ca href=\"https:\u002F\u002Fwikipoly.com\u002Fen\u002Fteam-manager-unified\" rel=\"nofollow ugc\">https:\u002F\u002Fwikipoly.com\u002Fen\u002Fteam-manager-unified\u003C\u002Fa>\u003C\u002Fp>\n","Manage branch, department, position, and staff information.",0,347,"2025-04-20T12:25:00.000Z","6.8.5","",[17,18,19,20,21],"branch","department","location","staff","team-manager","https:\u002F\u002Fpolyxgo.com\u002Fen\u002Fteam-manager-unified","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fteam-manager-unified.1.0.0.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":29,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":31,"avg_security_score":32,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"sanddesert88",6,170,97,30,92,"2026-04-04T05:31:05.237Z",[37,59,79,104,129],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":15,"short_description":43,"active_installs":44,"downloaded":45,"rating":24,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":15,"requires_php":49,"tags":50,"homepage":56,"download_link":57,"security_score":58,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"locatorlte","LocatorLTE – Premium Store Locator","1.3","themegeekio","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemegeekio\u002F","Easiest and Fastest Map plugin ever",10,1551,2,"2018-04-15T17:09:00.000Z","4.9.29","5.6",[51,52,53,54,55],"branch-locator","listing","location-listing","locator","store-locator","http:\u002F\u002Fwww.themegeek.io","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flocatorlte.zip",85,{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":44,"downloaded":67,"rating":11,"num_ratings":11,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":77,"download_link":78,"security_score":24,"vuln_count":11,"unpatched_count":11,"last_vuln_date":25,"fetched_at":26},"multi-branch-for-woocommerce","Multi Branch for WooCommerce","1.0.9","Condless","https:\u002F\u002Fprofiles.wordpress.org\u002Fcondless\u002F","\u003Cp>WooCommerce plugin for configuring store with multiple branches.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fen.condless.com\u002Fmulti-branch-for-woocommerce\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fen.condless.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">Contact\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>How To Use\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Plugin settings: Choose the Shipping Methods Users and the Branches Shipping Methods\u003C\u002Fli>\n\u003Cli>Product edit screen (Multi Branch tab): Insert the Shipping Methods instance id’s which the product can be provided by\u003C\u002Fli>\n\u003Cli>Branches shortcode: Embed the [mbw_branches] shortcode in your header to allow the customer to select his branch\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>The customer select his branch before shopping\u003C\u002Fli>\n\u003Cli>Only the products which can be provided by the shipping methods of the selected branch are displayed\u003C\u002Fli>\n\u003Cli>On order creation the new order notification will be sent to the relevant Shipping Methods Users and only them will be able the see it on the orders screen\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Conditional Content\u003C\u002Fstrong>: Display content per branch using the mbw-restrict-branch-{branch_id} class\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Add to cart Notice\u003C\u002Fstrong>: Notice will appear if the customer add to cart product which can not be provided by the selected branch\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Checkout Validation\u003C\u002Fstrong>: Notice will appear if the cart contains items which can not be provided by the selected shipping method\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Orders manager Role\u003C\u002Fstrong>: Assign the orders manager role to users which should be able only to edit orders in the store\u003C\u002Fli>\n\u003C\u002Ful>\n","WooCommerce plugin for configuring store with multiple branches.",2013,"2025-12-23T07:30:00.000Z","6.9.4","5.2","7.0",[73,74,75,76],"branches","locations","stores","vendors","https:\u002F\u002Fen.condless.com\u002Fmulti-branch-for-woocommerce\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmulti-branch-for-woocommerce.1.0.9.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":89,"num_ratings":90,"last_updated":91,"tested_up_to":69,"requires_at_least":49,"requires_php":92,"tags":93,"homepage":99,"download_link":100,"security_score":101,"vuln_count":102,"unpatched_count":11,"last_vuln_date":103,"fetched_at":26},"wp-slimstat","SlimStat Analytics","5.4.1","VeronaLabs","https:\u002F\u002Fprofiles.wordpress.org\u002Fveronalabs\u002F","\u003Cp>Track returning customers and registered users, monitor Javascript events, detect intrusions, analyze email campaigns. Thousands of WordPress sites are already using it.\u003C\u002Fp>\n\u003Ch4>Main Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Real-Time Access Log\u003C\u002Fstrong>: measure server latency, track page events, keep an eye on your bounce rate and much more.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcodes\u003C\u002Fstrong>: display reports in widgets or directly in posts and pages.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customize Reports\u003C\u002Fstrong>: Customize all pages—Real-time, Overview, Audience, Site Analysis, and Traffic Sources—to fit your needs easily!\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GDPR\u003C\u002Fstrong>: fully compliant with GDPR European law. Integrates seamlessly with popular Consent Management Platforms (WP Consent API, Real Cookie Banner).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Filters\u003C\u002Fstrong>: exclude users from statistics collection based on various criteria, including user roles, common robots, IP subnets, admin pages, country, etc.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Export to Excel\u003C\u002Fstrong>: download your reports as CSV files, generate user heatmaps or get daily emails right in your mailbox (via Pro).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cache\u003C\u002Fstrong>: compatible with W3 Total Cache, WP SuperCache, CloudFlare and most caching plugins.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy\u003C\u002Fstrong>: hash IP addresses to protect your users’ privacy.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Geolocation\u003C\u002Fstrong>: identify your visitors by city and country, browser type and operating system (courtesy of \u003Ca href=\"https:\u002F\u002Fwww.maxmind.com\u002F\" rel=\"nofollow ugc\">MaxMind\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fbrowscap.org\" rel=\"nofollow ugc\">Browscap\u003C\u002Fa>).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>World Map\u003C\u002Fstrong>: see where your visitors are coming from, even on your mobile device (courtesy of \u003Ca href=\"https:\u002F\u002Fwww.ammap.com\u002F\" rel=\"nofollow ugc\">amMap\u003C\u002Fa>).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro Pack Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Network Analytics\u003C\u002Fstrong>: Enable a network-wide view of your reports and settings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email Reports\u003C\u002Fstrong>: Receive your reports directly in your mailbox.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Export to Excel\u003C\u002Fstrong>: Download your reports as CSV files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Heatmap\u003C\u002Fstrong>: Display a heatmap layer of the most clicked areas on your website.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User Overview\u003C\u002Fstrong>: Monitor your registered users by tracking their activities and time on site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>MaxMind Integration\u003C\u002Fstrong>: Connect to MaxMind’s Geolocation API to retrieve detailed information about your visitors.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom DB\u003C\u002Fstrong>: Use an external database to store all the information about your visitors.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extended Overview\u003C\u002Fstrong>: Add custom columns to the User Overview widget and export file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>WordPress 5.6+\u003C\u002Fli>\n\u003Cli>PHP 7.4+\u003C\u002Fli>\n\u003Cli>MySQL 5.0.3+\u003C\u002Fli>\n\u003Cli>At least 5 MB of free web space (240 MB if you plan on using the external libraries for geolocation and browser detection)\u003C\u002Fli>\n\u003Cli>At least 10 MB of free DB space\u003C\u002Fli>\n\u003Cli>At least 32 Mb of free PHP memory for the tracker (peak memory usage)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Please note\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>If you decide to uninstall Slimstat Analytics, all the stats will be \u003Cstrong>PERMANENTLY\u003C\u002Fstrong> deleted from your database. Make sure to setup a database backup (wp_slim_*) to avoid losing your data.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Report Bugs\u003C\u002Fh4>\n\u003Cp>Having trouble with a bug? Please \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-slimstat\u002Fwp-slimstat\u002Fissues\u002Fnew\" rel=\"nofollow ugc\">create an issue\u003C\u002Fa> on GitHub. Kindly note that \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwp-slimstat\u002Fwp-slimstat\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> is exclusively for bug reports; other inquiries will be closed.\u003C\u002Fp>\n\u003Cp>For security vulnerabilities, please report them through the \u003Ca href=\"https:\u002F\u002Fpatchstack.com\u002Fdatabase\u002Fwordpress\u002Fplugin\u002Fwp-slimstat\u002Fvdp\" rel=\"nofollow ugc\">Patchstack Vulnerability Disclosure Program\u003C\u002Fa>. The Patchstack team will validate, triage, and handle any security issues.\u003C\u002Fp>\n","The leading web analytics plugin for WordPress",80000,6948248,96,815,"2026-03-10T07:34:00.000Z","7.4",[94,95,96,97,98],"analytics","geolocation","reports","statistics","tracking","https:\u002F\u002Fwp-slimstat.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-slimstat.5.4.1.zip",88,23,"2026-02-10 12:36:33",{"slug":105,"name":106,"version":107,"author":108,"author_profile":109,"description":110,"short_description":111,"active_installs":112,"downloaded":113,"rating":114,"num_ratings":115,"last_updated":116,"tested_up_to":69,"requires_at_least":117,"requires_php":92,"tags":118,"homepage":124,"download_link":125,"security_score":126,"vuln_count":127,"unpatched_count":11,"last_vuln_date":128,"fetched_at":26},"ip2location-country-blocker","IP2Location Country Blocker","2.41.2","IP2Location","https:\u002F\u002Fprofiles.wordpress.org\u002Fip2location\u002F","\u003Cp>\u003Cem>This plugin will NOT work if any cache plugin is enabled.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>This plugin enables user to block unwanted traffic from accessing your frontend (blog pages) or backend (admin area) by countries or proxy servers. It helps to reduce spam and unwanted sign ups easily by preventing unwanted visitors from browsing a particular page or entire website.\u003C\u002Fp>\n\u003Cp>Key Features\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Allow you to block the access from multiple countries.\u003C\u002Fli>\n\u003Cli>Allow you to block the access by country grouping, such as EU, APAC, and so on.\u003C\u002Fli>\n\u003Cli>Allow you to block the access from anonymous proxies.\u003C\u002Fli>\n\u003Cli>Allow you to block the access by IP ranges.\u003C\u002Fli>\n\u003Cli>Allow you to whitelist the crawler, for example, Google, Bing, Yandex, and so on, to index your pages (SEO friendly).\u003C\u002Fli>\n\u003Cli>Supports IPv4 and IPv6\u003C\u002Fli>\n\u003Cli>Default to 403 error (Permission Denied) display\u003C\u002Fli>\n\u003Cli>Allow you to customize your own 403 page.\u003C\u002Fli>\n\u003Cli>Send you an email notification if some one is trying to access your admin area.\u003C\u002Fli>\n\u003Cli>Provide you statistical report of traffics blocked.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin supports both IP2Location BIN data and web service for IP geolocation lookup. If you would like to use the IP2Location geolocation BIN data, you can easily download and update the BIN data via the plugin settings page. Alternatively, you can also download and update the BIN data file manually using the below links:\u003C\u002Fp>\n\u003Cp>IP Geolocation file download:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Flite.ip2location.com\" title=\"IP2Location LITE database\" rel=\"nofollow ugc\">IP2Location & IP2Proxy LITE database (Free)\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fip2location.com\" title=\"IP2Location commercial database\" rel=\"nofollow ugc\">IP2Location & IP2Proxy Commercial database (Comprehensive)\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>To use the IP2Location IP geolocation web service (REST API) for geolocation, you’ll need to register an account at \u003Ca href=\"https:\u002F\u002Fwww.ip2location.io\" title=\"IP2Location.io IP Geolocation API\" rel=\"nofollow ugc\">IP2Location.io IP Geolocation API\u003C\u002Fa>. A free plan is available.\u003C\u002Fp>\n\u003Ch4>More Information\u003C\u002Fh4>\n\u003Cp>Please visit us at \u003Ca href=\"https:\u002F\u002Fwww.ip2location.com\" title=\"https:\u002F\u002Fwww.ip2location.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.ip2location.com\u003C\u002Fa>\u003C\u002Fp>\n","Blocks unwanted visitors from accessing your frontend (blog pages) or backend (admin area) by countries or proxy servers.",30000,1626215,84,124,"2025-12-03T07:19:00.000Z","4.6",[119,120,121,122,123],"block-country","block-proxy","ip-address","ip2location","redirection","https:\u002F\u002Fip2location.com\u002Fresources\u002Fwordpress-ip2location-country-blocker","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fip2location-country-blocker.2.41.2.zip",93,9,"2025-02-21 19:56:54",{"slug":130,"name":131,"version":132,"author":133,"author_profile":134,"description":135,"short_description":136,"active_installs":137,"downloaded":138,"rating":139,"num_ratings":140,"last_updated":141,"tested_up_to":14,"requires_at_least":142,"requires_php":143,"tags":144,"homepage":148,"download_link":149,"security_score":150,"vuln_count":151,"unpatched_count":11,"last_vuln_date":152,"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","5.0","7.2.5",[145,95,146,54,147],"geoip","ipstack","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",{"attackSurface":154,"codeSignals":256,"taintFlows":326,"riskAssessment":434,"analyzedAt":439},{"hooks":155,"ajaxHandlers":199,"restRoutes":248,"shortcodes":249,"cronEvents":255,"entryPointCount":208,"unprotectedCount":46},[156,161,165,170,174,177,181,185,189,194],{"type":157,"name":158,"callback":159,"file":160,"line":127},"action","wp_head","temaun_add_ld_json_schema_address","inc\\core\\schemas.php",{"type":157,"name":162,"callback":163,"file":164,"line":127},"ux_builder_setup","closure","inc\\integrations\\builders\\flatsome\\builder\\builder.php",{"type":157,"name":166,"callback":167,"file":168,"line":169},"admin_menu","temaun_register_admin_pages","team-manager-unified.php",47,{"type":157,"name":171,"callback":172,"file":168,"line":173},"admin_enqueue_scripts","temaun_admin_enqueue_scripts_settings",48,{"type":157,"name":175,"callback":163,"file":168,"line":176},"admin_init",50,{"type":157,"name":178,"callback":179,"file":168,"line":180},"wp_enqueue_scripts","temaun_enqueue_frontend_scripts",68,{"type":157,"name":182,"callback":183,"file":168,"line":184},"plugins_loaded","temaun_register_ajax",70,{"type":157,"name":186,"callback":187,"file":168,"line":188},"init","temaun_handle_author_box",73,{"type":190,"name":191,"callback":192,"file":168,"line":193},"filter","theme_mod_blog_author_box","__return_false",83,{"type":190,"name":195,"callback":196,"priority":197,"file":168,"line":198},"the_content","temaun_display_author_box",999,86,[200,206,209,212,216,219,221,224,227,229,231,233,236,238,240,243,246],{"action":201,"nopriv":202,"callback":201,"hasNonce":203,"hasCapCheck":203,"file":204,"line":205},"temaun_get_branches",false,true,"controllers\\BranchController.php",17,{"action":207,"nopriv":202,"callback":207,"hasNonce":203,"hasCapCheck":202,"file":204,"line":208},"temaun_save_branch",18,{"action":210,"nopriv":202,"callback":210,"hasNonce":203,"hasCapCheck":202,"file":204,"line":211},"temaun_delete_branch",19,{"action":213,"nopriv":202,"callback":213,"hasNonce":203,"hasCapCheck":203,"file":214,"line":215},"temaun_get_departments","controllers\\DepartmentController.php",21,{"action":217,"nopriv":202,"callback":217,"hasNonce":203,"hasCapCheck":202,"file":214,"line":218},"temaun_save_department",22,{"action":220,"nopriv":202,"callback":220,"hasNonce":203,"hasCapCheck":202,"file":214,"line":102},"temaun_delete_department",{"action":222,"nopriv":202,"callback":222,"hasNonce":202,"hasCapCheck":202,"file":214,"line":223},"temaun_get_branches_for_dropdown",24,{"action":225,"nopriv":202,"callback":225,"hasNonce":203,"hasCapCheck":203,"file":226,"line":215},"temaun_get_positions","controllers\\PositionController.php",{"action":228,"nopriv":202,"callback":228,"hasNonce":203,"hasCapCheck":202,"file":226,"line":218},"temaun_save_position",{"action":230,"nopriv":202,"callback":230,"hasNonce":203,"hasCapCheck":202,"file":226,"line":102},"temaun_delete_position",{"action":232,"nopriv":202,"callback":232,"hasNonce":202,"hasCapCheck":202,"file":226,"line":223},"temaun_get_departments_for_dropdown",{"action":234,"nopriv":202,"callback":234,"hasNonce":203,"hasCapCheck":203,"file":235,"line":218},"temaun_get_staff","controllers\\StaffController.php",{"action":237,"nopriv":202,"callback":237,"hasNonce":203,"hasCapCheck":202,"file":235,"line":102},"temaun_save_staff",{"action":239,"nopriv":202,"callback":239,"hasNonce":203,"hasCapCheck":202,"file":235,"line":223},"temaun_delete_staff",{"action":241,"nopriv":202,"callback":241,"hasNonce":203,"hasCapCheck":202,"file":235,"line":242},"temaun_get_wp_users",25,{"action":244,"nopriv":202,"callback":244,"hasNonce":203,"hasCapCheck":203,"file":235,"line":245},"temaun_get_positions_by_staff",27,{"action":244,"nopriv":203,"callback":244,"hasNonce":203,"hasCapCheck":203,"file":235,"line":247},28,[],[250],{"tag":251,"callback":252,"file":253,"line":254},"team_manager_unified_staff","temaun_staff_shortcode","inc\\integrations\\builders\\flatsome\\shortcodes\\staff.php",218,[],{"dangerousFunctions":257,"sqlUsage":258,"outputEscaping":274,"fileOperations":11,"externalRequests":11,"nonceChecks":321,"capabilityChecks":260,"bundledLibraries":322},[],{"prepared":259,"raw":260,"locations":261},35,5,[262,265,268,271,273],{"file":235,"line":263,"context":264},123,"$wpdb->get_var() with variable interpolation",{"file":266,"line":188,"context":267},"inc\\core\\database.php","$wpdb->get_results() with variable interpolation",{"file":266,"line":269,"context":270},76,"$wpdb->query() with variable interpolation",{"file":266,"line":272,"context":267},80,{"file":266,"line":193,"context":270},{"escaped":275,"rawEcho":223,"locations":276},125,[277,281,282,284,285,287,290,291,293,295,297,298,301,302,303,305,307,308,310,312,313,315,317,319],{"file":278,"line":279,"context":280},"views\\admin\\branch.php",41,"raw output",{"file":278,"line":279,"context":280},{"file":278,"line":283,"context":280},45,{"file":278,"line":173,"context":280},{"file":278,"line":286,"context":280},51,{"file":288,"line":289,"context":280},"views\\admin\\departments.php",57,{"file":288,"line":289,"context":280},{"file":288,"line":292,"context":280},69,{"file":288,"line":294,"context":280},72,{"file":288,"line":296,"context":280},75,{"file":288,"line":272,"context":280},{"file":299,"line":300,"context":280},"views\\admin\\position.php",64,{"file":299,"line":300,"context":280},{"file":299,"line":269,"context":280},{"file":304,"line":102,"context":280},"views\\admin\\staff.php",{"file":304,"line":306,"context":280},175,{"file":304,"line":306,"context":280},{"file":304,"line":309,"context":280},194,{"file":304,"line":311,"context":280},206,{"file":304,"line":254,"context":280},{"file":304,"line":314,"context":280},262,{"file":304,"line":316,"context":280},266,{"file":304,"line":318,"context":280},285,{"file":304,"line":320,"context":280},289,14,[323],{"name":324,"version":25,"knownCves":325},"Select2",[],[327,351,361,371,381,392,406],{"entryPoint":328,"graph":329,"unsanitizedCount":11,"severity":350},"temaun_delete_department (controllers\\DepartmentController.php:116)",{"nodes":330,"edges":347},[331,336,340],{"id":332,"type":333,"label":334,"file":214,"line":335},"n0","source","$_POST",127,{"id":337,"type":338,"label":339,"file":214,"line":335},"n1","transform","→ get_by_id()",{"id":341,"type":342,"label":343,"file":344,"line":345,"wp_function":346},"n2","sink","get_row() [SQLi]","models\\Staff.php",60,"get_row",[348,349],{"from":332,"to":337,"sanitized":202},{"from":337,"to":341,"sanitized":203},"low",{"entryPoint":352,"graph":353,"unsanitizedCount":11,"severity":350},"\u003CDepartmentController> (controllers\\DepartmentController.php:0)",{"nodes":354,"edges":358},[355,356,357],{"id":332,"type":333,"label":334,"file":214,"line":335},{"id":337,"type":338,"label":339,"file":214,"line":335},{"id":341,"type":342,"label":343,"file":344,"line":345,"wp_function":346},[359,360],{"from":332,"to":337,"sanitized":202},{"from":337,"to":341,"sanitized":203},{"entryPoint":362,"graph":363,"unsanitizedCount":11,"severity":350},"temaun_delete_position (controllers\\PositionController.php:114)",{"nodes":364,"edges":368},[365,366,367],{"id":332,"type":333,"label":334,"file":226,"line":275},{"id":337,"type":338,"label":339,"file":226,"line":275},{"id":341,"type":342,"label":343,"file":344,"line":345,"wp_function":346},[369,370],{"from":332,"to":337,"sanitized":202},{"from":337,"to":341,"sanitized":203},{"entryPoint":372,"graph":373,"unsanitizedCount":11,"severity":350},"\u003CPositionController> (controllers\\PositionController.php:0)",{"nodes":374,"edges":378},[375,376,377],{"id":332,"type":333,"label":334,"file":226,"line":275},{"id":337,"type":338,"label":339,"file":226,"line":275},{"id":341,"type":342,"label":343,"file":344,"line":345,"wp_function":346},[379,380],{"from":332,"to":337,"sanitized":202},{"from":337,"to":341,"sanitized":203},{"entryPoint":382,"graph":383,"unsanitizedCount":11,"severity":350},"temaun_get_positions_by_staff (controllers\\StaffController.php:31)",{"nodes":384,"edges":390},[385,386],{"id":332,"type":333,"label":334,"file":235,"line":173},{"id":337,"type":342,"label":387,"file":235,"line":388,"wp_function":389},"get_col() [SQLi]",63,"get_col",[391],{"from":332,"to":337,"sanitized":203},{"entryPoint":393,"graph":394,"unsanitizedCount":11,"severity":350},"temaun_get_staff (controllers\\StaffController.php:95)",{"nodes":395,"edges":403},[396,398,400],{"id":332,"type":333,"label":334,"file":235,"line":397},126,{"id":337,"type":338,"label":399,"file":235,"line":397},"→ temaun_get_all()",{"id":341,"type":342,"label":401,"file":344,"line":169,"wp_function":402},"get_results() [SQLi]","get_results",[404,405],{"from":332,"to":337,"sanitized":202},{"from":337,"to":341,"sanitized":203},{"entryPoint":407,"graph":408,"unsanitizedCount":11,"severity":350},"\u003CStaffController> (controllers\\StaffController.php:0)",{"nodes":409,"edges":428},[410,412,413,414,417,419,422,424,426],{"id":332,"type":333,"label":411,"file":235,"line":173},"$_POST (x2)",{"id":337,"type":342,"label":387,"file":235,"line":388,"wp_function":389},{"id":341,"type":333,"label":334,"file":235,"line":173},{"id":415,"type":342,"label":401,"file":235,"line":416,"wp_function":402},"n3",339,{"id":418,"type":333,"label":411,"file":235,"line":173},"n4",{"id":420,"type":342,"label":343,"file":235,"line":421,"wp_function":346},"n5",354,{"id":423,"type":333,"label":334,"file":235,"line":397},"n6",{"id":425,"type":338,"label":399,"file":235,"line":397},"n7",{"id":427,"type":342,"label":401,"file":344,"line":169,"wp_function":402},"n8",[429,430,431,432,433],{"from":332,"to":337,"sanitized":203},{"from":341,"to":415,"sanitized":203},{"from":418,"to":420,"sanitized":203},{"from":423,"to":425,"sanitized":202},{"from":425,"to":427,"sanitized":203},{"summary":435,"deductions":436},"The \"team-manager-unified\" v1.0.0 plugin exhibits a generally good security posture, with no known vulnerabilities in its history and a strong emphasis on secure coding practices like prepared statements and output escaping.  The majority of its code signals are positive, indicating a developer who is mindful of security.  However, a significant concern arises from the presence of two AJAX handlers that lack authentication checks, creating a direct attack vector. While taint analysis shows no immediate critical or high-severity issues in the current version, the unprotected AJAX endpoints represent a potential entry point for malicious actors to exploit if further vulnerabilities exist or are introduced.\n\nThe plugin's history of zero CVEs is a positive indicator of its development quality and the diligence of its maintainers. The use of Select2 as a bundled library is noted, but without version information, its security can't be fully assessed; however, this is a common practice. The total number of entry points is moderate, and the lack of REST API routes or cron events further limits the attack surface.  Despite the strengths in its development practices and vulnerability history, the two unprotected AJAX handlers necessitate a cautious approach to its deployment and require immediate attention.",[437],{"reason":438,"points":44},"Unprotected AJAX handlers","2026-03-17T06:24:25.352Z",{"wat":441,"direct":452},{"assetPaths":442,"generatorPatterns":444,"scriptPaths":445,"versionParams":448},[443],"\u002Fwp-content\u002Fplugins\u002Fteam-manager-unified\u002Fdist\u002Fassets\u002Fcss\u002Fpublic\u002Fstyle.min.css",[],[446,447],"\u002Fwp-content\u002Fplugins\u002Fteam-manager-unified\u002Fdist\u002Fassets\u002Fjs\u002Flibs\u002Fselect2\u002F4.1.0\u002Fselect2.min.js","\u002Fwp-content\u002Fplugins\u002Fteam-manager-unified\u002Fdist\u002Fassets\u002Fcss\u002Flibs\u002Fselect2\u002F4.1.0\u002Fselect2.min.css",[449,450,451],"team-manager-unified\u002Fdist\u002Fassets\u002Fcss\u002Fpublic\u002Fstyle.min.css?ver=","team-manager-unified\u002Fdist\u002Fassets\u002Fcss\u002Flibs\u002Fselect2\u002F4.1.0\u002Fselect2.min.css?ver=","team-manager-unified\u002Fdist\u002Fassets\u002Fjs\u002Flibs\u002Fselect2\u002F4.1.0\u002Fselect2.min.js?ver=",{"cssClasses":453,"htmlComments":454,"htmlAttributes":455,"restEndpoints":460,"jsGlobals":465,"shortcodeOutput":467},[],[],[456,457,458,459],"data-temaun-staff-id","data-temaun-branch-id","data-temaun-department-id","data-temaun-position-id",[461,462,463,464],"\u002Fwp-json\u002Ftemaun\u002Fv1\u002Fstaff","\u002Fwp-json\u002Ftemaun\u002Fv1\u002Fbranches","\u002Fwp-json\u002Ftemaun\u002Fv1\u002Fdepartments","\u002Fwp-json\u002Ftemaun\u002Fv1\u002Fpositions",[466],"temaun_settings",[]]