Changelog¶
Jede Version mit allem, was sich darin geändert hat — die neueste zuerst. Was davon Sie im Alltag bemerken, fasst Neu in 2.0 kürzer zusammen.
Die Liste gilt für beide Fassungen. Einträge zu Modulen, die nur die gekaufte Fassung mitbringt — Statistik, Bounce-Verarbeitung, Anhänge, Abonnentenvariablen, SOAP und REST —, betreffen die kostenlose nicht; welche das sind, steht unter Lite, Pro und Enterprise.
Dieselbe Liste liegt als Datei changelog im Verzeichnis des Plugins.
2.0.0¶
24.09.2026
Neu
- Die Hilfeknöpfe öffnen das Handbuch in der Sprache des Backends. Wer WordPress auf Englisch bedient, landet auf der englischen Fassung, alle anderen auf der deutschen
- Wer die Newsletterverwaltung öffnen darf, ist jetzt einstellbar (Allgemeine Einstellungen). Die Vorgabe sind Administratoren — auch beim Update einer bestehenden Installation, die bisher an „edit_posts" hing. Der Grund: Ein Redakteur ohne das Recht „unfiltered_html" konnte über den Newsletterinhalt Auszeichnung ablegen, die im Backend und im Archiv ausgeführt wird. Haben bei Ihnen Redakteure mit dem Newsletter gearbeitet, sagt Ihnen das eine Meldung im Backend, und Sie stellen es dort mit einem Klick zurück. Eine bereits eingetragene Einstellung wird nicht angefasst
- Anpassungen für Funktionalität mit neuem wpShopGermany Kampagnen Modul
- Neuer Bereich "Einstellungen → Pflege". Dort steht, was sich an vorhandenen Daten aufräumen lässt — mit einer Vorschau, was sich ändern würde, bevor etwas geändert wird
- Fehlt eine der Seiten, die der Newsletter im Frontend braucht, steht das jetzt im Backend. Vorher blieb die Seite im Frontend einfach leer
- Die 14-tägige Testphase meldet sich jetzt. Fünf Tage vor Ablauf steht im Backend, wann Schluss ist; danach steht dort, dass die Testphase abgelaufen ist und wo der Zugangsschlüssel hingehört. Vorher verschwanden die Menüpunkte kommentarlos
- Jede Seite im Backend führt jetzt ins Handbuch. Neben der Überschrift steht „Hilfe zu dieser Seite" und öffnet genau das Kapitel, um das es dort geht — bei den Einstellungen, bei Newsletter, Abonnenten, Gruppen, Vorlagen, Versandprotokoll, Statistik und Bounce-Verwaltung. Bisher hatten nur die Module einen solchen Knopf
- Neue Platzhalter %nl_onlineurl%, %nl_onlinelink% und die Textfassungen dazu für „Newsletter im Browser ansehen". Die bisherigen Namen %nl_previewurl% und %nl_previewlink% bleiben und liefern dasselbe — eigene Layouts müssen nicht angepasst werden
- Neue Platzhalter %privacyurl% und %privacylink% für die Datenschutzseite, in der Einfügeliste des Editors unter „Website". Damit lässt sich in eigenen Texten und Mailvorlagen darauf verweisen
- Neues Modul „Spamschutz". Es schützt Anmelde- und Abmeldeformular vor automatisierten Eintragungen, ohne dem Besucher etwas abzuverlangen: kein Bilderrätsel, keine Frage, kein Klick. Fünf Schichten — ein für Besucher unsichtbares Lockfeld, ein signierter Zeitnachweis, wahlweise eine Rechenaufgabe im Hintergrund, eine Prüfung der Eingaben auf Spam-Muster und eine Begrenzung der Anmeldungen je Stunde. Es geht dabei kein einziger Aufruf nach draußen, und es wird keine IP-Adresse gespeichert. Wer es einschaltet, kann das Captcha-Modul mit Google reCAPTCHA abschalten
- Der Kopf jeder Backendseite folgt jetzt dem Aufbau, den WordPress selbst benutzt. Die Schaltflächen neben der Überschrift — „Erstellen", „Hinzufügen", „CSV Import" und die anderen — waren 40 Pixel hoch neben einer Überschrift von 17 und überragten sie nach oben; jetzt stehen sie mit 32 Pixeln bündig daneben, wie in den Listen von WordPress. Haben Sie eine eigene Vorlage unter „user_views" abgelegt, bleibt deren Kopf unverändert und funktioniert weiter
- Der Konfigurationsbereich ist aufgefrischt. Er ist nicht mehr auf 970 Pixel festgenagelt, sondern füllt das Fenster und bricht auf schmalen Bildschirmen um — bisher war auf einem kleinen Fenster die rechte Hälfte der Hinweistexte abgeschnitten. Die Reiter oben sehen aus wie die Reiter von WordPress, die Unterpunkte stehen als Zeile darunter statt als Spalte daneben, und die Eingabefelder stehen in einem Raster, das mitwächst. Dabei kam heraus, dass die Leiste und die Kästen ihre Hintergrundbilder aus „wp-admin/images" holten — die Dateien hat WordPress Ende 2013 entfernt. Eigene Vorlagen unter „user_views" werden mit aufgefrischt, solange sie die Formularfunktionen des Plugins benutzen; sie müssen dafür nicht angefasst werden
- Drei Einstellungen stehen jetzt dort, wo man sie sucht. „Newsletter im Archiv" und „Abonnent für die Archivansicht" standen unter Allgemein und stehen jetzt unter Seitenkonfiguration bei der Archivseite, auf die sie sich beziehen; „Gruppenzuordnung nach Registrierung" steht unter Formularkonfiguration bei den Feldern des Anmeldeformulars. Die Werte bleiben, nichts muss neu gesetzt werden. Ausserdem folgen die Punkte unter Einstellungen jetzt dem Weg, den man beim Einrichten geht — die beiden Werkzeuge „Einstellungen sichern" und „Pflege" stehen am Ende statt mittendrin
- Neues Modul „REST Schnittstelle". Ein Fremdsystem kann damit Gruppen lesen und anlegen, Abonnenten anlegen und Abonnenten einer Gruppe zuordnen — über HTTP, ohne die PHP-Erweiterung „soap", die auf vielen Hostings fehlt. Jeder Aufruf wird mit einem eigenen Schlüssel unterschrieben, der auf der Modulseite steht; das Modul ist im Auslieferungszustand aus. Die SOAP-Schnittstelle bleibt unverändert und läuft daneben weiter — es muss nichts umgestellt werden
- Neues Modul „Beitragsbenachrichtigung". Ein veröffentlichter Beitrag wird damit zum Newsletter — entweder sofort oder gesammelt als täglicher oder wöchentlicher Digest. In der Mail stehen Beitragsbild, Titel, Datum, Auszug und ein Weiterlesen-Link. Im Sofortbetrieb wird der Newsletter angelegt und erst 15 Minuten später versendet (einstellbar): Bis dahin lässt er sich in der Newsletterliste noch ändern oder löschen. Sie wählen die Empfängergruppen und können auf bestimmte Kategorien einschränken. Die Benachrichtigung ist ein regulärer Newsletter: Sie steht in der Liste, im Versandprotokoll und im Archiv, trägt Ihr gewähltes Layout und den Abmeldelink. Ein Import von Beiträgen löst nichts aus, und ein bereits veröffentlichter Beitrag löst beim Bearbeiten nichts erneut aus
- Die Oberfläche des Plugins ist jetzt zweisprachig aufgebaut wie jedes Plugin im WordPress-Verzeichnis: Die Texte im Programm sind englisch, das Deutsche kommt aus der mitgelieferten Sprachdatei. Für Sie ändert sich nichts — auf einer deutschen Website steht alles auf Deutsch wie bisher. Der Grund: Auf translate.wordpress.org übersetzen Freiwillige aus dem Englischen; mit deutschen Ausgangstexten konnte dort niemand eine dritte Sprache beitragen
- Der Menüpunkt „Mailkonfiguration" heißt jetzt „Absender und Betreff". Er stand neben „Versandeinstellungen", die beiden Namen sagten dasselbe und meinten Verschiedenes: der eine ist der Weg (Cron, Mail Engine, SMTP), der andere sind Absender, Betreff, CC und BCC je Mailart. Wer die Absenderadresse suchte, klickte auf „Versandeinstellungen" und fand sie nicht. Die Adresse der Seite bleibt dieselbe, Lesezeichen funktionieren weiter
- Die Übersicht des Versandlogs holt nur noch die Empfänger der angezeigten Seite aus der Datenbank. Bisher lud sie jede jemals versendete Zeile und zeigte davon 25 an. Mit 500 Empfängern und 20 Newslettern gemessen: 10.000 Zeilen und 12 MB Arbeitsspeicher vorher, 500 Zeilen und 0,8 MB jetzt, bei gleichem Bild. Auf großen Listen war das die Stelle, an der die Seite ins Speicherlimit lief
- Die Suche im Versandlog findet jetzt auch Teilwoerter und Vor- und Nachnamen ohne Anrede. Bisher musste der Begriff genau auf den Nachnamen, den Vornamen, die ID oder den vollstaendigen Namen mitsamt Anrede passen — "Anke Ahrens" fand nichts, "Frau Anke Ahrens" fand die Abonnentin. Steht kein Treffer dahinter, sagt die Seite das jetzt auch, statt zu melden, es habe niemand einen Newsletter erhalten
- Die Einfuegeliste im Editor bietet unter "Newsletter" jetzt %nl_onlineurl% und %nl_onlinelink% an ("Browseransicht URL/Link des Newsletters"). Bisher standen dort die alten Namen %nl_previewurl% und %nl_previewlink%, beschriftet als "Vorschau" — der Endpunkt ist aber keine Vorschau, er zeigt den Newsletter im Browser. Die alten Namen funktionieren unveraendert weiter und liefern dasselbe; wer ein eigenes Layout unter user_views liegen hat, muss nichts aendern
- Ein neuer Newsletter schlaegt jetzt ein festgelegtes Layout vor. Bisher war unter "Voreinstellungen" nichts vorausgewaehlt, und der Browser nahm den ersten Eintrag der Liste — welcher das war, hing vom Dateisystem ab. Vorgabe ist "standard.phtml"; Ihre eigene Wahl unter Newsletter -> Konfiguration -> Voreinstellungen bleibt unangetastet, auch beim naechsten Update
- Das Plugin legt keine PHP-Sitzung mehr an. Die Meldungen an Ihre Besucher ("Sie haben eine Mail erhalten, in der Sie die Registrierung bestätigen müssen.") kommen jetzt über eine Marke in der Adresse auf die Seite nach der Weiterleitung, der Text liegt fünf Minuten in der Datenbank und wird beim Anzeigen gelöscht. Damit entfällt der PHPSESSID-Keks, den bisher jeder Besucher bekam, der je eine Meldung sah — und mit ihm der Grund, warum ein Seitencache diese Seite für ihn nicht mehr auslieferte. Auf dem Server bleibt keine Sitzungsdatei mehr liegen, und die Warnung "session_start(): Session cannot be started after headers have already been sent" kann nicht mehr auftreten
- Enthält ein Newsletter Platzhalter, die kein laufendes Modul auflöst, oder hängen Dateien eines abgeschalteten Moduls daran, sagt das Plugin es jetzt — beim Öffnen des Newsletters, vor der Testmail und vor dem Planen des Versands. Bisher ging beides stillschweigend unter: Der Platzhalter stand beim Empfänger im Text, die Anhänge blieben liegen. Das betrifft vor allem den Wechsel von der gekauften auf die kostenlose Fassung
- Neu unter Newsletter → Datenerhebung: eine Seite, die auflistet, was auf Ihrer Installation gespeichert wird — im Kern und in jedem Modul, das bei Ihnen läuft, samt Tabelle, Speicherdauer und dem, was die Installation verlässt. Gedacht als Grundlage für Ihre Datenschutzerklärung. Ein abgeschaltetes Modul steht nicht dabei; schalten Sie eines zu, kommt sein Abschnitt hinzu
- Das Anmeldeformular lässt sich jetzt überall platzieren, wo Sie schreiben können: als Block „Newsletter Formular“ im Editor oder als Kurzwort [wpng_form] in einer Seite, einem Beitrag oder einem Vorlagenteil. Bisher ging es nur auf der einen eingetragenen Anmeldeseite und über das Widget — und ein Widget-Bereich fehlt in den Themes, die WordPress seit Fassung 5.9 mitbringt. Das Widget bleibt unverändert bestehen. Eingestellt wird das Formular weiterhin an einer Stelle, unter Newsletter → Einstellungen → Formular
- Das Anmeldeformular arbeitet jetzt mit dem Browser zusammen. Das Adressfeld ist ein Adressfeld — auf dem Telefon erscheint die Tastatur mit @ und Punkt, und eine Adresse ohne @ wird bemerkt, bevor etwas abgeschickt wird. Die Adressverwaltung des Browsers kann Vorname, Name, Anschrift und E-Mail ausfüllen; bisher konnte sie es nicht, weil die Felder ihr nicht sagten, wofür sie gut sind. Und ein Pflichtfeld ist jetzt auch für den Browser eines: Der Stern daneben war bisher nur Farbe, bemerkt wurde das fehlende Feld erst nach dem Abschicken. Geprüft wird weiterhin auf dem Server — das kommt dazu, nicht an dessen Stelle
- Neben dem vollen Anmeldeformular gibt es jetzt eine kurze Fassung — nur E-Mail-Adresse und Knopf. Gedacht für den Platz unter einem Blogbeitrag, wo sieben Felder abschrecken. Als Kurzwort [wpng_form compact="1"] oder im Block über den Schalter „Kurzes Formular“ in der Seitenleiste des Editors. Felder, die Sie auf Pflicht gestellt haben, bleiben auch dort stehen — es gibt dafür keinen zweiten Schalter, und so kann kein Abonnent ohne einen Wert entstehen, den Sie für unverzichtbar erklärt haben. Der Hinweis auf die Datenverarbeitung bleibt in beiden Fassungen
- Ein Formular kann jetzt sagen, in welche Gruppe seine Anmeldungen gehen: [wpng_form groups="Blog"] oder im Block über das Feld in der Seitenleiste. Namen oder Kennungen, mehrere mit Komma getrennt. Damit kann das Formular unter dem Blog in eine andere Gruppe führen als das auf der Angebotsseite — bisher gab es dafür eine einzige Einstellung für die ganze Website, und die gilt weiterhin, wenn ein Formular nichts anderes sagt. Die Gruppe steht dabei bewusst nicht im Formular selbst, sondern wird beim Absenden aus dem Seiteninhalt gelesen: Ein Feld im Formular könnte jeder ändern und sich damit in beliebige Gruppen eintragen
- Das Anmeldeformular kann jetzt von selbst unter jedem Beitrag stehen — ohne dass Sie es in dreihundert veröffentlichte Beiträge einzeln eintragen. Unter Newsletter → Einstellungen → Formular gibt es dafür den neuen Reiter „Kurzes Formular" mit der Wahl „Gar nicht / Unter jedem Beitrag / Unter jedem Beitrag und jeder Seite". Angehängt wird die kurze Fassung. Wo Sie das Kurzwort oder den Block selbst gesetzt haben, kommt nichts dazu — Ihre Platzierung gewinnt, denn sie kann eine Gruppe nennen. In Beitragslisten, im Auszug und im Feed erscheint nichts
- Das kurze Formular kann seine eigene Gruppe haben, eingestellt auf dem neuen Reiter „Kurzes Formular". Wer unter jedem Beitrag ein Formular stehen hat, will die Leser, die sich dort eintragen, meistens von denen unterscheiden, die über die Anmeldeseite kommen. Es gelten drei Stufen: ein groups="…" im Kurzwort oder im Block gewinnt, dann diese Einstellung, dann die Zuordnung unter Standardfelder
- Die kurze Fassung wird von einer eigenen Vorlage gezeichnet, views/register/kompakt.phtml. Sie lässt sich einzeln ersetzen — unter user_views oder im Theme —, ohne dass Ihre Anmeldeseite mitgeht. Wer bisher register/index.phtml ersetzt hat, muss nichts tun, solange er die kurze Fassung nicht einsetzt
- Neu: das Einwilligungsprotokoll. Festgehalten wird nicht mehr nur, wann jemand sich angemeldet und wann er bestätigt hat, sondern in welchen Wortlaut er eingewilligt hat und auf welcher Seite das Formular stand. Ändern Sie den Datenschutzsatz unter dem Formular, bleibt für Ihren Altbestand nachweisbar, welcher Text damals dastand — Art. 7 Abs. 1 DSGVO legt die Beweislast bei Ihnen ab. Zu sehen beim Abonnenten und in der Auskunft nach Art. 15 DSGVO. Gespeichert wird keine IP-Adresse und kein Browser: Der Klick in der Bestätigungsmail ist der stärkere Beleg. Abonnenten, die vor 2.0.0 angelegt wurden, behalten ihre beiden Zeitpunkte; ein Wortlaut wird ihnen nicht nachträglich untergeschoben
- Zehn neue Newsletter-Vorlagen — Schlicht, Kopfbalken, Rahmen, Zeitung, Karte, Breit, Dunkel, Kompakt, Zweispaltig und Brief. Sie sind für die Darstellung in Mailprogrammen gebaut, auch in Outlook, und stellen sich auf dem Telefon von selbst um. Ihre bisherigen Layouts bleiben unverändert erhalten und weiter wählbar
- Neu unter Newsletter → Einstellungen → Voreinstellungen: eine Akzentfarbe. Kopfbalken, Linien und farbige Flächen der mitgelieferten Vorlagen nehmen sie an, und die Schrift darauf wird von selbst schwarz oder weiß — je nachdem, was lesbar bleibt. Ist Ihre Hausfarbe sehr dunkel, hellt die Vorlage „Dunkel" sie so weit auf, dass man sie auf schwarzem Grund noch sieht. Ihre eigenen Layouts bleiben unberührt
- Die Layoutauswahl zeigt jetzt Namen statt Dateinamen — „Schlicht" statt „schlicht.phtml". Eigene Layouts bekommen einen Namen, indem im Kopf der Datei eine Zeile „Vorlagenname: …" steht; ohne sie steht dort wie bisher der Dateiname
- Neuer Menüpunkt „Newsletter → Vorlagen": alle Layouts nebeneinander, jedes mit Ihrem Logo, Ihrer Akzentfarbe und Ihrem Website-Namen gezeichnet. Ein Klick zeigt eine Vorlage in voller Größe, ein zweiter macht sie zur Voreinstellung für neue Newsletter. Bisher musste man dafür einen Newsletter anlegen, speichern und die Vorschau aufrufen — für jedes Layout einmal
- Eine neue Installation schlägt jetzt die Vorlage „Schlicht" vor statt „Standard". Haben Sie unter Voreinstellungen schon ein Layout gewählt, bleibt es unverändert — auch nach diesem Update. Die beiden Vorlagen aus Version 1 („Standard" und „Beispiel") bleiben erhalten und stehen in der Galerie unter „Aus früheren Versionen"; versendete Newsletter nennen sie namentlich, deshalb verschwinden sie nicht
- Das Logo im Newsletter lässt sich jetzt einstellen — unter Newsletter → Einstellungen → Voreinstellungen. Sie können das Logo Ihrer Website nehmen, ein eigenes Bild aus der Mediathek (ein Newsletter braucht oft ein anderes: eines mit Rand, oder eine helle Fassung für die dunkle Vorlage) oder gar keines; dazu Ausrichtung und größte Breite. Alle zehn mitgelieferten Vorlagen zeigen das Logo jetzt einheitlich, auch „Breit", „Dunkel", „Kompakt" und „Brief", die bisher nur den Namen der Website schrieben
- Jede mitgelieferte Vorlage nennt jetzt ihr Farbschema. Ohne diese Angabe dunkelt Apple Mail eine helle Mail von selbst ab und rechnet dabei Farben um, die aufeinander abgestimmt waren; Outlook.com schreibt ebenfalls um. Die Vorlage „Dunkel" meldet sich als dunkel an. Die Gmail-App ignoriert die Angabe und invertiert weiter — dagegen hilft nur die Wahl der dunklen Vorlage
- Die Zielgruppenauswahl beim Newsletter zeigt jetzt, wen er erreicht. Hinter jedem Gruppennamen steht die Zahl ihrer bestätigten Abonnenten, und unter dem Feld steht die Zahl für die Auswahl zusammen — wer in zwei gewählten Gruppen steht, zählt dabei einmal. Die Zahl wird beim Ändern der Auswahl sofort nachgerechnet
- Die Kästen in der Newslettermaske lassen sich zu- und aufklappen, wie die Kästen in der Beitragsbearbeitung. Was Sie zuklappen, bleibt zugeklappt — je Benutzer gemerkt. „Versand Test" und „Versandeinstellungen" starten zugeklappt; beides braucht man nicht, solange man den Newsletter schreibt. Die Kästen sahen vorher danach aus, ohne es zu sein
- Auch die Masken für Abonnenten und Gruppen haben jetzt aufklappbare Kästen, mit demselben Verhalten. Jede Maske merkt sich ihren Stand für sich
- Das Modul „Öffnungen" heißt jetzt „Statistik" und zählt auf Wunsch auch die Klicks. Die Links der HTML-Fassung zeigen dann auf Ihre eigene Installation und werden von dort auf das eigentliche Ziel weitergeleitet; gezählt wird je Link und Abonnent, wann zum ersten Mal, wann zuletzt und wie oft. Abmelde- und Bestätigungslinks bleiben unberührt, die Textfassung behält ihre klaren Adressen, und bereits versendete Newsletter werden nicht geändert. Es geht dabei kein Aufruf nach draußen, und es wird keine IP-Adresse gespeichert. Die Einstellung steht unter Newsletter → Module → Statistik und ist ab Werk aus — die Messung erfasst das Verhalten einzelner Empfänger und braucht in aller Regel deren Einwilligung. Schalten Sie sie wieder ab, bleiben die Zahlen stehen und die Links in bereits versendeten Mails funktionieren weiter
- Neue Seite „Newsletter → Statistik". Sie zeigt zu jedem versendeten Newsletter, an wie viele er ging, wie viele ihn geöffnet und wie viele einen Link angeklickt haben, jeweils mit Quote. Ein Klick auf den Namen zeigt die Links des Newsletters nach Klicks sortiert, ein Klick auf die Abonnentenzahl zeigt, wer auf diesen Link geklickt hat — mit erstem Klick, letztem Klick und Anzahl. Aus der Newsletterliste führt bei jedem versendeten Newsletter der Link „Auswertung" dorthin. Die Seite gehört zum Modul „Statistik" und ist da, sobald es eingeschaltet ist
- Die Statistik zeichnet ihre Zahlen jetzt auch. Die Übersicht zeigt Öffnungs- und Klickquote der letzten zwölf Newsletter nebeneinander, ein Newsletter seine Empfänger, Öffnungen und Klicks als Balken und darunter jeden Link mit seinem Anteil, ein Link die ersten Klicks Tag für Tag — daran ist zu sehen, wie lange ein Newsletter nachwirkt. Die Zahlen stehen weiterhin in der Tabelle daneben, die Bilder tragen nichts nach, was dort nicht steht. Gezeichnet wird auf Ihrem Server, ohne JavaScript und ohne dass etwas nachgeladen wird; die Bilder drucken mit und stellen sich auf schmale Fenster um
- Die Linkliste der Statistik nennt jetzt die Beschriftung, unter der ein Ziel in der Mail stand — als eigene Spalte neben der Adresse. Zwei Adressen können einander bis auf einen Parameter gleichen, und dasselbe Ziel steht oft an zwei Stellen unter zwei Namen; an der Adresse allein war nicht zu erkennen, welcher Link gemeint war. Steht ein Ziel mehrfach unter verschiedenen Namen da, stehen die Namen mit Komma hintereinander — gezählt wird weiterhin das Ziel, nicht die Stelle. Ist der Link ein Bild, zählt dessen Alternativtext. Newsletter, die vor diesem Update versendet wurden, bleiben ohne Beschriftung: Ihre Linkliste steht längst, und versendete Newsletter werden nicht neu gerendert
- Die Statistik lässt sich als CSV-Datei mitnehmen — ein Knopf „CSV Export" neben der Überschrift jeder der drei Ansichten. Die Übersicht ergibt eine Zeile je versendetem Newsletter mit Empfängerzahl, Öffnungen, Klicks und den beiden Quoten; ein Newsletter ergibt seine Links mit Beschriftung, Ziel, Klicks und Anteil; ein Link ergibt die Abonnenten, die ihn angeklickt haben, mit erstem Klick, letztem Klick und Anzahl. Der Export der Übersicht nimmt alle versendeten Newsletter mit, nicht nur die angezeigte Seite. Die Quoten stehen als Zahl in einer eigenen Spalte, damit sich in Excel oder LibreOffice damit rechnen und sortieren lässt. Das Trennzeichen ist dasselbe wie beim Abonnentenexport (Einstellungen → Allgemein)
- Eine neue Installation ist ab dem ersten Aufruf arbeitsfähig. Bisher war fast jedes Feld unter „Einstellungen" leer, und ein leeres Auswahlfeld heißt für den Browser „erster Eintrag" — beim Mailweg war das „MIME Mailer (bis PHP 5.6)", beim Anmeldeformular wurden Straße, PLZ und Ort abgefragt, und beim Abmeldelink war „Abonnent löschen" eingestellt. Neu gesetzt werden: der Absender aus dem Namen Ihrer Website und der Adresse des Administrators, der WP-Mailer als Mailweg (er nimmt den Weg, den Ihre Website schon hat, also auch Ihr SMTP-Plugin), Anrede/Vorname/Name als freiwillige Angaben, Straße/PLZ/Ort gar nicht (ein Newsletter braucht keine Postanschrift), „Bestätigungsmail, Abonnent inaktiv" für die Abmeldung über den Link, die Zielgruppe für neue Newsletter sowie Cron-System und Debug-Modus. Die fünf Seiten, die das Plugin im Frontend braucht, legen Sie weiterhin selbst an — unter „Einstellungen → Seitenkonfiguration" mit „Neue Seite anlegen"; wo das Anmeldeformular steht und wie die Seite heißt, ist Ihre Entscheidung. **Bestehende Installationen bleiben unangetastet:** Jede dieser Vorgaben gilt nur für eine Neuinstallation, damit sich niemandem beim Update der Mailweg ändert oder ein Feld aus dem laufenden Anmeldeformular verschwindet
Geändert
- Die Zahl der Datenbankabfragen halbiert sich — jede Abfrage lief bisher zweimal
- Wording überarbeitet. Verkauft wird weder ein Nutzungsrecht am GPL-Code noch ein Abonnement, sondern "Updates & Support für 12 Monate": einmalige Zahlung, keine automatische Verlängerung, keine Kündigung. Der Menüpunkt heißt jetzt "Update-Zugang" (vorher "Lizenzverwaltung"), die Ausbaustufen heißen "Edition"
- Die Tabellen der Module "Abonnentenvariablen" und "Bounce Verarbeitung" werden jetzt von diesen Modulen benannt und nicht mehr vom Kern. Für Sie ändert das nichts; wer ein eigenes Modul betreibt, findet den Hinweis in der Update-Dokumentation
- Aus dem Modul "Protokoll" sind zwei Module geworden: "Versandprotokoll" (die Liste der Empfänger im Newsletter) und "Öffnungen" (der Zählpixel in der HTML-Mail und die Spalte "Gelesen"). War "Protokoll" aktiv, sind nach dem Update beide aktiv, und Ihre Einstellung für den Zählpixel bleibt. Bereits gezählte Öffnungen bleiben erhalten, und der Zählpixel in längst versendeten Mails zählt unverändert weiter
- "Abo-Status" heißt jetzt "Edition", die Ausbaustufen heißen "Pro Edition" und "Enterprise Edition". Ohne Schlüssel steht dort "ohne Update-Zugang" statt "Demo Version" — das Plugin ist auch ohne Schlüssel vollständig
- Wird ein Newsletter ohne Abonnenten dargestellt — im Browser, im Archiv, in der Vorschau des Redakteurs —, bleiben die persönlichen Platzhalter jetzt leer, statt als %abo_vorname% auf der Seite zu stehen. Der Abmeldelink zeigt dort auf Ihr Anmeldeformular
- Der mitgelieferte CKEditor ist entfallen. Newsletter werden im Editor geschrieben, den WordPress selbst mitbringt — der war ohnehin die Voreinstellung. Hatten Sie unter Allgemein den CKEditor gewählt, stellt das Update auf den WordPress-Editor zurück; sonst bliebe die Maske „Newsletter erstellen“ ohne Eingabefeld. Der CKEditor war eine Fassung von 2012 und bekam seit Jahren keine Sicherheitsaktualisierung mehr
- Eine 1,8 MB große Programmdatei (composer.phar) lag ohne Aufgabe im Paket und ist entfernt. Das Plugin wird dadurch kleiner, sonst ändert sich nichts
- Eine leere JavaScript-Datei wurde bei jedem Seitenaufruf im Frontend mitgeladen. Sie wird nicht mehr ausgeliefert. Wer eine eigene Fassung unter wpng_views oder user_views hinterlegt hat, behält sie unverändert
- Eine 1,3 MB große Verschlüsselungsbibliothek (phpseclib, Fassung von 2018) ist entfernt. Sie gehörte zum Einlesen einer hochgeladenen Lizenzdatei — diesen Weg gibt es seit Oktober 2020 nicht mehr, der Zugang wird seither über den Aktivierungsschlüssel eingetragen. Das Plugin wird dadurch kleiner, sonst ändert sich nichts
- Beim Update stand „Aktualisiere Shop Datenbank …“ auf dem Bildschirm. Der Text stammte aus wpShopGermany und heißt jetzt „Aktualisiere die Datenbank …“
- Drei Beschriftungen unter Newsletter → Einstellungen standen auch auf einer deutschen Installation englisch oder abgekürzt da. „Default RTE“ heißt jetzt „WordPress-Editor“, das Feld darüber „Editor für den HTML-Text“ statt „RTE für HTML Text“, und „Encoding“ in den Versandeinstellungen heißt „Übertragungskodierung“ — gemeint ist 7bit oder 8bit, nicht der Zeichensatz
- Das Anmeldeformular im Frontend sieht jetzt nach Ihrer Website aus statt nach einem Formular von 2012. Schrift, Farben und der Absendeknopf kommen vom Theme — der Knopf trug bisher nur eine Klasse aus dem WordPress-Backend und stand deshalb als grauer Browserknopf da. Die Beschriftungen stehen näher an den Feldern, auf dem Telefon über ihnen, und die Felder behalten das Aussehen, das Ihr Theme ihnen gibt. Haben Sie eigenes CSS oder eine eigene Formularvorlage hinterlegt, bleibt diese unverändert in Kraft
- Das Anmeldeformular ist überall dort, wo Sie es selbst platzieren — als Block, als Kurzwort oder als Widget —, jetzt ein reines Anmeldeformular. Das Auswahlfeld „Anmelden / Abmelden“ fällt dort weg: Es stand gleichberechtigt neben der Anmeldung, und der Knopf darunter hieß in beiden Fällen „Newsletter abonnieren“. Abgemeldet wird über den Link in jeder Mail. Auf der eingetragenen Anmeldeseite bleibt die Auswahl stehen, weil der Abmeldelink älterer, bereits versendeter Newsletter genau dorthin zeigt
- Unter Newsletter → Einstellungen → Formular steht jetzt am Feld „Nach der Anmeldung“, was die Wahl bedeutet: Nur das Double-Opt-in weist die Einwilligung nach — erst der Klick in der Bestätigungsmail zeigt, dass die Adresse dem gehört, der sie eingetragen hat. Die beiden Punkte ohne Bestätigungsmail standen bisher kommentarlos daneben, obwohl Sie damit für jeden Abonnenten die Beweislast tragen
- Beim Einwilligungsfenster ("Datenschutz ist uns wichtig!") geht weiterhin kein einziger Aufruf zu Google hinaus, bevor der Besucher zugestimmt hat. Gemessen am geladenen Seiteninhalt: vor dem Klick kein Skript von google.com oder gstatic.com, danach das offizielle
- Die Maske zum Bearbeiten eines Newsletters richtet sich nach Ihrem Fenster. Die beiden Spalten waren auf feste Pixel genagelt: Bei 1024 Pixeln Fensterbreite bekam der Newsletter 422 Pixel und die Einstellungen daneben 386 — fast gleich viel. In einem schmalen Fenster liefen die Knöpfe unter die Einstellungen. Unter 960 Pixeln stehen die Einstellungen jetzt unter dem Inhalt statt daneben
- Der Hinweis unter dem Betreff zeigt jetzt, was wirklich hinausginge. Name und Betreff sind zwei Felder, aber die Vorgabe für den Betreff ist „%nl_name%" — wer das Feld leer lässt, verschickt den Namen von oben. Statt auf die globalen Einstellungen zu verweisen, steht dort jetzt der fertige Betreff: „So wie es steht, ginge dieser Newsletter als … hinaus"
- Sagt eine Prüfung im Newsletter, dass etwas fehlt, steht das jetzt am betroffenen Feld statt in einem Systemfenster. Das Feld wird markiert, sein Kasten klappt auf, falls er zu war, und der Cursor springt hinein. Die Rückfragen vor einem Schritt, der sich nicht zurücknehmen lässt — löschen, Versand abbrechen, Textfassung überschreiben —, bleiben Systemfenster: Dort ist das Anhalten der Zweck
- Der Mailweg „MIME Mailer (bis PHP 5.6)" ist entfallen. Er lief über eine mitgelieferte Klasse von 2005, geschrieben für PHP 4, und konnte nichts, was der PHP-Mailer (PHPMailer aus WordPress, mit SMTP) und der WP-Mailer (wp_mail) nicht besser können — am Ende stand dieselbe Funktion des Servers. Wer ihn eingestellt hatte, versendet ab dem Update über den WP-Mailer; dasselbe gilt, wenn nie etwas eingestellt war, denn eine leere Einstellung war genau dieser Weg. Im Backend steht danach eine Meldung, die das sagt und den Weg zur Einstellung nennt. Mit dem Mailweg entfallen die drei Felder, die es nur für ihn gab: „Parameter -f unterdrücken", „Zeilenende" und „Übertragungskodierung". Damit liefert das Plugin keine fremde Mailbibliothek mehr mit — und keine Datei mit der Endung .inc, deren Quelltext ein Webserver im Klartext ausliefert
- Der Zugangsschlüssel gilt für die Domains, die auf ihm registriert sind. Steht die Adresse Ihrer Website nicht darauf, läuft das Plugin wie eine Testversion und stellt nach 14 Tagen den Dienst ein; im Backend steht dann, woran es liegt, mit einem Link auf „Update-Zugang → Domainverwaltung". Dort tragen Sie die Adresse ein — bei einem Pro-Zugang melden Sie zuvor die alte ab, er deckt eine Domain ab. Bisher genügte der Schlüssel allein: Er schaltete jede Adresse frei, auf der er eingetragen wurde, und in einem Multisite-Netzwerk jede Website. Wer umgezogen ist oder eine Kopie betreibt, prüft das nach dem Update einmal. Niemand wird dabei überrascht: Sieht das Plugin den Zustand zum ersten Mal, beginnt eine eigene Frist von 14 Tagen — ab dem Update, nicht ab der alten Installation
Sicherheit
- Mehrere Lücken geschlossen — manipulierte Adressen konnten Dateien außerhalb des Anhangordners lesen und löschen, Datenbankabfragen beeinflussen oder auf fremde Seiten weiterleiten
- Die mitgelieferte Layoutvorlage „theme1" enthielt ein Musterimpressum samt Telefonnummer und Verweisen auf fremde Domains. Wer sie übernahm und diese Stelle übersah, versendete fremde Kontaktdaten. Die Vorlage zeigt jetzt den Namen und die Adresse Ihrer eigenen Website; wo Ihre Pflichtangaben hingehören, steht als Hinweis darin
- Die Angaben aus dem Anmeldeformular werden geprüft, bevor ein Abonnent angelegt wird. Die E-Mail-Adresse muss jetzt wirklich eine sein — bisher genügte irgendein Zeichen, ein @ und irgendein Zeichen, womit „a@b" durchging. Bereits eingetragene Abonnenten bleiben unverändert
- Die Einstellungen des Bounce-Moduls werden geprüft, bevor sie gespeichert werden. In den POP3-Zugangsdaten lässt sich damit kein zweiter Befehl mehr an das Postfach schmuggeln
- Vorlagen werden nur noch aus den drei dafür vorgesehenen Verzeichnissen geladen — denen des Plugins, Ihren eigenen unter user_views und denen des Themes. Ein Pfad, der woanders hinzeigt, wird abgewiesen
- Das Layout eines Newsletters wird beim Speichern gegen die vorhandenen Layouts geprüft. Der Name wird beim Anzeigen als Dateipfad eingebunden; ein manipuliertes Formular konnte damit eine Datei außerhalb des Layoutordners anzeigen lassen
- Absender, CC und BCC eines Newsletters können keine zweite Kopfzeile mehr in die Mail schreiben. Die Schreibweise "Name <adresse@host>" bleibt dabei erhalten
- Vorlagendateien und Programmdateien lassen sich nicht mehr direkt über den Browser aufrufen
- Aktionen im Backend (speichern, löschen, importieren) lassen sich nicht mehr von fremden Seiten aus auslösen
- Eingaben werden beim Anzeigen durchgängig maskiert. Ein Suchbegriff oder eine Seitennummer mit Skriptcode konnte vorher im Browser ausgeführt werden
- Alle Datenbankabfragen laufen über vorbereitete Anweisungen
- Eine manipulierte Einstellungsdatei konnte beim Einspielen beliebige WordPress-Optionen überschreiben. Es werden nur noch die Einstellungen des Newsletters übernommen
- "Einstellungen sichern" legte jedes Geheimnis des Plugins in die herunterladbare Datei — die Unterschrift der Bestätigungs- und Abmeldelinks, das SMTP-Passwort im Klartext, das Bounce-Passwort, den geheimen reCAPTCHA-Schlüssel und den Zugangsschlüssel. Wer die Datei bekam, konnte gültige Abmeldelinks für jeden Abonnenten bilden. Zugangsdaten kommen jetzt nur noch mit, wenn Sie beim Sichern ein Kennwort vergeben, und sind damit verschlüsselt
- Die Links in Bestätigungs- und Abmeldemails bekommen ein deutlich stärkeres Kennzeichen. Das bisherige ließ sich mit genug Rechenzeit nachbauen; wer das schaffte, konnte fremde Empfänger abmelden. Links aus bereits versendeten Mails funktionieren weiter, bis Sie das unter "Pflege" abschalten
- Ein mitgeschnittener Aufruf der SOAP-Schnittstelle war unbegrenzt lange gültig. Jetzt zählt er nur noch 15 Minuten
- Die SOAP-Schnittstelle nimmt eine neue, stärkere Unterschrift entgegen. Die bisherige deckte nur die Namen der übergebenen Felder ab, nicht deren Inhalt — wer einen Aufruf mitschnitt, konnte die Werte austauschen. Beide Formen werden angenommen; unter „Pflege“ lässt sich die alte abschalten, sobald die Gegenstelle umgestellt ist
- Newsletter-Anhänge werden geprüft, bevor sie abgelegt werden. Es gelten dieselben Dateitypen wie in der Mediathek von WordPress, und geprüft wird der Inhalt der Datei, nicht ihre Endung
- Neue Ordner des Plugins werden nicht mehr für alle Nutzer des Servers beschreibbar angelegt. Auf geteilten Servern war das jeder andere Kunde desselben Anbieters
- Das Passwort des Bounce-Postfachs liegt verschlüsselt in der Datenbank statt im Klartext und steht nicht mehr im Quelltext der Einstellungsseite. Vorhandene Zugangsdaten werden beim Update übernommen
- Wenn das Plugin Inhalte von einer Adresse holt — etwa Bilder für den Versand —, sind Adressen aus dem internen Netz des Servers gesperrt. Die eigene Website bleibt selbstverständlich erreichbar
- Das Abmelden einer Domain ließ sich von einer fremden Seite aus auslösen
- Das Menüsymbol des Plugins kommt jetzt aus WordPress selbst statt von einem Server des Herstellers. Damit werden bei jedem Aufruf des Backends keine Angaben über Ihren Server mehr übertragen, und das Symbol passt sich dem gewählten Farbschema an
- Die Sitzungskennung (PHPSESSID) wird jetzt mit HttpOnly und SameSite ausgeliefert, über https zusätzlich mit Secure. Damit kommt kein JavaScript mehr an sie heran, und sie wird nicht mehr an fremde Seiten mitgeschickt. Hat Ihr Hoster strengere Vorgaben eingestellt, bleiben diese unangetastet
- Dieselbe Adresse gab mit angehängter Abonnentennummer den Newsletter für jeden beliebigen Abonnenten heraus — mitsamt dessen gültigem Abmeldelink. Wer hochzählte, konnte Ihre Abonnentenliste abmelden. Die Ansicht nimmt jetzt keine Abonnentennummer mehr an; sie zeigt den Newsletter mit dem Abonnenten, der unter Allgemein für die Archivansicht eingetragen ist
- Das Abmeldeformular verriet, wer auf Ihrer Liste steht. Auf eine unbekannte Adresse antwortete es „Ein Abonnent mit dieser E-Mail Adresse wurde nicht gefunden", auf eine eingetragene mit der Bestätigungsmeldung — öffentlich, ohne Anmeldung und beliebig oft wiederholbar. Beide Fälle antworten jetzt gleich
- Das Abmeldeformular prüft jetzt auch die Felder der Module. Sie standen dort immer schon im Formular — es ist dasselbe Formular wie beim Anmelden —, angesehen hat sie nur nie jemand. Wer das Captcha-Modul benutzt, bekommt die Prüfung damit auch beim Abmelden
- Die Eingaben des Abmeldeformulars laufen wie die des Anmeldeformulars durch die Filterung
- Das Captcha-Modul schickte den geheimen reCAPTCHA-Schlüssel in der Adresszeile an Google. Adressen landen in Protokollen — auf dem eigenen Server, bei jedem Zwischenrechner und bei der Gegenstelle. Der Schlüssel geht jetzt im Rumpf der Anfrage hinaus und steht in keinem Protokoll mehr. Nebenbei behoben: Ein kaufmännisches Und im Schlüssel zerlegte die Anfrage
- War Google nicht erreichbar, ließ das Captcha-Modul die Anmeldung durch statt sie abzuweisen. Wer Googles Server für seinen Webserver sperrte, hatte das Captcha damit abgeschaltet, ohne dass es im Backend anders aussah. Jetzt wird in jedem Fehlerfall abgewiesen
- Die mitgelieferte Layoutvorlage „theme1" zeigte das Logo des Plugins — es ging damit mit jedem Newsletter an Ihre Abonnenten, ohne dass Sie dem zugestimmt hätten. An der Stelle steht jetzt Ihr eigenes Logo: erst das Ihres Themes, sonst das Website-Symbol, sonst der Name Ihrer Website als Text. Haben Sie die Vorlage kopiert, ändern Sie die Stelle bitte in Ihrer Kopie
Behoben
- Der Haken „Beta Updates laden" unter Allgemein fiel weg. Er wählte aus, welche Versionsdatei nach einem Update vom Server geholt wird — diesen Abruf gibt es seit 2.0.0 nicht mehr, die Versionsnummer steht im Paket selbst. Der Haken schaltete damit nichts mehr; ein Schalter, der nichts tut, führt in die Irre. Der gespeicherte Wert bleibt unangetastet in der Datenbank stehen
- Die englische Oberfläche ist vollständig. Bisher waren 245 von 945 Texten übersetzt — wer WordPress auf Englisch betreibt, sah überwiegend Deutsch, und ein englischsprachiger Abonnent bekam eine deutsche Anmeldemail (von 18 Texten der Mailvorlagen waren drei übersetzt). Ausserdem waren in 27 Meldungen die Platzhalter zerrissen: statt der Zahl stand dort „# 1 #"
- In der englischen Anmeldemail stand „Dear Mr.% abo_name%," statt des Namens — ein Leerzeichen zerschnitt den Platzhalter. Ebenso berichtigt: eine englische Meldung, die einen gescheiterten Import als Erfolg meldete, und fünfzehn weitere falsche oder unvollständige englische Texte
- Die Seite „Datenerhebung" schickte für das fremde SMTP-Konto zur Mailkonfiguration — eingetragen wird es unter Versandeinstellungen
- Über einer Liste mit einem einzigen Treffer stand „1 Elemente". Es heißt jetzt „1 Element", und zwar in allen fünf Übersichten — Newsletter, Abonnenten, Gruppen, Versandlog und Bounces
- Die Suche im Versandlog wäre auf einen fatalen Fehler gelaufen, wenn der Suchbegriff kein Text gewesen wäre. Die Stelle war seit jeher unerreichbar, der Fehler stand trotzdem im Code
- Ein Anhang mit dem Namen eines schon vorhandenen überschrieb diesen wortlos — auch wenn im Newsletter bereits darauf verwiesen war. Er bekommt jetzt einen eigenen Namen
- Beim Abholen der Bounce-Mails brach der Lauf ab, sobald ein Abonnent nicht geladen werden konnte — die übrigen Mails blieben unbearbeitet. Jetzt wird diese eine Nachricht übersprungen
- Eine Rückmeldung ohne die Kennung des Newsletters erzeugte eine PHP-Warnung. Sie wird jetzt ohne Newsletterzuordnung abgelegt
- Der CSV-Export der Abonnenten wird jetzt als CSV-Datei mit Datum im Namen ausgeliefert statt als Download unbekannten Typs
- Beim Versand über den MIME-Mailer ging der Absenderschalter an sendmail auch dann mit, wenn kein Absender eingetragen war
- Das Löschen einer Gruppe, die es nicht gibt, meldete „Gruppe erfolgreich gelöscht". Jetzt sagt es, dass es diese Gruppe nicht gibt
- Ein Anmeldeformular mit Pflichtfeldern aus den Abonnentenvariablen erzeugte PHP-Warnungen, wenn die Felder nicht mitgeschickt wurden
- Im Versandlog meldete das Löschen „Eintrag erfolgreich gelöscht", auch wenn nichts gelöscht wurde. Jetzt bricht es mit einer klaren Meldung ab
- Ein Klick auf „Meldung ausblenden" zeigte die Meldung auf der folgenden Seite noch einmal an. Sie verschwindet jetzt sofort
- Ein Platzhalter der Platzhalterregeln, dessen Name eine Klammer oder einen Punkt enthält, ließ beim Versand den gesamten Newslettertext verschwinden. Der Name wird jetzt maskiert, und ein fehlerhaftes Suchmuster — auch eines aus einem fremden Modul — kostet nur noch sich selbst statt den ganzen Text
- Sortierung der Abonnentenliste nach Datum führte zu einem Datenbankfehler
- Hinweise im Backend zeigten "nohspc_" am Anfang und Formatierungen als Text
- Namen mit Apostroph (O'Brien) wurden bei der Anmeldung über das Formular mit einem Backslash gespeichert und standen so auch in der Anrede
- Eine Suche in der Newsletterliste hat den Status- und Archivfilter aufgehoben
- Vom Plugin angelegte Seiten werden jetzt wie normale WordPress-Seiten angelegt. Vorher blieben Caches und andere Plugins außen vor
- Das Einspielen gesicherter Einstellungen wirkte bei aktivem Objektcache nicht
- Gesicherte Einstellungen enthielten Angaben, die nur auf der Ursprungswebsite gelten — die Nummern der angelegten Seiten, die Standardgruppe und den Uploadpfad. Auf einer anderen Website zeigten sie ins Leere, ohne Meldung. Sie werden jetzt nur noch auf derselben Website eingespielt; sonst steht im Backend, was nachzutragen ist
- Beim Einspielen wurde aus einer Einstellung, die eine Liste enthält, eine Zeichenkette. Das Passwort des Bounce-Postfachs war nach dem Einspielen auf einer anderen Website unbrauchbar und das Postfach stillschweigend nicht mehr erreichbar; es wird jetzt richtig übernommen
- Fehlt die PHP-Erweiterung „soap“ auf dem Server, meldet das Modul das jetzt im Backend, und die Schnittstelle antwortet mit einer verständlichen Meldung. Vorher gab es eine weiße Fehlerseite und im Backend keinen Hinweis
- Ein leeres Feld "Sicherheitsschlüssel" in den allgemeinen Einstellungen hat den Schlüssel gelöscht, und er kam von selbst nicht wieder. Jetzt wird in diesem Fall ein neuer erzeugt
- Die Datumsplatzhalter (%H%, %d%, %B% und die weiteren) zeigten die Weltzeit statt der Zeitzone Ihrer Website — in Deutschland eine Stunde zu früh, im Sommer zwei. Jetzt gilt die Einstellung aus Einstellungen > Allgemein
- War der Aktivierungsserver nicht erreichbar, meldete das Eintragen eines Schlüssels trotzdem "erfolgreich aktiviert". Jetzt steht dort, dass der Server nicht erreichbar war
- Im Betreff der Bestätigungsmail stand "Besätigen" statt "Bestätigen". Das Update berichtigt den Text, sofern Sie ihn nie selbst geändert haben
- Ein eingeplanter Newsletter ging zur falschen Zeit hinaus, wenn die Uhr des Datenbankservers nicht mit der Zeitzone Ihrer Website übereinstimmte. Maßgeblich ist jetzt Ihre Zeitzone — der eingetragene Termin gilt so, wie er dasteht
- In der Newsletterliste standen Erstellungsdatum und Termin in unterschiedlichen Zeiten nebeneinander
- Nach Ablauf der Testphase blieb das Anmeldeformular auf der Website stehen und nahm stillschweigend niemanden mehr auf — ohne Meldung, weder für den Besucher noch für Sie. Jetzt steht dort "Die Newsletteranmeldung ist zurzeit nicht verfügbar."
- Verwaltung und Anmeldeformular wurden einen Tag versetzt stillgelegt
- In den Textfassungen der Mails stand HTML mitten im Text (ein Link zu den Datenschutzbestimmungen). Jetzt steht dort nur noch Text
- Ohne angegebene Anrede begann die Mail mit "Hallo" und zwei Leerzeichen
- Der Bestätigungslink klebte in der Textmail am Satz davor
- Das Registrieren und Abmelden einer Domain unter "Update-Zugang → Domainverwaltung" lief ohne jede Rückmeldung. Jetzt steht dort, ob es geklappt hat
- War der Registrierungsserver beim Registrieren einer Domain nicht erreichbar, endete die Seite mit einem schweren Fehler. Jetzt steht dort eine Meldung, und die Domainliste bleibt bedienbar
- Namen mit Apostroph, die vor diesem Update mit einem Backslash gespeichert wurden, werden beim Update automatisch berichtigt. Platzhalter und Regeln bleiben unangetastet — dort kann ein Backslash gewollt sein; für sie gibt es den Bereich "Pflege"
- Das Captcha-Modul mit "reCAPTCHA v2" liess niemanden mehr durch. Die Vorlage zeichnete das Kaestchen, lud das Skript von Google dazu aber gar nicht — der Besucher sah eine leere Flaeche, und weil eine leere Antwort abgewiesen wird, scheiterte jede Anmeldung. Mit eingeschaltetem Einwilligungsfenster lud der Klick eine fest eingetragene Adresse, die Google inzwischen mit "404 Nicht gefunden" beantwortet. Beide Wege holen das Skript jetzt ueber die Warteschlange von WordPress von der offiziellen Adresse. Pruefen Sie nach dem Update Ihr Anmeldeformular, wenn Sie reCAPTCHA benutzen
- Die Liste des Versandlogs lud fuer jeden Abonnenten einzeln die ganze Versandtabelle. In einer Entwicklungsinstallation mit 37 Abonnenten waren das 116 Datenbankabfragen fuer eine Seite, bei 5.000 Abonnenten entsprechend mehr. Es ist jetzt eine
- Jede Meldung an einen Besucher — "Bitte eine gültige E-Mail angeben", "Sie wurden erfolgreich angemeldet" — schrieb zwei Warnungen in Ihr Fehlerprotokoll, weil das Plugin die Ablage in der Sitzung nicht vorher geprüft hat. Nebenbei legte es dort bei jedem Seitenaufruf einen leeren Eintrag an
- Im Modul Abonnentenvariablen blieb der Platzhalter eines Auswahlfeldes im Newsletter leer. Er suchte den gespeicherten Wert als Position in der Auswahlliste, gespeichert wird aber der Text der Auswahl
- Das Anmeldeformular mit Abonnentenvariablen schrieb bei jedem Aufruf Warnungen in Ihr Fehlerprotokoll, ebenso jede Anmeldung ohne Abonnentenvariablen und jeder Mailversand
- Die Maske „Newsletter erstellen" und die Modulseite schrieben bei jedem Aufruf Hinweise in Ihr Fehlerprotokoll. Sichtbar war davon nichts, im Protokoll einer gut besuchten Website summiert es sich
- Das Speichern der Einstellungen und der Voreinstellungen sowie jeder Mailversand schrieben Hinweise in Ihr Fehlerprotokoll, wenn keine Gruppe gewählt oder ein Mailfeld des Newsletters leer war
- Jeder Seitenaufruf legte eine PHP-Sitzung an — auch der Abruf eines Symbols oder einer nicht vorhandenen Seite durch einen Suchmaschinen-Robot. Auf einem Webspace sammelten sich dadurch leere Sitzungsdateien, und in jeder Antwort stand die Sitzungskennung doppelt. Eine Sitzung entsteht jetzt erst, wenn eine Meldung an den Besucher den nächsten Seitenaufruf erreichen soll
- Der Link „Wird dieser Newsletter nicht richtig dargestellt? Betrachten Sie diesen in ihrem Browser." führte in jedem versendeten Newsletter auf „Ungültiger Abonnent!". Er funktioniert wieder — auch in Mails, die längst verschickt sind. Der Newsletter erscheint jetzt im Browser, ob er im Archiv steht oder nicht; der Haken „Im Archiv anzeigen" steuert nur noch die Liste auf der Archivseite
- Der Datenschutzhinweis unter dem Anmeldeformular verlinkte ins Leere. Ohne wpShopGermany – also in den meisten Installationen – stand dort ein fest eingebauter Link, der auf dieselbe Seite zurückführte. Jetzt wird die Seite verlinkt, die Sie unter „Einstellungen → Datenschutz" von WordPress eingetragen haben; ist dort keine veröffentlichte Seite hinterlegt, steht der Satz ohne Verweis statt mit einem toten
- In den Textfassungen der Anmeldemails fehlte die Adresse der Datenschutzseite ganz – dort stand nur „Es gelten die Datenschutzbestimmungen." ohne Adresse. Außerdem begann der Absatz mit einem Tabulator, und die Leerzeile vor dem Bestätigungslink kam nicht heraus
- Ein frisch eingeschaltetes Captcha-Modul prüfte gar nichts. Es stand auf „aktiviert", aber es war keine Prüfart hinterlegt, und erst wer die Einstellungen einmal speicherte, bekam überhaupt einen Schutz. Beim Einschalten wird jetzt der simple Botschutz voreingestellt — er kommt ohne Schlüssel und ohne Google aus. Die Einstellungsseite weist außerdem darauf hin, wenn ein reCAPTCHA-Schlüssel fehlt
- Wer beim simplen Botschutz im unsichtbaren Feld hängen blieb, bekam eine weiße Seite mit einem englischen Schimpfwort statt einer Meldung. Jetzt erscheint wie überall sonst ein Hinweis im Formular. Das Feld ist zusätzlich gegen die automatische Formularausfüllung des Browsers abgesichert
- Ein Leerzeichen, das beim Einfügen eines reCAPTCHA-Schlüssels aus der Zwischenablage mitkommt, ließ die Prüfung bei Google wortlos scheitern. Es wird jetzt entfernt. Die Einstellungen des Captcha-Moduls werden außerdem geprüft, bevor sie gespeichert werden, und ein unvollständig abgeschicktes Formular löscht keine Einstellung mehr
- Die beiden Hinweise im Backend — „noch keine Gruppe für Abonnenten nach der Registrierung“ und „Diese Seiten fehlen“ — lassen sich wieder ausblenden. Der Link dazu war 2012 beziehungsweise 2020 aus dem Text verschwunden, ohne dass die Technik dahinter entfernt wurde; seitdem standen beide Meldungen dauerhaft da
- Das Feld „Upload Pfad“ in den Allgemeinen Einstellungen hat seit 2015 nichts bewirkt — abgelegt wurde immer unterhalb des Uploadverzeichnisses von WordPress. Das Feld ist entfallen, der Pfad wird weiterhin angezeigt. An Ihren Dateien ändert sich nichts
- Die beiden Aktionen in der Pluginliste — „Code prüfen“ und „Aktivierungsschlüssel entfernen“ — waren nicht gegen untergeschobene Aufrufe geschützt. Ein präparierter Link genügte, um einem angemeldeten Administrator den Zugangsschlüssel zu entfernen; das Plugin meldete danach, es sei kein Update-Zugang hinterlegt. Beide prüfen jetzt Berechtigung und Prüfwert wie das übrige Backend
- Der Hinweis „keine Updates und kein Support hinterlegt" in der Pluginliste lässt sich jetzt ausblenden. Er kommt von selbst wieder, sobald kein gültiger Zugang mehr hinterlegt ist — ausgeblendet bleibt er also nur so lange, wie Sie nichts davon wissen wollen, und nicht für immer. Den Aktivierungsschlüssel tragen Sie weiterhin unter Newsletter → Update-Zugang ein
- Wird das Plugin gelöscht, während die jeweils andere Fassung — die kostenlose neben der gekauften oder umgekehrt — noch installiert ist, räumt die Deinstallation jetzt gar nichts ab. Beide Fassungen teilen sich Abonnenten, Newsletter und Einstellungen; bisher hätte das Löschen der einen der anderen ihre Daten weggenommen
- Sind die kostenlose und die gekaufte Fassung gleichzeitig aktiv, legte das bisher das Backend lahm — beide bringen dieselben Programmteile mit, und WordPress lud sie doppelt. Jetzt läuft die gekaufte Fassung, die kostenlose stellt sich still und wird abgeschaltet; ein Hinweis in der Pluginliste sagt, was zu tun ist. Ihre Abonnenten, Newsletter und Einstellungen bleiben dabei unverändert, beide Fassungen arbeiten auf denselben Daten
- Die 14-tägige Testphase begann bisher nach jedem Update von vorn — der Installationszeitpunkt wurde dabei neu gesetzt. Er wird jetzt nur noch beim ersten Mal vermerkt. Auf Installationen mit eingetragenem Aktivierungsschlüssel ändert sich dadurch nichts
- Auf Installationen, auf denen WP-CLI zur Verfügung steht, brach jeder wp-Befehl mit einem fatalen Fehler ab, sobald das Plugin aktiv war — auch Sicherungen und Updates, die der Hoster darüber fährt. Das Plugin suchte eine Datei, die im ausgelieferten Paket bewusst nicht enthalten ist
- Der Hinweis auf eine zu alte PHP-Fassung prüfte gegen PHP 7.0, obwohl das Plugin seit 2.0.0 PHP 8.1 verlangt — wer darunter lag, bekam nichts zu sehen. Er nennt jetzt die verlangte und die vorhandene Fassung, und denselben Hinweis gibt es für eine zu alte WordPress-Fassung
- Das SMTP-Passwort lag im Klartext in der Datenbank und stand außerdem im Quelltext der Seite „Versandeinstellungen" — sichtbar für jeden, der die Seite speichert. Es wird jetzt verschlüsselt abgelegt, wie das POP3-Passwort der Bounce-Verarbeitung; ein vorhandenes Passwort wandert beim Update von selbst. Das Eingabefeld bleibt leer: Tragen Sie nur etwas ein, wenn Sie das Passwort ändern wollen, und zum Entfernen gibt es ein Häkchen daneben
- Wer sich über ein Formular anmeldete, das nicht auf der eingetragenen Anmeldeseite stand, wurde anschließend dorthin weitergeleitet — und verlor den Beitrag, den er gerade las. Jetzt bleibt er auf der Seite, auf der das Formular stand, und die Meldung erscheint dort. Haben Sie unter Newsletter → Einstellungen → Seiten eine eigene „Seite nach der Abmeldung“ eingetragen, gilt weiterhin Ihre Einstellung. Für das Widget ändert sich nichts
- Auf einer Einstellungsseite mit Reitern blieb die Seite leer, wenn der zuletzt gewählte Reiter weggefallen war — etwa weil das Modul dahinter abgeschaltet wurde. Jetzt steht wieder der erste Reiter offen
- Im Standardlayout kam nichts fett beim Empfänger an. Eine Zeile im Kopf der Vorlage setzte die Schriftstärke für alles zurück, auch für Ihren Text — in der Vorschau sah man es nicht, in der Mail schon. Fettungen und Überschriften kommen jetzt durch
- Die beiden mitgelieferten Layouts nennen jetzt Dokumenttyp, Sprache und Viewport. Ohne den Dokumenttyp rechnen Webmailer im Quirks-Modus, ohne Viewport wird der Newsletter auf dem Telefon winzig dargestellt. Außerdem trug die Breitenangabe der Inhaltsspalte im Standardlayout eine Einheit („600px"), die dort nicht erlaubt ist und verworfen wurde — der Newsletter lief dadurch über die volle Fensterbreite
- Sechs Texte in den mitgelieferten Layouts standen fest auf Deutsch in der Datei — „Abmelden", „Impressum" und vier Sätze. Eine englischsprachige Installation verschickte damit eine deutsche Hülle um einen englischen Inhalt. Sie folgen jetzt der Sprache Ihrer Website
- Das Logo stand in jeder Vorlage bündig links, auch wenn die Vorlage es mittig vorsah. Ein Bild mit
display:blockrichtet sich nicht nach der Textausrichtung seiner Zelle - Die Monatsnamen im Versanddatum standen immer auf Deutsch, gleich in welcher Sprache die Installation läuft
- Ein versendeter Newsletter bot weiterhin „Medien hinzufügen" an. Sein Inhalt ist beim Versand eingefroren, und das Eingabefeld daneben war bereits gesperrt
- Beim Durchtabben der Maske sprang der Cursor zuerst in das Namensfeld — noch vor die Links „Zum Hauptinhalt springen" und „Zur Werkzeugleiste springen" von WordPress. Das Feld hat außerdem eine Beschriftung bekommen, die ein Vorlesegerät ansagen kann
- In den Listen trugen die Auswahlkästchen, die Massenaktionen und das Seitenzahlfeld keine Beschriftung. Ein Vorlesegerät sagte dreißigmal „Kontrollkästchen", ohne zu nennen, wessen. Jetzt nennt jedes Kästchen seinen Eintrag; sichtbar ändert sich nichts
- Direkt nach dem Aktivieren stand im Backend der Hinweis auf die fehlende Gruppe — geprüft wird, bevor sie angelegt wird. Der Hinweis verschwindet jetzt, sobald er nicht mehr stimmt
- Gibt es genau eine Gruppe und ist „Gruppenzuordnung nach Registrierung" leer, wird sie jetzt eingetragen. Vorher blieb die Einstellung leer, wenn das Plugin die Gruppe nicht selbst angelegt hatte — und weil ein Newsletter seine Empfänger ausschließlich über Gruppen sammelt, bekam ein so angemeldeter Abonnent nie einen. In unserer eigenen Installation waren 38 von 44 Abonnenten davon betroffen. Ab zwei Gruppen bleibt die Entscheidung bei Ihnen; der Hinweis im Backend fragt danach
- In einem WordPress-Netzwerk bekommt jetzt jede Website ihre Startwerte, nicht nur die erste. Bisher entschied das Plugin netzweit, ob es eine Neuinstallation vor sich hat — jede weitere Website galt danach als Bestand, obwohl sie nie Einstellungen hatte, und startete mit leeren Auswahlfeldern: Anschrift, PLZ und Ort wurden abgefragt, der Abmeldelink löschte den Abonnenten. Websites, auf denen Sie bereits Einstellungen gespeichert haben, bleiben unberührt
- Das Bounce-Modul trägt den POP3-Port 110 jetzt als Vorgabe ein. Das Feld nannte ihn in der Beschriftung, war aber leer — wer ihn nicht selbst eintrug, kam nicht an sein Postfach
- „Zugeordnete Abonnenten" im Bounce-Modul und „Zählcode einbinden" in der Statistik stehen jetzt mit einem Wert da statt leer. Am Verhalten ändert sich nichts, beide standen auch vorher auf dem ersten Eintrag
- Die Einstellungsseite „Allgemein" meldete eine PHP-Warnung, solange kein Update-Zugang abgerufen war und der Dienst aus stand — im Feld „Edition" stand dann nichts statt „ohne Update-Zugang"
- Einstellungen, die leer in der Datenbank standen, bekommen ihren Vorgabewert. Betroffen waren „Newsletter pro Seite (Backend)", „Gruppen pro Seite", „Abonnenten pro Seite", „Newsletter pro Ausführung versenden", „Newsletter im Archiv" und „CSV Trennzeichen für Im- und Exporte". Das Feld zeigte nichts an, gerechnet wurde mit einem Wert aus dem Quelltext — die Newsletterliste zeigte 25 Zeilen, während die Vorgabe 100 lautet. Gefüllt wird nur, wo leer nichts bedeuten kann: eine Anzahl und ein Trennzeichen. Absender, Kopienempfänger und Zugangsdaten bleiben leer, dort ist leer eine Angabe, und ein Wert, den Sie gesetzt haben, wird nie angefasst
- Wird das Plugin von Hand aktualisiert — die Dateien per FTP ausgetauscht, statt das Update von WordPress anstoßen zu lassen —, holt sich die Datenbank ihre Änderungen jetzt selbst. Bisher passierte das nur beim Aktivieren und beim Update über WordPress; bis jemand unter Einstellungen → Allgemein auf „Jetzt aktualisieren" klickte, fehlten neue Spalten. Das blieb unbemerkt und konnte Daten kosten: Bei eingeschalteter Klickzählung ging eine Mail ungezählt hinaus, ohne dass im Backend etwas dazu stand. Der Knopf bleibt, er ist jetzt nur nicht mehr der einzige Weg
- Der stündliche Versandlauf steht wieder genau einmal im Kalender von WordPress. Bei jeder Aktivierung und nach jedem Update kam ein weiterer Eintrag dazu — in der Entwicklungsumgebung standen drei, der Versand lief damit dreimal je Stunde statt einmal. Vorhandene Doppel werden beim nächsten Update aufgeräumt; es geht kein Lauf verloren
- Ein Abonnentenname, der mit =, + oder @ beginnt, wird in der exportierten CSV-Datei nicht mehr als Formel ausgeführt, wenn Sie die Datei in Excel oder LibreOffice öffnen. Die Namen kommen aus dem Anmeldeformular Ihrer Website; ein Vorname =HYPERLINK("http://boese.test";"Klick") wurde dort bisher zu einem Link, den Sie selbst gebaut zu haben glaubten. Solche Felder bekommen jetzt einen Apostroph davor, Zahlen bleiben unberührt, und beim Import nimmt das Plugin den Apostroph wieder weg — was Sie exportieren und wieder einlesen, kommt unverändert zurück. Eine Telefonnummer wie +49 170 … steht damit in der Zelle, statt wie bisher als #NAME?
- Eine Domainregistrierung meldete „Der Registrierungsserver war nicht erreichbar", obwohl sie geklappt hatte. Der Server schickt bei der ersten Anmeldung einer neuen Domain eine Warnung vor seine Antwort; das Plugin konnte die Antwort dahinter nicht mehr lesen. Wer daraufhin noch einmal klickte, bekam „schon registriert" und damit die zweite Fehlermeldung — für eine Domain, die längst eingetragen war
- Läuft Ihr Update-Zugang aus, steht das jetzt in der Pluginliste — mit dem Link zur Verlängerung. Der Hinweis kommt vom Updateserver und wurde bisher nirgends angezeigt; Sie erfuhren vom Ablauf nichts
1.1.4¶
08.09.2023
Behoben
- Fehler in Lizenzverwaltung / Domainregistrierung aufgehoben
1.1.3¶
09.08.2023
Neu
- PHP 8.2 Kompatibilität
- PHP8 Kompatibilität verbessert
- Adminbenachrichtigung bei Newsletteranmeldung (optional)
- DSGVO Layer für reCAPTCHA V2 integriert
- WPNG user_views können nun im Child Theme abgelegt werden
Behoben
- Abmeldebutton im Template
- Versand von HTML-Mail
1.1.2¶
29.09.2022
Neu
- Wordpress E-Mail Engine integriert
1.1.1¶
21.07.2022
Neu
- Löschen/Deaktivieren von Abonnenten kann optional auch wpShopGermany Kunden deaktivieren
- Abmeldebutton im E-Mailheader
- Recaptcha V3 in das Anmeldeformular integriert
Behoben
- Recaptcha V2 nun nutzbar, Recaptcha V1 wird nicht länger unterstützt
- Alle Einträge auf einer Seite in der Abonnenten- und Gruppenverwaltung können wieder schnellausgewählt werden
1.1.0¶
02.11.2020
Neu
- PHP 7 Kompatibilität / Optimierungen
- Warnungen reduziert und Code erneuert
- Widget "An-/Abmeldung"
1.0.5¶
ohne überliefertes Datum
Neu
- Erweiterung um Hinweise über Datenspeicherung
- Abonnenten können mehreren Gruppen zugeordnet werden
- Versandlog im Backend
Behoben
- Fehler behoben, bei dem die Archivseite auf bestimmten Seiten falsch angezeigt wurde
1.0.4¶
17.05.2018
Neu
- Google reCaptcha für das Registrierungsformular
- Php7-Kompatibilität realisieren
- Automatische Verlinkung zur Datenschutzseite aus dem wpShopGermany
1.0.3¶
03.08.2017
Neu
- Nutzung der Certifikatsdatei von Wordpress für Kommunikation mit Registrierungsserver
- Trennzeichen für CSV Im- und Exporte konfigurierbar
- SOAP Funkttionalität erweitert um Gruppen auszulesen
- Meldung, wenn Crypt-Bibliothek nicht geladen werden kann
- Gruppen manuell hinzufügen
- Abonnenten können auf "inaktiv" gesetzt werden
Behoben
- Anzeige von Sortierpalte und Richtung in Abonnentenübersicht ausgeblendet
- Abonnentenvariable wird als Wert, nicht als Index, in Datenbank gespeichert
- Wenn Gruppen über die SOAP Registrierung definiert sind und ein Kunde den Opt-In bestätigt wird die Standardgruppe nicht mehr gesetzt
- Meldung wenn Crypt Bibliothek nicht geladen werden kann
- Aktivierung einer Lizenz kann wieder abgeschickt werden
1.0.3¶
10.06.2015
Neu
- Abonnenten lassen sich im Backend sortiert anzeigen
- Upload Pfad lässt sich in den Allgemeinen Einstellungen einstellen
Behoben
- Fehler beim abmelden korrigiert (Status auf inaktiv setzen)
- -f Parameter wird korrekt gesetzt
- Fehler bei Tabellenerstellung Placeholder korrigiert
- Ausgaben durch content_filter für aktuelles Wordpress korrigiert
- CSS Anpasungen für aktuelles Wordpress Theme
- Platzhalter für UserFields mit Auswahlmöglichkeiten geben gesetzten Wert zurück
- Kein Fehler beim Speichern der Voreinstellung ohne gesetzte Standardzielgruppe
1.0.2¶
21.05.2014
Neu
- Meldung wenn keine Gruppe für Registrierung angegeben ist
- Übernahme des HTML Textes zu TXT verbessert
- Abonnent für Archivansicht kann definiert werden damit die Platzhalter ersetzt werden
- Wird eine Testmail an eine Adresse geschickt die als Abonnent existiert, so werden die Platzhalter ersetzt
- Modul "Platzhalterregel" für individuelle Platzhalter z.B. für Anreden
- Wordpress 3.9 Kompatibel
Behoben
- Seiten werden korrekt mit URL Pfad angelegt
- Fehler bei PRIMARY KEY Definition für dbDelta behoben
- Standardlayout wird korrekt gespeichert, damit es für neue Newsletter verwendet wird
1.0.1¶
10.04.2013
Neu
- Installation in Unterordner möglich
- -f Parameter kann bei internem Mail deaktiviert werden
Behoben
- Übersetzungen korrigiert
- Fehler beim aktivieren (Unerwartete Ausgaben) behoben
- CSS/JS werden aus userviews verwendet wenn vorhanden
- MimeType Erkennung mittels fileinfo bei Intern(mail)
1.0.0¶
ohne überliefertes Datum
Weitere
- Erste Version