¿Cómo cambiar el correo electrónico de registro predeterminado? (plugin y / o no plugin)

50

Después de un nuevo registro de usuario, WP envía un correo electrónico con el inicio de sesión / contraseña y un enlace a la página de inicio de sesión.

¿Hay alguna forma de cambiar esta plantilla de correo electrónico predeterminada? También me gustaría cambiar el tema y el remitente.

Editar: para cualquier persona interesada, aquí es una solución de complemento.

    
pregunta mike23 21.04.2011 - 12:24

3 respuestas

60

el nuevo correo electrónico del usuario se envía mediante la función wp_new_user_notification() , que es conectable, lo que significa que puede sobrescribirlo:

// 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);

    }
}
    
respondido por el Bainternet 21.04.2011 - 15:15
16

Para usuarios de 2018 y posteriores:

Desde WordPress 4.9.0 hay nuevos filtros que puedes usar para esto (ya no necesitas un complemento):

Ejemplo de uso del correo electrónico enviado a Admin (puede pegar esto en functions.php de su 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;
}
    
respondido por el Edu Wass 03.01.2018 - 12:54
3

Esto no funcionará en functions.php, necesitas poner este código dentro del complemento.

si no hace ahora un complemento para esto, solo use este enlace

no olvide tomar el código de actualización de esta función desde aquí

    
respondido por el Erez Lieberman 17.09.2015 - 15:45

Lea otras preguntas en las etiquetas