[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fb0jEJQGj9JjRC2eMMp0TkzzoOMUVe2kY5PKa8sSebwQ":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":36,"analysis":140,"fingerprints":281},"disclaimer-by-elan42","ELAN42-disclaimer","0.9.13","ELAN42\u002F\u002F\u002F","https:\u002F\u002Fprofiles.wordpress.org\u002Fnokao\u002F","\u003Cp>This plugin lets you add different kind of links into your website,\u003Cbr \u002F>\nwith widgets,\u003Cbr \u002F>\nshortcodes,\u003Cbr \u002F>\nor php code.\u003C\u002Fp>\n\u003Cp>This links will open a popup that gives the visitor more informations,\u003Cbr \u002F>\nyou will be able to customize the text for privacy policy, terms and conditions, refund policy,\u003Cbr \u002F>\nyou can also add a customized link for the credits of the website.\u003C\u002Fp>\n","Adds configurable Credits \u002F Privacy Policy for the European Cookies Law and GDPR, with links \u002F ajax  \u002F hover box.",20,2168,0,"2018-08-09T13:11:00.000Z","4.9.29","3.2","",[19,20,21,22,23],"cookie","cookies","credits","european-law","shortcodes","http:\u002F\u002Fwww.elan42.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisclaimer-by-elan42.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"nokao",1,30,84,"2026-04-04T21:04:47.176Z",[37,55,78,97,121],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":17,"tags":52,"homepage":17,"download_link":54,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"mrcookies","Mr Cookies","1.5.2","Artic Studio","https:\u002F\u002Fprofiles.wordpress.org\u002Farticstudio\u002F","\u003Cp>MrCookies plugin adapts your WordPress to satisfy the European cookies laws.\u003C\u002Fp>\n\u003Cp>It’s very simple to use, configure and adapt in your styles.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>For WordPress and WordPressMU\u003C\u002Fli>\n\u003Cli>Acceptation bar\u003C\u002Fli>\n\u003Cli>Custom colors\u003C\u002Fli>\n\u003Cli>Custom stylesheet\u003C\u002Fli>\n\u003Cli>Link to explanation page of cookies\u003C\u002Fli>\n\u003Cli>Translations with .po and .mo files\u003C\u002Fli>\n\u003Cli>Available in English, Spanish, Catalan and Italian.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Translators\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Italian: @spaghettiBCN\u003C\u002Fli>\n\u003C\u002Ful>\n","MrCookies plugin adapts your Wordpress to satisfy the European cookies laws.",60,3308,96,6,"2015-06-08T09:00:00.000Z","4.2.39","3.0.1",[19,20,22,53],"privacy","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmrcookies.1.5.2.zip",{"slug":56,"name":57,"version":58,"author":59,"author_profile":60,"description":61,"short_description":62,"active_installs":63,"downloaded":64,"rating":47,"num_ratings":65,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":69,"tags":70,"homepage":74,"download_link":75,"security_score":76,"vuln_count":48,"unpatched_count":13,"last_vuln_date":77,"fetched_at":28},"cookie-notice","Cookie Notice & Compliance for GDPR \u002F CCPA","2.5.14","Humanityco","https:\u002F\u002Fprofiles.wordpress.org\u002Fhumanityco\u002F","\u003Cp>\u003Cstrong>Cookie Notice\u003C\u002Fstrong> provides a simple, customizable website banner that can be used to help your website comply with certain cookie consent requirements under the EU GDPR cookie law and CCPA regulations and includes \u003Cstrong>seamless integration\u003C\u002Fstrong> with Cookie Compliance to help your site comply with the latest updates to existing consent laws.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cookie Compliance\u003C\u002Fstrong> is a fully featured Consent Management Platform (CMP) that provides automated compliance features and enhanced design controls in a state-of-the-art web application. Cookie Compliance enables websites to \u003Cstrong>take a proactive approach to data protection and consent laws\u003C\u002Fstrong>. It is the first solution to offer Intentional Consent, a new consent framework that incorporates the latest guidelines from over 100+ countries, and emerging standards from leading international organizations like the IEEE and European Center for Digital Rights (noyb.eu). Cookie Compliance provides a beautiful, multi-level experience and includes new choices and controls for site visitors to better understand and engage in data privacy decisions.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Our Cookie Compliance web application introduces a more ethical, proactive way to capture and manage consent.  This early version of the emerging Intentional Consent framework is a result of Hu-manity.co’s ongoing work with top Fortune 500 companies, governments, and standards organizations, who believe that the imbalanced relationship between consumers and corporations is unsustainable when it comes to data privacy and consent online. We are making it available for all website owners and operators who share this belief and support our mission to eliminate the dark patterns in online consent.\u003Cbr \u002F>\n  Matt Sinderbrand – Chief Platform Officer, Hu-manity.co\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>Cookie Notice (plugin only)\u003C\u002Fh3>\n\u003Cp>Cookie Notice provides a simple, customizable website banner to help your website comply with certain cookie consent requirements.\u003C\u002Fp>\n\u003Ch4>Banner features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Customizable notice message\u003C\u002Fli>\n\u003Cli>Consent on click, scroll or close\u003C\u002Fli>\n\u003Cli>Multiple cookie expiry options\u003C\u002Fli>\n\u003Cli>Link to Privacy Policy page\u003C\u002Fli>\n\u003Cli>WordPress Privacy Policy page synchronization\u003C\u002Fli>\n\u003Cli>WPML and Polylang compatible\u003C\u002Fli>\n\u003Cli>SEO friendly\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Cookie Compliance (plugin + web application)\u003C\u002Fh3>\n\u003Cp>Cookie Compliance gives you access to the most up-to-date formatting guidelines and technical compliance requirements for over 100 countries and legal jurisdictions.\u003C\u002Fp>\n\u003Ch4>Banner features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Intentional Consent\u003C\u002Fstrong> provides 3 equal buttons to give site visitors the ability to accept none, some, or all cookies through packaged choices called Data Access Levels. Data Access Levels improve consent conversion and eliminate the dark pattern of deceptive, non-equal choices in the first layer. \u003Cem>Complies with equal choice principle prescribed under GDPR and other data protection laws.\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Consent duration selector\u003C\u002Fstrong> gives visitor control over how long their consent remains valid for your site.  \u003Cem>Enables your site to align with recent guidelines from EU Data Protection Authorities, which state that cookie consent should be valid for no longer than a period of 6 months.\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cookie purpose categories\u003C\u002Fstrong> make it easy for website visitors to customize their consent by category. \u003Cem>Complies with affirmative, opt-in consent requirements prescribed under GDPR and other data protection laws.\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Consent metrics\u003C\u002Fstrong> displays the visitor’s consent record and a list of blocked \u002F allowed 3rd parties directly in the expanded level of the banner. \u003Cem>Complies with latest guidance from EU Data Protection Authorities like CNIL (France) and ICO (UK). \u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customizable Privacy Paper\u003C\u002Fstrong> provides helpful information to improve visitor comprehension and understanding of the data sharing risks and benefits. Allows you to summarize core components of your sites privacy notice and \u003Cem>aligns with the informed principle prescribed by GDPR rules for valid consent capture. \u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable Privacy Contact\u003C\u002Fstrong> allows you to provide contact information for a business’ data privacy admin, as well as helpful links to data subject request forms and other data privacy resources. \u003Cem>Aligns with the informed principle prescribed by GDPR rules for valid consent capture.\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Web Application features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Consent analytics dashboard\u003C\u002Fstrong> shows event data for number of visits and provides a “trust score” to help you track how site visitors are setting their consent. Make adjustments to your banner to improve your cookie acceptance rate and monitor progress via the consent activity graph.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Default configurations\u003C\u002Fstrong> for GDPR, CCPA and more help to remove dark patterns and allow for quick and easy deployment of the consent banner without any guesswork. Customize the design of any default configuration to match the look and feel of your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic script blocking\u003C\u002Fstrong> blocks all non-essential cookie scripts and iFrames by default and \u003Cem>complies with valid consent rules under GDPR and other data protection laws\u003C\u002Fem>; in order to be compliant, your site must record visitor consent before setting or sending cookies.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Consent Mode\u003C\u002Fstrong> ensures that your website can still gather valuable insights and perform effectively while respecting users’ privacy preferences by \u003Cem>dynamically adjusting the behavior of Google services according to user consent.\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Facebook Consent Mode\u003C\u002Fstrong> allows your website to \u003Cem>measure the impact of your ads on Facebook\u003C\u002Fem>, track website activities and conversions and automatically deliver ads to Facebook if the user has agreed to.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Consent record storage\u003C\u002Fstrong> automatically stores a record of each consent and makes these records available for export. \u003Cem>Complies with proof-of-consent requirements prescribed under GDPR and other data protection laws.\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multilingual support\u003C\u002Fstrong> automatically translates all banner text strings and allows you to provide custom translations for every text field to ensure visitors get a consistent consent experience.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multidomain management\u003C\u002Fstrong> allows you to manage additional Free or Professional domains under a single account and enables you to customize banner configuration and design for each domain independently.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Cookie Compliance proactive approach:\u003C\u002Fh4>\n\u003Cp>For all businesses, the resources required to stay ahead of the latest regulations increases with the passage of each new law. With enforcement of compliance violations increasing daily, we believe it is critical for us as a trusted consent vendor to do everything in our power to help you stay ahead of these laws and remove the risk to your business\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cookie Compliance covers all current and upcoming regulations:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>GDPR (EU)\u003C\u002Fli>\n\u003Cli>ePrivacy Directive (EU)\u003C\u002Fli>\n\u003Cli>ePrivacy Regulation (EU)\u003C\u002Fli>\n\u003Cli>PECR (UK)\u003C\u002Fli>\n\u003Cli>LGPD (Brazil)\u003C\u002Fli>\n\u003Cli>PIPEDA (Canada)\u003C\u002Fli>\n\u003Cli>PDPB (India)\u003C\u002Fli>\n\u003Cli>CCPA (California, US)\u003C\u002Fli>\n\u003Cli>VCDPA (Virginia, US)\u003C\u002Fli>\n\u003Cli>Colorado Privacy Act (US)\u003C\u002Fli>\n\u003Cli>CPRA (California, US)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Cookie Compliance incorporates all recent formatting guidance:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>European Data Protection Supervisor (EDPS)\u003C\u002Fli>\n\u003Cli>ICO (United Kingdom)\u003C\u002Fli>\n\u003Cli>CNIL (France)\u003C\u002Fli>\n\u003Cli>GPDP (Italy)\u003C\u002Fli>\n\u003Cli>BfDl (Germany)\u003C\u002Fli>\n\u003Cli>AEPD (Spain)\u003C\u002Fli>\n\u003Cli>European Center for Digital Rights (noyb.eu)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Cookie Compliance targets dark patterns\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Dark Patterns are user interface (UI) techniques that push site visitors to make decisions (such as agreeing to the installation of cookies on their devices) that they might not otherwise make. The most common Dark Pattern is the lack of an equal “reject all” button on the first layer of the consent notice. Dark Patterns are explicitly banned under GDPR and other data protection laws.\u003C\u002Fp>\n\u003Cp>As a part of our proactive approach, Cookie Compliance is configured by default to prevent Dark Patterns through our unique Intentional Consent design.\u003C\u002Fp>\n","Cookie Notice allows you to you elegantly inform users that your site uses cookies and helps you comply with GDPR, CCPA and other data privacy laws.",900000,36171663,3020,"2026-03-04T01:02:00.000Z","6.9.4","4.9.6","7.4",[71,72,20,73,53],"ccpa","consent","gdpr","https:\u002F\u002Fcookie-compliance.co\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcookie-notice.2.5.14.zip",95,"2025-11-21 16:28:14",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":67,"requires_at_least":91,"requires_php":69,"tags":92,"homepage":95,"download_link":96,"security_score":88,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"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,100,2,"2026-03-12T09:27:00.000Z","5.0",[93,94,72,20,53],"api","compliance","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-consent-api","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-consent-api.2.0.1.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":47,"num_ratings":107,"last_updated":108,"tested_up_to":109,"requires_at_least":110,"requires_php":111,"tags":112,"homepage":117,"download_link":118,"security_score":119,"vuln_count":32,"unpatched_count":13,"last_vuln_date":120,"fetched_at":28},"adapta-rgpd","Adapta RGPD","1.3.9","Superadmin","https:\u002F\u002Fprofiles.wordpress.org\u002Fcesarmaeso\u002F","\u003Cp>&laquo;Adapta RGPD&raquo; es la herramienta que te ayuda a adaptar tu sitio web al RGPD fácilmente: \u003Cstrong>Crea las páginas legales en español\u003C\u002Fstrong>, \u003Cstrong>cumple con la ley de Cookies\u003C\u002Fstrong> y almacena los consentimientos.\u003C\u002Fp>\n\u003Cp>Con &laquo;Adapta RGPD&raquo; conseguirás:\u003C\u002Fp>\n\u003Ch4>1. Crea los textos legales imprescindibles\u003C\u002Fh4>\n\u003Cp>Crea las páginas de \u003Cstrong>Aviso Legal, Política de Privacidad y la Política de Cookies\u003C\u002Fstrong> en español para particulares, profesionales o empresas.\u003C\u002Fp>\n\u003Cp>Personaliza las páginas legales añadiendo distintas claúsulas legales según tus circunstancias: requisito de edad, derecho de exclusión, uso de redes sociales y el Programa de Afiliados de Amazon de la UE.\u003C\u002Fp>\n\u003Ch4>2. Activa el banner de cookies\u003C\u002Fh4>\n\u003Cp>Personaliza el banner de cookies al estilo de tu sitio web con estilos prediseñados: moderno claro, moderno oscuro y clásico. Y si quieres aún más personalización añade tus propios estilos CSS.\u003C\u002Fp>\n\u003Ch4>3. Gestiona los consentimientos\u003C\u002Fh4>\n\u003Cp>Añade las casillas de consentimiento y crea la primera capa informativa en los comentarios y formularios.\u003C\u002Fp>\n\u003Cp>&laquo;Adapta RGPD&raquo; incorpora un mecanismo a través del API para la gestión de los consentimientos que garantiza tanto la integridad como la salvaguarda de la documentación del consentimiento.\u003C\u002Fp>\n\u003Ch4>Notas\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Apto para empresas y bloggers que quieren adaptarse por sus propios medios y que realicen un tratamiento de datos personales de escaso riesgo.\u003C\u002Fli>\n\u003Cli>El mero hecho de instalar el plugin no garantiza el cumplimiento del RGPD u otra disposición legal. Para asegurar el cumplimiento contacta con profesionales legales.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Complementos\u003C\u002Fh4>\n\u003Cp>El API de Adapta RGPD es un complemento adicional que permite obtener información detallada de las cookies instaladas (descripción, categoría, duración y enlaces a la política de privacidad). \u003Ca href=\"https:\u002F\u002Fsuperadmin.es\u002Flegal\u002Fcondiciones-api-adapta-rgpd\u002F\" rel=\"nofollow ugc\">Ver condiciones\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Ayuda\u003C\u002Fh4>\n\u003Cp>A veces necesitas ayuda, tienes problemas o preguntas. Echa un vistazo a la \u003Ca href=\"https:\u002F\u002Fsuperadmin.es\u002Fadapta-rgpd\" rel=\"nofollow ugc\">página del plugin\u003C\u002Fa> o manda tus preguntas desde \u003Ca href=\"https:\u002F\u002Fsuperadmin.es\u002Fcontacto\u002F\" rel=\"nofollow ugc\">este formulario\u003C\u002Fa>.\u003C\u002Fp>\n","La solución completa para el cumplimiento del RGPD y la LOPD GDD en español: Crea los textos legales, el banner de cookies y documenta los consentimie &hellip;",40000,379303,105,"2025-06-17T12:11:00.000Z","6.8.5","4.7","5.6",[20,113,114,115,116],"legal","lopd","privacidad","rgpd","https:\u002F\u002Fsuperadmin.es\u002Fadapta-rgpd","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadapta-rgpd.zip",99,"2021-06-30 00:00:00",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":129,"downloaded":130,"rating":131,"num_ratings":132,"last_updated":133,"tested_up_to":109,"requires_at_least":134,"requires_php":17,"tags":135,"homepage":138,"download_link":139,"security_score":88,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"asesor-cookies-para-la-ley-en-espana","Asesor de Cookies RGPD para normativa europea","0.34","cdoral","https:\u002F\u002Fprofiles.wordpress.org\u002Fcdoral\u002F","\u003Cblockquote>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwebartesanal.com\u002F\" rel=\"nofollow ugc\">Para más información visite Web Artesanal\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>El funcionamiento consiste en mostrar un mensaje cada vez que un nuevo usuario visita su web avisándole que si pulsa el botón ACEPTAR consiente la instalación de cookies en su navegador web.\u003C\u002Fp>\n\u003Cp>Además este plugin le proporciona los textos legales y técnicos iniciales para confeccionar su política de cookies, se generan automáticamente y los puede editar si lo desea.\u003C\u002Fp>\n\u003Cp>Características del plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Elección del estilo de la ventana del aviso, color, tamaño de fuente, etc.\u003C\u002Fli>\n\u003Cli>Elección de la posición de la solapa u ocultación de la misma.\u003C\u002Fli>\n\u003Cli>Creación automática de las dos páginas con los textos legales y técnicos iniciales que necesita su web: La política de cookies y la descripción coloquial de cookies para los usuarios web. Las páginas son editables.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Cp>Si este plugin no te funciona correctamente prueba a hacer lo siguiente:\u003Cbr \u002F>\n* Borra el caché de tu navegador, a veces se quedan versiones antiguas de archivos CSS y JS.\u003Cbr \u002F>\n* Si utilizas algún sistema de caché en tu instalación WordPress prueba a borrar dicho caché.\u003C\u002Fp>\n\u003Cp>Si te sigue fallando puede ser porque otro plugin genere errores Javascript y esto impide el funcionamiento del Asesor de Cookies. Puedes probar a desactivar otros plugins para saber cuál está dando problemas.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwebartesanal.com\u002F\" rel=\"nofollow ugc\">Si tienes otros problemas intentaremos ayudarte si envías un correo desde nuestra web\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmantenimiento-web\u002F\" rel=\"ugc\">Te recomendamos nuestro plugin sobre mantenimiento de un sitio WordPress\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n","Este plugin le facilita la adaptación a la RGPD de su web a la política de cookies mostrando el aviso a los visitantes de su página y proporcionándole &hellip;",20000,741962,78,59,"2025-10-08T09:09:00.000Z","3.5",[19,20,136,116,137],"ley","spain","https:\u002F\u002Fwebartesanal.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fasesor-cookies-para-la-ley-en-espana.zip",{"attackSurface":141,"codeSignals":198,"taintFlows":268,"riskAssessment":269,"analyzedAt":280},{"hooks":142,"ajaxHandlers":170,"restRoutes":171,"shortcodes":172,"cronEvents":197,"entryPointCount":48,"unprotectedCount":13},[143,149,153,157,162,166],{"type":144,"name":145,"callback":146,"file":147,"line":148},"action","init","load_elan42_textdomain","disclaimer-by-elan42.php",15,{"type":144,"name":150,"callback":151,"file":147,"line":152},"wp_enqueue_scripts","elan42_enqueue_disclaimer_scripts",338,{"type":144,"name":154,"callback":155,"file":147,"line":156},"widgets_init","elan42_disclaimer_register_widget",600,{"type":144,"name":158,"callback":159,"file":160,"line":161},"admin_init","elan42_disclaimer_admin_page_setup","inc\\admin.php",131,{"type":144,"name":158,"callback":163,"file":164,"line":165},"nra_page_init","nightrock-admin-framework\\inc\\nra_page_init.php",37,{"type":144,"name":167,"callback":168,"file":164,"line":169},"admin_menu","nra_create_page",57,[],[],[173,177,181,185,189,193],{"tag":174,"callback":175,"file":147,"line":176},"elan42_disclaimer","elan42_disclaimer_shortcode",443,{"tag":178,"callback":179,"file":147,"line":180},"elan42_pretty_disclaimer","elan42_pretty_disclaimer_shortcode",457,{"tag":182,"callback":183,"file":147,"line":184},"elan42_disclaimer_privacy","elan42_disclaimer_shortcode_privacy",465,{"tag":186,"callback":187,"file":147,"line":188},"elan42_disclaimer_terms","elan42_disclaimer_shortcode_terms",471,{"tag":190,"callback":191,"file":147,"line":192},"elan42_disclaimer_cookie","elan42_disclaimer_shortcode_cookie",477,{"tag":194,"callback":195,"file":147,"line":196},"elan42_disclaimer_links","elan42_links_only_shortcode",536,[],{"dangerousFunctions":199,"sqlUsage":200,"outputEscaping":202,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":267},[],{"prepared":13,"raw":13,"locations":201},[],{"escaped":203,"rawEcho":204,"locations":205},11,32,[206,209,211,213,215,218,220,222,224,227,228,230,232,234,236,238,240,242,243,244,246,248,249,250,252,254,256,258,259,261,263,265],{"file":147,"line":207,"context":208},417,"raw output",{"file":147,"line":210,"context":208},428,{"file":147,"line":212,"context":208},559,{"file":147,"line":214,"context":208},563,{"file":216,"line":217,"context":208},"nightrock-admin-framework\\inc\\nra_custom_functions.php",41,{"file":216,"line":219,"context":208},87,{"file":216,"line":221,"context":208},92,{"file":216,"line":223,"context":208},94,{"file":225,"line":226,"context":208},"nightrock-admin-framework\\inc\\nra_display_fields.php",29,{"file":225,"line":33,"context":208},{"file":225,"line":229,"context":208},31,{"file":225,"line":231,"context":208},38,{"file":225,"line":233,"context":208},39,{"file":225,"line":235,"context":208},46,{"file":225,"line":237,"context":208},47,{"file":225,"line":239,"context":208},48,{"file":225,"line":241,"context":208},52,{"file":225,"line":132,"context":208},{"file":225,"line":45,"context":208},{"file":225,"line":245,"context":208},70,{"file":225,"line":247,"context":208},74,{"file":225,"line":131,"context":208},{"file":225,"line":219,"context":208},{"file":225,"line":251,"context":208},89,{"file":225,"line":253,"context":208},102,{"file":225,"line":255,"context":208},103,{"file":225,"line":257,"context":208},104,{"file":225,"line":107,"context":208},{"file":225,"line":260,"context":208},106,{"file":225,"line":262,"context":208},114,{"file":225,"line":264,"context":208},115,{"file":225,"line":266,"context":208},128,[],[],{"summary":270,"deductions":271},"The \"disclaimer-by-elan42\" plugin, version 0.9.13, exhibits a generally good security posture based on the provided static analysis. The absence of dangerous functions, direct SQL queries without prepared statements, file operations, and external HTTP requests are strong indicators of secure coding practices. Taint analysis revealing no unsanitized flows further reinforces this positive assessment. The plugin also has no recorded vulnerability history, which suggests a consistent focus on security by its developers.\n\nHowever, a significant concern arises from the output escaping. With 43 total outputs and only 26% properly escaped, there's a substantial risk of Cross-Site Scripting (XSS) vulnerabilities. This means that user-supplied or dynamically generated content could be injected into the plugin's output without proper sanitization, potentially allowing attackers to execute arbitrary JavaScript in the context of a user's browser. Additionally, the absence of any nonce checks or capability checks on the identified entry points (shortcodes) means that these could potentially be triggered by unauthorized users or through Cross-Site Request Forgery (CSRF) attacks, although the lack of specific dangerous functions or SQL queries mitigates the immediate impact of such triggers. The plugin's attack surface is limited, and all identified entry points are shortcodes, which are less likely to be directly exposed to unauthenticated users compared to AJAX or REST API endpoints.",[272,275,278],{"reason":273,"points":274},"Low percentage of properly escaped output",10,{"reason":276,"points":277},"No nonce checks on entry points",5,{"reason":279,"points":277},"No capability checks on entry points","2026-03-16T23:10:03.741Z",{"wat":282,"direct":295},{"assetPaths":283,"generatorPatterns":288,"scriptPaths":289,"versionParams":290},[284,285,286,287],"\u002Fwp-content\u002Fplugins\u002Fdisclaimer-by-elan42\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fdisclaimer-by-elan42\u002Fjs\u002Fscript.js","\u002Fwp-content\u002Fplugins\u002Fdisclaimer-by-elan42\u002Fcss\u002Fcookie.css","\u002Fwp-content\u002Fplugins\u002Fdisclaimer-by-elan42\u002Fjs\u002Fcookie.js",[],[285,287],[291,292,293,294],"disclaimer-by-elan42\u002Fcss\u002Fstyle.css?ver=","disclaimer-by-elan42\u002Fjs\u002Fscript.js?ver=","disclaimer-by-elan42\u002Fcss\u002Fcookie.css?ver=","disclaimer-by-elan42\u002Fjs\u002Fcookie.js?ver=",{"cssClasses":296,"htmlComments":302,"htmlAttributes":303,"restEndpoints":306,"jsGlobals":307,"shortcodeOutput":309},[297,298,299,300,301],"elan42-cookie-policy","elan42-disclaimer-hover","elan42-disclaimer-popup","terms-container","cookie-container",[],[304,305],"data-elan42-disclaimer-id","data-elan42-disclaimer-type",[],[308],"elan42_disclaimer_options",[310,311],"\u003Cdiv class='terms-container'>\u003Ch2>Termini e Condizioni\u003C\u002Fh2>","\u003Cdiv class='cookie-container'>\u003Ch2>Cookie Policy\u003C\u002Fh2>"]