Come modificare l'e-mail di registrazione predefinita? (plugin e / o non plugin)


54

Dopo la registrazione di un nuovo utente, WP invia un'e-mail con il login / password e un collegamento alla pagina di accesso.

C'è un modo per cambiare questo modello di posta elettronica defaut? Vorrei anche cambiare argomento e mittente.

Modifica: per chiunque sia interessato, ecco una soluzione plugin.

Risposte:


62

l'e-mail del nuovo utente viene inviata utilizzando la wp_new_user_notification()funzione che è collegabile, il che significa che è possibile sovrascriverla:

// 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 Non riesco a farlo funzionare, l'ho aggiunto al mio file delle funzioni, ma l'e-mail standard continua a essere inviata. Sono su più siti, ma non dovrebbe importare, vero?

6
OK capito adesso, sembra funzionare solo come un plugin separato, non quando lo aggiungi al tuo functions.phpfile. Ora funziona perfettamente, grazie ancora per quel bel pezzo di codice!

Funziona anche per multisito? Vedo che il multisito ha un sacco di funzioni all'interno di ms-Functions.php per l'invio di e-mail di notifica.
Sisir,

wpmu_signup_user_notificationPenso che usi multisito .
Wyck,

Questa risposta ha diversi anni. La risposta accettata non funziona per me. (L'aggiunta a funzioni.php non ha alcuna differenza per nessuna delle e-mail inviate quando un nuovo utente si registra.) Devo pubblicare una nuova domanda?
Kit Johnson,

23

Per gli utenti dal 2018 in poi:

A partire da WordPress 4.9.0 ci sono nuovi filtri che puoi usare per questo (non è più necessario un plugin):

Esempio di utilizzo dell'e-mail inviata all'amministratore (puoi incollarlo nelle funzioni.php del tuo tema ):

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;
}

In alternativa, è possibile utilizzare i filtri wp_new_user_notification_emaile wp_new_user_notification_email_admin. Gli interessati possono consultare la documentazione completa e il codice sorgente di wp_new_user_notification().
Pete,

Grazie Pete, sembra che sia stato introdotto in 4.9.0 e sembra una soluzione migliore.
Edu Wass,

3

Questo non funzionerà su Functions.php, devi inserire questo codice all'interno del plugin.

se non fai ora un plugin per questo, usa questo link

non dimenticate di prendere il codice di aggiornamento di questa forma funzione qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.