Como alterar o e-mail de registro padrão? (plugin e / ou não plugin)

54

Após um novo registro de usuário, o WP envia um email com o login / senha e um link para a página de login.

Existe uma maneira de alterar esse modelo de email padrão? Eu também gostaria de mudar de assunto e remetente.

Edit: Para qualquer pessoa interessada, aqui está uma solução de plug-in.

mike23
fonte

Respostas:

62

o novo email do usuário é enviado usando a wp_new_user_notification()função plugável, o que significa que você pode substituí-lo:

// 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
fonte
@Bainternet Parece que não consigo fazer isso funcionar, adicionei isso ao meu arquivo de funções, mas o email padrão continua sendo enviado. Estou no multisite, mas isso não deve importar, certo?
6
OK, entendi agora, ele parece funcionar apenas como um plug-in separado, não quando você o adiciona ao seu functions.phparquivo. Agora funciona perfeitamente, obrigado novamente por esse belo pedaço de código!
Também funciona para multisite? Eu posso ver que o multisite tem várias funções dentro do ms-functions.php para enviar um email de notificação.
Sisir 28/07
Usos multissite, wpmu_signup_user_notificationeu acho.
Wyck
Esta resposta tem vários anos. A resposta aceita não funciona para mim. (Adicioná-lo ao functions.php não faz diferença para nenhum dos emails enviados quando um novo usuário se registrar.) Devo postar uma nova pergunta?
Kit Johnson
23

Para 2018 e seguintes usuários:

Desde o WordPress 4.9.0, existem novos filtros que você pode usar para isso (não é mais necessário um plug-in):

Exemplo de uso no email enviado ao Admin (você pode colá-lo nas funções do seu tema.php ):

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
fonte
Alternativamente, pode-se usar os filtros wp_new_user_notification_emaile wp_new_user_notification_email_admin. Os interessados podem conferir o documentação completa e código fonte para wp_new_user_notification().
Pete
Obrigado Pete, parece que foi introduzido na 4.9.0 e parece uma solução melhor.
Edu Wass
3

Isso não funcionará no functions.php, você precisa colocar esse código dentro do plugin.

se você não faz agora um plugin para isso, basta usar este link

não se esqueça de pegar o código de atualização desta forma função aqui

Erez Lieberman
fonte