LP-CC Consent
Slim and clean cookie consent plugin for WordPress
by Michael H. / LP-CC · github.com/michaelh24769/lpcc-consens · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/michaelh24769/lpcc-consens/archive/refs/heads/main.zipReadme
LP-CC Consent
Schlankes, wiederverwendbares Cookie-Consent-Plugin für WordPress mit Geo-Split.
Konzept
| Region | Verhalten |
|---|---|
| EU/EEA/UK/CH | Opt-in-Banner, Tracking blockiert bis Zustimmung (DSGVO) |
| Rest der Welt (v. a. US) | Kein Banner, Tracking aktiv, Opt-out via Footer-Link (CCPA/FDBR) |
| Geo unbekannt / keine DB | Fail-safe: Banner für alle |
- HTML für alle Besucher identisch → voll cache-kompatibel (Geo-Entscheidung per uncached REST-Request, Ergebnis im Cookie, 1 Request pro Besucher).
- Geo-Lookup lokal via MaxMind GeoLite2-Country (gebündelter Pure-PHP-Reader, keine Server-Extension). Monatliches Auto-Update per WP-Cron.
- Kein Overkill: kein TCF, kein Consent Mode, kein Consent-Logging, keine Scanner.
Setup
- Plugin installieren & aktivieren.
- Kostenlosen MaxMind-Account anlegen → GeoLite2 License Key erzeugen.
- Einstellungen → LP-CC Consent: Key eintragen (DB wird sofort geladen), Facebook Pixel ID und/oder GA4 Measurement ID eintragen, Datenschutz-URLs setzen.
- Widerrufs-Link in den Footer:
[lpcc_settings_link]oder<?php echo lpcc_settings_link(); ?>oder ein Menü-/Link-Element mit der Klasselpcc-open(siehe unten).
Tracking
FB Pixel (Kategorie marketing) und GA4 (Kategorie statistics) gibt das Plugin selbst korrekt gegated aus — kein Tracking-Code im Theme.
Eigene Scripts gaten
<script type="text/plain" data-lpcc="marketing">
/* wird erst nach Marketing-Opt-in ausgeführt */
</script>
<script type="text/plain" data-lpcc="statistics" data-lpcc-src="https://example.com/ext.js"></script>
Embeds (2-Klick-Lösung)
<iframe data-src="https://www.google.com/maps/embed?..." data-lpcc="marketing"
width="600" height="450" loading="lazy"></iframe>
Ohne Consent erscheint ein Platzhalter mit „Inhalt laden"-Button und „immer erlauben"-Checkbox.
Consent-Dialog öffnen (Widerruf / Menü-Link)
Jeder Link oder Button mit der CSS-Klasse lpcc-open oder dem Attribut data-lpcc-open öffnet beim Klick den Consent-Dialog (preventDefault() + window.lpcc.open()). Der Listener ist delegiert (ein einziger Handler am document) und wirkt damit auch für Elemente, die erst nach dem Laden ins DOM kommen — theme-unabhängig und auf jeder Seite mit dem Plugin nutzbar.
<a href="#" class="lpcc-open">Cookie-Einstellungen</a>
<button type="button" data-lpcc-open>Cookie-Einstellungen</button>
Als WordPress-Menü-Eintrag (z. B. Footer-Menü „Rechtliches"): einen Individuellen Link anlegen, als URL # eintragen und im Feld CSS-Klassen lpcc-open setzen. Das Feld ggf. über Ansicht anpassen (oben rechts im Menü-Editor) einblenden. Kein Theme-Code nötig.
Der bestehende Shortcode [lpcc_settings_link] bzw. der PHP-Helper lpcc_settings_link() bleibt unverändert nutzbar und rendert weiterhin einen Link mit eigenem Inline-Handler.
Theming
Alles über CSS-Variablen (--lpcc-bg, --lpcc-fg, --lpcc-accent, --lpcc-accent-fg, --lpcc-font, --lpcc-radius, --lpcc-embed-bg, …) — Defaults neutral dunkel, Überschreiben im Theme-CSS.
Filter & API
| Hook / API | Zweck |
|---|---|
lpcc_texts / lpcc_texts_all |
Banner-Texte anpassen / Sprachen ergänzen |
lpcc_lang |
Sprachermittlung überschreiben |
lpcc_optin_countries |
Länderliste für Opt-in-Pflicht anpassen |
lpcc_client_ip |
IP-Quelle hinter Reverse-Proxy umstellen |
.lpcc-open / [data-lpcc-open] |
Link/Button, der beim Klick den Dialog öffnet (Widerruf) |
window.lpcc.open() |
Banner/Einstellungen öffnen (Widerruf) |
window.lpcc.get() / .set({...}) |
Consent-Status lesen/setzen (JS) |
Consent-Version
LPCC_CONSENT_VERSION in lp-cc-consent.php erhöhen ⇒ alle Besucher werden neu gefragt (z. B. nach Hinzufügen neuer Tracking-Dienste).
Lizenz Dritter
lib/MaxMind/ — MaxMind-DB-Reader-php, Apache-2.0 (siehe lib/MaxMind/LICENSE).