Snippet: Checkbox für Kommentar-Cookies

  • Hallo zusammen,

    ich möchte die automatischen Cookies von WordPress deaktivieren und auch auf einen generellen Cookie-Info-Banner verzichten.
    Dabei möchte ich aber auch auf den Komfort nicht komplett verzichten, so dass die Kommentatoren-Infos (Name, E-Mail, URL) auf Wunsch gespeichert werden.
    neben Verbesserungsvorschlägen freue ich mich auch auf Rückmeldungen von anderen, die an dem fertigen Snippet interessiert sind.

    Meine Vorstellung:

    • Eine Checkbox, die man aktiv anklicken muss, um Kommentar-Cookies zu aktivieren [COLOR=#008000](funktioniert)[/COLOR]
    • Wenn diese Checkbox angeklickt wurde, wird dies in einem Cookie gespeichert, so dass die Checkbox in Zukunft von vorneherein angehakt ist [COLOR=#ff0000](funktioniert nicht ganz)[/COLOR]
    • Wird die Checkbox nicht angeklickt, werden keine Cookies gespeichert [COLOR=#008000](funktioniert)[/COLOR]
    • Wird der Haken in der Checkbox aktiv weggeklickt, werden die Cookies mit Abschicken des Kommentars gelöscht [COLOR=#008000](funktioniert)[/COLOR]
    • Die Lebenszeit der Cookies wird auf eine Stunde reduziert [COLOR=#ff0000](funktioniert nicht)[/COLOR]

    Mit meinem derzeitigen Snippet für das "Code Snippets"-Plugin klappt das bisher leider noch nicht so recht (siehe unten "Noch Offenes"):

    [size=14]Noch Offenes[/SIZE]

    Cookie-Checkbox aktiviert lassen:

    Es wird zwar korrekt das "sb_commentcookie_HASH"-Cookie gespeichert, aber die Checkbox bleibt trotzdem leer. Beim Code gleich zu Beginn mit if( isset($_COOKIE['sb_commentcookies_' . COOKIEHASH]) ) scheint also noch etwas nicht ganz zu stimmen.

    Cookie-Lebenszeit reduzieren:
    Meine alternative "Krücke" (ganz am Ende) mit den drei Zeilen "setcookie" für die drei Cookies mit manueller Angabe von "time() + 3600" lässt die Lebenszeit unverändert. Lediglich mein eigener "sb_commentcookie"-Cookie wird korrekt mit einer Stunde Laufzeit gespeichert.
    Ersetze ich diese drei Zeilen mit "add_filter('comment_cookie_lifetime', 3600);", dann wird nur mein "sb_commentcookie"-Cookie gespeichert.

    [HR][/HR]
    [size=14]Weitere Wünsche[/SIZE]
    Daran werde ich mich begeben, wenn die obigen Punkte funktionieren. Wer hierfür bereits Vorschläge machen möchte, immer gerne.

    Moderationsinfo für Cookie-deaktivierte Kommentare:
    Ist die Checkbox deaktiviert und der Kommentar landet in der Moderation (z.B. wegen Spamverdacht), dann lädt die Seite neu mit Anker zu diesem Kommentar, der aber nicht funktioniert, da der Kommentar mangels Cookies nicht angezeigt wird. Was aber noch viel ärgerlicher ist: Dass keine Kommentar-Statusinfo angezeigt wird. So denkt der Kommentator, sein Beitrag wäre verloren gegangen und er müsste ihn erneut schreiben.
    Hier muss auf jeden Fall noch die Info eingeblendet werden, dass der Kommentar noch freigeschaltet werden muss. Optimal wäre natürlich, wenn hier auch noch der Kommentar an sich angezeigt wird (also das geliche Verhalten wie mit Cookies). Wobei das für meine PHP-Kenntnisse wohl zu kompliziert ist.

    Kompatibilität erweitern:
    Außerdem möchte ich noch die Checkbox mit dem "Simple Comment Editing"-Plugin kompatibel machen.

    [HR][/HR]
    Zur Info: Das ganze läuft derzeit bei mir lokal per XAMPP mit deaktiviertem Cache-Plugin.

    Grundlagen für mein Snippet:
    - Isabel Castillo: Add Checkbox Input To WordPress Comment Reply Form (2017)
    - Stack Exchange: How to add a privacy-checkbox in comment-template? (2013)
    - WMPU DEV: Cookies and WordPress: How to Set, Get and Delete (2017)
    - Stack Overflow: WordPress Cookie Security - Persistent Cookie comment_author change to session cookie (2016)
    - Stack Overflow: How can I set, get and destroy cookies in Wordpress? (2015)
    - Azuila Designs: Disable Comment Cookies in WordPress (2012)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Mit dem überarbeiteten Snippet funktioniert es nun :smile:

    Änderungen:
    1. Cookie-Lebenszeit: Der "comment_cookie_lifetime"-Filter wird nun nicht mehr innerhalb einer if/else-Abfrage in Abhängigkeit der gesetzten Checkbox ausgeführt, sondern sitzt eigenständig ganz oben. Es wird damit ja noch kein Cookie gesetzt, sondern nur der Wert der Kommentar-Cookie-Lebenszeit. Außerdem befindet sich nun der Sekundenwert nicht mehr direkt in der Zeile (das habe ich nicht lauffähig bekommen), sondern in einer separaten Funktion darunter.
    2. Checkbox bei gesetztem Cookie vor-ausgewählt: Hier musste ich nur die drei (oder testweise zwei) Gleichheitszeichen hinter "$sb_commentcookies_checked" durch ein einfaches ersetzen.

    Die Moderationsinfo für Cookie-deaktivierte Kommentare kann durch das Plugin "WP Ajaxify Comments" einfach umgesetzt werden.
    Bleibt also im letzten Schritt nur noch die Kompatibilität mit dem Editier-Plugin, an die ich much noch begeben muss.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!