Changelog — Consenta WordPress Plugin Versionshistorie
Flash Sale — noch --:--:-- Agency Lifetime + White-Label — 499 €149 € Bundle sichern →

Consenta Changelog

Alle Plugin-Versionen und Änderungen im Überblick — neue Features, Bugfixes und Verbesserungen.

v1.15.23
12.05.2026

Lizenz-E-Mail Strict-Validation + Aktivierungs-UI gefixt

Feature Fix Security
  • Lizenz-Aktivierung: E-Mail muss jetzt mit Customer-E-Mail übereinstimmen. Bisher war die E-Mail beim Aktivieren optional und wurde nicht serverseitig geprüft — wer den Lizenzschlüssel hatte, konnte jede beliebige E-Mail eintragen und aktivieren. Jetzt drei-schichtige Validierung: (1) Pro fordert die E-Mail jetzt verpflichtend an, (2) sendet sie mit dem Activate-Call an den Lizenz-Server, (3) der Server matcht sie strict gegen die im Customer-Profil hinterlegte Adresse. Mismatch → klare Fehlermeldung „E-Mail stimmt nicht mit der bei Consenta hinterlegten Lizenz-E-Mail überein". Backward-compatible: alte Plugin-Versionen ohne E-Mail-Übermittlung laufen weiter durch (Server enforced nur, wenn E-Mail mitgesendet wird).
  • Bugfix: die in 1.15.21 hinzugefügte E-Mail-Validation funktionierte nicht — License::api_call() extrahierte aus den Params nur key und site_url und verwarf die email stillschweigend. Server bekam sie nie → kein Strict-Check. Jetzt korrekt durchgeschleift.
  • UI: Lizenz-Aktivierungs-Fehler erschienen doppelt. Bei einer fehlgeschlagenen Aktivierung wurde sowohl ein Toast als auch eine Inline-Notice gerendert — verwirrend, weil derselbe Text zweimal in unterschiedlichen Stilen erschien. Jetzt nur noch die Inline-Notice direkt unter dem Form-Feld (persistenter, näher am Eingabe-Kontext). Erfolgreiche Aktivierung zeigt weiterhin den Toast (kurz, ephemer).
  • License-Tab: E-Mail-Hinweis direkt unter dem E-Mail-Feld („Muss exakt mit der E-Mail übereinstimmen, mit der du die Lizenz bei Consenta gekauft hast.") + roter Pflicht-Stern an Lizenzschlüssel und E-Mail. Beide Felder mit HTML5 required-Attribut.
v1.15.4–1.15.20
08.05.2026 – 11.05.2026

Maintenance-Releases: diverse Bugfixes und Detail-Verbesserungen

Fix Improve
  • Verschiedene kleinere Verbesserungen, Übersetzungs-Updates und Bugfixes — siehe Plugin-Updater im wp-admin für die jeweilige Detailliste pro Version.
v1.14.3
07.05.2026

Multilingual-Fixes: Placeholder-Fallback, Cookie-Native-Dict erweitert, Button-CSS-Klassen, Import-Bug

Fix Feature Improve
  • YouTube/Vimeo/Maps-Placeholder bleibt deutsch trotz NL-/EN-/FR-Site: Bug-Report Thomas / bachfestivaldordrecht.nl 2026-04-29 — der JS-i18n-Lookup für Blocker-Placeholder fiel direkt vom Visitor-Lang auf den deutschen Source-String zurück, wenn die Visitor-Sprache aus einem Edge-Case heraus nicht im i18n-Bucket gefunden wurde. Jetzt mit Cascade-Fallback Visitor-Lang → Server-Fallback-Lang → EN → DE → Source — Englisch greift bevor Deutsch fallback wird (bessere Lingua franca für non-DE-Visitors). Auf NL-Sites erscheint die Placeholder-Box jetzt zuverlässig auf Niederländisch („Deze inhoud wordt geleverd door YouTube. Om te laden is uw toestemming vereist.").
  • Cookie-Native-Dict erweitert um 5 häufige WordPress-Plugin-Cookies (GDPR Cookie Consent + Wordfence): cookielawinfo-*, viewed_cookie_policy, wf_loginalerted_*, wfvt_*, wfwaf-authcookie-*. Jetzt mit hand-kuratierten Übersetzungen in allen 7 Native-Sprachen (EN, FR, ES, IT, NL, DA, SV) — vorher fielen sie auf raw-DE durch. NL-Visitor sieht z.B. jetzt „Slaat de cookie-toestemming op voor elke cookie-categorie." statt der deutschen Original-Beschreibung. 35 neue Native-Dict-Einträge.
  • Eigene CSS-Klassen pro Banner-Button für individuelles Styling. Banner-Buttons tragen jetzt zusätzlich zu consenta-btn-primary/-secondary auch consenta-btn-accept, consenta-btn-reject und consenta-btn-details — Site-Owner können damit jeden Button per CSS einzeln gestalten (z.B. grüner Akzeptieren-Button, roter Ablehnen-Button). Im Dialog waren diese Klassen schon da, im Banner haben sie bisher gefehlt. Backward-Compat: alte -primary/-secondary-Selektoren bleiben funktional.
  • JSON-Import von Settings: localized-texts gingen verloren. Der Import-Pfad nutzte array_map('sanitize_text_field', $value), was nur für flache Arrays passt. localized-texts ist aber 2-stufig verschachtelt ([lang => [key => html]]) — die Sub-Arrays bekamen sanitize_text_field auf nicht-String-Werte übergeben → PHP-Warning + alle Übersetzungen wurden zu leeren Strings. Jetzt mit Detection-Logik: nested-Strukturen werden via array_walk_recursive sanitized, flache via array_map. Custom-Texts überleben den JSON-Roundtrip jetzt sauber. Bug-Report bachfestivaldordrecht.nl 2026-04-29.
v1.14.2
07.05.2026

Server-Errors in 34 Sprachen — Plugin-Mapping statt Roh-Server-Strings

Fix Improve
  • Server-Fehlermeldungen aus dem Lizenz-Server erscheinen jetzt in allen 34 Plugin-Sprachen. Vorher: wenn der Lizenz-Server eine Fehler-Antwort schickte (z.B. „Authentication required (signed cookie or registered site_url)"), zeigte das Plugin den englischen Server-Text roh — der Server kennt die Sprache des Plugin-Admins nicht. Jetzt: der Server liefert strukturierte Codes (auth_required, site_not_registered, license_inactive, rate_limit etc.), das Plugin mapped sie über __() auf lokale Strings — automatische Sprachauswahl je nach Admin-Locale. 26 neue Strings × 33 Sprachen = 858 neue Einträge in der Übersetzungs-Datenbank.
  • Plugin-seitig: alle in den letzten Iterationen hinzugefügten hartkodierten Strings (in License.php, Plugin.php, Frontend/Consent.php, WhiteLabel.php) sind jetzt durch __() geleitet — damit greift das bestehende 34-Sprachen-System auch für die neueren Code-Pfade. Plugin-Admin in Polnisch sieht polnische Fehler, in Japanisch japanische, etc.
v1.14.1
07.05.2026

Multi-Site-Sync: Browser-User-Agent gegen IONOS-Blockaden + tolerantere WL-Sync-URL-Erkennung

Fix
  • Multi-Site-Stats-Sync funktioniert jetzt zuverlässig auf IONOS-Hosting (und ähnlich strikten WAFs / Security-Plugins). WordPress sendet beim Default-Outbound-Request den User-Agent WordPress/X.X; https://... — IONOS und einige WAF-Provider klassifizieren das als „Bot" und antworten mit 401 Unauthorized, selbst wenn der Bearer-Token korrekt ist. Das Multi-Site-Dashboard zeigte deshalb „Ungültiger Token" trotz Token-Neugenerierung. Fix: fetch_site_stats sendet jetzt Mozilla/5.0 (compatible; Consenta-MultiSite/<ver>; +https://consenta.io) — kommt durch typische UA-Filter und identifiziert uns weiterhin ehrlich für Site-Owner die ihre Logs durchsehen. Tokens müssen nicht neu generiert werden, nur das Plugin updaten und Sync neu starten.
  • Hat die Header-Anpassung beide Phasen des Token-Leak-Hardening-Flows mitbekommen: sowohl die Phase-1-Redirect-Probe (ohne Authorization-Header) als auch der finale authentifizierte Request senden den Browser-User-Agent. SSRF-Schutz, Domain-Anker-Check und Bearer-Token-Leak-Prevention bleiben unverändert.
  • White-Label-„Zentrale Synchronisation": tolerantere URL-Erkennung (Server-seitiger Hotfix, kein Plugin-Update nötig). Die in 1.14.0 eingeführte Site-Activation-Bind für wl_config_save / wl_config_get verglich Site-URLs zu strikt — wenn die Site bei der ersten Lizenz-Aktivierung unter https://example.com registriert wurde, home_url() aber mittlerweile https://www.example.com zurückgibt (oder umgekehrt nach www-/SSL-Migration), schlug der Auth-Check mit „Authentication required (signed cookie or registered site_url)" fehl. Der Vergleich ignoriert jetzt Scheme (http/https), www-Präfix, Trailing-Slash, Default-Ports und Case — fremde Domains fliegen weiterhin raus, dieselbe Site unter Schreibweise-Drift wird erkannt. Einfach Sync-Button auf betroffenen Sites nochmal klicken.
v1.14.0
07.05.2026

Security-Härtung, Tier-Gating mit Grandfathering & Pro-Sites 3→10

Security Feature Improve Fix
  • Webhook-Verifikation gehärtet (Stripe, Paddle, PayPal). Webhook-Endpunkte verlangen jetzt zwingend ein konfiguriertes Signing-Secret — vorher wurden Webhook-Calls auf frischen Installationen oder bei versehentlich geleertem Secret ungeprüft akzeptiert. Stripe/Paddle weisen Requests ohne Secret oder mit ungültiger Signatur ab. PayPal-Webhook ist temporär deaktiviert bis vollständige RSA-Cert-Verifikation implementiert ist; Customer-Zahlungen über PayPal laufen weiter über den auth-cookie-gestützten Capture-Endpoint.
  • Customer-Account-Cookie HMAC-signiert. Das consenta_customer-Session-Cookie auf consenta.io trägt jetzt eine HMAC-SHA256-Signatur via wp_salt('auth') + per-Install-Pepper. Vorher war es base64-kodiertes JSON ohne Integritätsschutz — eine bekannte Customer-E-Mail hätte Session-Spoofing erlaubt. 30-Tage-Migrationsfenster: bestehende Sessions bleiben gültig, neue werden sofort signiert.
  • Site-Activation-Bind für sensitive Lizenz-Endpoints. Der Plugin-Decryption-Key-Endpoint (/dkey) und die White-Label-Konfig-Sync (wl_config_save/wl_config_get) verifizieren jetzt zusätzlich zur Lizenz-Key-Authentifizierung, dass die anfragende site_url in der Activation-Liste der Lizenz hinterlegt ist. Plus Per-Lizenz-Rate-Limit (5–60 Requests/Stunde je nach Endpoint). Schließt Risiken für den Fall, dass ein Lizenz-Key über Support-Mails, Screenshots oder Backups abhandenkommt.
  • Tier-Upgrade-Endpoint verlangt jetzt eine bezahlte Bestellung mit passender E-Mail und passendem Tier sowie Idempotenz-Schutz gegen Replay. Vorher: gültiger Nonce + bekannter Lizenz-Key + bekannte E-Mail reichten aus, um Starter/Pro auf Agency mit amount=0,00 zu „upgraden". Ebenfalls geschlossen: der öffentliche ?action=addon_activate-URL-Handler (kostenloses White-Label-Addon-Aktivieren bei Wissen eines aktiven Lizenz-Keys); Addon-Aktivierung läuft jetzt ausschließlich aus signaturverifizierten Webhook-Events.
  • Order-Polling-Endpoint gibt Lizenz-Key nicht mehr öffentlich zurück. consenta_check_order antwortet jetzt nur mit Status + zugehöriger E-Mail-Adresse. Lizenz-Keys werden ausschließlich in der Bestätigungs-E-Mail an die Bestelladresse zugestellt. Schließt einen Datenexpositionspfad, der bei bekanntem order_ref den Lizenz-Key herausgegeben hätte.
  • Support-System Inbound-Email-Endpoint: hard-fail wenn kein API-Key konfiguriert ist (vorher: leerer Key = öffentlicher Endpoint, Forge-Tickets möglich). API-Key-Vergleich nutzt jetzt hash_equals() gegen Timing-Oracle-Angriffe. $wpdb->esc_like() auf User-Suchen schließt LIKE-Wildcard-Tricks.
  • Webhook-Audit-Logging: jeder Schreibvorgang an die zentrale White-Label-Konfiguration wird mit Auth-Pfad, IP, User-Agent und Timestamp protokolliert (max. 50 Einträge pro Lizenz, FIFO). Bei einem Sicherheitsvorfall lässt sich daraus der Angriffsvektor rekonstruieren.
  • License-Tier-Gating mit Grandfathering. Bisher schaltete jede aktive Lizenz alle Features frei — die Pricing-Tabelle versprach jedoch REST-API, Multi-Site-Dashboard und Branded-Reports als Agency-only. Diese drei Features sind ab 1.14.0 tatsächlich an die Agency-Stufe gebunden. Wichtig für Bestandskunden: alle Lizenzen die vor dem 07.05.2026 aktiviert wurden behalten alle Features dauerhaft (Grandfathering), egal welcher Tier. Es gibt also keinen Funktionsverlust für aktuelle Pro- oder Starter-Lizenzinhaber. Das Datum wird nicht vorgerollt.
  • Pro-Tier: 10 Sites statt 3. Die Pricing-Tabelle versprach 10 Aktivierungen für den Pro-Plan, der Lizenzserver vergab aber nur 3. Synchronisiert: Pro-Lizenzen erlauben jetzt tatsächlich 10 Sites, Trial-Pro 5 (Trial bleibt zeitlich limitiert), Agency 99 (= unbegrenzt), Starter 1 — wie auf der Preisseite versprochen. Existierende Pro-Lizenzen profitieren automatisch beim nächsten Heartbeat-Refresh des Plugins.
  • Multi-Site-Dashboard Stats-Cache: die /stats-Aggregat-Queries (total consents, accept-rate, daily/geo-Charts) werden jetzt 5 Minuten gecached. Dashboards mit 10+ angebundenen Remote-Sites laden dadurch spürbar schneller, und der Lizenzserver wird weniger angepingt.
  • Code-Aufräumung: 4 unbenutzte Forwarder-Controller-Klassen und 6 nirgends gerufene AJAX-Handler entfernt — Angriffsfläche reduziert ohne Funktionsverlust. uninstall-Hook entfernt jetzt auch Warmup-Queue-Optionen und löscht den License-Validate-Cron.
  • „Anzeige-Sprache"-Setting im Sprachen-Tab persistiert jetzt. Der Schalter zwischen Site-Sprache und Browser-Sprache (in 1.13.14 eingeführt) schrieb durch einen Tippfehler in einen falschen Option-Key — das Setting hatte keine Wirkung und blieb stumm auf dem Default. Korrigiert auf den richtigen consenta_options-Key über Settings::set/save, In-Memory-Cache wird mitaktualisiert.
  • Order-Idempotenz: consenta_save_paddle_txn setzt eine transaction_id nur noch wenn das Feld noch leer ist (kein Override eines bereits gesetzten Werts). Verhindert Audit-Trail-Korruption und stillschweigendes Order-Laundering im Edge-Fall, dass mehrere Calls für dieselbe Bestellung eingehen.
v1.13.0
04.05.2026

Per-Service-Consent UI, Custom Google Fonts & schlankere ZIP

Feature Improve Fix
  • Custom-Slug-Modus für alle 1500+ Google Fonts: Reicht dir die Top-150-Auswahl nicht, kannst du im Picker-Bereich „Andere Google-Font einsetzen" jeden Slug eintragen (crete-round, roboto-flex, playfair-display-sc …). Consenta leitet den Family-Namen aus dem Slug ab und lädt ihn beim nächsten Speichern. Existiert die Schrift nicht, kommt eine konkrete Fehlermeldung.
  • Im Cookie-Einstellungen-Dialog erscheint jetzt eine kleine Zeile „Einzeln freigegebene Dienste: Google Maps" mit [Zurücksetzen]-Button, sobald der Besucher auf einen „Google Maps laden" / „YouTube laden" / „Vimeo laden"-Placeholder geklickt hat. Vorher war dieser per-Service-Consent (in localStorage.consenta_services) zwar granular gespeichert — aber für den User unsichtbar und nur durch Cookie-Löschen revokierbar. Jetzt klar erkennbar und mit einem Klick zurücknehmbar (Iframes werden wieder durch den Placeholder ersetzt).
  • Plugin-ZIP von 3,9 MB auf 2,2 MB geschrumpft (−45 %) und der languages/-Ordner nach Installation von 10 MB auf 4,4 MB. Wir versenden ab jetzt nur noch die compiled .mo-Files (das was WordPress zur Laufzeit liest) und das .pot-Template. Die .po-Source-Dateien (~6 MB, Editor-Format für Übersetzer) sind aus dem Distributions-ZIP raus — funktional ist 100 % erhalten. Verbessert Update-Zeiten und Hosting-Footprint spürbar.
  • Robuster Font-Install: bei cURL error 60: SSL certificate problem (typisch auf MAMP/XAMPP/Local-by-Flywheel oder hinter Corporate-Proxy mit kaputtem CA-Bundle) wird der Download genau einmal mit sslverify=false wiederholt. Risiko ist überschaubar: heruntergeladen werden statische CSS- und woff2-Files, woff2-URLs werden gegen fonts.gstatic.com whitelist-geprüft, keine Credentials im Spiel.
  • Auto-Verify auf jeder Consenta-Admin-Seite: fehlt das lokale CSS einer ausgewählten Schrift (z. B. weil der Initial-Save-Download in PHP-Timeout lief), startet stillschweigend ein Re-Install. Schlägt auch der fehl, erscheint eine rote Admin-Notice mit konkretem Fehlertext (HTTP-Code, fehlende Schreibrechte etc.) statt stumm auf system-ui zurückzufallen.
  • PHP-Notice Function is_feed was called incorrectly. Conditional query tags do not work before the query is run. behoben: is_feed()-Aufrufe in Blocker und TagManager werden jetzt mit did_action('parse_query') gegated. Beseitigt Konflikte mit IDE-Plugins wie WPCodeBox, die sich am selben Hook anhängen und solche Warnings auswerten.
  • Font-Picker Layout: die Item-Zeilen werden jetzt korrekt als vertikale Liste mit Trennlinien gerendert statt inline aneinanderzukleben. Hintergrund war ein WP-Admin-CSS-Konflikt: label{display:inline} aus forms.css schlug das Inline-style="display:flex"; jetzt mit eigenen CSS-Klassen + !important gehärtet. Gleichzeitig der Filter (Suche + Kategorie) wieder funktional, nachdem die !important-Hardening-Regel das vorherige style.display='none'-Hiding ausgehebelt hatte — neue .is-hidden-Klasse löst das sauber.
  • Multi-Word-Schriften (Open Sans, Playfair Display, Indie Flower, Shadows Into Light, Permanent Marker, Roboto Mono …) rendern in der Admin-Vorschau jetzt mit ihren echten Glyphen statt überall system-ui-Fallback. Root-Cause war ein Doppel-URL-Encoding: str_replace " "→"+" gefolgt von rawurlencode() codete + als %2B — Google interpretierte die Family-Namen wörtlich und antwortete mit HTTP 400 → keine @font-face-Definitionen → alles fiel auf system-ui zurück.
v1.12.0
03.05.2026

Google Fonts (DSGVO-konform self-hosted) & 34-Sprachen-Admin

Feature Improve Fix
  • Google Fonts integriert — vollständig DSGVO-konform self-hosted. Im Dialog- und Banner-Editor steht jetzt ein eigener Font-Picker mit den 160 populärsten Google-Schriften (Inter, Roboto, Open Sans, Montserrat, Playfair Display, Lora, Noto Sans JP/KR/SC, Cairo, Vazirmatn …). Suchfeld + Kategorie-Filter (Sans-Serif / Serif / Display / Handschrift / Monospace), Live-Preview im Editor mit der echten Schrift gerendert.
  • Auto-Download beim Speichern: Wählst du eine Google-Schrift, lädt Consenta die woff2-Files (latin + latin-ext Subsets) und das CSS lokal nach wp-content/uploads/consenta-fonts/{slug}/ herunter. Das Frontend liefert die Schrift dann ausschließlich von deiner eigenen Domain — null Anfragen an fonts.googleapis.com / fonts.gstatic.com. Damit ist das LG-München-Urteil 2022 zu Google Fonts (3 EO 1361/21) automatisch sauber abgedeckt: keine IP-Adressen-Übermittlung an Google, keine Einwilligungspflicht, keine Abmahn-Falle. Lizenz-Datei (OFL/Apache-2.0/Ubuntu) wird beim Download mitgespeichert.
  • Admin-UI jetzt in allen 34 Sprachen vollständig übersetzt (Frontend-Dialog war bereits abgedeckt) — der frühere Stand deckte nur 7 (de, en, uk, sv, fr, es, it, nl). Neu komplett dazugekommen: pl, pt, cs, da, fi, hu, ro, bg, el, hr, sk, sl, et, lt, lv, mt, ga, ru, tr, ja, ko, zh, ar, he, fa, ur. Insgesamt rund 5.970 manuell kuratierte Übersetzungen für ~181 Admin-Strings (Tab-Labels, Buttons, Status-Texte, Hilfeseiten, Fehlermeldungen). Die Auflösung läuft über ein zentrales admin-texts.json, das via gettext-Filter die ausgelieferten po/mo überschreibt — vorher waren viele po/mo-Strings noch Google-Translate-Output mit teilweise grob falschen Begriffen (z. B. „Toggle anzeigen" statt „Impressum anzeigen" auf Ukrainisch).
  • Picker-Vorschau lädt im Admin-Bereich (nur dort) alle 160 Schriften via Google-Fonts-CDN, damit du im Editor sofort siehst wie jede Familie aussieht — gechunked in 4 Requests à 40 Familien wegen Reverse-Proxy-URL-Limits. Auf dem Frontend bleibt die Auslieferung 100 % self-hosted, kein Leak.
  • Fataler TypeError behoben: Helper::localize_lifespan() akzeptiert jetzt auch Multi-Language-Lifespan-Arrays ({de: "6 Monate", en: "6 months", …}). Vorher crasht der Dialog auf Sites mit Cookie-Datenbank-Einträgen, deren lifespan-Feld als Array statt String abgespeichert wurde — die ganze Frontend-Auslieferung blockierte mit weißer Seite.
v1.11.0
20.04.2026

Scan-UX, Editor-Speichern-Feedback & Theme-Kompatibilität

Feature Improve Fix
  • Scan-Ergebnis-Overlay mit Spinner während des Scans und einer detaillierten Liste danach: jeder neu hinzugefügte Cookie, jede Domain, jede Ressource wird einzeln aufgeführt mit Zweck und Anbieter. Das Overlay schließt sich nicht mehr von selbst — Admins können das Ergebnis in Ruhe durchgehen.
  • Neuer Filter consenta_force_frontend_output als Escape-Hatch für Edge-Cases: erzwingt das Laden der Frontend-Assets auch dann, wenn die automatische Maintenance-/Staging-Erkennung normalerweise blockieren würde. Hilfreich in exotischen Deployment-Setups.
  • Speichern-Feedback im Dialog/Banner/Widget-Editor komplett neu: animierter Spinner auf dem Button während des Speicherns, grüner „✓ Gespeichert"-State nach Erfolg, sichtbarer Toast oben rechts mit 2-Sekunden-Countdown. Kein Full-Page-Reload mehr — die Vorschau wird in-place aktualisiert.
  • Der „Jetzt scannen"-Button in der Admin-Notice nach Plugin-Updates funktioniert jetzt: Klick öffnet die richtige Seite und triggert den Scan automatisch. Vorher lud die Seite nur und es passierte nichts.
  • Kompatibilität mit dem Plugin Password Protected (Ben Huson): Consenta wurde zu aggressiv unterdrückt, auch wenn die aktuelle Seite gar nicht vom Plugin geschützt war. Der Check prüft jetzt den tatsächlichen Schutz-Status statt nur die Plugin-Installation — Consenta lädt wieder zuverlässig auf öffentlichen Seiten.
  • Themes, die wp_footer() auf manchen Templates überspringen (Elementor Canvas, FSE Blank Templates, einige Landing-Page-Builder): zusätzliche Fallback-Hooks auf wp_body_open und shutdown garantieren die zuverlässige Auslieferung des Consent-Dialogs — doppelte Injektion ist via Static-Flags ausgeschlossen.
v1.10.0
20.04.2026

Impressum-Auto-Setup, Footer-Links & Funktional-Merge

Feature Improve
  • Automatische Impressum-Seite: beim ersten Admin-Besuch nach Aktivierung legt Consenta eine Platzhalter-Seite mit Hinweis auf § 5 DDG (Digitale-Dienste-Gesetz) an, falls noch keine existiert — analog zur Cookie-Erklärung-Seite. Bestehende Seiten mit typischen Slugs (impressum, imprint, legal-notice) werden automatisch adoptiert.
  • Consent-Dialog-Footer zeigt jetzt Links zu Cookie-Erklärung und Impressum — vollständig übersetzt in allen 34 mitgelieferten Sprachen. Vorher fehlten die Labels komplett für alle nicht-deutschen Besucher.
  • Option „Funktional mit Notwendig zusammenfassen" im Dialog-Tab: fasst die Funktional-Kategorie optisch mit Notwendig zusammen — die Cookies erscheinen unter „Notwendig" und sind immer aktiv. Vereinfacht die Darstellung für Endnutzer ohne rechtliche Trennung aufzuweichen: Backend, Logs und IAB-TCF-2.2-Mapping bleiben pro Zweck granular getrennt.
  • Rechtliche Seiten im Admin gruppiert: Datenschutzseite, Impressum-Seite und Cookie-Erklärung-Seite stehen jetzt im Dialog-Tab direkt untereinander statt durch unverbundene Toggles wie Logo-URL oder Schriftart-Wahl unterbrochen zu werden.
  • Cookie-Beschreibungen im Inline-Edit schreiben jetzt in den Sprach-Slot, der deiner WordPress-Admin-Locale entspricht (englischer Admin → EN-Slot, deutscher Admin → DE-Slot, usw.). Vorher landeten alle Edits im DE-Slot, sodass englische Admins versehentlich die deutschen Versionen überschrieben.
  • Fallback-Sprache für Beschreibungen: fehlt eine Übersetzung für die aktuelle Besuchersprache, fällt Consenta jetzt auf Englisch zurück statt auf Deutsch. Griechische, französische, spanische Besucher sehen dadurch kein ungewolltes Deutsch mehr — Englisch ist die bessere Lingua franca.
  • Dialog-Footer-Links werden nur noch gerendert, wenn die Zielseite tatsächlich veröffentlicht ist. Gelöschte, in den Papierkorb verschobene oder als Entwurf gespeicherte Seiten erzeugen keine toten 404-Links im Consent-Dialog mehr.
v1.9.0
19.04.2026

Gutenberg Block-Suite — Conditional Content, Transform & Kategorie

Feature
  • Block „Bedingte Inhalte" komplett überarbeitet: Tab-Navigation im Editor mit zwei Slots — Bedingter Inhalt (erscheint nach Consent) und Fallback Inhalt (erscheint vor Consent). Beide Bereiche akzeptieren jetzt beliebige Gutenberg-Blöcke per Drag & Drop — Bilder, Gruppen, Spalten, eigene Embeds. Bisher war der Fallback nur ein simples Text-Feld.
  • Block-Transform-API: markiere einen beliebigen bestehenden Block (z. B. YouTube-Embed, Karte) und wähle Umwandeln zu → Bedingte Inhalte im Block-Menü — der Block wandert automatisch in den Bedingter-Inhalt-Slot, der Fallback bleibt leer zum Befüllen. Analog zum Core-Gruppe-Block.
  • Eigene Block-Kategorie „Consenta" im Gutenberg-Inserter. Alle drei Blöcke (Cookie-Deklaration, Einwilligungsstatus, Bedingte Inhalte) sind jetzt gesammelt unter einem eigenen Abschnitt zu finden, statt zwischen Core-Blöcken in „Widgets" verstreut.
  • Alle Gutenberg-Blöcke auf Block-API v3 angehoben — kompatibel mit WordPress 6.9, keine Deprecation-Warnungen mehr im Editor.
v1.8.3
19.04.2026

White-Label-Addon-Gating, /en/-Subpage-Fix & Remote-Sync-Verbesserungen

Security Fix Improve
  • White-Label-Addon-Gating: WhiteLabel::is_licensed() verlangt jetzt explizit das white_label-Addon im Lizenz-Status — Agency-Tier allein reicht nicht mehr aus, um das Branding-Override zu aktivieren. Schließt eine Bypass-Lücke, bei der Agency-Lizenzen das Addon ohne Kauf nutzen konnten.
  • Frontend-Widget erschien nicht mehr auf /en/-Unterseiten (wo das Theme template_redirect mit exit abbricht um URL-slug-Mappings aufzulösen). Output-Hooks (wp_head, wp_footer, wp_body_open, shutdown) werden jetzt bereits bei Plugin-Init registriert statt innerhalb von template_redirect — überlebt aggressive Theme-Routen. Gate-Checks (Preview-Mode, URL-Exclusions) wandern in eine zentrale is_suppressed()-Methode.
  • Lizenz-Recheck: wp_remote_post schickt den Key jetzt zusätzlich als Query-Parameter — defensiv gegen 301/302-Redirects die POST in GET verwandeln und Body verwerfen (vorher: „Lizenz nicht gefunden").
  • Remote-Sites Sync: redirection => 0 auf redirection => 3 erhöht, damit kanonische WordPress-Redirects (trailing-slash, http→https, WAF-Rewrites) die Statistik-Abfrage nicht mehr stumm killen. HTTP-Fehlercodes werden zu konkreten deutschen Fehlermeldungen übersetzt (401/403/404/429/5xx).
  • Sync-Button im Sites-Tab: Refresh-Icon spint während des AJAX-Requests und eine Toast-Bestätigung („Aktualisiert") erscheint nach Abschluss — vorher gab es keinerlei sichtbares Feedback wenn die Zahlen unverändert blieben.
  • License-Tab: White-Label-Addon-Karte wird immer angezeigt wenn eine Lizenz aktiv ist (nicht nur wenn das Addon freigeschaltet ist). Drei klare Status-Varianten: „Aktiv" (grün), „Freigeschaltet" (grau), „Nicht freigeschaltet" (gelb) — letzterer mit „Kaufen"- und „Lizenz neu prüfen"-Buttons.
  • Verbose Recheck: Nach Klick auf „Lizenz neu prüfen" zeigt eine farbige Admin-Notice das genaue Server-Ergebnis — grün „Addon erkannt", neutral „Lizenzstatus aktualisiert", rot bei Netzwerk-/HTTP-Fehlern. Keine technischen Rauschen mehr.
v1.8.2
19.04.2026

Config-Hash, Inline-Edit & Consent-Text-Defaults

Improve
  • Config-Hash enthält nicht mehr die übersetzten Texte — kosmetische Wording-Änderungen erzwingen nicht mehr bei allen Besuchern einen neuen Consent (Widget bleibt sichtbar beim Admin-Testen). Audit-Trail weiterhin per separatem consent_text_hash pro Log-Eintrag
  • Admin-Inline-Edit: Enter-Taste committed jetzt (fehlte vorher), Span-Text wird unmittelbar nach AJAX-Save ohne Reload aktualisiert
  • Mehrsprachige description-Felder bleiben beim Inline-Edit erhalten — Update ändert nur den DE-Slot, nicht das gesamte {lang: …}-Objekt
  • Consent-Text-Defaults für alle 34 Sprachen komplett erneuert: 5 juristisch strukturierte Absätze (Technologien-Übersicht, Drittland-Transfer Art. 49 DSGVO, berechtigtes Interesse Art. 6, Datenschutzerklärung/Mindestalter, Ablehnungs-Recht Art. 7 Abs. 4) — muttersprachlich, nicht maschinenübersetzt
v1.8.1
18.04.2026

Defensive DB-Migration, MyMemory-Cache & Legal-Templates

Improve
  • Consent-Log-Schema: Defensive Column-Migration der consent_type-Spalte — läuft jetzt unabhängig vom DB_VERSION-Gate, verhindert stumme INSERT-Failures wenn Versionstracking drift
  • MyMemory-Übersetzungsergebnisse werden 7 Tage (UI-Texte) bzw. 30 Tage (Entity-Beschreibungen) in WP-Transients gecacht — Re-Runs sind quota-frei
  • Legal-Page-Templates (impressum/datenschutz/agb/widerrufsbelehrung): Duplicate-style-Attribut-Bug behoben, EN-Inhalt auf DE-Parität erweitert (Haftung für Links, EU-ODR-Absatz, § 11 Datenschutz, § 14 Salvatorische Klausel, § 15 Änderungen, Subscription-Cancellation)
v1.8.0
18.04.2026

Multilingualer Cookie-Consent: Runtime-I18n, Bulk-Übersetzung & TinyMCE-Editor

Feature
  • Cookie-Declaration-Shortcode sprachsensitiv: Lifespans werden automatisch in 9 Sprachen übersetzt (Regex-Vokabular — "2 Jahre" → "2 years" / "2 ans" / "2 años" …), Beschreibungen via integriertem Wörterbuch für die Top-Entries (Google Analytics/Ads, Meta, YouTube, Stripe, Cloudflare, WordPress-Core, WooCommerce, Paddle)
  • Neuer Sprachen-Tab: 34 Sprachen zentral verwalten mit Source-Dropdown, Live-Quelltext-Vorschau pro Feld, Ein-Klick-Übersetzung via MyMemory (kostenlos, kein API-Key), Bulk-Button "Alle aus Quelle übersetzen" mit Progress-Tracking
  • TinyMCE-Rich-Text-Editor für lange Texte (banner-text, consent-text, blocked-content-desc): Toolbar für Fett/Kursiv/Unterstrichen/Listen/Links, Text-Tab mit Quicktags, Lazy-Init pro Sprache (102 Editor-Instanzen werden nicht auf einmal geladen)
  • Bulk-Übersetzung von Entity-Beschreibungen (Cookies/Domains/Ressourcen): Source→Target-Dropdown + Übersetzen-Button in jedem Entity-Tab, mehrsprachige Speicherung als {de, en, fr, …}-Objekt mit Badge-Anzeige je Entity-Zeile, idempotent (bereits übersetzte Felder werden übersprungen)
  • Frontend Defense-in-Depth: CSS-Fallback via html[lang]-Selektor versteckt falsche Sprachblöcke auch wenn Server-Side-Stripping versagt
v1.7.0
17.04.2026

Security Release: HMAC-Cookies, SSRF-Schutz, Token-Hashing & XSS-Härtung

Security Improve
  • HMAC-SHA256 Cookie-Signatur (consenta_auth) für server-authentifizierte Consent-Verifizierung — ersetzt den schwachen djb2-Hash
  • SSRF-Schutz auf allen ausgehenden HTTP-Calls (Webhook, Scanner, Geolocation): Blockiert private IP-Bereiche (RFC1918, Loopback) und Cloud-Metadaten-Endpunkte (169.254.169.254)
  • API-Token werden jetzt als SHA-256-Hash gespeichert (Plaintext nur einmal bei Generierung sichtbar)
  • Multisite-Token-Anzeige maskiert — Token nicht mehr im title-Attribut sichtbar
  • XSS-Härtung: style-Attribut aus Consent-Text-Sanitization-Allowlist entfernt
  • Open-Redirect-Fix: wp_safe_redirect() statt wp_redirect() im Dismiss-Rescan-Flow
  • CSS-Injection-Fix: White-Label Logo-URL in CSS url() korrekt escaped
  • DoS-Schutz: CMP-Import auf 1 MB und 5.000 Einträge limitiert
  • Cookie-Tabelle: Neue Spaltenreihenfolge — Name → Beschreibung → Kategorie → Laufzeit → Aktionen
v1.6.0
17.04.2026

Webhooks, Browser-API-Blocking, CMP-Import & CCPA-Bestätigung

Feature Improve
  • Webhook-System: Echtzeit-HTTP-POST-Benachrichtigungen bei Consent-Events (consent.new, consent.update, consent.revoke, consent.optout) mit HMAC-SHA256-Signatur
  • Browser API Blocking: Push/Notification, Background Sync und Cache API werden bis zur Einwilligung blockiert
  • CMP-Import erweitert: Borlabs Cookie, Complianz und GDPR Cookie Compliance als neue Import-Quellen (jetzt 6 CMPs)
  • CCPA/CPRA jährliche Bestätigung: Automatische Re-Consent-Aufforderung nach 365 Tagen
  • HMAC Cookie-Signierung: djb2-Hash-basierte Consent-Cookie-Verifizierung (PHP + JS synchronized)
  • Consent-PDF-Nachweis: Druckoptimiertes A4-HTML mit DSGVO-Rechtstext und QR-Verifizierung
  • Scan-Verlauf: Protokollierung aller Scan-Ergebnisse mit Zeitstempel in DB-Tabelle
  • Plugin-Update-Erkennung: Admin-Hinweis mit Rescan-Empfehlung nach Plugin-Updates
  • WP Privacy Tools: Integration in WordPress Datenschutz-Export und -Löschung
  • A/B Testing: Wilson-Score-Konfidenzintervalle (95%) und Chi-Quadrat-Signifikanztest
  • WCAG 2.1 AA: Skip-Link mit focus-visible Pattern, verbessertes Fokus-Management
  • RTL: unicode-bidi CSS-Regeln und Nastaliq-Font für Urdu
  • Geolocation: HTTPS-only Geo-Lookup mit intelligentem Caching
  • Consent-Typ-Tracking: Unterscheidung zwischen Neu/Aktualisiert/Widerrufen in Logs
  • IAB TCF 2.2: Upgrade von TCF 2.0 auf TCF 2.2 — tcfPolicyVersion 4, GVL v3, Purposes 3–6 von Legitimate Interest ausgeschlossen
v1.5.2
17.04.2026

QR-Verifizierung, Batch-Export & Privacy Policy

Feature Improve Fix
  • QR-Code Verifizierung: Einwilligungsnachweise enthalten jetzt einen scanbaren QR-Code zur Echtheitsprüfung
  • Digitale Signatur: HMAC-SHA256 Signatur und Dokument-ID in jedem Einwilligungsnachweis
  • Batch-Export: Alle Einwilligungsnachweise monatsweise als ZIP-Archiv exportieren — jetzt inkl. QR-Code
  • Cookie-Deklaration in WordPress Datenschutzerklärung: Automatische Tabelle aller konfigurierten Cookies, Domains und Ressourcen
  • White-Label Addon-Preis wird dynamisch aus dem Admin Dashboard geladen
  • System-Buttons (Import, Export, Batch) rechts ausgerichtet für konsistentes UI
  • QR-Code URL-Encoding: esc_js() durch wp_json_encode() ersetzt — Verifizierungs-URL funktioniert jetzt korrekt
  • Batch-Export Button: window.open statt window.location.href für korrekten Download
  • Statistik-Dashboard: Zeitliche Verläufe mit 7d/30d/90d/12M Toggle — Tages-, Wochen- und Monatsgruppierung
  • Statistik-Dashboard: Ablehnungsrate als eigene Kennzahl mit Progress-Bar
  • Statistik-Dashboard: Opt-out/Widerruf-Tracking als eigene Karte (Gesamt, Rate, Heute)
v1.5.1
17.04.2026

Lizenz- und Blocker-Fixes

Fix
  • Blocker: Per-Service-Einwilligungen werden bei Ablehnung korrekt zurückgesetzt
  • Blocker: „Alle akzeptieren" hebt Blockierung für unbekannte Domains korrekt auf
  • Statistiken: Akzeptanzrate und Unique Devices werden korrekt berechnet
  • Lizenz: Tier-Erkennung aus Schlüssel-Prefix (AGY/STA) korrigiert
  • Lizenz: API-Kommunikation korrigiert (GET/POST Parameter)
  • Lizenz: LIFETIME-Anzeige für Lifetime-Lizenzen korrigiert
v1.5.0
17.04.2026

Lizenz-System, Übersetzungen & UI-Verbesserungen

Improve
  • Mehrsprachige Consent-Texte: „Letzte Einwilligung" wird jetzt clientseitig in der Besuchersprache angezeigt (31 Sprachen)
  • Lizenz-Validierung: Periodische API-Revalidierung beim Besuch des Lizenz-Tabs — Tier und Ablaufdatum werden automatisch synchronisiert
  • Widget-Vorschau: Korrekte Positionierung (unten links/rechts) in der Admin-Vorschau
  • Custom CSS: Jetzt auch im Widget-Tab verfügbar
  • Admin-Vorschau: Einheitliches Schachbrettmuster für Dialog- und Widget-Vorschau
v1.4.0
16.04.2026

Service Worker, WooCommerce, Gutenberg & Compliance

Feature Improve Security
  • Service Worker Blocking: Fängt fetch(), XHR, dynamische Imports und Beacon-Requests auf Netzwerk-Ebene ab — HTTP 451 für blockierte Domains
  • WooCommerce-Integration: Automatisches Blocking von WC-Tracking-Scripts und automatische Cookie-Deklaration (Cart Hash, Session, Analytics)
  • Gutenberg-Block: Nativer WordPress-Block für die Cookie-Deklarationstabelle — kein Shortcode nötig
  • CMP-Import: Migration von CookieBot, OneTrust und Usercentrics per JSON-Import mit automatischem Kategorie-Mapping
  • Consent-Statistik Dashboard: Tages-Chart, Akzeptierungsrate, Gruppen- und Geo-Verteilung im Admin
  • Consent-Proof PDF-Export: Druckbarer DSGVO-Nachweis nach Art. 7 Abs. 1 mit Zeitraumfilter
  • Consent-Historie: Besucher können ihre letzten 10 Einwilligungen im Dialog einsehen
  • Auto-Scan Scheduler: Automatischer Cookie-Scan täglich/wöchentlich per WP-Cron mit E-Mail-Benachrichtigung
  • REST-API Consent-Widerruf: POST /consenta/v1/revoke für programmatischen Consent-Widerruf
  • REST-API Remote-Management: GET/PUT /consenta/v1/remote/settings und /remote/entities mit Bearer-Token-Auth
  • WordPress Multisite: Network-Admin-Seite mit Site-Übersicht, Settings-Propagation und Auto-Defaults für neue Sites
  • HMAC-signiertes Consent-Cookie: SHA256-Signatur verhindert Cookie-Manipulation, abwärtskompatibel
  • Consent-Nachweis-Hash: SHA-256 der Dialog-Texte wird in jedem Log-Eintrag gespeichert (Art. 7 Abs. 1 DSGVO)
  • ARIA/Accessibility: role, aria-label, aria-describedby, aria-checked, Keyboard-Navigation, aria-live Announcements (WCAG 2.1 AA)
  • RTL-CSS: Vollständige Right-to-Left Unterstützung für Dialog, Banner und Widget
  • Consent-Modi Dokumentation: Neuer Guide-Abschnitt erklärt alle drei Blocking-Stufen im Admin
  • IAB CMP-ID: Jetzt konfigurierbar in den Einstellungen statt hardcoded
  • Log-Retention: Aufbewahrungsdauer für Consent-Logs jetzt im Admin konfigurierbar (Standard: 365 Tage)
  • Datenbank v1.2: Neue Spalte consent_text_hash in der Log-Tabelle
  • Rate-Limiting auf Log-Endpoint: Max 10 Requests/Minute/IP + Honeypot-Feld gegen Bots
v1.3.0
15.04.2026

CCPA, GPC, Content-Blocker & Compliance

Feature Improve Security
  • GPC-Signal (Global Privacy Control): Automatische Erkennung und Respektierung von navigator.globalPrivacyControl — gesetzlich vorgeschrieben unter CCPA/CPRA
  • CCPA / CPRA Modus: Opt-out statt Opt-in für US-Besucher, automatische Geo-Detection per Timezone und Server-IP
  • Content-Blocker Platzhalter: Smarte Platzhalter für YouTube, Vimeo, Google Maps, Facebook, Instagram, TikTok, X/Twitter, LinkedIn, Spotify und SoundCloud mit Service-Icon, Beschreibung und "Laden"-Button
  • Focus Trap (WCAG 2.1 AA): Tab-Fokus bleibt im Consent-Dialog gefangen, Fokus-Wiederherstellung beim Schließen
  • Re-Consent bei Policy-Änderung: Config-Hash erkennt Änderungen an Cookies, Texten oder Modus und erzwingt automatisch erneuten Consent
  • Consent-Versionierung: Config-Hash und GPC-Status werden im Consent-Log gespeichert — vollständiger Audit-Trail
  • Auto Cache Purge: Automatisches Cache-Löschen nach Einstellungsänderungen für WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed, Autoptimize, WP Fastest Cache, Hummingbird, SG Optimizer und Cache Enabler
  • Datenbank v1.1: Neue Spalten config_hash und gpc in der Log-Tabelle für erweiterten Compliance-Nachweis
  • CSV-Export erweitert: Config-Hash und GPC-Status werden jetzt exportiert
  • Feature-Vergleichstabellen auf Sales-Pages vereinheitlicht und an aktuelle Plugin-Features angepasst
v1.2.0
15.04.2026

Multi-Language, Powered-by & DSGVO-Text

Feature Improve
  • Powered by Consenta: Optionaler Branding-Link im Dialog und Banner, ein-/ausschaltbar
  • DSGVO-Text erweitert: Art. 7 Abs. 4 (kein Nachteil bei Ablehnung) und Verweis auf Cookie-Details in Kategorien
  • Consent-Texte in 34 Sprachen aktualisiert und DSGVO-konform erweitert
  • Dialog-Box breiter: max-width von 580px auf 720px erhöht für bessere Lesbarkeit
  • Consent-Text kompakter: Schriftgröße und Zeilenabstand optimiert
v1.1.1
11.04.2026

Lizenz-Aktivierung & Auto-Deaktivierung

Improve Fix
  • Auto-Deaktivierung: Plugin meldet sich beim Lizenzserver ab wenn es deaktiviert oder gelöscht wird
  • Lizenz-Aktivierung: Offline-Fallback wenn Lizenzserver nicht erreichbar
  • Toggle-Save: Race Condition bei Editor-Toggles behoben
v1.1.0
08.04.2026

Protokolle-Filter, WCAG & Dark Mode

Feature Improve
  • Protokolle-Filter: Suche nach Device-ID, IP, Datum und Sortierung nach Spalten
  • WCAG Compliance: Buttons verwenden automatisch die kontrastreichste Textfarbe
  • Dark Mode: Verbesserte Textlesbarkeit mit anpassbarer Helligkeit
  • Akzentfarbe: Color-Picker in den Einstellungen für Buttons und Links
v1.0.3
07.04.2026

IPv6 & CSV Export Fix

Fix
  • IPv6 CIDR Blocking: IPv4-mapped IPv6 Adressen werden korrekt normalisiert
  • CSV Export: PHP 8.4+ Kompatibilität
v1.0.2
04.04.2026

Multi-Site Dashboard & Tabellen-Sortierung

Feature Improve
  • Multi-Site Dashboard: Alle WordPress-Sites zentral verwalten mit Drag-to-Reorder
  • Tabellen: Interaktive Spalten-Sortierung in Cookie-, Domain- und Ressourcen-Tabellen
  • Feature-Toggles: Neue Features starten standardmäßig deaktiviert
v1.0.1
01.04.2026

Geolokalisierung & Banner-Position

Feature Fix
  • Geolokalisierung: Consent-Dialog nur für EU-Besucher anzeigen (Timezone + Spracherkennung)
  • Banner-Position: Top oder Bottom wählbar in den Einstellungen
  • Service Worker: Korrekte Deregistrierung bei Modus-Wechsel
  • Widget-Icon: Korrekte Positionierung auf Mobile
v1.0.0
21.02.2026

Initial Release

New
  • Cookie Blocking: document.cookie Override, MutationObserver für Scripts/Iframes, HTTP-Header-Interception
  • Consent-Dialog: Vollbild oder eingebettet, mit Kategorien, Logo und Datenschutzlink
  • Cookie-Banner: Responsive Banner mit Accept/Reject/Details Buttons
  • Google Consent Mode v2: Automatische Consent-Signale an GTM & GA4
  • IAB TCF 2.0: Vollständige __tcfapi() Implementierung mit Vendor-Management
  • Consent-Logging: Strukturierte SQL-Logs mit Device-ID, IP, Geo und Zeitstempel
  • Auto-Scanner: Automatische Erkennung von Cookies, Domains und Scripts
  • 34 Sprachen: Vorinstallierte Consent-Texte in DE, EN, FR, ES, IT, NL, PL, PT und mehr
  • Live-Editor: Farben, Texte und Logo direkt im Admin bearbeiten mit Echtzeit-Vorschau
  • Service Worker Blocking: Vollständige Blockierung aller Third-Party-Requests im Full-Consent-Modus