{"id":327491,"date":"2026-06-29T11:17:51","date_gmt":"2026-06-29T11:17:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/matrixinn-gdpr-uk-compliance\/"},"modified":"2026-06-29T11:17:40","modified_gmt":"2026-06-29T11:17:40","slug":"matrixinn-gdpr","status":"publish","type":"plugin","link":"https:\/\/sq.wordpress.org\/plugins\/matrixinn-gdpr\/","author":23270254,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"MatrixInn GDPR & UK Compliance","header_author":"MatrixInn Solutions","header_description":"A comprehensive GDPR and UK GDPR compliance plugin. Cookie consent banner, consent logging, Cookie Policy generator, and Google Consent Mode v2. Fully compatible with WordPress core privacy tools.","assets_banners_color":"0f2a48","last_updated":"2026-06-29 11:17:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/matrixinnsolutions.com\/plugins\/matrixinn-gdpr","header_author_uri":"https:\/\/matrixinnsolutions.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.5":{"tag":"1.0.5","author":"matrixinnsolutions","date":"2026-06-29 11:17:40"}},"upgrade_notice":{"1.0.2":"<p>Recommended update \u2014 fixes checkbox settings not saving correctly and cookie categories not appearing in the consent modal on fresh installs.<\/p>","1.0.1":"<p>Recommended update \u2014 fixes banner layout positioning and consent logging database schema issues.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3590049,"resolution":"128x128","location":"assets","locale":""},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3589987,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3590049,"resolution":"256x256","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3589987,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3590049,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3589987,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3589987,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3590042,"resolution":"1","location":"assets","locale":"","width":1920,"height":1121},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3590042,"resolution":"10","location":"assets","locale":"","width":1920,"height":1147},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3590042,"resolution":"11","location":"assets","locale":"","width":1920,"height":3381},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3590042,"resolution":"2","location":"assets","locale":"","width":1920,"height":1121},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3590042,"resolution":"3","location":"assets","locale":"","width":1920,"height":1121},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3590042,"resolution":"4","location":"assets","locale":"","width":1920,"height":1121},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3590042,"resolution":"5","location":"assets","locale":"","width":1920,"height":1119},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3590042,"resolution":"6","location":"assets","locale":"","width":1920,"height":1449},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3590042,"resolution":"7","location":"assets","locale":"","width":1920,"height":983},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3590042,"resolution":"8","location":"assets","locale":"","width":1920,"height":983},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3590042,"resolution":"9","location":"assets","locale":"","width":1920,"height":1056}},"screenshots":{"1":"Cookie consent banner \u2014 Bottom Bar layout on the front end","2":"Cookie consent banner \u2014 Centre Popup with overlay","3":"Cookie consent banner \u2014 Corner Box layout","4":"Cookie Preferences modal with 4 categories and granular toggles","5":"Admin Settings \u2014 General tab","6":"Admin Settings \u2014 Cookie Banner tab with colour pickers","7":"Admin Settings \u2014 Cookie Categories tab with toggle switches","8":"Consent Logs \u2014 stats dashboard and detailed log table","9":"Cookie Policy Generator \u2014 live preview and one-click publish","10":"Generated Cookie Policy page on the front end"}},"plugin_section":[],"plugin_tags":[14361,16626,131785,396,269463],"plugin_category":[54],"plugin_contributors":[269464],"plugin_business_model":[],"class_list":["post-327491","plugin","type-plugin","status-publish","hentry","plugin_tags-compliance","plugin_tags-cookie-consent","plugin_tags-gdpr","plugin_tags-privacy","plugin_tags-uk-gdpr","plugin_category-security-and-spam-protection","plugin_contributors-matrixinnsolutions","plugin_committers-matrixinnsolutions"],"banners":{"banner":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/banner-772x250.png?rev=3589987","banner_2x":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/banner-1544x500.png?rev=3589987","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/icon.svg?rev=3590049","icon":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/icon.svg?rev=3590049","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-1.png?rev=3590042","caption":"Cookie consent banner \u2014 Bottom Bar layout on the front end"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-2.png?rev=3590042","caption":"Cookie consent banner \u2014 Centre Popup with overlay"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-3.png?rev=3590042","caption":"Cookie consent banner \u2014 Corner Box layout"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-4.png?rev=3590042","caption":"Cookie Preferences modal with 4 categories and granular toggles"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-5.png?rev=3590042","caption":"Admin Settings \u2014 General tab"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-6.png?rev=3590042","caption":"Admin Settings \u2014 Cookie Banner tab with colour pickers"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-7.png?rev=3590042","caption":"Admin Settings \u2014 Cookie Categories tab with toggle switches"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-8.png?rev=3590042","caption":"Consent Logs \u2014 stats dashboard and detailed log table"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-9.png?rev=3590042","caption":"Cookie Policy Generator \u2014 live preview and one-click publish"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-10.png?rev=3590042","caption":"Generated Cookie Policy page on the front end"},{"src":"https:\/\/ps.w.org\/matrixinn-gdpr\/assets\/screenshot-11.png?rev=3590042","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>MatrixInn GDPR &amp; UK Compliance<\/strong> helps you make your WordPress site compliant with:<\/p>\n\n<ul>\n<li><strong>EU GDPR<\/strong> \u2014 General Data Protection Regulation<\/li>\n<li><strong>UK GDPR<\/strong> \u2014 Post-Brexit UK data protection law (enforced by the ICO)<\/li>\n<li><strong>PECR<\/strong> \u2014 Privacy and Electronic Communications Regulations (UK cookie rules)<\/li>\n<\/ul>\n\n<p>Built by <a href=\"https:\/\/matrixinnsolutions.com\">MatrixInn Solutions<\/a> \u2014 a UK-focused compliance agency \u2014 to be lightweight, transparent, and fully ready for WordPress.org distribution.<\/p>\n\n<h4>Cookie Consent Banner<\/h4>\n\n<ul>\n<li><strong>3 Layout Options<\/strong> \u2014 Bottom\/Top Bar, Centre Popup (with overlay), or Corner Box<\/li>\n<li><strong>Granular Consent<\/strong> \u2014 4 categories: Strictly Necessary, Functional, Analytics &amp; Performance, Marketing &amp; Advertising<\/li>\n<li><strong>Fully Customisable<\/strong> \u2014 Custom title, message, button labels, and 5 colour pickers for background, text, and each button<\/li>\n<li><strong>\"Powered by MatrixInn Solutions\"<\/strong> branding (toggleable)<\/li>\n<li><strong>Re-consent<\/strong> \u2014 Automatically ask visitors to re-consent when you update your Cookie Policy<\/li>\n<\/ul>\n\n<h4>Consent Management<\/h4>\n\n<ul>\n<li><strong>Consent Logging<\/strong> \u2014 Records every consent choice with anonymised IP, timestamp, category breakdown, page URL, and policy version<\/li>\n<li><strong>Admin Consent Logs<\/strong> \u2014 Stats dashboard (Total \/ Accepted \/ Declined \/ Partial), filterable table, and one-click clear<\/li>\n<li><strong>Cookie Preferences Modal<\/strong> \u2014 Let visitors manage individual cookie categories at any time via a floating button<\/li>\n<\/ul>\n\n<h4>Cookie Policy Generator<\/h4>\n\n<ul>\n<li>Auto-generates a Cookie Policy based on your business details and active categories<\/li>\n<li>Creates or updates a WordPress page with one click<\/li>\n<li>Bumps the policy version automatically to trigger re-consent from existing visitors<\/li>\n<\/ul>\n\n<h4>Google Consent Mode v2<\/h4>\n\n<ul>\n<li>Outputs GCM v2 <code>default deny<\/code> signals before any other scripts (priority 1 in <code>wp_head<\/code>)<\/li>\n<li>Fires <code>gtag('consent','update',...)<\/code> on every consent action<\/li>\n<li>Covers: <code>analytics_storage<\/code>, <code>ad_storage<\/code>, <code>ad_user_data<\/code>, <code>ad_personalization<\/code>, <code>functionality_storage<\/code><\/li>\n<li>Enables <code>ads_data_redaction<\/code> and <code>url_passthrough<\/code> automatically<\/li>\n<\/ul>\n\n<h4>Data Subject Rights<\/h4>\n\n<ul>\n<li><strong>Data Export Form<\/strong> \u2014 Shortcode <code>[matrixinn_gdpr_export]<\/code> \u2014 users request a copy of their data<\/li>\n<li><strong>Data Erasure Form<\/strong> \u2014 Shortcode <code>[matrixinn_gdpr_erasure]<\/code> \u2014 users request data deletion<\/li>\n<li>Hooks into WordPress core <strong>Tools \u2192 Export Personal Data \/ Erase Personal Data<\/strong><\/li>\n<li>Automatically adds suggested privacy policy content to WP's privacy policy builder<\/li>\n<\/ul>\n\n<h4>Developer-Friendly<\/h4>\n\n<ul>\n<li>No external dependencies \u2014 pure WordPress APIs<\/li>\n<li>Clean, namespaced PHP classes<\/li>\n<li>GPL-2.0+ licensed \u2014 free to use and modify<\/li>\n<li>Translation-ready with full <code>.pot<\/code> file support<\/li>\n<li>Complete uninstall \u2014 drops database table and removes all options on plugin deletion<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>matrixinn-gdpr<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New<\/strong> in WordPress admin.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Go to <strong>GDPR Compliance<\/strong> in your admin sidebar.<\/li>\n<li>Under <strong>General<\/strong>, set your Business Name, Data Controller Email, and select your Privacy Policy page.<\/li>\n<li>Under <strong>Cookie Banner<\/strong>, choose your preferred layout, position, and colours.<\/li>\n<li>Under <strong>Cookie Categories<\/strong>, enable or disable the categories you use.<\/li>\n<li>Click <strong>Cookie Policy \u2192 Generate \/ Update Page<\/strong> to create your Cookie Policy page.<\/li>\n<li>Optionally add <code>[matrixinn_gdpr_export]<\/code> and <code>[matrixinn_gdpr_erasure]<\/code> shortcodes to your Privacy Policy page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20make%20my%20site%20fully%20gdpr%20compliant%3F\"><h3>Does this plugin make my site fully GDPR compliant?<\/h3><\/dt>\n<dd><p>This plugin provides the essential technical tools for GDPR compliance \u2014 cookie consent, consent logging, data request forms, and policy generation. Full compliance also requires appropriate privacy policies, data processor agreements, and organisational measures. We recommend consulting a legal professional for your specific situation.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20eu%20gdpr%20and%20uk%20gdpr%3F\"><h3>What is the difference between EU GDPR and UK GDPR?<\/h3><\/dt>\n<dd><p>After Brexit, the UK retained GDPR principles in its own \"UK GDPR\" legislation, enforced by the ICO (Information Commissioner's Office). This plugin covers both \u2014 it is suitable for sites with EU and\/or UK visitors.<\/p><\/dd>\n<dt id=\"what%20is%20pecr%3F\"><h3>What is PECR?<\/h3><\/dt>\n<dd><p>The Privacy and Electronic Communications Regulations (PECR) are UK rules that specifically require informed consent before placing non-essential cookies. This plugin handles PECR compliance through its granular consent banner.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20google%20analytics%204%3F\"><h3>Does this plugin work with Google Analytics 4?<\/h3><\/dt>\n<dd><p>Yes. Enable Google Consent Mode v2 under the GCM tab to ensure consent signals are sent correctly to Google.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20google%20consent%20mode%20v2%3F\"><h3>Does this plugin support Google Consent Mode v2?<\/h3><\/dt>\n<dd><p>Yes. Enable it under <strong>Settings \u2192 Google Consent Mode<\/strong>. The plugin outputs <code>default deny<\/code> signals in <code>wp_head<\/code> before any other scripts, and fires <code>gtag('consent','update',...)<\/code> whenever a visitor makes a choice.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20caching%20plugins%3F\"><h3>Is this plugin compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The cookie check and banner display are handled client-side via JavaScript. For server-side caching plugins, exclude the cookie <code>minn_gdpr_consent<\/code> from cache variation rules if you are serving different content based on consent.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20wordpress%20multisite%3F\"><h3>Does this plugin work with WordPress Multisite?<\/h3><\/dt>\n<dd><p>Yes, the plugin is compatible with WordPress Multisite installations.<\/p><\/dd>\n<dt id=\"where%20are%20consent%20logs%20stored%3F\"><h3>Where are consent logs stored?<\/h3><\/dt>\n<dd><p>In a custom database table <code>wp_minn_gdpr_consent_log<\/code>. IP addresses are anonymised by default (last octet zeroed for IPv4, last 80 bits zeroed for IPv6).<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>All plugin data is removed: the <code>wp_minn_gdpr_consent_log<\/code> table is dropped, and all plugin options (<code>minn_gdpr_*<\/code>) are deleted from <code>wp_options<\/code>.<\/p><\/dd>\n<dt id=\"where%20can%20i%20manage%20data%20export%20and%20erasure%20requests%3F\"><h3>Where can I manage data export and erasure requests?<\/h3><\/dt>\n<dd><p>Go to <strong>Tools \u2192 Export Personal Data<\/strong> or <strong>Tools \u2192 Erase Personal Data<\/strong> in your WordPress admin. These are built-in WordPress tools that this plugin hooks into.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Removed: Script Manager feature removed for WordPress.org compliance<\/li>\n<li>Updated: readme.txt, screenshots, and FAQ to reflect removal<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added: Overlay with blur effect behind Centre Popup layout<\/li>\n<li>Added: <code>ensure_defaults()<\/code> runs on <code>admin_init<\/code> to reliably seed default options on any install<\/li>\n<li>Fixed: Checkbox options (Consent Logging, Anonymise IP, Show Branding, etc.) not persisting correctly when unchecked \u2014 added hidden input fallback for all checkbox fields<\/li>\n<li>Fixed: Cookie category toggles (Functional, Analytics, Marketing) not activating in modal due to empty string stored in DB<\/li>\n<li>Fixed: Banner layout class missing on first load after install<\/li>\n<li>Improved: <code>sanitize_field()<\/code> now correctly converts string \"0\"\/\"1\" to integer for checkbox options<\/li>\n<li>Version bump to bust CSS\/JS browser cache<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: Cookie consent banner layouts (Popup, Corner) not positioning correctly due to CSS specificity conflict between <code>#minn-gdpr-banner<\/code> ID selector and layout classes<\/li>\n<li>Fixed: Added <code>!important<\/code> to all layout-specific CSS properties in <code>.minn-layout-popup<\/code> and <code>.minn-layout-corner<\/code><\/li>\n<li>Fixed: Consent logging failing with \"Unknown column 'categories_json'\" \u2014 activator now always drops and recreates tables on activation to ensure fresh schema<\/li>\n<li>Fixed: <code>TEXT DEFAULT NULL<\/code> incompatibility with <code>dbDelta()<\/code> \u2014 changed to <code>VARCHAR NOT NULL DEFAULT ''<\/code><\/li>\n<li>Fixed: Null <code>user_id<\/code> with <code>%d<\/code> format \u2014 now defaults to integer <code>0<\/code><\/li>\n<li>Fixed: Settings page fields appearing empty \u2014 activator now checks for both <code>false<\/code> and <code>''<\/code> before setting defaults<\/li>\n<li>Version bump for CSS cache busting<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Cookie consent banner with Accept All \/ Accept Selected \/ Decline All \/ Manage Preferences<\/li>\n<li>3 banner layouts: Bottom\/Top Bar, Centre Popup, Corner Box<\/li>\n<li>4 consent categories: Strictly Necessary, Functional, Analytics &amp; Performance, Marketing &amp; Advertising<\/li>\n<li>Granular Cookie Preferences modal with per-category toggles<\/li>\n<li>Floating \"Manage Preferences\" button after consent<\/li>\n<li>Consent logging with IP anonymisation (IPv4 and IPv6)<\/li>\n<li>Admin consent logs with stats dashboard (Total \/ Accepted \/ Declined \/ Partial)<\/li>\n<li>Script Manager \u2014 block third-party scripts until consent is given<\/li>\n<li>Cookie Policy Generator \u2014 auto-generates and publishes a Cookie Policy page<\/li>\n<li>Google Consent Mode v2 support (default deny + update signals)<\/li>\n<li>Re-consent on policy version change<\/li>\n<li>Data export request shortcode <code>[matrixinn_gdpr_export]<\/code><\/li>\n<li>Data erasure request shortcode <code>[matrixinn_gdpr_erasure]<\/code><\/li>\n<li>WordPress core privacy tools integration (Tools \u2192 Export \/ Erase Personal Data)<\/li>\n<li>Privacy policy helper content<\/li>\n<li>Translation-ready<\/li>\n<li>Clean uninstall (drops tables, removes all options)<\/li>\n<li>\"Powered by MatrixInn Solutions\" branding (toggleable)<\/li>\n<\/ul>","raw_excerpt":"GDPR &amp; UK GDPR compliance: cookie consent banner, consent logging, Cookie Policy generator, and Google Consent Mode v2.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/327491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=327491"}],"author":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/matrixinnsolutions"}],"wp:attachment":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=327491"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=327491"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=327491"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=327491"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=327491"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=327491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}