¿Cómo puedo cambiar la plantilla de correo electrónico para nuevos usuarios?

6 feb 2015, 16:59:48
Vistas: 59.1K
Votos: 11

Cuando agrego un nuevo cliente, el correo electrónico se envía al nuevo usuario en este formato:

From: WordPress [wordpress@siteurl.com]
Subject: [site name] Tu nombre de usuario y contraseña
Message:
         usuario: usuario
         Contraseña: contraseña
         siteurl.com/wp-login.php

Ahora quiero cambiar este formato a este:

From: Nombre de Mi Sitio [info@siteurl.com]
Subject: siteurl.com cuenta de cliente activada
Message:
       Tu cuenta de cliente ha sido activada.

       Tus credenciales de acceso son:

       Usuario: correo del usuario
       Contraseña: contraseña

       Gracias,
       abcd

Intenté esta respuesta pero no funciona.

¿Cómo puedo hacer esto?

0
Todas las respuestas a la pregunta 3
0
21

Para usuarios de 2018 en adelante:

La respuesta de David Gard aún funciona pero está desactualizada y existe una forma nueva/mejor/más limpia de hacer esto (ya no se necesita un plugin).

Desde WordPress 4.9.0 hay nuevos filtros que puedes usar para personalizar los emails de registro:

Ejemplo de uso para el email enviado al Administrador (puedes pegar esto en el functions.php de tu 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] Nuevo usuario %s registrado.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) se ha registrado en tu blog %s.", $user->user_login, $user->user_email, $blogname );
    return $wp_new_user_notification_email;
}
2 ene 2018 21:30:59
0

El correo electrónico de notificación para nuevos usuarios es creado y enviado por la función wp_new_user_notification(), ubicada en wp-includes/plugable.php

No hay un filtro dentro de esta función que permita manipular el contenido del correo electrónico, sin embargo puedes sobrescribir cualquier función "pluggable" mediante un plugin.

Nota - Solo puedes sobrescribir funciones pluggables desde un plugin, no desde tu tema.

Consulta aquí para más detalles sobre funciones pluggables y una lista completa de las disponibles - http://codex.wordpress.org/Pluggable_Functions

Este código creará el plugin que se usará en lugar del que está en wp-includes/plugable.php (guárdalo en su propio archivo en wp-content/plugins/).

No lo he personalizado para ti, pero esto debería ayudarte a empezar.

<?php
/**
 * Plugin Name: Correo personalizado de notificación para nuevos usuarios
 * Description: Sobrescribe la función pluggable 'wp_new_user_notification()' para permitir el envío de un correo personalizado
 * Author: David Gard
 * Version: 1.0
 */

if ( !function_exists('wp_new_user_notification') ) :
/**
 * Pluggable - Envía las credenciales de inicio de sesión a un usuario recién registrado
 *
 * También se envía una notificación de registro de nuevo usuario al correo del administrador.
 *
 * @since 2.0.0
 *
 * @param int    $user_id        ID del usuario.
 * @param string $plaintext_pass Opcional. La contraseña en texto plano del usuario. Por defecto vacío.
 */
function wp_new_user_notification($user_id, $plaintext_pass = ''){

    $user = get_userdata($user_id);

    // La opción blogname se escapa con esc_html al guardarse en la base de datos en sanitize_option
    // queremos revertir esto para el texto plano de los correos electrónicos.
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $message  = sprintf(__('Nuevo registro de usuario en tu sitio %s:'), $blogname) . "\r\n\r\n";
    $message .= sprintf(__('Nombre de usuario: %s'), $user->user_login) . "\r\n\r\n";
    $message .= sprintf(__('Correo electrónico: %s'), $user->user_email) . "\r\n";

    @wp_mail(get_option('admin_email'), sprintf(__('[%s] Nuevo registro de usuario'), $blogname), $message);

    if ( empty($plaintext_pass) )
        return;

    $message  = sprintf(__('Nombre de usuario: %s'), $user->user_login) . "\r\n";
    $message .= sprintf(__('Contraseña: %s'), $plaintext_pass) . "\r\n";
    $message .= wp_login_url() . "\r\n";

    wp_mail($user->user_email, sprintf(__('[%s] Tu nombre de usuario y contraseña'), $blogname), $message);

}
endif;
6 feb 2015 18:58:27
0

Si te refieres a una configuración multisitio, esto es configurable a través de una plantilla que se establece en la base de datos bajo 2 secciones:

Correo de Bienvenida

y

Correo de Bienvenida al Usuario

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

Puedes personalizarlo a tu gusto.

30 ago 2017 23:02:18