[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fg9jlCZCOQYH-Ex3EW2D0-tjnb5BihjXSppjgFgIuxs4":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":15,"download_link":25,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":139,"fingerprints":164},"disable-telemetry","Disable Telemetry","1.0.3","Brad Parbs","https:\u002F\u002Fprofiles.wordpress.org\u002Fbradparbs\u002F","\u003Cp>A WordPress plugin to disable all HTTP requests to \u003Ccode>api.wordpress.org\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Check out \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnorcross\u002Fairplane-mode\" rel=\"nofollow ugc\">Airplane Mode\u003C\u002Fa> if you need more control.\u003C\u002Fp>\n","A WordPress plugin to disable all HTTP requests to api.wordpress.org.",0,1166,100,1,"","5.7.15","5.2","5.6",[20,21,22,23,24],"api","developer","privacy","telemetry","tools","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisable-telemetry.1.0.3.zip",null,"2026-03-15T10:48:56.248Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"bradparbs",16,3240,88,30,86,"2026-04-04T16:25:36.149Z",[38,58,76,95,115],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":34,"downloaded":46,"rating":11,"num_ratings":11,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":55,"download_link":56,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":57},"rest-api-route-tester","REST API Route Tester","1.1.0","Nowshad Jawad","https:\u002F\u002Fprofiles.wordpress.org\u002Fjawad0501\u002F","\u003Cp>REST API Route Tester is a powerful tool for WordPress developers and administrators to test and debug REST API endpoints directly from the wp-admin. It provides a user-friendly interface to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>View all registered REST API routes, grouped by plugin\u003C\u002Fli>\n\u003Cli>Test routes with HTTP methods (GET, POST, PUT, DELETE)\u003C\u002Fli>\n\u003Cli>Switch between different user roles to test permissions\u003C\u002Fli>\n\u003Cli>Send custom headers and body data (JSON)\u003C\u002Fli>\n\u003Cli>View detailed responses including status codes and response time\u003C\u002Fli>\n\u003Cli>Create multiple request tabs and persist state between sessions\u003C\u002Fli>\n\u003Cli>Auto-suggest routes with a searchable dropdown; auto-select primary method\u003C\u002Fli>\n\u003Cli>Generate example payloads based on route schema (via OPTIONS discovery)\u003C\u002Fli>\n\u003C\u002Ful>\n","A tool to test WordPress REST API routes with different user roles and authentication methods. Provides a Postman-like interface inside WordPress to d &hellip;",625,"2025-10-16T10:34:00.000Z","6.8.5","5.0","7.2",[20,52,53,54],"developer-tools","rest-api","testing","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Frest-api-route-tester\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frest-api-route-tester.1.1.0.zip","2026-03-15T15:16:48.613Z",{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":11,"downloaded":66,"rating":11,"num_ratings":11,"last_updated":15,"tested_up_to":67,"requires_at_least":68,"requires_php":69,"tags":70,"homepage":74,"download_link":75,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"mksddn-collection-for-postman","MksDdn Collection for Postman","2.1.0","Max","https:\u002F\u002Fprofiles.wordpress.org\u002Fmksddn\u002F","\u003Cp>MksDdn Collection for Postman helps developers quickly generate a Postman Collection (v2.1.0) or OpenAPI 3.0 documentation for WordPress REST API endpoints. The plugin automatically discovers and includes standard WordPress entities, custom post types, options pages, and individual pages. Generated collections include pre-configured requests with sample data and can be downloaded as JSON files for import into Postman. OpenAPI spec can be used with Swagger UI, Redoc, or frontend code generators.\u003C\u002Fp>\n\u003Cp>The plugin provides comprehensive API testing capabilities with automatic generation of test data for form submissions, support for file uploads via multipart\u002Fform-data, and seamless integration with Advanced Custom Fields (ACF). Special handling is included for the mksddn-forms-handler plugin when active.\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n– Basic REST endpoints: pages, posts, categories, tags, taxonomies, comments, users, settings\u003Cbr \u002F>\n– WooCommerce REST API (wc\u002Fv3): products, product categories, orders with full CRUD when WooCommerce is active\u003Cbr \u002F>\n– Search functionality: Posts, Pages, and All content types with customizable queries\u003Cbr \u002F>\n– Custom Post Types with full CRUD operations (List, Get by Slug\u002FID, Create, Update, Delete)\u003Cbr \u002F>\n– ACF\u002FSCF fields: auto-included for all post types when ACF or Smart Custom Fields plugin is active\u003Cbr \u002F>\n– Special handling for Forms (mksddn-forms-handler integration)\u003Cbr \u002F>\n– Options endpoints: \u003Ccode>\u002Fwp-json\u002Fcustom\u002Fv1\u002Foptions\u002F...\u003C\u002Fcode>\u003Cbr \u002F>\n– Individual pages by slug with ACF field support\u003Cbr \u002F>\n– Automatic test data generation for form submissions\u003Cbr \u002F>\n– Support for multipart\u002Fform-data for file uploads\u003Cbr \u002F>\n– Yoast SEO integration (automatic yoast_head_json inclusion)\u003Cbr \u002F>\n– Multilingual support with Accept-Language headers (Polylang priority)\u003Cbr \u002F>\n– OpenAPI 3.0 export for API documentation (Swagger UI, Redoc)\u003Cbr \u002F>\n– Extensible via WordPress filters\u003Cbr \u002F>\n– WP-CLI integration for command-line usage\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin references external services for Postman Collection schema validation:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Postman Collection Schema Service\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Cstrong>Service\u003C\u002Fstrong>: Postman Collection Schema (schema.getpostman.com)\u003Cbr \u002F>\n– \u003Cstrong>Purpose\u003C\u002Fstrong>: Used to validate and structure the generated Postman Collection JSON according to the official Postman Collection v2.1.0 specification\u003Cbr \u002F>\n– \u003Cstrong>Data sent\u003C\u002Fstrong>: No data is sent to this service. The plugin only references the schema URL for validation purposes\u003Cbr \u002F>\n– \u003Cstrong>When\u003C\u002Fstrong>: The schema URL is included in the generated collection metadata for Postman to validate the collection structure\u003Cbr \u002F>\n– \u003Cstrong>Terms of service\u003C\u002Fstrong>: https:\u002F\u002Fwww.postman.com\u002Flegal\u002Fterms-of-use\u002F\u003Cbr \u002F>\n– \u003Cstrong>Privacy policy\u003C\u002Fstrong>: https:\u002F\u002Fwww.postman.com\u002Flegal\u002Fprivacy-policy\u002F\u003C\u002Fp>\n\u003Cp>Note: This plugin does not send any user data to external services. The schema reference is purely for collection structure validation within the Postman application.\u003C\u002Fp>\n","Generate Postman Collection (v2.1.0) or OpenAPI 3.0 documentation for the WordPress REST API from the admin UI.",452,"6.9.4","6.2","8.1",[71,52,72,73,53],"collection","openapi","postman","https:\u002F\u002Fgithub.com\u002Fmksddn\u002FWP-MksDdn-Postman-Collection","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmksddn-collection-for-postman.2.1.0.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":13,"num_ratings":86,"last_updated":87,"tested_up_to":67,"requires_at_least":49,"requires_php":88,"tags":89,"homepage":93,"download_link":94,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":57},"wp-consent-api","WP Consent API","2.0.1","Rogier Lankhorst","https:\u002F\u002Fprofiles.wordpress.org\u002Frogierlankhorst\u002F","\u003Cp>WP Consent API is a plugin that standardizes the communication of accepted consent categories between plugins. It requires a cookie banner plugin and, at least, one other plugin that supports the WP Consent API.\u003C\u002Fp>\n\u003Cp>With this plugin, all supporting plugins can use the same set of methods to read and register the current consent category, allowing consent management plugins and other plugins to work together, improving compliance with privacy laws.\u003C\u002Fp>\n\u003Cp>WARNING: the plugin itself will not handle consent. It will show you how many plugins you have without Consent API support and will improve compliance on your site by ensuring smooth communication between cookie banner plugins and plugins that set cookies or track user data.\u003C\u002Fp>\n\u003Ch4>What problem does this plugin solve?\u003C\u002Fh4>\n\u003Cp>Currently, it is possible for a consent management plugin to block third-party services like Facebook, Google Maps, Twitter, etc. But if a WordPress plugin places a PHP cookie, a consent management plugin cannot prevent this.\u003C\u002Fp>\n\u003Cp>Secondly, some plugins integrate the tracking code on the clientside in javascript files that, when blocked, break the site.\u003C\u002Fp>\n\u003Cp>Or, if such a plugin’s javascript is minified, causing the URL to be unrecognizable and won’t get detected by an automatic blocking script.\u003C\u002Fp>\n\u003Cp>Lastly, the blocking approach requires a list of all types of URL’s that tracks data. A generic API where plugins adhere to can greatly\u003Cbr \u002F>\nfacilitate a webmaster in getting a site compliant.\u003C\u002Fp>\n\u003Ch4>Does usage of this API prevent third-party services from tracking user data?\u003C\u002Fh4>\n\u003Cp>Primary this API is aimed at compliant first-party cookies or tracking by WordPress plugins. If such a plugin triggers, for example, Facebook,\u003Cbr \u002F>\nusage of this API will be of help. If a user embeds a Facebook iframe, a blocking tool is needed that initially disables the iframe and or scripts.\u003C\u002Fp>\n\u003Cp>Third-party scripts have to blocked by blocking functionality in a consent management plugin. To do this in core would be to intrusive, and is also not applicable to all users: only users with visitors from opt-in regions such as the European Union require such a feature. Such a feature also has a risk of breaking things. Additionally, blocking these and showing a nice placeholder requires even more sophisticated code, all of which should in my opinion not be part of WordPress core, for the same reasons.\u003C\u002Fp>\n\u003Ch4>How does it work?\u003C\u002Fh4>\n\u003Cp>There are two indicators that together tell if consent is given for a specific consent category, e.g., “marketing”:\u003Cbr \u002F>\n1) the region based consent_type, which\u003Cbr \u002F>\ncan be opt-in, opt-out, or other possible consent_types;\u003Cbr \u002F>\n2) and the visitor’s choice: not set, allow, or deny.\u003C\u002Fp>\n\u003Cp>The consent_type is a function that wraps a filter, “wp_get_consent_type”. If there’s no consent management plugin to set it, it will return false. This will cause all consent categories to return true, allowing cookies to be set on all categories.\u003C\u002Fp>\n\u003Cp>If opt-in is set using this filter, a category will only return true if the value of the visitor’s choice is “allow”.\u003C\u002Fp>\n\u003Cp>If the region based consent_type is opt-out, it will return true if the visitor’s choice is not set or is “allow”.\u003C\u002Fp>\n\u003Cp>Clientside, a consent management plugin can dynamically manipulate the consent type and set several cookie categories.\u003C\u002Fp>\n\u003Cp>A plugin can use a hook to listen for changes or check the value of a given category.\u003C\u002Fp>\n\u003Cp>Categories and most other stuff can be extended with a filter.\u003C\u002Fp>\n\u003Ch3>Existing integrations\u003C\u002Fh3>\n\u003Cp>Categorized, and sorted alphabetically\u003C\u002Fp>\n\u003Ch4>Example plugin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frlankhorst\u002Fconsent-api-example-plugin\" rel=\"nofollow ugc\">Example plugin\u003C\u002Fa>. The plugin basically consists of a shortcode, with a div that shows a tracking or not tracking message. No actual tracking is done 🙂\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Consent Management Providers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsirdata-cmp\u002F\" rel=\"ugc\">Abconsent Sirdata CMP\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbeautiful-and-responsive-cookie-consent\u002F\" rel=\"ugc\">Beautiful Cookie Consent Banner\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fclickio-consent\u002F\" rel=\"ugc\">Clickio Consent\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcomplianz-gdpr\u002F\" rel=\"ugc\">Complianz GDPR\u002FCCPA\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fconsent.studio\u002F\" rel=\"nofollow ugc\">Consent Studio\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fconsent-manager\u002F\" rel=\"ugc\">consentmanager\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fconzent.net\u002F\" rel=\"nofollow ugc\">Conzent\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookiebot\u002F\" rel=\"ugc\">Cookiebot\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookiefirst-gdpr-cookie-consent-banner\u002F\" rel=\"ugc\">CookieFirst\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookiehub\u002F\" rel=\"ugc\">CookieHub\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookietractor\u002F\" rel=\"ugc\">CookieTractor\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcookie-law-info\u002F\" rel=\"ugc\">CookieYes – Cookie Banner for Cookie Consent\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgdpr-cookie-compliance\u002F\" rel=\"ugc\">GDPR Cookie Compliance\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.webtoffee.com\u002Fproduct\u002Fgdpr-cookie-consent\u002F\" rel=\"nofollow ugc\">GDPR Cookie Consent Plugin – CCPA Ready\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgetterms.io\u002Fconsent-manager\u002F\" rel=\"nofollow ugc\">GetTerms\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fiubenda-cookie-law-solution\u002F\" rel=\"ugc\">iubenda | All-in-one Compliance\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpressidium-cookie-consent\u002F\" rel=\"ugc\">Pressidium Cookie Consent\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftrustarc-cookie-consent-manager\u002F\" rel=\"ugc\">TrustArc Cookie Consent Manager\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Consent Requiring Plugins\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadd-to-any\u002F\" rel=\"ugc\">AddToAny\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.appfromlab.com\u002Fproduct\u002Fwoocommerce-utm-tracker-plugin\u002F\" rel=\"nofollow ugc\">AFL UTM Tracker Plugin\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fburst-statistics\u002F\" rel=\"ugc\">Burst Statistics\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgoogle-site-kit\u002F\" rel=\"ugc\">Google Site Kit\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce-google-adwords-conversion-tracking-tag\u002F\" rel=\"ugc\">Pixel Manager for WooCommerce\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce\u002F\" rel=\"ugc\">Woo\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-statistics\u002F\" rel=\"ugc\">WP Statistics\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Demo site\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwpconsentapi.org\u002F\" rel=\"nofollow ugc\">wpconsentapi.org\u003C\u002Fa>\u003Cbr \u002F>\nBelow are the plugins used to set up the demo site:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Complianz\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frlankhorst\u002Fconsent-api-example-plugin\" rel=\"nofollow ugc\">The example plugin\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>javascript, consent management plugin\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u002F\u002Fset consent type\nwindow.wp_consent_type = 'optin'\n\n\u002F\u002Fdispatch event when consent type is defined. This is useful if the region is detected server side, so the consent type is defined later during the pageload\nlet event = new CustomEvent('wp_consent_type_defined');\ndocument.dispatchEvent( event );\n\n\n\u002F\u002Fconsent management plugin sets cookie when consent category value changes\nwp_set_consent('marketing', 'allow');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>javascript, tracking plugin\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u002F\u002Flisten to consent change event\ndocument.addEventListener(\"wp_listen_for_consent_change\", function (e) {\n  var changedConsentCategory = e.detail;\n  for (var key in changedConsentCategory) {\n    if (changedConsentCategory.hasOwnProperty(key)) {\n      if (key === 'marketing' && changedConsentCategory[key] === 'allow') {\n        console.log(\"just given consent, track user\")\n      }\n    }\n  }\n});\n\n\u002F\u002Fbasic implementation of consent check:\nif (wp_has_consent('marketing')){\n  activateMarketing();\n  console.log(\"set marketing stuff now!\");\n} else {\n  console.log(\"No marketing stuff please!\");\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>PHP\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u002F\u002Fdeclare compliance with consent level API\n$plugin = plugin_basename( __FILE__ );\nadd_filter( \"wp_consent_api_registered_{$plugin}\", '__return_true' );\n\n\u002F**\n* Example how a plugin can register cookies with the consent API\n * These cookies can then be shown on the front-end, to the user, with wp_get_cookie_info()\n *\u002F\n\nfunction my_wordpress_register_cookies(){\n    if ( function_exists( 'wp_add_cookie_info' ) ) {\n        wp_add_cookie_info( 'AMP_token', 'AMP', 'marketing', __( 'Session' ), __( 'Store a unique User ID.' ) );\n    }\n}\nadd_action('plugins_loaded', 'my_wordpress_register_cookies');\n\n\nif (wp_has_consent('marketing')){\n\u002F\u002Fdo marketing stuff\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Service-level consent\u003C\u002Fh4>\n\u003Cp>In addition to category-based consent, the API supports service-level consent control. This allows consent management plugins to grant or deny consent for specific services (like ‘google-analytics’ or ‘facebook-pixel’) independently from their category. When checking service consent with wp_has_service_consent(), the API first checks if explicit consent exists for that service. If no explicit consent is set, it falls back to the consent status of the service’s category. This enables fine-grained control: a user might accept statistics cookies in general, but explicitly deny a specific analytics service.\u003C\u002Fp>\n\u003Cp>Service consent can be checked and set both server-side (PHP) and client-side (JavaScript):\u003C\u002Fp>\n\u003Cp>PHP:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F\u002Fcheck if a specific service has consent\nif ( wp_has_service_consent( 'google-analytics' ) ) {\n    \u002F\u002Factivate google analytics\n}\n\n\u002F\u002Fcheck if a service is explicitly denied\nif ( wp_is_service_denied( 'facebook-pixel' ) ) {\n    \u002F\u002Fservice was explicitly denied by user\n}\n\n\u002F\u002Fset service consent\nwp_set_service_consent( 'google-analytics', true ); \u002F\u002Fgrant consent\nwp_set_service_consent( 'facebook-pixel', false ); \u002F\u002Fdeny consent\n\n\u002F\u002Flisten for service consent changes\nadd_action( 'wp_consent_service_changed', function( $service, $consented ) {\n    error_log( \"Service {$service} consent changed to: \" . ( $consented ? 'granted' : 'denied' ) );\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>JavaScript:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F\u002Fcheck service consent\nif ( wp_has_service_consent( 'youtube' ) ) {\n    \u002F\u002Factivate tracking\n}\n\n\u002F\u002Fcheck if explicitly denied\nif ( wp_is_service_denied( 'facebook-pixel' ) ) {\n    \u002F\u002Fservice denied\n}\n\n\u002F\u002Fset service consent\nwp_set_service_consent( 'youtube', true );\n\n\u002F\u002Flisten for service consent changes\ndocument.addEventListener( 'wp_consent_api_status_change_service', function( e ) {\n    console.log( 'Service: ' + e.detail.service + ', consented: ' + e.detail.value );\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Any code suggestions? We’re on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fwp-consent-level-api\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> as well!\u003C\u002Fp>\n","Simple Consent API to read and register the current consent category.",200000,779186,2,"2026-03-12T09:27:00.000Z","7.4",[20,90,91,92,22],"compliance","consent","cookies","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-consent-api","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-consent-api.2.0.1.zip",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":13,"num_ratings":105,"last_updated":106,"tested_up_to":67,"requires_at_least":107,"requires_php":69,"tags":108,"homepage":113,"download_link":114,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":57},"version-info","Version Info – Server Health Monitor, PHP & MySQL Version Display, Environment Indicators","2.0.0","Brandon Ernst","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrandonfire\u002F","\u003Ch4>🛡️ THE ESSENTIAL TECHNICAL HUD FOR EVERY WORDPRESS PROFESSIONAL\u003C\u002Fh4>\n\u003Cp>Stop digging through hidden menus or leaving insecure \u003Ccode>phpinfo()\u003C\u002Fcode> files on your server. \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fversioninfoplugin.com\u002F\" title=\"Visit the Version Info website\" rel=\"nofollow ugc\">Version Info\u003C\u002Fa>\u003C\u002Fstrong> is the essential technical dashboard that brings your site’s most vital environment data directly into your daily workflow — the admin footer, the admin bar, or a dedicated dashboard widget.\u003C\u002Fp>\n\u003Cp>Whether you’re a freelancer managing dozens of client sites, a developer debugging a complex plugin conflict, or an agency maintaining a portfolio of high-value properties, having instant access to your \u003Cstrong>PHP version\u003C\u002Fstrong>, \u003Cstrong>MySQL version\u003C\u002Fstrong>, \u003Cstrong>WordPress version\u003C\u002Fstrong>, and \u003Cstrong>web server type\u003C\u002Fstrong> is a mission-critical utility.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Version Info\u003C\u002Fstrong> has been trusted by WordPress professionals since 2015 and is now supercharged with a complete PRO + Agency suite for serious site monitoring. Learn more at \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fversioninfoplugin.com\u002F\" title=\"Version Info official website\" rel=\"nofollow ugc\">versioninfoplugin.com\u003C\u002Fa>\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch4>✨ What Makes Version Info Different?\u003C\u002Fh4>\n\u003Cp>Most server info plugins show you a wall of data you don’t need. Version Info is designed around \u003Cstrong>the data you actually use every day\u003C\u002Fstrong>, placed exactly where you need it — no extra pages, no bloat, no performance impact.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Zero Configuration\u003C\u002Fstrong> — Install, activate, done. Versions appear in your footer immediately.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Surgical Precision\u003C\u002Fstrong> — Only shows WP, PHP, MySQL, and Server versions. No fluff.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance First\u003C\u002Fstrong> — Uses native WordPress APIs. Literally zero impact on page load.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Hooks\u003C\u002Fstrong> — Every data point is filterable for custom integrations. See the \u003Ca href=\"https:\u002F\u002Fdocs.versioninfoplugin.com\u002Fadvanced-configuration-hooks-and-filters\" title=\"Version Info developer documentation\" rel=\"nofollow ugc\">developer docs\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🚀 Core Features (100% Free, Forever)\u003C\u002Fh4>\n\u003Cp>These features will always be free. No bait-and-switch.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>🛠️ \u003Cstrong>Admin Footer Display\u003C\u002Fstrong> — See WordPress, PHP, MySQL, and Web Server versions at the bottom of every admin page. Includes a one-click update link when a new WP version is available.\u003C\u002Fli>\n\u003Cli>🚦 \u003Cstrong>WP-Admin Bar Nodes\u003C\u002Fstrong> — Pin your version stack to the admin bar for instant visibility while navigating between pages, posts, and settings.\u003C\u002Fli>\n\u003Cli>📊 \u003Cstrong>Dashboard Widget\u003C\u002Fstrong> — A dedicated “At a Glance” style widget showing your complete technical stack. Enable it via Screen Options.\u003C\u002Fli>\n\u003Cli>🔄 \u003Cstrong>Core Update Alerts\u003C\u002Fstrong> — Automatically compares your WP version with the latest available and shows an update link right in the footer.\u003C\u002Fli>\n\u003Cli>💻 \u003Cstrong>Server Detection\u003C\u002Fstrong> — Instantly identify Apache, Nginx, LiteSpeed, or any other server software without leaving WordPress.\u003C\u002Fli>\n\u003Cli>🌐 \u003Cstrong>Translation Ready\u003C\u002Fstrong> — Fully localized with translations in 13+ languages including Spanish, German, French, Japanese, Chinese, and more. \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fversion-info\u002F\" title=\"Translate Version Info on WordPress.org\" rel=\"nofollow ugc\">Help translate\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🔥 PRO Plan — Advanced Site Intelligence\u003C\u002Fh4>\n\u003Cp>Unlock real-time performance monitoring, environment safety, and proactive health checks. Built for developers who take their stack seriously.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fversioninfoplugin.com\u002Fpricing\" title=\"Version Info PRO pricing\" rel=\"nofollow ugc\">Upgrade to PRO \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fstrong> Starting at $19\u002Fyear.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>📈 \u003Cstrong>Real-Time CPU & RAM Monitoring\u003C\u002Fstrong> — See your server’s pulse, live. Visual percentage bars that auto-refresh every 60 seconds via the WordPress Heartbeat API. Cross-platform: uses \u003Ccode>sys_getloadavg()\u003C\u002Fcode> on Linux, COM objects on Windows, and \u003Ccode>\u002Fproc\u002Fmeminfo\u003C\u002Fcode> for system memory. Fully cached with Transients to prevent server strain.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>💾 \u003Cstrong>Database Size Tracking\u003C\u002Fstrong> — Know exactly how bloated your database is before it becomes a problem. Breaks down \u003Ccode>data_length\u003C\u002Fcode> vs. \u003Ccode>index_length\u003C\u002Fcode> for all tables matching your \u003Ccode>$wpdb->prefix\u003C\u002Fcode>. Results cached for 12 hours with a \u003Cstrong>“Scan Now” AJAX button\u003C\u002Fstrong> for on-demand fresh data. Perfect for monitoring WooCommerce database growth during peak sales.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>🚨 \u003Cstrong>Smart Environment Indicators\u003C\u002Fstrong> — Never accidentally run a destructive query on production again. High-visibility color-coded badges in the admin bar: \u003Cstrong>Red\u003C\u002Fstrong> for Production, \u003Cstrong>Orange\u003C\u002Fstrong> for Staging, \u003Cstrong>Green\u003C\u002Fstrong> for Development\u002FLocal. Auto-detects \u003Ccode>WP_ENVIRONMENT_TYPE\u003C\u002Fcode>, Bedrock (\u003Ccode>WP_ENV\u003C\u002Fcode>), Kinsta, WP Engine, Pantheon, Flywheel, and more. Optional: highlight the entire admin bar border to match the environment color.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>📜 \u003Cstrong>Audit Log of Version History\u003C\u002Fstrong> — A persistent timeline tracking every shift in your WordPress core, PHP, MySQL, plugin, and theme versions. Hooks into \u003Ccode>upgrader_process_complete\u003C\u002Fcode> for real-time logging of WordPress updates. Know exactly \u003Cem>when\u003C\u002Fem> and \u003Cem>what\u003C\u002Fem> changed for historical troubleshooting. Limited to the last 50 entries to prevent bloat.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>🛡️ \u003Cstrong>Health Advisor Notifications\u003C\u002Fstrong> — Proactive alerts that predict problems before they happen. Checks your PHP and MySQL versions against known \u003Cstrong>End-of-Life (EOL) dates\u003C\u002Fstrong> and flags critical security risks. Integrates directly with the native \u003Cstrong>WordPress Site Health\u003C\u002Fstrong> screen via \u003Ccode>site_status_tests\u003C\u002Fcode>. Flags PHP \u003C 8.1 as a critical security risk.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>📤 \u003Cstrong>JSON System Info Export\u003C\u002Fstrong> — One-click download of your entire technical stack as a structured JSON file. Includes WordPress config, PHP version + all extensions, database details, active theme, all active plugins with versions, server info, and more. Ideal for attaching to support tickets, sharing with hosting providers, or archiving before migrations.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.versioninfoplugin.com\u002Fpro-features\" title=\"Version Info PRO documentation\" rel=\"nofollow ugc\">See the full PRO feature documentation \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>🏛️ Agency Plan — The Command Center for Client Portfolios\u003C\u002Fh4>\n\u003Cp>Everything in PRO, plus enterprise-grade tools for agencies, freelancers, and hosting companies managing multiple sites.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fversioninfoplugin.com\u002Fpricing\" title=\"Version Info Agency pricing\" rel=\"nofollow ugc\">Upgrade to Agency \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fstrong> Starting at $49\u002Fyear.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>🏷️ \u003Cstrong>Full Agency White-Labeling\u003C\u002Fstrong> — Make it \u003Cem>your\u003C\u002Fem> plugin. Replace “Version Info” and “Gaucho Plugins” with your agency’s name everywhere: the plugin list, dashboard widgets, admin bar, footer, and settings page. Hide Freemius-generated Account, Contact, and Support submenus. Uses the \u003Ccode>all_plugins\u003C\u002Fcode> filter for seamless Plugins list rebranding.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>👥 \u003Cstrong>Role-Based Admin Visibility\u003C\u002Fstrong> — Keep it simple for clients. A checkbox matrix lets you control exactly which WordPress user roles can see version information in the admin bar, footer, and dashboard widget. Show everything to administrators, hide everything from editors and shop managers. Default: administrator only.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>🌐 \u003Cstrong>Multi-Site Network Dashboard\u003C\u002Fstrong> — A centralized command center for WordPress Multisite. A dedicated page under \u003Cstrong>Network Admin > Settings\u003C\u002Fstrong> shows a table of every site on the network with columns for site name, URL, WP version, PHP version, MySQL version, and database size. Uses \u003Ccode>switch_to_blog()\u003C\u002Fcode> safely with network transient caching. Capped at 100 sites for performance.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>📧 \u003Cstrong>System Change Email Alerts\u003C\u002Fstrong> — Get notified the \u003Cem>instant\u003C\u002Fem> something changes. Proactive \u003Ccode>wp_mail()\u003C\u002Fcode> notifications the moment a hosting provider changes a PHP version, a WordPress core update completes, or any plugin\u002Ftheme version shifts. Configurable recipient list (comma-separated), per-component toggles, and defaults to the site admin email.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>🔍 \u003Cstrong>PHP Error Log Dashboard\u003C\u002Fstrong> — Debug without FTP or SSH. View the last 100 lines of your \u003Ccode>debug.log\u003C\u002Fcode> (or custom \u003Ccode>error_log\u003C\u002Fcode> path) directly inside WordPress. Uses efficient \u003Ccode>fseek()\u003C\u002Fcode> tail reading — never loads the full log into memory. Sensitive file paths are automatically masked with \u003Ccode>[ABSPATH]\u003C\u002Fcode>. Download the full log as a ZIP file for offline analysis.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocs.versioninfoplugin.com\u002Fagency-features\" title=\"Version Info Agency documentation\" rel=\"nofollow ugc\">See the full Agency feature documentation \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>🎯 Real-World Use Cases\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>“The Support Hero”\u003C\u002Fstrong>\u003Cbr \u002F>\nA client reports a bug. Instead of asking for their login credentials, you ask them to screenshot their admin footer. You instantly know their PHP version, MySQL version, WordPress version, and web server — without ever logging into their site.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“The WooCommerce Specialist”\u003C\u002Fstrong>\u003Cbr \u002F>\nBlack Friday is coming. You use \u003Cstrong>Database Tracking\u003C\u002Fstrong> to monitor table size growth during the high-traffic event. When \u003Ccode>wp_options\u003C\u002Fcode> grows 300% overnight, you catch the autoloaded transient bloat before it takes down the store.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“The Agency Owner”\u003C\u002Fstrong>\u003Cbr \u002F>\nYou hand over a beautifully built site to a high-ticket client. With \u003Cstrong>White-Labeling\u003C\u002Fstrong>, the client never sees “Gaucho Plugins” — they see \u003Cem>your\u003C\u002Fem> agency name everywhere. With \u003Cstrong>Role-Based Visibility\u003C\u002Fstrong>, the client’s editors see a clean dashboard without confusing server information.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“The Safety-First Developer”\u003C\u002Fstrong>\u003Cbr \u002F>\nYou manage staging and production environments for the same client. The bright \u003Cstrong>red “Production” badge\u003C\u002Fstrong> in your admin bar prevents you from ever accidentally running a migration script on the live site. The \u003Cstrong>admin bar highlight\u003C\u002Fstrong> makes the environment unmistakable.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“The Managed Hosting Reseller”\u003C\u002Fstrong>\u003Cbr \u002F>\nYou run 40 sites on a Multisite installation. The \u003Cstrong>Network Dashboard\u003C\u002Fstrong> gives you a single page showing WP, PHP, and MySQL versions across every site — perfect for planning bulk upgrades. When a host updates PHP overnight, the \u003Cstrong>Email Alert\u003C\u002Fstrong> hits your inbox before the first support ticket arrives.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>“The Remote Debugger”\u003C\u002Fstrong>\u003Cbr \u002F>\nA client’s site throws a white screen. You open the \u003Cstrong>Error Log Dashboard\u003C\u002Fstrong> directly in wp-admin — no FTP client, no SSH terminal. The last 100 lines show a fatal error from a plugin update. The \u003Cstrong>Version History\u003C\u002Fstrong> tab confirms the plugin updated 10 minutes ago. Root cause found in under 60 seconds.\u003C\u002Fp>\n\u003Ch4>⚡ Performance & Architecture\u003C\u002Fh4>\n\u003Cp>Version Info is built with performance as the #1 priority:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Transients API\u003C\u002Fstrong> — All resource-heavy metrics (CPU, RAM, DB size) are cached. CPU\u002FRAM uses 60-second TTL; database size uses 12-hour TTL.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Heartbeat API\u003C\u002Fstrong> — Live resource updates use the native WordPress Heartbeat, ensuring data refreshes only when the admin page is active.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Provider Pattern\u003C\u002Fstrong> — A \u003Ccode>ProviderInterface\u003C\u002Fcode> abstracts all detection logic, making it trivial to add custom providers for AWS, Kinsta, or any host-specific API.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hook-First Architecture\u003C\u002Fstrong> — Every data point fires a WordPress filter (\u003Ccode>version_info_wp_version\u003C\u002Fcode>, \u003Ccode>version_info_php_version\u003C\u002Fcode>, etc.) and every render point fires an action. Extend anything without editing core files. See the \u003Ca href=\"https:\u002F\u002Fdocs.versioninfoplugin.com\u002Fadvanced-configuration-hooks-and-filters\" title=\"Version Info hooks reference\" rel=\"nofollow ugc\">hooks reference\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Strict Typing\u003C\u002Fstrong> — Every file uses \u003Ccode>declare(strict_types=1)\u003C\u002Fcode> and PHP 8.1+ typed properties for maximum reliability.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress Coding Standards\u003C\u002Fstrong> — Follows WPCS, uses proper escaping, nonce verification, capability checks, and prepared SQL queries throughout.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>🌍 Works With Your Stack\u003C\u002Fh4>\n\u003Cp>Version Info auto-detects and works seamlessly with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Hosts:\u003C\u002Fstrong> Kinsta, WP Engine, Pantheon, Flywheel, Cloudways, SiteGround, and any standard LAMP\u002FLEMP host\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Environments:\u003C\u002Fstrong> Bedrock, Trellis, Local by Flywheel, MAMP, WAMP, Docker, DevKinsta\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Servers:\u003C\u002Fstrong> Apache, Nginx, LiteSpeed, OpenLiteSpeed, IIS\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multisite:\u003C\u002Fstrong> Full network-level support with dedicated Network Admin page (Agency)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Translations:\u003C\u002Fstrong> 13+ languages with full RTL support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>📣 What WordPress Professionals Are Saying\u003C\u002Fh4>\n\u003Cblockquote>\n\u003Cp>“I install this on every client site. It saves me at least 5 minutes per support ticket.” — ★★★★★\u003C\u002Fp>\n\u003Cp>“The environment badges alone are worth the upgrade. I’ll never accidentally nuke production again.” — ★★★★★\u003C\u002Fp>\n\u003Cp>“Finally, a server info plugin that isn’t bloated with stuff I don’t need.” — ★★★★★\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fversion-info\u002Freviews\u002F?filter=5\" title=\"Version Info 5-star reviews\" rel=\"ugc\">Read more reviews \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>🔗 Resources & Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fversioninfoplugin.com\u002F\" title=\"Visit the Version Info website\" rel=\"nofollow ugc\">Version Info Website\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdocs.versioninfoplugin.com\u002F\" title=\"Version Info documentation\" rel=\"nofollow ugc\">Documentation & Guides\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fversioninfoplugin.com\u002Fpricing\" title=\"Version Info pricing\" rel=\"nofollow ugc\">PRO & Agency Pricing\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdocs.versioninfoplugin.com\u002Fadvanced-configuration-hooks-and-filters\" title=\"Version Info hooks reference\" rel=\"nofollow ugc\">Developer Hooks Reference\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fversion-info\u002F\" title=\"Version Info support\" rel=\"ugc\">Support Forum\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fversion-info\u002F\" title=\"Translate on WordPress.org\" rel=\"nofollow ugc\">Translate Version Info\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fgauchoplugins.com\" title=\"Gaucho Plugins\" rel=\"nofollow ugc\">Gaucho Plugins Portfolio\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n","The #1 technical dashboard for WordPress professionals. Display PHP, MySQL, WP & server versions anywhere in admin. Monitor CPU, RAM, DB size &amp &hellip;",10000,120467,14,"2026-02-22T07:10:00.000Z","5.5",[52,109,110,111,112],"mysql-version","php-version","server-info","site-health","https:\u002F\u002Fversioninfoplugin.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fversion-info.2.0.0.zip",{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":125,"num_ratings":126,"last_updated":127,"tested_up_to":128,"requires_at_least":49,"requires_php":129,"tags":130,"homepage":136,"download_link":137,"security_score":138,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":57},"page-visits-counter-lite","Page Visits Counter – Lite","1.2.2","Denis Botić","https:\u002F\u002Fprofiles.wordpress.org\u002Fstrongetic\u002F","\u003Cp>This plugin is going to display the number of visits for each page in the:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Admin dashboard\u003C\u002Fli>\n\u003Cli>Browser developer-tools\u002Fconsole tab – (HIDDEN COUNTERS)\u003C\u002Fli>\n\u003Cli>Website\u002Fpage frontend – (OPTIONAL)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can add and display counters on the frontend of your website:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>total page-visits-counter and\u002For\u003C\u002Fli>\n\u003Cli>total website-visits-counter\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>( Page-visits-counter does not count page refresh as a new visit while Website-visits-counter counts everything. )\u003C\u002Fp>\n\u003Ch3> Hidden page counter + admin page reports \u003C\u002Fh3>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FwxWiFin8NwE?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3> How to display hidden counter on a website frontend? \u003C\u002Fh3>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FLWKxYhtYH3o?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>The purpose of this plugin is to supplement the report of actual visits to the pages of the website that cannot be recorded through advanced analytical tools. Advanced analytical tools require the consent of a visitor before the visit is recorded.\u003C\u002Fp>\n\u003Ch3> WHY LITE? \u003C\u002Fh3>\n\u003Cul>\n\u003Cli>It is a small size software and it does not require much memory.\u003C\u002Fli>\n\u003Cli>It is not going to crowd your database with tons of metric data and “eat” database memory.\u003C\u002Fli>\n\u003Cli>It is not going to collect user’s personal data – GDPR compliant.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3> NOT COUNTING \u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Logged in user with a role:\n\u003Cul>\n\u003Cli>admin\u003C\u002Fli>\n\u003Cli>editor\u003C\u002Fli>\n\u003Cli>shop manager\u003C\u002Fli>\n\u003Cli>custom role\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Page refresh\u002Freload ( But “Total Visits” load&reload sum will count it. )\u003C\u002Fli>\n\u003Cli>Submitting comments ( But “Total Visits” load&reload sum will count it. )\u003C\u002Fli>\n\u003Cli>Visiting direct media link in the uploads folder\u003C\u002Fli>\n\u003Cli>Media – attachment page\u003C\u002Fli>\n\u003Cli>Search results page\u003C\u002Fli>\n\u003Cli>Update cart ( But “Total Visits” load&reload sum will count it. )\u003C\u002Fli>\n\u003Cli>Checkout\u002Forder received ( But “Total Visits” load&reload sum will count it. )\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3> COUNTING \u003C\u002Fh3>\n\u003Cul>\n\u003Cli>A visitor ( Not logged in )\u003C\u002Fli>\n\u003Cli>Logged in user with a role:\n\u003Cul>\n\u003Cli>Subscriber\u003C\u002Fli>\n\u003Cli>Author\u003C\u002Fli>\n\u003Cli>Contributor\u003C\u002Fli>\n\u003Cli>Pending_user\u003C\u002Fli>\n\u003Cli>Customer\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Pages and posts:\n\u003Cul>\n\u003Cli>Pages and subpages\u003C\u002Fli>\n\u003Cli>Default and Static Homepage\u003C\u002Fli>\n\u003Cli>Blog Posts page\u003C\u002Fli>\n\u003Cli>Single post\u003C\u002Fli>\n\u003Cli>Default category and tag – archive pages\u003C\u002Fli>\n\u003Cli>404\u003C\u002Fli>\n\u003Cli>CPT\u003C\u002Fli>\n\u003Cli>Taxonomy archive pages\u003C\u002Fli>\n\u003Cli>WooCommerce:\n\u003Cul>\n\u003Cli>SHOP – archive page\u003C\u002Fli>\n\u003Cli>Single product\u003C\u002Fli>\n\u003Cli>Default category and tag – archive pages\u003C\u002Fli>\n\u003Cli>Attribute archive pages\u003C\u002Fli>\n\u003Cli>Cart ( Check Update cart is not counting… )\u003C\u002Fli>\n\u003Cli>Checkout ( Check “Checkout\u002Forder received” is not counting…)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3> ON CHANGE NAME of Page, Post, Product… \u003C\u002Fh3>\n\u003Cp>If you change the name of an existing page, post, product, archive, etc. then the old page will remain intact in the page visits report.\u003Cbr \u002F>\nAfter a new visit, the new page name will appear in the page visits report and the counter will start counting visits for the new page from the start.\u003C\u002Fp>\n\u003Ch3> ON DELETE of Page, Post, Product… \u003C\u002Fh3>\n\u003Cp>If you delete an existing page, post, product, archive, etc. then the page will remain intact in the page visits report including its number of visits.\u003C\u002Fp>\n\u003Ch3> VISITS-COUNTER ON THE WEBSITE FRONTEND \u003C\u002Fh3>\n\u003Cp>There are two counter types:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Website counter\u003C\u002Fli>\n\u003Cli>Page counter ( Not counting page refresh. )\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can add one or both counter types on your website or page frontend.\u003C\u002Fp>\n\u003Cp>Instructions on how to add counter\u002Fs to your website are in the plugin settings page under the tab named counter.\u003C\u002Fp>\n\u003Ch3> FEATURES \u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Invisible counter (In browser Developer-tools \u002F Console)\u003C\u002Fli>\n\u003Cli>GDPR Compliant\u003C\u002Fli>\n\u003Cli>WooCommerce (HPOS and Remote Logging) compatible\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3> REQUIREMENTS \u003C\u002Fh3>\n\u003Cul>\n\u003Cli>WordPress 5.0 +\u003C\u002Fli>\n\u003Cli>PHP 5.6.40 +\u003C\u002Fli>\n\u003Cli>WooCommerce 4.9.2 +\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3> PLUGIN UNINSTALL \u003C\u002Fh3>\n\u003Cp>On the plugin delete\u002Funinstall it will automatically clean its data from the database unless you select to preserve them in the plugin settings area.\u003Cbr \u002F>\nTherefore, it is harmless for you to try out this plugin.\u003C\u002Fp>\n\u003Ch3> FOR DEVELOPER \u003C\u002Fh3>\n\u003Cp>Admin dashboard widget has four wp-hooks:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>add_action( ‘StrCPVisits_db_widget_wrapper_start’ );\u003C\u002Fli>\n\u003Cli>add_action( ‘StrCPVisits_db_widget_after_total_visits_boxes’ );\u003C\u002Fli>\n\u003Cli>add_action( ‘StrCPVisits_db_widget_wrapper_end_before_js’ );\u003C\u002Fli>\n\u003Cli>add_action( ‘StrCPVisits_db_widget_wrapper_end_after_js’ );\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>LEGAL\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDenisBotic\u002FWP-org-plugin-PAGE-VISITS-COUNTER-LITE\u002Fblob\u002Fmain\u002Fprivacy-policy.txt\" rel=\"nofollow ugc\">Privacy policy\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDenisBotic\u002FWP-org-plugin-PAGE-VISITS-COUNTER-LITE\u002Fblob\u002Fmain\u002Fread-me-disclaimer.txt\" rel=\"nofollow ugc\">Disclaimer\u003C\u002Fa>\u003C\u002Fp>\n","Display number of visits for each page in admin dashboard and browser developer-tool\u002Fconsole. Doesn't count page refresh as a new visit...",5000,42595,80,7,"2025-01-06T15:19:00.000Z","6.7.5","5.6.40",[131,132,133,134,135],"developer-tools-counter","page-views","page-visit-counter","visit-stats","wordpress-counter","https:\u002F\u002Fstrongetic.com\u002Ffree-wp-plugins\u002Fpage-visits-counter-lite\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpage-visits-counter-lite.zip",92,{"attackSurface":140,"codeSignals":152,"taintFlows":159,"riskAssessment":160,"analyzedAt":163},{"hooks":141,"ajaxHandlers":148,"restRoutes":149,"shortcodes":150,"cronEvents":151,"entryPointCount":11,"unprotectedCount":11},[142],{"type":143,"name":144,"callback":145,"priority":14,"file":146,"line":147},"action","pre_http_request","anonymous","disable-telemetry.php",21,[],[],[],[],{"dangerousFunctions":153,"sqlUsage":154,"outputEscaping":156,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":158},[],{"prepared":11,"raw":11,"locations":155},[],{"escaped":11,"rawEcho":11,"locations":157},[],[],[],{"summary":161,"deductions":162},"The \"disable-telemetry\" plugin version 1.0.3 exhibits an exceptionally strong security posture based on the provided static analysis.  The absence of any identifiable attack surface, dangerous functions, raw SQL queries, unescaped output, file operations, external HTTP requests, nonce checks, or capability checks is a significant strength. Furthermore, the lack of any recorded vulnerabilities in its history suggests a development team that prioritizes security. The taint analysis also reveals no identified security flaws. This plugin appears to be designed with security as a primary concern, implementing robust defenses and a minimal attack vector.",[],"2026-03-17T05:59:50.702Z",{"wat":165,"direct":170},{"assetPaths":166,"generatorPatterns":167,"scriptPaths":168,"versionParams":169},[],[],[],[],{"cssClasses":171,"htmlComments":172,"htmlAttributes":173,"restEndpoints":174,"jsGlobals":175,"shortcodeOutput":176},[],[],[],[],[],[]]