Thumbnail

WordPress Filter für E-Mail Benachrichtigung bei Benutzer-Registrierung

21. November 2021
Andreas Geyer

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.

Teile diesen Artikel gerne!

Schreibe einen Kommentar

Hier noch etwas interessantes für Dich dabei?

Thumbnail zu Behind the scenes - unsere Website

Behind the scenes – unsere Website

In diesem Artikel wollen wir Dir zeigen, wie unsere Website eigentlich entstanden ist. Vom Konzept über die Entwicklung bis hin zum Hosting. Wir nehmen Dich mal „Behind the scenes“ und zeigen Dir, was dabei alles so passiert.

💡 Mehr erfahren!

Du möchtest auf dem Laufenden bleiben und regelmäßig Tipps von uns erhalten, die Dir weiterhelfen? Dann abonniere unser #QbitOneMagazin und verpasse nichts mehr!

Deine Anmeldung konnte nicht gespeichert werden. Bitte versuche es erneut.
Deine Anmeldung war erfolgreich.