Link corrections
Changed:
* Plugin homepage and author links now point to the official plugin page at maxtdesign.com
* In-plugin Documentation and FAQ links now point to the official plugin page
Popup display fixes
Fixed:
* Consent popup no longer reappears on every page load after a visitor has already accepted or declined. The popup now checks the stored consent choice in the browser before showing, so it stays hidden once a choice is made. This also covers sites using full-page caching, where the previous server-side check could not run for each visitor.
* “Re-prompt on Decline” now works from the popup’s own Decline All button. Previously, declining directly in the popup did not re-show it as the setting intends.
WordPress 7.0 compatibility, CSP hardening, and reset() bug fix
Added:
* WordPress 7.0 “Armstrong” compatibility (Tested up to: 7.0)
* Privacy Policy generator integration — suggested paragraph auto-populates the WordPress privacy policy tool
* Admin notice when an Elementor popup ID is configured but Elementor is not active (previously the built-in popup silently suppressed)
* GCM v2 default state now also declares security_storage, functionality_storage, and personalization_storage
Changed:
* Default consent injection now uses wp_print_inline_script_tag() so it works under Content Security Policy nonce plugins
* Removed unnecessary wp_strip_all_tags() wrappers from inline JS/CSS calls
Fixed:
* mdccConsent.reset() now also clears the mdcc_popup_shown cookie so the popup can reappear after a reset
* First-time visitors no longer get a redundant update:denied call on page load — runtime now only fires gtag update when a stored choice exists, preserving GCM v2’s wait_for_update window
Translation support
Added:
* Complete translation template (.pot) with all 61 translatable strings
* Enables community translation via translate.wordpress.org
* Users can now translate with Loco Translate or Poedit without any extra setup
Bug fix for popup display race condition
Fixed:
* Popup race condition where JavaScript initialized before popup HTML was rendered via wp_footer
Critical bug fix for Google Consent Mode v2 timing
Fixed:
* Google Consent Mode v2 timing issue – GTM and GA4 scripts now properly blocked until user grants consent
* Added gtag(‘consent’, ‘default’, {…}) injection in before tracking scripts load
* Ensures compliance with GDPR/CCPA by preventing tracking before explicit user consent
Added:
* Admin setting to enable/disable GCM default injection (Advanced Settings section)
* Setting enabled by default for proper compliance
* Option to disable if conflicts occur with custom implementations
Technical:
* New method MDCC_Consent_Manager::inject_gcm_default() injects consent default state
* New admin setting ‘gcm_inject_default’ with checkbox control
* Runs on wp_head priority 1 to execute before all tracking scripts
* wait_for_update parameter (500ms) allows consent-runtime.js to load
* Zero functional changes to existing consent API or shortcodes
Build system, testing suite, bug fix, and optimizations
Added:
* Minification build (PostCSS + Terser); WordPress loads .min assets by default, source when SCRIPT_DEBUG is true
* Phase 4 testing suite: performance validation, functional tests, manual testing checklist, visual regression guide
* SVN upload file list and workflow documentation
Fixed:
* Popup no longer re-appears on initial load when “Re-prompt on Decline” is enabled (visibility check)
Changed:
* consent-runtime.js optimized (~40% size reduction), full parity maintained
* Plugin display name set to “MaxtDesign Cookie Consent – Google Consent Mode v2”; slug/text domain maxtdesign-cookie-consent
* All prefixes refactored to MDCC_/mdcc_/mdcc-; shortcodes [mdcc_consent_status] and [mdcc_manage_consent]
Initial public release on WordPress.org
Added:
* Complete standalone consent popup system with three style presets (Minimal, Modern, Bold)
* Google Consent Mode v2 implementation (all four consent types: analytics_storage, ad_storage, ad_user_data, ad_personalization)
* localStorage-based consent storage (zero database queries, privacy-first)
* Admin settings page with popup customization options
* Color picker for primary button color
* Three position options: Top banner, Bottom banner, Center modal
* Three animation options: Slide, Fade, None
* Configurable popup content (title and message)
* Cookie-based “popup shown” tracking (configurable duration: 1-365 days)
* Optional re-prompt on decline (once per session)
* Optional Elementor popup integration
* Two shortcodes: [mdcc_consent_status] and [mdcc_manage_consent]
* Real-time consent status updates (chips update when consent changes)
* Full keyboard accessibility (ESC to close, Tab navigation, focus trap)
* Screen reader support (ARIA labels, role attributes)
* Mobile responsive design
* Complete internationalization support (translation-ready)
* High contrast mode support
* Reduced motion support
* Reset preferences functionality with confirmation
Technical:
* Zero external dependencies (vanilla JavaScript, no jQuery)
* <10KB total size (CSS + JS combined, gzipped)
* WCAG 2.1 AA accessible
* WordPress Coding Standards compliant
* Compatible with WordPress 5.8+
* Compatible with PHP 7.4+
* Works with all themes and major plugins
Plugin Website
Visit website
Share Post
Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.