Zum Hauptinhalt springen
Mit dem $wsEmails-Modul lösen Sie den Versand vorkonfigurierter E-Mails aus. Die E-Mails selbst werden in der Shop-Konfiguration unter messages definiert. Das Modul stößt den Versand einer dieser E-Mails über ihre ID an. Auf dieser Seite geht es um das Auslösen des Versands. Inhalt, Empfänger und Layout der E-Mail werden in der messages-Konfiguration festgelegt, nicht hier.

Grundkonzept

$wsEmails kennt genau eine Methode: sendConfiguredEmail(emailId). Sie versendet die E-Mail, deren ID dem Namen der messages-Konfiguration entspricht.
Wenn der Aufruf ungeschützt im Template steht, wird die E-Mail bei jedem Seitenaufruf versendet. Um dies zu vermeiden, sollten Sie ihn immer mit einer Bedingung umschließen, die nur im gewünschten Fall zutrifft, etwa nach dem erfolgreichen Absenden eines Formulars. So vermeiden Sie einen versehentlichen Mehrfachversand.

Modulübersicht

Beispiel / Ausschnitt über $wsEmails
{{= $wsEmails | json }}
JSON-Ausgabe
{
  "sendConfiguredEmail": "ƒ()"
}
Anmerkung: "ƒ()" kennzeichnet eine Funktion. Methoden in der Übersicht
MethodeRückgabe-TypBeschreibung
sendConfiguredEmail()Versendet eine unter messages konfigurierte E-Mail.

Templates

Der E-Mail-Versand kann von jedem Template aus ausgelöst werden, aber nur kontrolliert (siehe Grundkonzept). Typische Einsatzgebiete sind Kontaktformulare, Bestätigungen oder Benachrichtigungen nach bestimmten Aktionen.

Variablen

Für $wsEmails stehen keine Variablen zur Verfügung.

Methoden

$wsEmails.sendConfiguredEmail()

Versendet eine E-Mail, die in der Shop-Konfiguration unter messages definiert wurde. Die E-Mail-ID entspricht dem Namen der Konfiguration. Signatur
$wsEmails.sendConfiguredEmail(emailId)

Rückgabe\

Parameter
NameTypPflichtBeschreibung
emailIdstringjaID der E-Mail aus der messages-Konfiguration (z. B. "orderConfirmation", "contactForm").
Aufruf (immer mit einer Bedingung umschließen, siehe Beispiel):
{{ $wsEmails.sendConfiguredEmail("contactForm") }}

Aktionen

Für $wsEmails stehen keine Aktionen zur Verfügung.

Beispiele

E-Mail nur nach erfolgreichem Formular versenden

Dieses Beispiel koppelt den Versand an den Erfolg einer Formular-Aktion: Erst wenn das Formular erfolgreich abgesendet wurde (success), wird die konfigurierte E-Mail ausgelöst.
{{ var $contact = $wsActions.create("ContactForm") }}

<form method="POST" action="{{= $wsViews.current.url() }}">
  <input type="hidden" name="wscsrf" value="{{= $contact.csrf }}">
  <input type="text" name="message" placeholder="Ihre Nachricht">
  <button type="submit" name="wsact" value="{{= $contact.id }}">Senden</button>
</form>

{{ if $contact.success }}
  {{ $wsEmails.sendConfiguredEmail("contactForm") }}
  Vielen Dank, Ihre Nachricht wurde versendet.
{{ /if }}
Ergebnis
Die E-Mail geht nur dann raus, wenn das Formular erfolgreich abgesendet wurde. Ein bloßes Neuladen der Seite löst keinen Versand aus.
Der Aktionsname ContactForm und die E-Mail-ID contactForm sind Platzhalter. Setzen Sie die in Ihrem Shop konfigurierten Namen ein und prüfen Sie, dass der Versand ausschließlich im success-Fall erfolgt.