{"id":315798,"date":"2026-05-31T13:24:16","date_gmt":"2026-05-31T13:24:16","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/consentpilot\/"},"modified":"2026-05-31T20:23:55","modified_gmt":"2026-05-31T20:23:55","slug":"consentpilot","status":"publish","type":"plugin","link":"https:\/\/mfe.wordpress.org\/plugins\/consentpilot\/","author":18333240,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.2","stable_tag":"0.1.2","tested":"7.0","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"ConsentPilot","header_author":"Helene \u00c5sheim Gr\u00f8nberg","header_description":"GDPR consent management for WordPress: banner, blocking of tracking scripts and iframes before consent, and an audit log of every consent given.","assets_banners_color":"1d2333","last_updated":"2026-05-31 20:23:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":55,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"helenegr1989","date":"2026-05-31 13:23:55"},"0.1.2":{"tag":"0.1.2","author":"helenegr1989","date":"2026-05-31 20:23:55"}},"upgrade_notice":{"0.1.1":"<p>Fixes the issues raised in the WordPress.org plugin review: removed\noutput-buffer pattern and removed paywall checks on Consent Mode v2 and\ngeo-targeting.<\/p>","0.1.0":"<p>First release of ConsentPilot.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3558286,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3558286,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3558286,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3558286,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1","0.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3555906,"resolution":"1","location":"assets","locale":"","width":1536,"height":639},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3555906,"resolution":"2","location":"assets","locale":"","width":1536,"height":639},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3555906,"resolution":"3","location":"assets","locale":"","width":1536,"height":639},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3555906,"resolution":"4","location":"assets","locale":"","width":1536,"height":639},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3555906,"resolution":"5","location":"assets","locale":"","width":1536,"height":639}},"screenshots":{"1":"The consent banner as visitors see it.","2":"Per-category choice when the visitor clicks \"Customize\".","3":"The dashboard in wp-admin with status and statistics.","4":"Settings \u2014 banner, script blocking and privacy.","5":"The consent log with CSV export."}},"plugin_section":[],"plugin_tags":[20011,20272,16626,131785,396],"plugin_category":[54],"plugin_contributors":[265195],"plugin_business_model":[],"class_list":["post-315798","plugin","type-plugin","status-publish","hentry","plugin_tags-consent","plugin_tags-cookie-banner","plugin_tags-cookie-consent","plugin_tags-gdpr","plugin_tags-privacy","plugin_category-security-and-spam-protection","plugin_contributors-helenegr1989","plugin_committers-helenegr1989"],"banners":{"banner":"https:\/\/ps.w.org\/consentpilot\/assets\/banner-772x250.png?rev=3558286","banner_2x":"https:\/\/ps.w.org\/consentpilot\/assets\/banner-1544x500.png?rev=3558286","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/consentpilot\/assets\/icon-128x128.png?rev=3558286","icon_2x":"https:\/\/ps.w.org\/consentpilot\/assets\/icon-256x256.png?rev=3558286","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/consentpilot\/assets\/screenshot-1.jpg?rev=3555906","caption":"The consent banner as visitors see it."},{"src":"https:\/\/ps.w.org\/consentpilot\/assets\/screenshot-2.jpg?rev=3555906","caption":"Per-category choice when the visitor clicks \"Customize\"."},{"src":"https:\/\/ps.w.org\/consentpilot\/assets\/screenshot-3.jpg?rev=3555906","caption":"The dashboard in wp-admin with status and statistics."},{"src":"https:\/\/ps.w.org\/consentpilot\/assets\/screenshot-4.jpg?rev=3555906","caption":"Settings \u2014 banner, script blocking and privacy."},{"src":"https:\/\/ps.w.org\/consentpilot\/assets\/screenshot-5.jpg?rev=3555906","caption":"The consent log with CSV export."}],"raw_content":"<!--section=description-->\n<p>ConsentPilot is a GDPR consent management plugin for WordPress. Known tracking\nscripts and embedded iframes (YouTube, Vimeo, maps) stay blocked in the page\nuntil the visitor agrees to the relevant category, and every consent is\nlogged in the database as documentation, as required by GDPR art. 7.1.<\/p>\n\n<p>ConsentPilot is configurable out of the box: choose between three banner\nlayouts, position, colors and banner text; describe your cookie categories;\nadd custom blocking patterns for tracking scripts not covered by the built-in\nlist; and export the consent log as CSV for compliance documentation.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Consent banner in three layouts: box, bar or popup<\/li>\n<li>\"Accept all\", \"Decline all\" and per-category choice<\/li>\n<li>Blocks known tracking scripts before consent \u2014 Google Analytics, Google\nTag Manager, Meta Pixel, Hotjar, LinkedIn and more<\/li>\n<li>Also blocks tracking scripts hosted on your own domain<\/li>\n<li>Iframe blocking for YouTube, Vimeo, Google Maps and Spotify<\/li>\n<li>Custom blocking patterns \u2014 block anything you add yourself<\/li>\n<li>Custom cookie categories with descriptions<\/li>\n<li>Consent log in the database with hashed, anonymized IP<\/li>\n<li>CSV export of the consent log for documentation<\/li>\n<li>Policy versioning \u2014 request fresh consent when your privacy policy changes<\/li>\n<li>Google Consent Mode v2 integration for Ads\/Analytics in the EEA<\/li>\n<li>Geo-targeting \u2014 only show the banner in selected regions (with Cloudflare\nor a custom GeoIP integration)<\/li>\n<li>Keyboard accessible, light\/dark theme aware<\/li>\n<li>No frontend dependencies \u2014 the banner is lightweight and fast<\/li>\n<li>Fully translatable<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>consentpilot<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via\n\"Plugins \u2192 Add New \u2192 Upload Plugin\".<\/li>\n<li>Activate the plugin under \"Plugins\" in wp-admin.<\/li>\n<li>Go to \"ConsentPilot \u2192 Settings\" to customize the banner.<\/li>\n<li>Describe your cookie categories under \"ConsentPilot \u2192 Cookies\".<\/li>\n<\/ol>\n\n<p>Requirements: WordPress 6.3+, PHP 7.4+.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20store%20ip%20addresses%3F\"><h3>Does the plugin store IP addresses?<\/h3><\/dt>\n<dd><p>No. The consent log only stores a non-reversible SHA-256 hash of an\n(optionally anonymized) IP address \u2014 never the address itself.<\/p><\/dd>\n<dt id=\"is%20any%20data%20sent%20to%20a%20third%20party%3F\"><h3>Is any data sent to a third party?<\/h3><\/dt>\n<dd><p>No. All data stays in your own WordPress database. ConsentPilot does not\ncontact any external service.<\/p><\/dd>\n<dt id=\"does%20it%20actually%20block%20google%20analytics%20before%20consent%3F\"><h3>Does it actually block Google Analytics before consent?<\/h3><\/dt>\n<dd><p>Yes. Tracking scripts are neutralized in the page and only activated in the\nbrowser once the visitor accepts the relevant category.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%3F\"><h3>Does it work with page caching?<\/h3><\/dt>\n<dd><p>Yes. The blocking uses official WordPress filters and works regardless of\nfull-page caching.<\/p><\/dd>\n<dt id=\"what%20if%20a%20tracking%20script%20isn%27t%20being%20blocked%3F\"><h3>What if a tracking script isn't being blocked?<\/h3><\/dt>\n<dd><p>Add the domain or script handle under \"Custom patterns\" in the settings,\nusing the format <code>pattern|category<\/code>.<\/p><\/dd>\n<dt id=\"is%20the%20consent%20log%20kept%20after%20uninstalling%3F\"><h3>Is the consent log kept after uninstalling?<\/h3><\/dt>\n<dd><p>Yes, by default \u2014 consent records are legal documentation. You can opt to\ndelete everything on uninstall from the settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Added discreet \"Powered by ConsentPilot\" link in the banner, with a\nfilter so Pro users can hide it (<code>consentpilot_frontend_config<\/code>).<\/li>\n<li>Added support for an optional custom logo above the banner text.<\/li>\n<li>No breaking changes \u2014 existing installations keep all behavior.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Removed the output-buffer-based script blocker. All blocking now uses\nWordPress filters (script_loader_tag, wp_inline_script_attributes,\nthe_content), which are predictable and do not interact with the global\noutput-buffer stack.<\/li>\n<li>Removed all license gates from Google Consent Mode v2 and geo-targeting\nsettings. Both features are fully functional in this release.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Consent banner with three layouts and per-category choice.<\/li>\n<li>Blocking of tracking scripts and iframes before consent.<\/li>\n<li>Consent log with hashed IP and CSV export.<\/li>\n<li>Custom blocking patterns and policy versioning.<\/li>\n<\/ul>","raw_excerpt":"GDPR consent management for WordPress: cookie banner, blocking of tracking scripts and iframes before consent, and a consent log with CSV export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/315798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=315798"}],"author":[{"embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/helenegr1989"}],"wp:attachment":[{"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=315798"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=315798"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=315798"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=315798"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=315798"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mfe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=315798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}