MBR Cookie Consent







Enterprise-grade GDPR, CCPA & global privacy compliance for WordPress β completely free, forever. No upsells. No vendor lock-in.
π Why MBR Cookie Consent?
|
MBR Cookie Consent |
Typical Premium Plugins |
| Price |
β
Free forever |
β Β£99βΒ£299/year |
| IAB TCF v2.3 |
β
Included |
β Premium only |
| Google Consent Mode v2 |
β
Included |
β Premium only |
| 40+ Language Auto-Translation |
β
Included |
β Premium only |
| Form Builder Integration |
β
Included |
β Premium only |
| A/B Testing |
β
Included |
β Premium only |
| Geolocation Detection |
β
Included |
β Premium only |
| Multisite Support |
β
Included |
β Premium only |
| Vendor lock-in |
β
None |
β Proprietary |
β¨ Features
π‘οΈ Consent Management
- Customisable Banner β Accept All, Reject All, and Customise options
- Automatic Script Blocking β blocks non-essential scripts until explicit consent is given
- Preference Centre β granular category-by-category control for visitors
- Revisit Consent Button β floating button so visitors can update preferences any time
- CCPA "Do Not Sell" β optional link for California residents
- Consent Logging β every interaction recorded, exportable to CSV
- GDPR-Compliant Storage β IP anonymisation and proper data handling
- Geolocation Detection β auto-detects visitor country and displays the appropriate banner (v1.6.0)
- Multisite Support β network-aware, adjusts settings across sites automatically (v1.5.0)
π Consent Mode Integration
- Google Consent Mode v2 β full integration with
ad_storage, ad_user_data, ad_personalization, analytics_storage, functionality_storage, personalization_storage
- Microsoft UET Consent Mode β EU consent requirements for Microsoft Advertising
- Configurable default states (recommended: denied for EU/EEA)
- Ads data redaction and optional URL passthrough
π Internationalisation & Accessibility
- 40+ Language Auto-Translation β detects browser language, no configuration needed
- WPML & Polylang compatible β full string registration and translation support
- WCAG 2.1 AA compliant β full keyboard navigation, screen reader support, focus traps, ARIA labels, high contrast and reduced motion support
π¨ Banner Customisation
- Layout Options β Bar (full width), Box (bottom left/right), Popup (centre)
- Colour Customisation β primary, accept, reject, and text colours
- Custom Text β fully customisable heading, description, and all button labels
- Reload on Consent β optional page reload after consent action
π Cookie Scanner & Management
- One-Click Scanner β detects scripts and iframes across your site automatically
- Manual Management β add, edit, or remove blocked scripts at any time
- Category Management β organise by Necessary, Analytics, Marketing, Preferences
Blocks form submissions server-side until consent is granted β cannot be bypassed by disabling JavaScript.

- Supported builders β Contact Form 7, WPForms, Gravity Forms, Elementor Forms
- Elementor modal β clean dark overlay modal replaces inline errors, with Accept Cookies and Not Now buttons
- Auto re-submit β after accepting cookies the pending form re-submits automatically with all data intact
- Configurable β choose required consent category and customise the blocked message
π§ͺ A/B Testing (v1.9.0)
Optimise your consent rate by testing banner position variants against real visitor data.
- Three variants β Bottom bar (A), Popup (B), Box-left (C)
- Session persistence β same visitor always sees the same variant
- Conversion tracking β impressions and accept-all rate tracked per variant
- Results dashboard β live table with accept rates, bar charts, and winner indicator
- Promote winner β one click sets the winning variant as your live position
- Privacy Policy Generator β creates a comprehensive WordPress privacy policy page
- Cookie Policy Generator β creates a WordPress cookie policy page template
- Legal Disclaimers β built-in throughout the admin interface
π Installation
From Little Web Shack (recommended)
- Visit littlewebshack.com and download MBR Cookie Consent
- Upload via Plugins > Add New > Upload Plugin in WordPress admin
- Activate the plugin
- Add to
wp-config.php to enable geolocation:
php
define('MBR_CC_FORCE_GEOLOCATION', true);
- Go to Cookie Consent > Dashboard to configure
Manual Installation
- Download the plugin ZIP from GitHub Releases
- Upload to
/wp-content/plugins/mbr-cookie-consent/
- Activate through the Plugins menu
- Add the geolocation constant to
wp-config.php (see above)
β‘ Quick Start
1οΈβ£ Scan your site
Go to Cookie Consent > Cookie Scanner, click Start Scan, review detected scripts, and add anything non-essential to the blocked list.
Go to Cookie Consent > Categories and customise category names and descriptions to match your privacy policy.
3οΈβ£ Customise your banner
Go to Cookie Consent > Settings β set position, colours, text, and enable any optional features (Reject button, CCPA link, etc.).
4οΈβ£ Generate your Cookie Policy
Go to Cookie Consent > Dashboard, click Generate Cookie Policy Page, review the draft, and publish.
5οΈβ£ Test
Open an incognito window, visit your site, and verify Accept All / Reject All / Customise all behave correctly and scripts are blocked or unblocked as expected.
π§ Google & Microsoft Consent Mode Setup
Google Consent Mode v2
- Go to Cookie Consent > Settings > Consent Mode Integration
- Enable Google Consent Mode v2
- Set defaults β Denied is recommended for EU/EEA compliance
- Enable Ads Data Redaction for additional privacy protection
- Your existing GA4/Google Ads tags will automatically receive consent signals β no changes needed
Consent types controlled: ad_storage Β· ad_user_data Β· ad_personalization Β· analytics_storage Β· functionality_storage Β· personalization_storage
Microsoft UET Consent Mode
- Go to Cookie Consent > Settings > Consent Mode Integration
- Enable Microsoft UET Consent Mode
- Set default to Denied for GDPR compliance
- Your existing UET tags will automatically receive consent signals
π‘ Consent mode works alongside script blocking, not instead of it. Tags still load but behave differently based on consent signals.
π¦ Managing Blocked Scripts
Via the Scanner (easiest)
Cookie Consent > Cookie Scanner β Start Scan β Add to Blocked List
Manually
Cookie Consent > Cookie Scanner β scroll to Add Custom Script and fill in:
| Field |
Description |
Example |
| Name |
Display name |
Google Analytics |
| Identifier |
URL or content pattern |
google-analytics.com/analytics.js |
| Type |
src, inline, or iframe |
src |
| Category |
necessary, analytics, marketing, preferences |
analytics |
ποΈ Cookie Categories
| Category |
Description |
Always Active |
| π Necessary |
Essential for site functionality β session, security |
β
Yes |
| π Analytics |
Usage tracking β Google Analytics, Matomo |
β Consent required |
| π£ Marketing |
Advertising & retargeting β Facebook Pixel, Google Ads |
β Consent required |
| βοΈ Preferences |
User preference storage β language, UI settings |
β Consent required |
π Consent Logging
All consent interactions are logged with:
- π Timestamp
- π€ User ID (if logged in)
- π Anonymised IP address
- β
Consent given (yes/no)
- π Categories accepted
- π±οΈ Consent method (accept_all / reject_all / preferences)
Export: Cookie Consent > Consent Logs > Export to CSV
Housekeeping: Cookie Consent > Consent Logs β specify days β Delete Old Logs
β
Compliance Summary
GDPR
- β
Explicit opt-in for all non-essential cookies
- β
Clear information about cookie usage
- β
Easy consent revocation
- β
IP address anonymisation
- β
Full consent audit log
- β
Granular category control
- β
Cookie & Privacy Policy generator
CCPA
- β
"Do Not Sell or Share My Personal Information" link
- β
Opt-out mechanism
- β
Clear disclosure of data collection
IAB TCF v2.3
- β
Full
__tcfapi JavaScript API
- β
TC String generation and storage
- β
10 standard consent purposes
- β
Global Vendor List integration ready
π οΈ Developer Notes
Programmatic Consent Check
// Check if analytics consent has been granted
window.MbrCcConsent.hasCategoryConsent('analytics', function(allowed) {
if (allowed) {
// Load your analytics script
}
});
Script Blocking Mechanism
The plugin uses PHP output buffering to intercept HTML before it reaches the browser. Blocked scripts have their type attribute changed to text/plain and receive a data-mbr-cc-blocked attribute. On consent, scripts are restored and executed client-side.
Hooks & Filters
Coming in a future version.
π Technical Requirements
| Requirement |
Minimum |
| WordPress |
5.8 or higher |
| PHP |
7.4 or higher |
| MySQL |
5.6 or higher |
πΊοΈ Roadmap
- β
Google Consent Mode v2 (v1.1.0)
- β
Microsoft UET Consent Mode (v1.1.0)
- β
Auto-translation β 40+ languages (v1.2.0)
- β
WPML & Polylang compatibility (v1.2.0)
- β
WCAG/ADA accessibility (v1.2.0)
- β
Page-specific banner controls (v1.3.0)
- β
Custom CSS editor (v1.3.0)
- β
Subdomain consent sharing (v1.3.0)
- β
IAB TCF v2.3 (v1.4.0)
- β
Google Additional Consent Mode (v1.4.0)
- β
Privacy Policy Generator (v1.4.1)
- β
Multisite support (v1.5.0)
- β
Geolocation detection (v1.6.0)
- β
Form builder integration (v1.9.0)
- β
A/B testing for banner variations (v1.9.0)
- π² Consent Mode API for developers
π Changelog
1.9.2 - Bug Fixes
- Button colours - set in admin now correctly apply to the preferences modal Save and Reject buttons
- Banner close X now correctly inherits the admin-set text colour
- All colour declarations hardened with !important and extended to cover :hover/:focus states to prevent theme/Elementor CSS overrides
1.9.1 β Bug Fixes
- Elementor Forms modal β dual-strategy intercept (fetch + XHR) ensures the modal always shows instead of inline errors
- Form auto re-submit β raw request body captured and replayed after consent; page no longer reloads and clears the form
- Form blocking hard-stops β CF7 uses
wpcf7_spam filter; WPForms blocks entry saving and email notifications; Elementor uses direct wp_send_json response
- Remove last blocked script β DOM re-indexes remaining items after each removal to stay in sync with server
- Delete Old Logs UI β restored to Consent Logs page (handler existed, HTML form was missing)
- Blocked content placeholder β always renders when an iframe is blocked, regardless of admin toggle
- Service-specific messaging β placeholder shows e.g. "YouTube video blocked"
- Branding logo β recommended size corrected to 150Γ150 px
- New: Form Builder Integration β CF7, WPForms, Gravity Forms, Elementor Forms
- New: A/B Testing β three banner position variants with conversion tracking and one-click winner promotion
1.8.1 β Bug Fixes
- Banner reappearance after consent resolved
- Cookie write verification and domain scoping fallback
- Blocked content placeholder style update and service-specific messaging
1.8.0 β Elementor Video Blocking
- Elementor YouTube widget blocking pending consent
- Built-in service library (YouTube, Vimeo, Google Maps, and more)
- WP Rocket lazy-load compatibility
- Per-category unblocking fix
1.7.0 β Blocked Content Overlay
- Branded placeholder shown in place of blocked iframes
1.6.0 β Geolocation
- Auto-detects visitor country, displays region-appropriate banner (GDPR/CCPA/LGPD/PIPEDA)
1.5.0 β Multisite
- Network-aware with automatic detection and settings adjustment
1.4.1 β Privacy Policy Generator
- Intelligent generator that analyses site configuration
1.4.0 β IAB TCF v2.3 & Google ACM
- Full
__tcfapi implementation, TC String generation, Google Additional Consent Mode
1.3.0 β Enhanced Customisation
- Page-specific controls, custom CSS editor, subdomain consent sharing
1.2.0 β Internationalisation & Accessibility
- 40+ language auto-translation, WPML/Polylang, WCAG 2.1 AA
1.1.0 β Consent Mode Integration
- Google Consent Mode v2, Microsoft UET Consent Mode
1.0.0 β Initial Release
- Banner, script blocking, categories, preference centre, consent logging, scanner, CSV export, cookie policy generator
π¬ Support
π License
GPL v2 or later β free to use, modify, and distribute.
β οΈ Legal Disclaimer: This plugin provides technical tools to help implement cookie consent mechanisms. It does not constitute legal advice. Always consult a qualified legal professional for compliance guidance specific to your situation.
Made with β€οΈ by Robert Palmer in Cleethorpes, England
**[Little Web Shack](https://littlewebshack.com)** Β· **[Made by Robert](https://madeberobert.co.uk)**