[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$faoaY4TU-9MH8pZUzcks89AwUWLEDy-iHEazfRO2EUTY":3,"$f6_W63aw0ZL9_3d9AgmwylS6a6pJPux6kYZ_uEWoPIKg":204,"$fl_VN-Ogr-4Mub6X4pTbHH_hzg8uR-nWFpjNpqcTkpoA":208},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":38,"analysis":131,"fingerprints":183},"dieter-privacy","Dieter Privacy","1.0.1","dieterdatenschutz","https:\u002F\u002Fprofiles.wordpress.org\u002Fdieterdatenschutz\u002F","\u003Cp>Dieter Privacy streamlines the integration of GDPR-compliant legal documents into your WordPress website by leveraging the SaaS capabilities of \u003Ca href=\"https:\u002F\u002Fwww.dieter-datenschutz.de\" rel=\"nofollow ugc\">Dieter Privacy Service\u003C\u002Fa>. This plugin acts as a bridge between your Dieter account and your website, ensuring that the generated privacy declarations are easily and seamlessly displayed to your web visitors.\u003C\u002Fp>\n\u003Cp>With a prime focus on compliance and user-friendly experiences, the Dieter Privacy plugin allows you to:\u003Cbr \u002F>\n* \u003Cstrong>Generate Legal Documents\u003C\u002Fstrong>: Create GDPR-compliant privacy declarations through the Dieter Privacy Service by answering a set of straightforward questions.\u003Cbr \u002F>\n* \u003Cstrong>Retrieve with Document ID\u003C\u002Fstrong>: Each privacy declaration is associated with a unique Document ID, which can be utilized within your WordPress website through this plugin.\u003Cbr \u002F>\n* \u003Cstrong>Display via Shortcodes\u003C\u002Fstrong>: Incorporate the generated legal documents effortlessly on any page or post using a shortcode.\u003C\u002Fp>\n\u003Cp>Navigating through the complexities of GDPR compliance becomes significantly smoother, as Dieter Privacy ensures that your privacy declarations are not only legally compliant but also easily accessible to your website visitors. Keep your focus on building great content while we handle the intricacies of privacy compliance for you.\u003C\u002Fp>\n\u003Ch4>Use of external services\u003C\u002Fh4>\n\u003Cp>The Dieter Privacy plugin relies on the Dieter Privacy Service, a third-party service, to provide GDPR-compliant legal documents. This interaction takes place every time a user requests to retrieve and display privacy policies or other legal documents within their WordPress website using the plugin.\u003Cbr \u002F>\nService details:\u003Cbr \u002F>\n* \u003Cstrong>Name\u003C\u002Fstrong>: Dieter macht den Datenschutz\u003Cbr \u002F>\n* \u003Cstrong>URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.dieter-datenschutz.de\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.dieter-datenschutz.de\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.dieter-datenschutz.de\u002Fdatenschutz\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.dieter-datenschutz.de\u002Fdatenschutz\u003C\u002Fa>\u003Cbr \u002F>\n* \u003Cstrong>Terms of use\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fapp.dieter-datenschutz.de\u002Fterms\" rel=\"nofollow ugc\">https:\u002F\u002Fapp.dieter-datenschutz.de\u002Fterms\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>By using this plugin, you acknowledge and agree that the plugin will communicate with the Dieter Privacy Service to retrieve document content based on the unique document ID you provide. Make sure you have reviewed the Terms of Service and Privacy Policy of the Dieter Privacy Service to understand how your data is handled and the legal implications of using this service in connection with your WordPress site.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Seamless Integration with Dieter Privacy Service\u003C\u002Fstrong>: Connect your WordPress website with your account on www.dieter-datenschutz.de effortlessly, ensuring that your privacy declarations are created, managed, and displayed with utmost compliance and ease.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Generate and Display Legal Documents\u003C\u002Fstrong>: Produce GDPR-compliant documents via the Dieter Privacy Service and display them on your WordPress site using a unique Document ID.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode for Easy Embedding\u003C\u002Fstrong>: Use a simple shortcode \u003Ccode>[dieter docid=\"YOUR_DOCUMENT_ID\"]\u003C\u002Fcode> to embed and display your privacy declarations on any page or post, providing flexibility and simplicity in showcasing legal documents to your visitors.\u003C\u002Fli>\n\u003C\u002Ful>\n","Dieter Privacy streamlines the integration of GDPR-compliant legal documents into your WordPress website.",40,974,100,2,"2024-09-18T20:03:00.000Z","6.6.5","5.0","7.0",[20,21,22,23,24],"compliance","documentation","imprint","legal","privacy","https:\u002F\u002Fwww.dieter-datenschutz.de","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdieter-privacy.1.0.1.zip",92,0,null,"2026-07-22T17:31:50.256Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},1,30,88,"2026-08-25T00:30:06.240Z",[39,57,77,95,112],{"slug":40,"name":41,"version":42,"author":40,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":55,"download_link":56,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"erecht24","eRecht24 Legal Texts","4.0.3","https:\u002F\u002Fprofiles.wordpress.org\u002Ferecht24\u002F","\u003Cp>\u003Cstrong>This plugin is designed for the German-speaking market (Germany, Austria, Switzerland).\u003C\u002Fstrong> It is intended for websites subject to German law. The admin interface is in German.\u003C\u002Fp>\n\u003Cp>eRecht24 Legal Texts outputs legal texts (imprint, privacy policy) via shortcode or Gutenberg block. Legal texts are stored in the local WordPress database and displayed from there — no external request is needed for output.\u003C\u002Fp>\n\u003Cp>The plugin works in two modes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Without an eRecht24 account:\u003C\u002Fstrong> Enter your legal texts manually in the plugin settings. All shortcode and block output is fully functional.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>With an eRecht24 account:\u003C\u002Fstrong> Connect the plugin to the eRecht24 API to synchronise legal texts automatically. Once synchronised, texts are stored locally and continue to be displayed even if the API key is later removed.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The shortcode is the core feature. This makes the output work in the Classic Editor, Gutenberg, Elementor, Divi, WPBakery, and other page builders that support WordPress shortcodes.\u003C\u002Fp>\n\u003Cp>External requests are only triggered when an authorized administrator saves or removes the API key, starts a synchronization or remote push test, explicitly enables Google Analytics, uninstalls the plugin with a stored eRecht24 client registration, or an authorized eRecht24 push with a valid secret is received.\u003C\u002Fp>\n\u003Cp>When an eRecht24 account is connected, the plugin uses the eRecht24 API to retrieve legal texts. The legal texts (imprint, privacy policy) are authored, reviewed, and maintained by eRecht24’s legal team on their servers. This content cannot be generated locally by the plugin. Retrieved texts are stored in the local WordPress database; the API is only contacted during synchronisation, not during output.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Service: eRecht24 API\u003C\u002Fli>\n\u003Cli>Provider: eRecht24 GmbH & Co. KG\u003C\u002Fli>\n\u003Cli>API host: https:\u002F\u002Fapi.e-recht24.de\u003C\u002Fli>\n\u003Cli>Terms of service: https:\u002F\u002Fwww.e-recht24.de\u002Fagb\u002F\u003C\u002Fli>\n\u003Cli>Privacy policy: https:\u002F\u002Fwww.e-recht24.de\u002Fdatenschutzerklaerung.html\u003C\u002Fli>\n\u003Cli>Website: https:\u002F\u002Fwww.e-recht24.de\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Optionally, the plugin can output a Google Analytics tracking snippet if an administrator explicitly enables this feature. Visitor data is collected and processed by Google on their servers; this cannot be done locally by the plugin.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Service: Google Tag \u002F Google Analytics\u003C\u002Fli>\n\u003Cli>Script host: https:\u002F\u002Fwww.googletagmanager.com\u003C\u002Fli>\n\u003Cli>Terms of service: https:\u002F\u002Fpolicies.google.com\u002Fterms\u003C\u002Fli>\n\u003Cli>Privacy policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Shortcode examples:\u003C\u002Fp>\n\u003Cp>Imprint in German\u003Cbr \u002F>\n    [erecht24 type=”imprint” lang=”de”]\u003C\u002Fp>\n\u003Cp>Privacy policy in German\u003Cbr \u002F>\n    [erecht24 type=”privacy_policy” lang=”de”]\u003C\u002Fp>\n\u003Cp>Imprint in English, heading stripped (e.g. because it already exists on the page)\u003Cbr \u002F>\n    [erecht24 type=”imprint” lang=”en” strip_title=”true”]\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>When saving or removing the API key, during manual synchronisation, during an explicitly triggered remote push test, during authorised push updates, and when uninstalling with a stored eRecht24 client registration, this site’s server communicates with the eRecht24 API. Technical connection data, the API key in the request header, and the registered push URL may be transmitted.\u003C\u002Fp>\n\u003Cp>Authorised push updates are processed via the WordPress REST endpoint \u003Ccode>erecht24\u002Fv1\u002Fpush\u003C\u002Fcode> using POST. The push secret is expected as the header \u003Ccode>X-eRecht24-Secret\u003C\u002Fcode> or in the POST\u002FJSON body and is never read from URL query parameters.\u003C\u002Fp>\n\u003Cp>When Google Analytics is enabled, the plugin loads the Google Tag from \u003Ccode>www.googletagmanager.com\u003C\u002Fcode>. This feature is disabled by default and must be consciously switched on by an administrator.\u003C\u002Fp>\n\u003Cp>The plugin adds a suggested privacy policy text via the WordPress privacy policy feature.\u003C\u002Fp>\n","Outputs legal texts via shortcode and Gutenberg block — manually entered or synchronised from the eRecht24 API.",50000,29816,"2026-07-17T11:06:00.000Z","7.0.2","6.3","7.4",[53,22,23,24,54],"gutenberg","shortcode","https:\u002F\u002Fwww.e-recht24.de\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ferecht24.4.0.3.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":68,"last_updated":69,"tested_up_to":49,"requires_at_least":70,"requires_php":71,"tags":72,"homepage":75,"download_link":76,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"impressum","Impressum","3.0.1","epiphyt","https:\u002F\u002Fprofiles.wordpress.org\u002Fepiphyt\u002F","\u003Cp>Impressum adds a full-fledged and easy to use imprint generator in your WordPress dashboard. Once setup, Impressum takes care of your legal notices. Once legal requirements change, Impressum will update your legal content either on its own or asks for your help if the changes can’t be made automatically. Your imprint is generated right within WordPress, so your personal information won’t be sent to a third party server.\u003C\u002Fp>\n\u003Ch3>Impressum Plus\u003C\u002Fh3>\n\u003Cp>Impressum Plus is the pro version of Impressum, which not only adds support for a wide variety of additional legal entities, but also provides a modular privacy policy and the opportunity to update your data via an extensive REST API endpoint.\u003C\u002Fp>\n\u003Ch4>All features of Impressum Plus\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Support for a wide variety of legal entities (AG, e.K., e.V., eG, Einzelkaufmann, GbR, GesbR, gGmbH, GmbH, GmbH & Co. KG, KG, KGaA, OHG, Partnership, UG (haftungsbeschränkt) and UG (haftungsbeschränkt) & Co. KG)\u003C\u002Fli>\n\u003Cli>a feature rich and automated Privacy Policy generator\u003C\u002Fli>\n\u003Cli>an Accessibility Information generator\u003C\u002Fli>\n\u003Cli>Preset for new sites in a multisite\u003C\u002Fli>\n\u003Cli>Extensive REST API\u003C\u002Fli>\n\u003Cli>WP-CLI support\u003C\u002Fli>\n\u003Cli>Many more filters for developers\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fimpressum.plus\u002Fen\u002Ffeatures\u002F\" rel=\"nofollow ugc\">Check out all features of Impressum Plus\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fepiph.yt\u002Fen\u002F?add-to-cart=26\" rel=\"nofollow ugc\">Buy now\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Contribution\u003C\u002Fh3>\n\u003Cp>Feel free to contribute. The code is available at \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fepiphyt\u002Fimpressum\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>You can find the documentation for Impressum at \u003Ca href=\"https:\u002F\u002Fdocs.epiph.yt\u002Fimpressum\u002F\" rel=\"nofollow ugc\">docs.epiph.yt\u003C\u002Fa>.\u003C\u002Fp>\n","Impressum provides you with a full-fledged easy to use imprint generator right within your WordPress site.",4000,95101,74,6,"2026-06-01T10:25:00.000Z","6.8","8.1",[58,22,73,74],"legal-notice","privacy-policy","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimpressum\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimpressum.3.0.1.zip",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":85,"downloaded":86,"rating":13,"num_ratings":34,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":93,"download_link":94,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"datareporter-webcare","Datareporter Webcare","2.1.2","datareporter","https:\u002F\u002Fprofiles.wordpress.org\u002Fdatareporter\u002F","\u003Cp>WordPress module to embed DataReporter WebCare elements (imprint, privacy notice, cookie banner)\u003C\u002Fp>\n\u003Cp>The Plugin load the required Resources for the Webcache-Server, normally this is https:\u002F\u002Fwebcache.datareporter.eu\u002Fc\u002F if the DataReporter-Suite is not self hosted.\u003C\u002Fp>\n\u003Cp>You can also host the Resources on your Server, you can edit this in “Datareporter Webcare > Webcache-Server”\u003C\u002Fp>\n\u003Cp>The Webcache URL https:\u002F\u002Fwebcache.datareporter.eu\u002Fc\u002F is hosted on a server in Austria (EU country). The privacy policy is guaranteed.\u003C\u002Fp>\n\u003Cp>Terms of use: https:\u002F\u002Fwww.datareporter.eu\u002Fagb\u002F\u003Cbr \u002F>\nPrivacy policis: https:\u002F\u002Fwww.datareporter.eu\u002Fdatenschutz\u002F\u003C\u002Fp>\n","WordPress module to embed DataReporter WebCare elements (imprint, privacy notice, cookie banner)",700,6128,"2026-03-11T12:10:00.000Z","6.3.8","4.6","7.2",[81,22,23,24,92],"webcare","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdatareporter-webcare\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdatareporter-webcare.2.1.2.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":14,"last_updated":105,"tested_up_to":49,"requires_at_least":17,"requires_php":51,"tags":106,"homepage":110,"download_link":111,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"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\u002Fibamu\u002F\" rel=\"ugc\">Lawwwing\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,952016,"2026-06-18T06:57:00.000Z",[107,20,108,109,24],"api","consent","cookies","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-consent-api","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-consent-api.2.0.1.zip",{"slug":113,"name":114,"version":80,"author":115,"author_profile":116,"description":117,"short_description":118,"active_installs":119,"downloaded":120,"rating":121,"num_ratings":122,"last_updated":123,"tested_up_to":49,"requires_at_least":124,"requires_php":125,"tags":126,"homepage":129,"download_link":130,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"gdpr","GDPR","Trew Knowledge","https:\u002F\u002Fprofiles.wordpress.org\u002Ftrewknowledge\u002F","\u003Cp>This plugin is meant to assist a Controller, Data Processor, and Data Protection Officer (DPO) with efforts to meet the obligations and rights enacted under the GDPR.\u003C\u002Fp>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftrewknowledge\u002FGDPR\u002Fwiki\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Ftrewknowledge\u002FGDPR\u002Fwiki\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Collaboration\u003C\u002Fh3>\n\u003Cp>You can send your pull request at \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftrewknowledge\u002Fgdpr\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Ftrewknowledge\u002Fgdpr\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Shortcodes & helper functions\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftrewknowledge\u002FGDPR\u002Fwiki\u002FFunctions-&-Shortcodes\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Ftrewknowledge\u002FGDPR\u002Fwiki\u002FFunctions-&-Shortcodes\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Consent management\u003C\u002Fli>\n\u003Cli>Privacy Preference management for Cookies with front-end preference UI & banner notifications\u003C\u002Fli>\n\u003Cli>Privacy Policy page configurations with version control and re-consent management\u003C\u002Fli>\n\u003Cli>Rights to erasure & deletion of website data with a double opt-in confirmation email\u003C\u002Fli>\n\u003Cli>Re-assignment of user data on erasure requests & pseudonymization of user website data\u003C\u002Fli>\n\u003Cli>Data Processor settings and publishing of contact information\u003C\u002Fli>\n\u003Cli>Right to access data by admin dashboard with email look up and export\u003C\u002Fli>\n\u003Cli>Right to access data by Data Subject with front-end requests button & double opt-in confirmation email\u003C\u002Fli>\n\u003Cli>Right to portability & export of data by Admin or Data Subject in XML or JSON formats\u003C\u002Fli>\n\u003Cli>Encrypted audit logs for the lifetime of Data Subject compliance activity\u003C\u002Fli>\n\u003Cli>Data Subject Secret Token for two-factor decryption and recovery of data\u003C\u002Fli>\n\u003Cli>Data breach notification logs and batch email notifications to Data Subjects\u003C\u002Fli>\n\u003Cli>Telemetry Tracker for visualizing plugins and website data\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Settings\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>General\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>From the Settings options in the dashboard, you can select the Privacy Policy page for tracking and logging consent.\u003C\u002Fp>\n\u003Cp>On login, the user must consent to the Privacy Policy outlined on the site. If the user does not consent, the user will not be registered or logged in.\u003C\u002Fp>\n\u003Cp>If the site owner updates the Privacy Policy page content, the change will be logged and flagged to the admin that they must notify users on next login to seek re-consent. Additionally, the warning message can be dismissed in the event of a minor correction or mistake.\u003C\u002Fp>\n\u003Cp>Additionally, under General Settings the Admin can set the outgoing email limitation which would set the batch notification email limit per hour in the event of a Breach Notification.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cookie Preference Management\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Similar to consent management, users can opt in or out of cookies that are being used on the site. There are 3 formats of cookies that can be created which include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Always Active:\u003C\u002Fstrong> Cookies that are always active or are required for the site to function.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Toggled:\u003C\u002Fstrong> Cookies that can be activated or blocked based on the user preference\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Opt-Out Link:\u003C\u002Fstrong> Cookies that require configuration from a third-party source in order to opt-out\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Depending on the user preference setting, you can use the \u003Ccode>is_allowed_cookie( $cookie )\u003C\u002Fcode> function to save and set the cookies. The cookie with the user approved cookies can be found at another cookie named \u003Ccode>gdpr_approved_cookies\u003C\u002Fcode>. There’s also a helper function called \u003Ccode>is_allowed_cookie( $cookie )\u003C\u002Fcode> that you can use to prevent setting up a cookie.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Consent Management\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Consents can be registered on the settings page. They can be optional or not. By default, this plugin comes with a Privacy Policy consent that users need to agree with on registration.\u003C\u002Fp>\n\u003Cp>For optional consents, there’s a wrapper function \u003Ccode>have_consent( $consent_id )\u003C\u002Fcode> to help you display or hide something on the site depending if the user gave consent or not.\u003C\u002Fp>\n\u003Cp>Consents are logged to the user record for auditing or for access purposes.\u003C\u002Fp>\n\u003Ch3>Requests Table & Rights of Data Subject\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Right to Erasure Requests\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>The Data Subject is able to submit a request to be erased from the site using a shortcode.\u003C\u002Fli>\n\u003Cli>\n\u003Cp>When a request is made, the Data Subject will receive an email confirmation to confirm the deletion request.\u003C\u002Fp>\n\u003Col>\n\u003Cli>After email confirmation, the user request is added to the requests table for review by the Administrator. The Administrator can also add a user manually with an email look up and review.\u003C\u002Fli>\n\u003Cli>If the Data Subject has content published on the site for any post types or comments, they will be added to this table. If they do not have any content, they will receive a confirmation of erasure request and be provided a 6 digit Token for safekeeping after erasure in case of recover data needs.\u003C\u002Fli>\n\u003Cli>The requests table allows the Administrator to reassign any content to another user or delete it.\u003C\u002Fli>\n\u003Cli>In the event of comments, the Data Subject’s content would be made anonymous.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Admin can also manually add users to the erasure requests table with a manual email search\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Right to Access Data Request & User Data Portability\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>The Data Subject can place a request to download their data with the shortcode.\u003C\u002Fli>\n\u003Cli>After requesting their data, the user will receive a double opt-in confirmation email then the plugin will generate an XML or JSON file, which will be emailed to them for download with an expiration time of 48 hours.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Right to Rectify & Complaint Requests\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>The Data Subject can place a request to rectify data or file a complaint with the shortcode.\u003C\u002Fli>\n\u003Cli>After making their request, the user will receive a double opt-in confirmation email and then add them to the table for admin to handle the request.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Tools\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Access Data\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The Access Data tool allows the Admin to look up a user email and view the data of a particular user. The Admin can download and export the data in a JSON or XML format and provide to the Data Subject if manually requested.\u003C\u002Fp>\n\u003Cp>NOTE: This method should not be used without the Data Subject confirming their identity.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Audit Log\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Everything the Data Subject does from registration, providing consent to the privacy policy, terms of service and other requests are logged and encrypted in a database. Data breach notifications are also logged to all Data Subjects upon confirmation by Controller.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Using the Data Subject’s email, you can look up and retrieve the user information and display it.\u003C\u002Fli>\n\u003Cli>If the Data Subject has been removed from the site, this encrypted log is deleted from the database and saved as an encrypted file inside the plugin folder.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>If in the future, the Data Subject makes a complaint or there is a need to recover the data, the user can provide their email address and the 6 digit token they received from the deletion confirmation email to decrypt and retrieve the file.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Data Breach & Notifications\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>In case of a data breach, the Admin can generate a Data Breach Notification to users by logging the information and confirm the breach through a double opt-in confirmation email. The following information would be recorded in the audit log:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Nature of the personal data breach\u003C\u002Fli>\n\u003Cli>Name and contact details of the data protection officer\u003C\u002Fli>\n\u003Cli>Likely consequences of the personal data breach\u003C\u002Fli>\n\u003Cli>Measures were taken or proposed to be taken\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Once the confirmation of the breach has been confirmed via email, the website will begin a batch email notification process to all users every hour until all users receive the notification.\u003C\u002Fp>\n\u003Ch3>Telemetry Tracker\u003C\u002Fh3>\n\u003Cp>The Telemetry Tracker feature will display all data that is being sent outside of your server to another destination. It will indicate the plugin or theme responsible, file and line where the data is being sent.\u003C\u002Fp>\n\u003Cp>WordPress Core and some plugins gather data from your install and send this data to an outside server.\u003C\u002Fp>\n\u003Cp>WordPress Plugin Repository does not allow plugins to do that, but premium plugins are able to do this because they are not bound by the Plugin repository rules. If you did not explicitly opt-in for this feature you should make a complaint.\u003C\u002Fp>\n\u003Ch3>Important!\u003C\u002Fh3>\n\u003Cp>Activating this plugin does not guarantee that an organization is successfully meeting its responsibilities and obligations of GDPR. Individual organizations should assess their unique responsibilities and ensure extra measures are taken to meet any obligations required by law and based on a data protection impact assessment (DPIA).\u003C\u002Fp>\n","This plugin is meant to assist with the GDPR obligations of a Data processor and Controller.",10000,373866,86,58,"2026-07-21T17:46:00.000Z","4.7","5.6",[20,113,127,128,24],"general-data-protection-regulation","law","https:\u002F\u002Ftrewknowledge.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgdpr.2.1.2.zip",{"attackSurface":132,"codeSignals":164,"taintFlows":175,"riskAssessment":176,"analyzedAt":182},{"hooks":133,"ajaxHandlers":151,"restRoutes":157,"shortcodes":158,"cronEvents":163,"entryPointCount":14,"unprotectedCount":28},[134,140,144,148],{"type":135,"name":136,"callback":137,"file":138,"line":139},"action","plugins_loaded","dieter_privacy_load_textdomain","dieter-privacy.php",21,{"type":135,"name":141,"callback":142,"file":138,"line":143},"admin_notices","dieter_privacy_activation_notice",63,{"type":135,"name":145,"callback":146,"file":138,"line":147},"admin_enqueue_scripts","dieter_privacy_admin_enqueue_styles",82,{"type":135,"name":149,"callback":150,"file":138,"line":13},"admin_menu","dieter_privacy_add_admin_menu",[152],{"action":153,"nopriv":154,"callback":153,"hasNonce":155,"hasCapCheck":154,"file":138,"line":156},"dieter_privacy_dismiss_notice",false,true,75,[],[159],{"tag":160,"callback":161,"file":138,"line":162},"dieter","dieter_privacy_shortcode",201,[],{"dangerousFunctions":165,"sqlUsage":166,"outputEscaping":168,"fileOperations":34,"externalRequests":28,"nonceChecks":34,"capabilityChecks":28,"bundledLibraries":174},[],{"prepared":28,"raw":28,"locations":167},[],{"escaped":169,"rawEcho":34,"locations":170},16,[171],{"file":138,"line":172,"context":173},114,"raw output",[],[],{"summary":177,"deductions":178},"The dieter-privacy plugin v1.0.1 demonstrates a generally good security posture based on the provided static analysis. The absence of known vulnerabilities and CVEs is a significant strength.  Furthermore, the plugin utilizes prepared statements for all its SQL queries, which is an excellent practice to prevent SQL injection. The high percentage of properly escaped output further reinforces this positive assessment.\n\nHowever, there are a few areas that warrant attention. The lack of capability checks for the single AJAX handler is a concern, as it could potentially lead to unauthorized actions if an attacker can trigger it. While no dangerous functions were found and taint analysis showed no issues, the presence of file operations without further context is a minor point to monitor. The plugin also has a single shortcode, which represents another potential entry point, though its security is not detailed.\n\nIn conclusion, dieter-privacy v1.0.1 appears to be a relatively secure plugin due to its strong handling of SQL and output escaping, and its clean vulnerability history. The primary area for improvement lies in implementing capability checks for its AJAX handler to ensure proper authorization.",[179],{"reason":180,"points":181},"AJAX handler without capability checks",7,"2026-03-16T22:10:48.867Z",{"wat":184,"direct":191},{"assetPaths":185,"generatorPatterns":187,"scriptPaths":188,"versionParams":189},[186],"\u002Fwp-content\u002Fplugins\u002Fdieter-privacy\u002Fdieter-css\u002Fdieter.css",[],[],[190],"dieter-css\u002Fdieter.css?ver=",{"cssClasses":192,"htmlComments":194,"htmlAttributes":195,"restEndpoints":199,"jsGlobals":200,"shortcodeOutput":202},[193],"dieter-privacy-notice",[],[196,197,198],"id=\"dieter-logo\"","id=\"dieter-admin-header\"","id=\"dieter-head\"",[],[201],"dieter_privacy_dismiss_notice_nonce",[203],"[dieter docid=\"your-doc-id\"]",{"error":155,"url":205,"statusCode":206,"statusMessage":207,"message":207},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fdieter-privacy\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":14,"versions":209},[210,215],{"version":6,"download_url":26,"svn_tag_url":211,"released_at":29,"has_diff":154,"diff_files_changed":212,"diff_lines":29,"trac_diff_url":213,"vulnerabilities":214,"is_current":155},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fdieter-privacy\u002Ftags\u002F1.0.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fdieter-privacy%2Ftags%2F1.0.0&new_path=%2Fdieter-privacy%2Ftags%2F1.0.1",[],{"version":216,"download_url":217,"svn_tag_url":218,"released_at":29,"has_diff":154,"diff_files_changed":219,"diff_lines":29,"trac_diff_url":29,"vulnerabilities":220,"is_current":154},"1.0.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdieter-privacy.1.0.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fdieter-privacy\u002Ftags\u002F1.0.0\u002F",[],[]]