Das Anmeldeformular platzieren¶
Es gibt vier Wege, das An- und Abmeldeformular in Ihre Website zu bekommen. Sie schließen einander nicht aus.
| Weg | Wofür |
|---|---|
| Die Anmeldeseite | Die eine Seite, auf die Sie überall verlinken |
Der Shortcode [wpng_form] |
Überall sonst, mit der genauesten Steuerung |
| Der Block „Newsletter-Formular" | Dasselbe, aber im Editor zusammengeklickt |
| Automatisch unter jedem Beitrag | Einmal einstellen, gilt für alle Beiträge |
Dazu kommt das Widget „wpNewsletterGermany Registrierung" für Themes mit Seitenleiste.
Die Anmeldeseite¶
Die Seite, die unter Seitenkonfiguration als Registrierungsseite eingetragen ist. Das Plugin ersetzt ihren Inhalt durch das Formular.
Diese Seite trägt immer die volle Fassung mit allen Feldern, die unter Formularkonfiguration abgefragt werden, und mit der Auswahl Anmelden / Abmelden.
Der Shortcode¶
Schreiben Sie in eine Seite oder einen Beitrag:
[wpng_form] die volle Fassung
[wpng_form compact="1"] die kurze Fassung
[wpng_form groups="Veranstaltungen"] in eine bestimmte Gruppe
[wpng_form compact="1" groups="3,5"] beides
Es gibt genau zwei Angaben, und keine davon wählt Felder aus:
| Angabe | Werte |
|---|---|
compact |
1, true, yes, ja oder on. Alles andere heißt Nein |
groups |
Gruppennamen oder Kennungen, mit Komma getrennt |
Warum man die Felder nicht im Shortcode wählen kann
Was ein Feld soll — abfragen, Pflicht, weglassen — steht an einer Stelle: unter Formularkonfiguration. Eine Angabe je Feld hätte zwei Orte für dieselbe Frage geschaffen, und „welche gewinnt?" käme bei jeder Supportanfrage wieder.
Der Shortcode zeichnet dieselbe Vorlage wie die Anmeldeseite. Im Feed und im Auszug zeichnet es nichts — in einem Feedreader ließe sich nichts abschicken.
Die kurze Fassung¶
Gedacht für den Platz unter einem Blogbeitrag: E-Mail-Adresse und Knopf, mehr nicht. Sieben Felder unter einem Artikel schrecken ab; eine Adresse tippt jemand noch ein.
Die Regel ist eine einzige: Alles Freiwillige fällt weg, alles Pflichtige bleibt. Es gibt dafür keinen zweiten Schalter. Wer den Vornamen auch im kurzen Formular will, stellt ihn unter Formularkonfiguration auf Pflichtfeld.
Das ist nicht nur bequem, es ist die einzige widerspruchsfreie Regel: Ein zweiter Schalter könnte ein Feld weglassen, das die Einstellungen als Pflicht führen — und dann entstünde ein Abonnent ohne einen Wert, den Sie für unverzichtbar erklärt haben.
Was nicht wegfällt: der Hinweis auf die Datenverarbeitung. Er ist Pflicht, nicht Zierde, und steht in der kurzen Fassung kleiner unter dem Feld.
Ebenfalls nicht weg fällt die zweite Abfrage der Adresse, wenn Sie sie eingeschaltet haben — ohne sie ließe sich das Formular gar nicht abschicken.
Der Block¶
Im Editor über die Blocksuche nach „Newsletter". Der Block heißt Newsletter-Formular und steht in der Kategorie Widgets.
In der Seitenleiste des Editors hat er einen Schalter Kurzes Formular und ein Feld für die Gruppe, mit den vorhandenen Gruppennamen als Hilfetext darunter.
Drei Eigenheiten:
Der Block wird serverseitig gezeichnet. Im Beitrag steht nur ein Kommentar, das Formular entsteht beim Aufruf. Ein im Beitrag eingefrorenes Formular zeigte sonst die Einstellungen des Tages, an dem jemand den Block eingefügt hat — ein Pflichtfeld, das später dazukommt, fehlte dort für immer.
Nur einer je Seite. Zweimal dasselbe Formular heißt zweimal dieselben Feldnamen, und die Meldung nach dem Abschicken erschiene womöglich im falschen.
Block und Shortcode auf einer Seite: der Block holt sich die Meldung, auch wenn der Shortcode darüber steht. Nehmen Sie eins von beiden.
Automatisch unter jedem Beitrag¶
Newsletter → Konfiguration → Einstellungen → Formularkonfiguration → Reiter Kurzes Formular
| Wert | Was geschieht |
|---|---|
| Gar nicht | Vorgabe. Das Formular kommt nur dorthin, wo Sie es hinsetzen |
| Unter jedem Beitrag | Unter jeden Beitrag in der Einzelansicht |
| Unter jedem Beitrag und jeder Seite | dazu die Seiten |
Angehängt wird immer die kurze Fassung. Wer die volle unter einem Beitrag will, setzt dort den Shortcode.
Die Einstellung gilt rückwirkend: für die dreihundert Beiträge, die schon veröffentlicht sind, ebenso wie für den nächsten. Genau dafür gibt es sie — als Handgriff je Beitrag wäre es der Shortcode, dreihundertmal.
Wo trotzdem nichts angehängt wird¶
| Fall | Warum |
|---|---|
| In Archiven, Listen, auf der Startseite | Nur die Einzelansicht |
| Auf einer der fünf eigenen Seiten des Plugins | Auf der Anmeldeseite steht es schon, und unter „Danke für Ihre Anmeldung" stünde es am falschen Platz |
| Wo schon ein Shortcode oder ein Block im Text steht | Sie haben sich dort schon entschieden — und zwar genauer, denn dort kann eine Gruppe stehen |
| In Nebenabfragen des Themes, etwa „verwandte Beiträge" | Sonst stünde das Formular an vier Stellen einer Seite |
In welche Gruppe die Anmeldung geht¶
Die drei Stufen stehen unter Gruppen.
Kurz: groups="…" schlägt die Einstellung für das kurze Formular, und die
schlägt die allgemeine Vorgabe.
Wenn sich jemand anmeldet, der schon eingetragen ist¶
Seit 2.0.1. Was geschieht, hängt davon ab, in welchem Zustand die Adresse ist:
| Die Adresse ist … | Was geschieht |
|---|---|
| nicht eingetragen | Bestätigungsmail, direkt aktiv oder manuelle Freischaltung — je nach Ihrer Einstellung |
| aktiv | nichts. Kein Eintrag, keine Mail, keine doppelte Zeile |
| wartet auf Bestätigung | die Bestätigungsmail geht noch einmal hinaus |
| inaktiv — abgemeldet, gesperrt oder als unzustellbar zurückgekommen | die Bestätigungsmail geht hinaus, und erst der Klick darin macht die Adresse wieder aktiv |
Abgemeldet bleibt abgemeldet, bis der Abonnent selbst klickt
Bei einer inaktiven Adresse geht die Bestätigungsmail immer hinaus — auch wenn Sie „direkt anmelden ohne Bestätigungsmail" eingestellt haben.
Der Grund: Das Plugin kann nicht unterscheiden, warum jemand inaktiv ist. Abgemeldet, von Ihnen gesperrt, als unzustellbar zurückgekommen — es sieht dasselbe. Wer sich abgemeldet hat, darf nicht dadurch zurück auf die Liste geraten, dass ein Formular mit seiner Adresse abgeschickt wurde.
Die Meldung verrät nicht, wer auf Ihrer Liste steht. Was nach dem Abschicken dasteht, hängt allein von Ihrer Einstellung ab, nicht davon, ob die Adresse bekannt war. Ein Rest bleibt in der Einstellung direkt anmelden ohne Bestätigungsmail: Eine inaktive Adresse bekommt dort die Bestätigungsmail und folglich die Meldung dazu, alle anderen „erfolgreich angemeldet". Wer eine Adresse ausprobiert, erfährt dort also, dass sie abgemeldet oder gesperrt ist. In der Vorgabe — Bestätigungsmail für alle — gibt es diesen Unterschied nicht.
Höchstens eine Bestätigungsmail je Stunde an denselben Abonnenten. Sonst könnte jemand über Ihr Formular einem Fremden beliebig viele Mails schicken lassen. Gemerkt wird das ohne die Adresse, nur mit der Abonnentennummer.
Angemeldete Vorgänge stehen im Einwilligungsprotokoll — eine Wiederanmeldung bekommt dort ihre eigene Zeile.
Wohin es nach dem Abschicken geht¶
Zurück auf dieselbe Seite. Wer sich unter einem Beitrag anmeldet, bleibt bei dem Beitrag, den er gerade liest. Die Erfolgsmeldung steht über dem Formular.
Das gilt für den Shortcode und für den Block. Für das Widget bleibt es beim alten Verhalten — eine Seitenleiste steht auf Seiten, die das Formular nicht im Text tragen, und dort ist die Anmeldeseite das richtige Ziel.
Haben Sie unter Seitenkonfiguration eine eigene Seite nach Abmeldung eingetragen, gewinnt Ihre Einstellung.
Ist ein Fehler im Formular, wird nicht weitergeleitet: Die Seite zeichnet sich neu, und die Fehler stehen über dem Formular.
Das Aussehen¶
Das Theme gestaltet, das Plugin ordnet an. Schrift, Schriftgröße, Farben und das Aussehen des Knopfs kommen von Ihrem Theme; das Plugin sagt nur, was wo hingehört.
Der Absendeknopf trägt die Klasse wp-element-button — das ist seit
WordPress 6.1 die Klasse, über die ein Block-Theme aus seiner theme.json
heraus Knöpfe gestaltet. Ihr Newsletter-Knopf sieht damit aus wie jeder andere
Knopf Ihrer Website.
Unter 600 Pixel Breite steht die Beschriftung über dem Feld.
Eigenes CSS¶
Die Klassen sind stabil:
| Klasse | |
|---|---|
.wpng_registerForm |
die Hülle des Formulars |
.wpng_registerForm_kompakt |
dazu bei der kurzen Fassung |
.wpng_unterBeitrag |
die Hülle des automatisch angehängten Formulars |
.wpng_botsperre |
das unsichtbare Feld des Spamschutzes — nicht sichtbar machen |
Eine eigene Vorlage¶
Wie bei den Layouts: Legen Sie die Datei unter
<Ihr Theme>/wpng_views/register/ oder
wp-content/uploads/wpng/user_views/register/ ab.
| Datei | Zeichnet |
|---|---|
index.phtml |
Anmeldeseite, Widget, [wpng_form] ohne compact |
kompakt.phtml |
die kurze Fassung und das automatisch angehängte Formular |
Zwei Dinge müssen in einer eigenen Fassung stehen bleiben:
<?php $this->callMods( 'register_form' ); ?>
Daran hängt der Spamschutz. Fehlt die Zeile, kommen Lockfeld und Zeitnachweis nicht ins Formular — abgewiesen wird deswegen niemand, es prüfen dann nur noch Inhaltsprüfung und Ratenbegrenzung.
<input type="hidden" name="wpng_form_post" value="…" />
Daran hängen der Rücksprung auf dieselbe Seite und die Gruppe des Formulars.
Was jedes Feld dem Browser mitgibt¶
Seit 2.0 trägt jedes Feld die passenden Angaben, damit der Browser ausfüllen und das Telefon die richtige Tastatur zeigen kann:
| Feld | Typ | Automatisch ausfüllen |
|---|---|---|
| Anrede | Auswahl | honorific-prefix |
| Vorname | Text | given-name |
| Name | Text | family-name |
| Straße | Text | street-address |
| PLZ | Text, Zifferntastatur | postal-code |
| Ort | Text | address-level2 |
email |
||
| E-Mail wiederholen | aus |
Die Wiederholung bekommt bewusst kein automatisches Ausfüllen — sonst füllt der Browser genau das aus, was der Besucher abtippen soll, und die Prüfung prüft nichts mehr.
Pflichtfelder tragen required; der Stern daneben ist nur für das Auge.
Die Prüfung im Browser ersetzt keine auf dem Server. Sie kommt dazu: Jedes Feld wird nach dem Abschicken noch einmal geprüft.
Seitencache¶
Das Formular darf ohne Weiteres auf vielbesuchten Seiten stehen, die Ihr Hoster zwischenspeichert. Der Zeitnachweis des Spamschutzes steht nicht im HTML — er wird zur Laufzeit nachgeholt, gerade weil im Cache sonst der Zeitpunkt stünde, an dem der Cache gefüllt wurde.


