Docs Designs & E-Mail-Typen

Designs & E-Mail-Typen

Eigene E-Mail-Typen per Hook registrieren

Auf dieser Seite

FreddyMail gruppiert Mails nach E-Mail-Typen. Core-Typen wie password_reset, new_user und admin_notification sind bereits enthalten. Für eigene Plugins oder Integrationen registrierst du zusätzliche Typen über den WordPress-Filter freddymail_register_email_type.

Ein eigener Typ ist sinnvoll, wenn eine Mail regelmäßig ausgelöst wird und später eine eigene Vorlage, ein eigenes SMTP-Profil oder eine eigene Diagnose im Log bekommen soll. Beispiele sind Buchungsbestätigungen, Kurszugänge, Formularbestätigungen, Lizenzhinweise oder interne Admin-Meldungen.

Minimalbeispiel

Lege den Code in deinem eigenen Plugin oder in einem kleinen Must-use-Plugin ab. Nicht im Theme, wenn die Mail zum Geschäftsprozess gehört.

<?php
/**
 * Plugin Name: My Booking FreddyMail Types
 */

add_filter('freddymail_register_email_type', function (array $types): array {
    $types[] = [
        'id' => 'booking_confirmation',
        'label' => __('Booking confirmation', 'my-booking'),
        'description' => __('Sent after a customer completes a booking.', 'my-booking'),
        'source' => 'plugin',
        'category' => 'transactional',
        'placeholders' => [
            'customer_name' => __('Customer name', 'my-booking'),
            'booking_id' => __('Booking ID', 'my-booking'),
            'booking_date' => __('Booking date', 'my-booking'),
        ],
        'placeholder_samples' => [
            'customer_name' => 'Jane Doe',
            'booking_id' => 'BK-1042',
            'booking_date' => '2026-05-13',
        ],
        'fallback_subject' => __('Your booking is confirmed', 'my-booking'),
        'default_body_html' => '<p>Hello {{customer_name}}, your booking {{booking_id}} is confirmed for {{booking_date}}.</p>',
        'allow_resend' => true,
    ];

    return $types;
});

Felder

  • id ist die technische ID. Erlaubt sind Kleinbuchstaben, Zahlen, Unterstrich und Bindestrich. Die ID muss eindeutig sein.
  • label ist der sichtbare Name in FreddyMail.
  • description erklärt dem Admin, wann diese Mail ausgelöst wird.
  • source ist plugin oder custom für eigene Typen. core ist den FreddyMail-Core-Typen vorbehalten.
  • category darf transactional, system, notification, woocommerce oder other sein.
  • placeholders beschreibt verfügbare Template-Platzhalter.
  • placeholder_samples liefert Beispielwerte für Vorschau und Tests.
  • fallback_subject wird verwendet, wenn kein eigener Betreff gespeichert wurde.
  • default_body_html ist ein sicherer Startinhalt, falls noch keine Vorlage zugewiesen ist.
  • allow_resend sollte bei Einmal-Links, 2FA-Codes oder sicherheitskritischen Tokens auf false stehen.

So testest du die Registrierung

  1. Plugin oder MU-Plugin aktivieren.
  2. FreddyMail > Email types öffnen und nach deinem Label suchen.
  3. Den Typ öffnen und prüfen, ob Platzhalter und Beispielwerte sichtbar sind.
  4. Eine Vorlage zuweisen oder den System-Fallback bewusst akzeptieren.
  5. Den echten Auslöser ausführen, zum Beispiel eine Testbuchung anlegen.
  6. FreddyMail > Logs öffnen und prüfen, ob der Logeintrag den neuen Typ trägt.

Wenn der Typ in Quarantäne landet

FreddyMail validiert jede Registrierung. Ungültige Einträge werden nicht produktiv verwendet, sondern als nicht sendbar markiert. Häufige Ursachen:

  • Die id fehlt oder enthält unerlaubte Zeichen.
  • Das label fehlt.
  • source hat einen Wert außerhalb von core, plugin oder custom.
  • Eine andere Erweiterung registriert dieselbe id. Dann gewinnt die erste Registrierung.

Korrigiere den Code, lade das Backend neu und prüfe die Liste erneut. Danach erst eine echte Mail auslösen.

Typ und Versand zusammenbringen

Die Registrierung macht den Typ in FreddyMail bekannt. Dein eigenes Plugin muss beim tatsächlichen Versand weiterhin eine Mail auslösen. Wenn dein Plugin bereits wp_mail() nutzt, kann FreddyMail den Versand loggen; die Typzuordnung hängt davon ab, welchen Kontext dein Plugin bzw. die FreddyMail-Integration beim Versand bereitstellt.

Für produktive Integrationen gilt: erst Typ registrieren, dann Versand auslösen, dann Log prüfen. So siehst du sofort, ob Vorlage, Empfänger, Betreff und Providerantwort zusammenpassen.