it-swarm-es.com

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

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 manera de cambiar esta plantilla de correo electrónico predeterminada? También me gustaría cambiar el tema y el remitente.

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

52
mike23

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

    }
}
60
Bainternet

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 en el correo electrónico enviado a Admin (puede pegar esto en el tema 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;
}
19
Edu Wass

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

si no lo hace ahora para hacer un plugin para esto solo use este enlace

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

3
Erez Lieberman