Inhalt
In diesem kleinen Tutorial will ich dir zeigen wie man ausgehende E-Mails in WordPress, bezogen auf eine neue Benutzerregistrierung, anpasst und nach seinen Wünschen abändern kann.
E-Mail für Administrator Benachrichtigung
Wenn sich ein neuer Benutzer auf einer WordPress Website registriert, wird eine E-Mail Benachrichtigung an die Administrator-E-Mail-Adresse gesendet, welche unter Einstellungen > Allgemein > E-Mail-Adresse im WordPress Backend eingestellt wurde.
Diese E-Mail-Adresse wird für alle Benachrichtigungen innerhalb der Administration genutzt. Um speziell E-Mail Benachrichtigungen für neue Benutzerregistrierungen anzupassen, bietet WordPress uns hier einen Filter. Diesen können wir benutzen, um die entsprechende E-Mail, das heißt den Betreff, die eigentliche Nachricht, die Empfänger-Adresse und den Header der E-Mail zu bearbeiten.
Hierzu nutzen wir den Filter ‘wp_new_user_notification_email_admin’, welchen du zum Beispiel innerhalb deiner functions.php Datei einbauen kannst.
Im folgenden Code Beispiel ändern wir so einfach die Empfänger-Adresse zu ‘your@domain.de‚. Diese kannst du für dich entsprechend anpassen. Registriert sich nun ein neuer Benutzer auf deiner Website, wird nun eine E-Mail Benachrichtigung an die eingerichtete E-Mail-Adresse versendet und nicht wie bisher an die Administrator-E-Mail-Adresse.
if (!function_exists('new_user_notif_admin')) :
/**
* Filters the contents of the new user
* notification email sent to the site admin.
*
* @param array $mail {
* Used to build wp_mail().
*
* @type string $to The intended recipient.
* @type string $subject The subject of the email.
* @type string $message The body of the email.
* @type string $headers The headers of the email.
* }
* @param WP_User $user User object for new user.
* @param string $blogname The site title.
*/
function new_user_notif_admin($email, $user, $blogname):
{
$email['to'] = 'your@domain.de';
return $mail;
}
add_filter(
'wp_new_user_notification_email_admin',
'new_user_notif_admin',
10,
3
);
endif;
Den WordPress Filter rufen wir mit ‚add_filter()‚ auf, wobei der erste Parameter den Filternamen definiert, den wir hier nutzen wollen und der zweite Parameter der Name unserer Callback-Funktion, die für den Filter aufgerufen wird. Die letzten beiden Parameter geben die Priorität (hier 10 und der Default Wert) und die Anzahl der übergebenen Parameter zur Callback-Funktion (hier 3, damit wir alle Parameter nutzen können, auch wenn wir aktuell nur einen, $email, benutzen)
E-Mail für Benutzer Benachrichtigung
Bei einer neuen Registrierung erhält natürlich nicht nur der Admin eine Benachrichtigung, sondern auch der neue Benutzer selbst. Diese E-Mail können wir ebenfalls für uns entsprechend anpassen indem wir den Filter ‚wp_new_user_notification_email‚ nutzen. Im folgenden Beispiel Code passen wir den Inhalt der E-Mail an.
if (!function_exists('new_user_notif_user')) :
/**
* Filters the contents of the new user
* notification email sent to the new user.
*
* @param array $email {
* Used to build wp_mail().
*
* @type string $to The intended recipient.
* @type string $subject The subject of the email.
* @type string $message The body of the email.
* @type string $headers The headers of the email.
* }
* @param WP_User $user User object for new user.
* @param string $blogname The site title.
*/
function new_user_notif_user($email, $user, $blogname):
{
$message = 'Vielen Dank für die Registrierung!';
$email['message'] = $message;
return $email;
}
add_filter(
'wp_new_user_notification_email',
'new_user_notif_user',
10,
3
);
endif;
Die beiden Filter sowie einige weitere, die den E-Mail-Verkehr betreffen, werden in unseren Projekten eingesetzt, um den E-Mails zum Beispiel ein passendes Unternehmens-Branding zu verpassen, entsprechende E-Mails an unterschiedliche Adressen senden zu lassen und um Unternehmensprozesse sowie die Organisation solcher Benachrichtigungen innerhalb eines Teams besser zu koordinieren.
Der Spielraum innerhalb unserer Callback-Funktionen ist natürlich sehr groß. Über unserem einfachen Beispiel hinaus, können natürlich E-Mails auch an mehrere Adressen versendet werden, die E-Mail Nachricht kann aufwendig mittels HTML geschrieben und vieles mehr.