„Subscribe to Comments“ mit Double-Opt-In Prüfung

Ich habe mich mal drangesetzt und das bekannte „Subscribe to Comments“ PlugIn für WordPress weiterentwickelt. Aufgrund der derzeitigen Lage und der Abmahnung eines Bloggers halte ich es für nötig das geforderte OptIn Feature nachzurüsten. Dies habe ich am Wochenende jetzt mal getan. Herausgekommen ist dabei eine erweiterte Version mit dem geforderten Feature. Das heißt, aktiviert ein User jetzt das Häckchen und möchte sich über neue Kommentare benachrichtigen lassen, wird zuerst eine E-Mail mit einem speziellen Link versendet. Dieser muss einmal angeklickt werden um die Benachrichtigungsmail zu aktivieren. Daraufhin funktioniert das PlugIn wie gehabt. Es gibt also nur diese neue Zwischenstufe.

Wichtig: Es wird nur eine Mail versendet, sobald der User das Abo per Mail bestätigt hat gibt es keine weitere Abfrage mehr, egal bei welchem Beitrag. So wird ein zuspammen der User effektiv verhindert.

Download

Ich nenne das „neue“ PlugIn jetzt einfach mal „Subscribe to Double-Opt-In Comments“. Herunterladen (Download) kann man es von der WordPress-Plugin-Seite selber.

Es sollte vielleicht kurz in einer Testumgebung laufen und bei Erfolg erst im Produktivsystem! Auch wenn es bei vielen problemlos Funktioniert. Jeder Blog ist anders, ich übernehme keinerlei Haftung für Schäden!

In den Einstellungen sind 3 Felder hinzugekommen:

subscribe to double opt in comments


Installation:

  1. Datei ins /wp-content/plugins Verzeichnis laden
  2. Im Adminbereich aktivieren
  3. Einstellungen anpassen!
  4. Fertig, jetzt freuen ;)

Update:

  1. PlugIn deaktivieren
  2. PlugIn im Verzeichnis /wp-content/plugins löschen
  3. neue Version ins Verzeichnis laden
  4. PlugIn wieder aktivieren

Tipps & Tricks:

Sollte es Probleme mit dem Update geben, bitte per phpMyAdmin oder Ähnliches prüfen ob die Tabelle wp_comments in der DB folgende Felder besitzt:

datenbank

Wenn nicht bitte so anpassen, falls Ihr nicht wisst wie, lasst es mich wissen :).

Für weitere Anregungen und Tipps stehe ich jederzeit zur Verfügung, einfach einen Kommentar hinterlassen! Bugs bitte auch an mich melden!

Known Bugs

Bei WP 2.7 kann es vorkommen das ihr im Adminbereich unter dem Menüpunkt „Werkzeuge“„Subscriptions“ einen inkorrekten Link vorfindet, sollte dies der Fall sein ändert ihr einfach in der PHP Datei „subscribe-to-doi-comments.php“ die Zeile 879 von:

$sg_subscribe->form_action = 'edit.php?page=stc-management';

auf:

$sg_subscribe->form_action = 'tools.php?page=stc-management';

Dies ist leider zur Zeit ein Workaround, normalerweise sollte WordPress aber selbstständig weiterleiten, bei mir funktioniert es zum Beispiel ohne eine Änderung.

History

Die History ist jetzt im WordPress Changelog zu finden.

Update 1:
Das PlugIn läuft jetzt auch hier auf der Seite, ihr könnt es also direkt testen :).

Update 2:
Das PlugIn steht unter der GPL, laut Autor:

Tobias,
GPL v2
I’ll make that explicit in the next release.
— Mark Jaquith
— http://markjaquith.com/

Update 3:
Jetzt auch im WordPress PlugIn Verzeichnis zu finden :).

Update 4:
Jetzt mit verschiedenen Sprachdateien!

930 Gedanken zu „„Subscribe to Comments“ mit Double-Opt-In Prüfung“

  1. Hallo Tobias,

    wie funktioniert das mit dem Key, wenn man auf den Link Manage your subscriptions geht, nach dem man die Benachrichtigung für einen Beitrag aktiviert hat?

    Bei mir kommt dann eine Seite, auf der steht, dass ich einen validen Key brauche. Im Link wird einer mit übergeben. Den Link in der Mail habe ich zuvor bestätigt.

    Viele Grüße
    Diana

      1. Ja, im Link ist er vorhanden. Ich bin aber nicht angemeldet, weil das Abonnement ja in erster Linie für nicht registrierte Benutzer sein soll.

        1. Dazu braucht man auch keine Anmeldung, dazu ist ja genau der Key da.
          Bisher klappt dies bei allen anderen Installationen. Auf welchem Hoster läuft dein WP?

          1. Es scheint am Browser zu liegen, denn hier auf der Seite kommt die gleiche Meldung, obwohl ich ja die Mails bekomme, wenn ein neuer Kommentar geschrieben wurde.
            Cookies sind angeschaltet. Ich werde auch erkannt, denn Name und E-Mailadresse stehen im Formular automatisch drin.

  2. Wenn ich als Autor eines Artikels einen Kommentar einen Kommentar hinterlasse, werde ich immer in die Benachrichtigungs-Liste mit aufgenommen, so dass ich fortan für jeden neuen Kommentar zwei Mails bekomme (1x von WordPress, 1x von diesem Plugin hier). Ich habe beim Kommentieren auch gar keine Chance, das abzuwählen. Nur wenn ich keinen einzigen Artikel über das Plugin abonniere passiert das nicht.
    Wie kann ich das ändern? Die Anzeige „Du bist Autor dieses Artikels“ benötige ich nicht (das weiß ich ja ;-), stattdessen hätte ich dort lieber die übliche Checkbox, um nicht zu abonnieren.
    Gruß,
    Klaus von http://www.technoviel.de

          1. Wie gesagt – einmal die WordPress-interne Benachrichtigung, einmal vom Plugin. Ich kann die Plugin-Benachrichtigungen aber gerade bei meinen eigenen Artikeln nicht abwählen, bei Artikeln anderer Autoren aber schon.
            Gruß,
            Klaus

  3. Guten Tag,

    bei mir erscheint der Text „Benachrichtige mich über nachfolgende Kommentare per E-Mail.“ nicht. Man sieht nur die Aktivierungsbox. Woran kann das liegen?

    Viele Grüße
    Simone

        1. Dann scheint der Text durch das Design ausgeblendet zu sein, entweder per CSS oder über überlagernde andere Bereiche. An dieser Stelle solltest du einmal ansetzen und suchen.

  4. Hallo Tobias,

    vielen Dank nochmal für die Hilfe die Du bereits gegeben hast. Eine Frage habe ich jedoch noch. In den Einstellung gibt es den Bereich „Text der erscheinen soll, falls Sie die Option „Subscribe without Commenting“ nutzen“ Wenn ich das richtig verstanden habe, kann man damit Beiträge abonnieren ohne ein Kommentar geschrieben zu haben. Wie kann man die Funkton aktivieren?

    Viele Grüße
    Simone

  5. Hallo Tobias,

    nachdem ich das Plugin testen wollte, erscheint lediglich eine leere Seite auf der „FEHLER: Bitte gib eine gültige E-Mail-Adresse an.“ zu lesen ist. Weisst du woran das liegen könnte ?

    Danke im Voraus
    Tobi

  6. Hallo Tobias,
    leider funktioniert das installierte und aktivierte Plugin auf meinem Blog nicht (auf einem anderen von mir betriebenen Blog mit anderem Theme aber schon). Ich vermute, dass das Problem an dem Theme liegt, das ich benutze (Grand Portfolio von Theme Goods). Vielleicht muss ich eine Änderung in der comments.php vornehmen oder so? Weißt du da zufällig mehr?

    Liebe Grüße

    Sonja

  7. Hallo Tobias,

    wird es für die aktuelle WP-Version noch ein Update geben? Ich lese bei deiner Version den Hinweis Kompatibel bis zu: 4.4.4…

    Kann man es dann immer noch verwenden?

    Gruss Katja

    1. Hallo Katja,
      eine neue Version kommt heute raus, du kannst aber auch beruhigt die jetzige verwenden, sie ist kompatibel.
      Viele Grüße
      Tobias

  8. Hallo Tobias,

    bei den letzten beiden Updates war es so, dass die gemachten Einstellungen(Texte und auch HTML bei den Punkten was vor und nach dem Subscription Manager angezeigt werden soll) durch das Update überschrieben bzw. durch die Standardwerte überschrieben wird. Vielleicht könntest du hier deinen Code so anpassen, dass das beim nächsten Update nicht passiert;)

    Gruss Harry

    1. Ist mir bisher noch nicht untergekommen. Hast du die aktuelle WP Version? Sind ansonsten ähnliche Plugins installiert?

      1. Ja ich nutze WP 4.5.3
        Nein ähnliche Plugins sind nicht installiert.
        Allerdings habe ich dein Plugin(Bei der Funktion „function send_mail($to, $subject, $message)“ ein wenig erweitert, um HTML Mails(für den Aktiverungslink und bei neuen Kommentaren) verschicken zu können und ich habe in dem Feld „Text der E-Mail ([verify_url] wird mit der entsprechenden URL ersetzt, kein HTML möglich)“ dennoch HTML(in Form von ein paar ) drin stehen. Das dieses Feld dann „überschrieben“ würde, könnte ich nachvollziehen;) Bei dem anderen aber eher nicht.

        1. Da Veränderungen vorgenommen wurden, kann ich das schwer beurteilen was da passiert, sorry. Allgemein werden deine Änderungen aber bei jedem Update gelöscht, also die in den PHP Dateien, so funktioniert das Update ;-).

          1. Ja das ist mir klar;)
            Ich meine halt einfach die Einstellungen die man im Backend macht und die da ja dann in der DB gespeichert sind.
            Meine Änderungen wären diese in der PHP-Datei:
            function send_mail($to, $subject, $message) {
            $subject = ‚[‚ . html_entity_decode(get_bloginfo(’name‘), ENT_COMPAT, „UTF-8“) . ‚] ‚ . $subject;

            // strip out some chars that might cause issues, and assemble vars
            $site_name = str_replace(‚“‚, „‚“, $this->site_name);
            $site_email = str_replace(array(“), array(“, “), $this->site_email);
            $charset = get_settings(‚blog_charset‘);

            $subject_neu = str_replace(‚[‚ . html_entity_decode(get_bloginfo(’name‘), ENT_COMPAT, „UTF-8″) . ‚] ‚, “, $subject);
            $message_neu=$message;
            $message=“;
            $message.=“;
            $message.=“;
            $message.=“.$subject_neu.‘ auf Harrys Welt‚;
            $message.=“;
            $message.=“;
            $message.=“;
            $message.=“;
            $message.=$message_neu;
            $permalink=““;
            $string = $message_neu;
            $regex = ‚/\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i‘;
            preg_match_all($regex, $string, $matches);
            $urls = $matches[0];
            $counti=count($urls);
            for ($i=0; $i<$counti; $i+=2) {
            $permalink.='‚.$urls[$i].‘‚;
            }
            $message.=“;
            $message.=“;
            $message.=‘Probleme beim Anklicken? Kopiere die URL(s)‘.$permalink.’und füge sie in die Adresszeile deines Browsers ein.‘;
            $message.=“;
            $message.=“;
            $message.=“;
            $headers = „MIME-Version: 1.0\n“;
            $headers.= „Content-Type: text/html; charset=\“{$charset}\“\n“;
            $headers.= „From: \“{$site_name}\“ \n“;
            $headers.= „\n“;
            return wp_mail($to, $subject, $message, $headers);
            }

            Dass ich das immer wieder bei einem Update einbinden muss, ist klar;)

  9. Hi,

    für die PHP 7 Kompatibilität wäre eine kleine Anpassung bei den Konstruktoren erforderlich:

    PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; sg_subscribe has a deprecated constructor in /[…]/wp-content/plugins/subscribe-to-double-opt-in-comments/subscribe-to-doi-comments.php on line 321

    Dann gibt es auch hier weniger Meldungen im Log ;-)

    Schönen Gruß,

    Michael

  10. Hi,
    es gibt auch noch einige „get_settings()“ und zwei wp_specialchars() die da ersetzt werden können;)

    Gruss Harry

    P.S.: nach dem neuen Update waren meine Einstellungen(Texte etc.) im Backend wieder durch die Standardwerte des Plugins überschrieben.

  11. Die Sprache meines WordPress Veranstaltungsportals ist Deutsch. Nur die „System“-Kommentarfelder sind auf Englisch, z.B. „Leave a Comment“ und „5 thoughts on Horse Agility“. Warum und wo kann ich das einstellen? Ohne das Plugin sind die Anzeigen auf Deutsch…
    Anmerkung: Es geht nicht um die Systemmeldungen, die ich unter den Einstellungen dieses Plugins übersetzen kann – die sind so wie eingegeben…
    Siehe hier ganz am Ende: http://pferdetermine.de/veranstaltungen/kurs-horse-agility-2/

      1. Hab es gefunden. Die Version meines Templates (Customizr) hatte die Lag-Dateien nicht mehr (warum auch immer) und auf meiner Testseite waren die in einer älteren Version noch. Deswegen waren da die Kommentar-Felder korrekt und im anderen System mit deinem Plugin nicht. Zu blöd. Aber dein Hinweis zur WP-config hat mich auf die richtige Idee gebracht ;-) Danke!

  12. Hallo ich habe auch das Problem mit dem Key. der steht in der adresszeile drin, ich werde erkannt(Name und Email Felder sind ausgefüllt)
    aber ich komme ncht auf die Profile page. Ich habe das mit allen Brwosern, die ich hier habe versucht. chrome, ff, und ie.

    was mache ich falsch?
    Danke!
    Irmen

      1. hm, ich hab den Link jetzt erstmal raus und kann grade den Fehler nicht erzeugen – aber es war soweit ich mich erinnere nur:
        you need a valid key to enter? the ?
        Reicht dir das als info – sonst bqu ich mirgen den link wieder ein und melde mich nochmal
        Danke für Hilfe!!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *