Wie ändere ich die Standard-Registrierungs-E-Mail? (Plugin und / oder Nicht-Plugin)


54

Nach einer neuen Benutzerregistrierung sendet WP eine E-Mail mit dem Login / Passwort und einem Link zur Login-Seite.

Gibt es eine Möglichkeit, diese Standard-E-Mail-Vorlage zu ändern? Ich möchte auch das Thema und den Absender ändern.

Edit: Für alle Interessierten gibt es hier eine Plugin-Lösung.

Antworten:


62

Die neue Benutzer-E-Mail wird mit einer wp_new_user_notification()Funktion gesendet, die steckbar ist und die Sie überschreiben können:

// Redefine user notification function
if ( !function_exists('wp_new_user_notification') ) {
    function wp_new_user_notification( $user_id, $plaintext_pass = '' ) {
        $user = new WP_User($user_id);

        $user_login = stripslashes($user->user_login);
        $user_email = stripslashes($user->user_email);

        $message  = sprintf(__('New user registration on your blog %s:'), get_option('blogname')) . "\r\n\r\n";
        $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
        $message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";

        @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), get_option('blogname')), $message);

        if ( empty($plaintext_pass) )
            return;

        $message  = __('Hi there,') . "\r\n\r\n";
        $message .= sprintf(__("Welcome to %s! Here's how to log in:"), get_option('blogname')) . "\r\n\r\n";
        $message .= wp_login_url() . "\r\n";
        $message .= sprintf(__('Username: %s'), $user_login) . "\r\n";
        $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n\r\n";
        $message .= sprintf(__('If you have any problems, please contact me at %s.'), get_option('admin_email')) . "\r\n\r\n";
        $message .= __('Adios!');

        wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message);

    }
}

@Bainternet Ich kann das scheinbar nicht zum Laufen bringen. Ich habe es zu meiner Funktionsdatei hinzugefügt, aber die Standard-E-Mail wird weiterhin gesendet. Ich bin auf Multisite, aber das sollte doch egal sein, oder?

6
OK, jetzt verstanden, es scheint nur als separates Plugin zu funktionieren, nicht wenn Sie es zu Ihrer functions.phpDatei hinzufügen . Jetzt funktioniert es perfekt, nochmals vielen Dank für diesen schönen Code!

Funktioniert es auch für mehrere Standorte? Ich kann sehen, dass multisite eine Reihe von Funktionen in ms-functions.php zum Versenden von Benachrichtigungs-E-Mails hat.
Sisir

Multisite-Anwendungen, wpmu_signup_user_notificationdenke ich.
Wyck

Diese Antwort ist mehrere Jahre alt. Die akzeptierte Antwort funktioniert bei mir nicht. (Das Hinzufügen zu functions.php hat keinen Einfluss auf die E-Mails, die gesendet werden, wenn sich ein neuer Benutzer registriert.) Soll ich eine neue Frage stellen?
Kit Johnson

22

Für Benutzer ab 2018:

Seit WordPress 4.9.0 gibt es neue Filter, die Sie dafür verwenden können (kein Plugin mehr erforderlich):

Verwendungsbeispiel für eine E-Mail an Admin (Sie können dies in die functions.php Ihres Themas einfügen ):

add_filter( 'wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3 );

function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
    $wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your blog %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}

Alternativ könnte man die Filter wp_new_user_notification_emailund wp_new_user_notification_email_adminverwenden. Interessenten können die Besuche vollständige Dokumentation und Quellcode für wp_new_user_notification().
Pete

Vielen Dank, Pete, so wie es aussieht, wurde es in 4.9.0 eingeführt und sieht nach einer besseren Lösung aus.
Edu Wass

3

Dies funktioniert nicht mit functions.php, Sie müssen diesen Code in das Plugin einfügen.

Wenn Sie jetzt kein Plugin dafür erstellen möchten, verwenden Sie einfach diesen Link

Vergessen Sie nicht, den Update-Code dieser Funktionsform hier zu übernehmen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.