Jak mogę zmienić szablon e-maila dla nowego użytkownika?

10

Po dodaniu nowego klienta wiadomość e-mail trafia do nowego użytkownika w tym formacie:

From: WordPress [wordpress@siteurl.com]
Subject: [site name] Your user name and password
Message:
         username: user
         Password: password
         siteurl.com/wp-login.php

Teraz chcę zmienić ten format w ten sposób:

From: My Site Name [info@siteurl.com]
Subject: siteurl.com customer account activated
Message:
       Your customer account has been activated.

       Your Login credentials are:

       Username: user email
       Password: password

       Thanks,
       abcd

Próbowałem tej odpowiedzi, ale nie działa.

W jaki sposób mogę to zrobić?

deemi-D-nadeem
źródło

Odpowiedzi:

17

Od 2018 r. Użytkownicy:

Odpowiedź Davida Garda nadal działa, ale jest stara i istnieje nowy lepszy / czystszy sposób na to (już nie potrzebujesz wtyczki).

Od WordPress 4.9.0 istnieją nowe filtry, których można użyć do dostosowania e-maili rejestracyjnych:

Przykład użycia w wiadomości e-mail wysłanej do administratora (możesz wkleić to w pliku functions.php motywu ):

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;
}
Edu Wass
źródło
7

Wiadomość e-mail z powiadomieniem nowego użytkownika jest tworzona i wysyłana przez funkcję wp_new_user_notification()znajdującą się w wp-obejmuje / plugable.php

W tej funkcji nie ma żadnego haka filtru, który pozwoli ci manipulować wyjściem wiadomości e-mail, jednak możesz oczywiście zastąpić dowolną funkcję podłączalną za pomocą wtyczki.

Uwaga - możesz nadpisywać funkcje wtykowe tylko z poziomu wtyczki, a nie z motywu.

Zobacz tutaj, aby uzyskać więcej informacji na temat funkcji wtykowych i pełną listę dostępnych - http://codex.wordpress.org/Pluggable_Functions

Ten kod utworzy wtyczkę, która będzie używana zamiast tej w wp-include / plugable.php (zapisz go we własnym pliku w wp-content / plugins / ).

Nie dostosowałem go dla ciebie, ale powinno cię to sprowadzić.

<?php
/**
 * Plugin Name: Custom new user notification email
 * Description: Overwrites the pluggable 'wp_new_user_notification()' plugin to allow the sending of a custom email
 * Author: David Gard
 * Version: 1.0
 */

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Email login credentials to a newly-registered user
 *
 * A new user registration notification is also sent to admin email.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        User ID.
 * @param string $plaintext_pass Optional. The user's plaintext password. Default empty.
 */
function wp_new_user_notification($user_id, $plaintext_pass = ''){

    $user = get_userdata($user_id);

    // The blogname option is escaped with esc_html on the way into the database in sanitize_option
    // we want to reverse this for the plain text arena of emails.
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

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

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

    if ( empty($plaintext_pass) )
        return;

    $message  = sprintf(__('Username: %s'), $user->user_login) . "\r\n";
    $message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
    $message .= wp_login_url() . "\r\n";

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

}
endif;
David Gard
źródło
1

Jeśli chodzi o konfigurację wielostanowiskową, można to skonfigurować za pomocą szablonu skonfigurowanego w bazie danych w 2 sekcjach:

Powitalny e-mail

i

Powitalny e-mail użytkownika

http: //yoursite/wp-admin/network/settings.php

Możesz go dostosować do własnych upodobań.

Richard Dinh
źródło