Warning !! This plugin is currently in alpha stage and under active development. It is not recommended for production use. APIs and database schemas may change without notice. Use at your own risk. !!
GDPR-compliant cookie consent banner for WordPress - minimal footprint, full compliance.
- Opt-in by default - All optional categories are OFF until user consents
- Granular category selection - Necessary, Functional, Analytics, Marketing
- Consent logging - Timestamp and policy version for compliance proof
- Policy version tracking - Automatic re-consent on policy changes
- Anonymized IP logging - GDPR-compliant data storage
- Customizable position (top, bottom, modal)
- Customizable layout (full-width bar, floating box)
- Customizable colors and border radius
- Accept All / Reject All / Customize buttons
- Floating button for easy access to preferences
Automatic blocking of known tracking scripts until consent:
- Google Analytics / Google Tag Manager
- Facebook Pixel
- Hotjar
- LinkedIn Insight Tag
- Twitter/X Pixel
- TikTok Pixel
- Microsoft Clarity
- Pinterest Tag
- Snapchat Pixel
Block third-party embeds until consent is given:
- YouTube videos
- Vimeo videos
- Google Maps
- Other iframes
Detect cookies on your website:
- Server-side scanning (detects HttpOnly cookies)
- Deep scan with remote headless browser
- Cookie Database API integration (2000+ known cookies)
- Automatic cookie enrichment with provider, purpose, duration
- Built-in support for Google Consent Mode v2
- Loads at highest priority (before any tracking script)
- EEA region-specific defaults
- Required for Google Ads and Analytics in the EU
- Automatic consent signal updates
- Automatic
fbq('consent', 'revoke/grant')API calls - Works with existing Facebook Pixel implementations
- dataLayer.push events for GTM triggers (
lw_cookie_consent_update) - WordPress filters for querying consent state
- Script blocking override filter for plugin compatibility
Full command-line management:
wp lw-cookie settings list # List all settings
wp lw-cookie settings set enabled true # Change settings
wp lw-cookie stats # View consent statistics
wp lw-cookie export --format=csv # Export consent logs
wp lw-cookie clear-logs --older-than=365 # Clean up old logscomposer require lwplugins/lw-cookie- Download the latest release
- Upload the
lw-cookiefolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu
- Go to LW Plugins → Cookie to configure
Navigate to LW Plugins → Cookie in your WordPress admin to access settings:
| Tab | Description |
|---|---|
| General | Enable/disable, privacy policy page, policy version |
| Appearance | Position, layout, colors, border radius |
| Categories | Customize category names and descriptions |
| Texts | Banner title, message, and button labels |
| Advanced | Consent duration, script blocking, Google Consent Mode |
| Category | Required | Description |
|---|---|---|
| Necessary | Yes | Essential cookies for website function |
| Functional | No | Enhanced functionality and personalization |
| Analytics | No | Visitor analytics and statistics |
| Marketing | No | Advertising and remarketing |
// Accept all cookies
LWCookie.acceptAll();
// Reject all optional cookies
LWCookie.rejectAll();
// Open preferences modal
LWCookie.openPreferences();
// Get current consent state
const consent = LWCookie.getConsent();
// { necessary: true, functional: false, analytics: false, marketing: false }
// Check if category is allowed
if (LWCookie.isAllowed('analytics')) {
// Load analytics scripts
}
// Listen for consent changes
window.addEventListener('lwCookieConsent', function(e) {
console.log('Categories:', e.detail.categories);
console.log('Action:', e.detail.action);
});
// Delete all cookies (for "forget me" functionality)
LWCookie.deleteAllCookies();For third-party plugin integration:
// Get all consent categories
$categories = apply_filters( 'lw_cookie_consent_categories', [] );
// ['necessary' => true, 'functional' => false, 'analytics' => true, 'marketing' => false]
// Check if user has given any consent
$has_consent = apply_filters( 'lw_cookie_has_consent', false );
// Check if specific category is allowed
$analytics_ok = apply_filters( 'lw_cookie_is_category_allowed', false, 'analytics' );
// Prevent blocking specific scripts (e.g., if your plugin handles consent)
add_filter( 'lw_cookie_should_block_script', function( $should_block, $handle, $src, $category ) {
if ( $handle === 'my-plugin-pixel' ) {
return false; // Don't block, I handle consent myself
}
return $should_block;
}, 10, 4 );The plugin pushes events to dataLayer for GTM triggers:
// Fired on every consent change
{
event: 'lw_cookie_consent_update',
lw_cookie_consent: {
necessary: true,
functional: true,
analytics: true,
marketing: false
},
lw_cookie_action: 'customize' // or 'accept_all', 'reject_all'
}- PHP 8.1 or higher
- WordPress 6.0 or higher
Full documentation is available in the docs folder:
LW Cookie is part of the LW Plugins family - lightweight WordPress plugins with minimal footprint and maximum impact.
| Plugin | Description |
|---|---|
| LW SEO | Essential SEO features without the bloat |
| LW Disable | Disable WordPress features like comments |
| LW Site Manager | Site maintenance via AI/REST |
| LW Memberships | Lightweight membership system |
| LW LMS | Courses, lessons, and progress tracking |
| LW Cookie | GDPR-compliant cookie consent |
GPL-2.0-or-later. See LICENSE for details.
Contributions are welcome! Please feel free to submit a Pull Request.