• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Personalizar email de registro de nuevo usuario en WordPress

Personalizar email de registro de nuevo usuario en WordPress

Personalizar email de registro de nuevo usuario en WordPress

[ 12 marzo 2020 ] [ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

dashboard mejoras

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Cuando se registra un nuevo usuario, por defecto WordPress envía un mensaje de activación al usuario y también un correo al administrador del sitio, en este artículo aprenderás cómo modificar estos correos, cambiando el nombre del remitente, correo, asunto e incluso contenido.

 

Generalidades

Existen diferentes plugins para realizar la personalización de correos que se envían tras el registro de un usuario, sin embargo en este artículo aprenderás cómo realizarlo a través de código.

 

Personalizar Email Enviado al Usuario

Al final lo que queremos lograr es algo similar a lo que se muestra en la siguiente imagen:

correo activación de usuario

 

Para esto usaremos el siguiente código:

add_filter( 'wp_new_user_notification_email', 'dcms_new_user_email', 10, 3 );

function dcms_new_user_email( $wp_new_user_email, $user, $blogname ) {
	$headers = array('From: Tu Empresa <admin@tuempresa.site>');
	$subject = sprintf( 'Te has registrado en [%s].', $blogname );

	$wp_new_user_email['headers'] = $headers;
	$wp_new_user_email['subject'] = $subject;

	return $wp_new_user_email;
}
Puedes colocar este código al final de tu archivo functions.php de tu child-theme o a través de un plugin de Snippets
Sólo hemos cambiado el nombre y correo del remitente y el asunto, pero también es posible cambiar el texto del mensaje con $wp_new_user_email[‘message’]

 
En el código anterior:

  • Utilizamos el Hook wp_new_user_notification_email que hace referencia a la función dcms_new_user_email
  • La función acepta tres parámetros, el primero de ellos es un array asociativo que contiene los datos del email a enviarse
  • Para este caso sólo cambiaremos las cabeceras y el asunto, por lo tanto definimos dos variables $headers y $subject
  • Para cambiar el nombre y correo del remitente usamos la variable $headers, la cual será posteriormente asignado al parámetro del array asociativo
  • Al final devolvemos el parámetro $wp_new_user_email modificado

 
 

Personalizar Email Enviado al Administrador

Al final lo que queremos lograr es algo similar a la siguiente imagen:

antes y después correo enviado al administrador

 

Para esto usaremos el siguiente código:

add_filter( 'wp_new_user_notification_email_admin', 'dcms_admin_new_user_email', 10, 3 );

function dcms_admin_new_user_email( $wp_new_user_email, $user, $blogname ) {
	$headers = array('From: Tu Empresa <admin@tuempresa.site>');
	$subject = sprintf( '[%s] Nuevo usuario registrado.', $blogname );
	$message = sprintf( "%s ( %s ) \n\r ha sido registrado en el sitio %s.",
	$user->user_login, $user->user_email, $blogname );

	$wp_new_user_email['headers'] = $headers;
	$wp_new_user_email['subject'] = $subject;
	$wp_new_user_email['message'] = $message;

	return $wp_new_user_email;
}
Puedes colocar este código al final de tu archivo functions.php de tu child-theme o a través de un plugin de Snippets
En este código hemos cambiado el nombre y correo del remitente asi como el asunto y el mensaje, todo se asigna al final a la variable $wp_new_user_email

 
En el código anterior:

  • Utilizamos el Hook wp_new_user_notification_email_admin que hace referencia a la función dcms_admin_new_user_email
  • La función acepta tres parámetros, el primero de ellos es un array asociativo que contiene los datos del email a enviarse
  • Para este caso cambiaremos: las cabeceras, el asunto y el mensaje, por lo tanto definimos tres variables $headers, $subject y $message
  • Para cambiar el nombre y correo del remitente usamos la variable $headers, la cual será posteriormente asignado al parámetro del array asociativo
  • Al final devolvemos el parámetro $wp_new_user_email modificado

 

Conclusión

Tal como has visto, a través de los Hooks y algo de código puedes hacer modificaciones al correo enviado cuando se registra un nuevo usuario en tu sitio web WordPress y de esta manera evitar el uso de un plugin adicional.

 
¿Aún con dudas?, en el siguiente video se detalla los puntos anteriores.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Modificar el mensaje de notificación de comentarios en WordPressModificar el mensaje de notificación de comentarios en WordPress
  • Eliminar el selector de idioma en el acceso a WordPressEliminar el selector de idioma en el acceso a WordPress
  • Cómo usar el Modo de Recuperación de WordPressCómo usar el Modo de Recuperación de WordPress
  • Agregar campos adicionales al perfil de usuarioAgregar campos adicionales al perfil de usuario
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (3 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Daniel

    20 mayo, 2020

    Hola Jhon, que buen artículo. Me quedan par de dudas:
    1.- ¿Cómo se puede agregar también el detalle de la contraseña? De manera que el usuario tengo tanto su Username como la Contraseña que se generó al momento de dar de alta a ese usuario.

    2.- ¿Se pueden personalizar otros aspectos del mensaje? Para que por ejemplo antes de los datos de acceso haya un mensaje como: Hola (nombre del usuario) bienvenido a (web) aquí encontrarás todos los datos para acceder a tu perfil. Solo debes hacer clic en el siguiente enlace y entrar con los datos que te enviamos a continuación. Esto lo digo como ejemplo.

    De antemano muchísimas gracias por tu tiempo. Y de nuevo, muy buen artículo.

    • Jhon Marreros Guzmán

      20 mayo, 2020

      Hola
      1- La contraseña no se muestra, se genera un enlace para cambiar la contraseña, esto lo gestiona el propio WordPress por seguridad.
      2- Si, puedes cambiar el mensaje como lo desees, debes cambiar la variable $message

      Saludos.

  2. diego morales

    8 agosto, 2020

    hola jhon, siempre son bueno tus artículos. Pero esta vez no me funciono el codigo. No se que sera aun cuando lo hago con plugin tampoco funciona.

    • Jhon Marreros Guzmán

      9 agosto, 2020

      Hola, es muy raro, si que debería funcionar, tal vez tienes conflicto con algún otro plugin o con algún código del theme, podrías probarlo en otro sitio y verificar si te sucede lo mismo.

  3. APM

    20 agosto, 2020

    Hola, muchas gracias por la información.

    ¿Tendrás el código para modificar de la misma forma el correo que recibe el usuario al momento de cambiar su contraseña?

    Gracias.

    • Jhon Marreros Guzmán

      22 agosto, 2020

      Hola, de momento no, pero tomo nota para revisar y evaluar hacer un artículo sobre eso.

  4. Diego

    10 octubre, 2020

    Hola Jhon;
    Te comento que gracias a tu tutorial modifique el subject y from de forma exitosa. tambien quise modificar el cuerpo del mensaje pero tengo el problema de que el enlace para restablecer contraseña no me carga correctamente.

    Este es el codigo que puse:

    add_filter( 'wp_new_user_notification_email', 'dcms_new_user_email', 10, 3 );
    
    function dcms_new_user_email( $wp_new_user_email, $user, $blogname ) {
    	$headers = array('From: Diego Perez ');
    	$subject = sprintf( 'Te has registrado en [%s].', $blogname );
    	
    	 /* translators: %s: User login. */
    	$message  = __( 'Gracias por suscribirte a Webejemplo' ) . "\r\n\r\n";
    	$message .= __( 'Aquí los detalles para tu acceso:' ) . "\r\n\r\n";
        $message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "\r\n\r\n";
        $message .= __( 'Para crear tu password, visita la siguiente URL:' ) . "\r\n\r\n";
        $message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user->user_login ), 'login' ) . "\r\n\r\n";
    
    	$wp_new_user_email['headers'] = $headers;
    	$wp_new_user_email['subject'] = $subject;
    	$wp_new_user_email['message'] = $message;
    
    	return $wp_new_user_email;
    

    Y esta la forma en que llega el mensaje:

    Gracias por suscribirte a Webejemplo Aquí los detalles para tu acceso: Correo electrónico: diego102@gmail.com Para crear tu password, visita la siguiente URL: https://webejemplo.com/wp-login.php?action=rp&key=&login=diegoh6

    Como se ve en el enlace para crear el password no me carga el key y eso hace que el enlace sea inválido. Sabes por qué el key no carga? Y tambien mi mensaje sale junto sin espacios de lineas.

    • Jhon Marreros Guzmán

      10 octubre, 2020

      Hola, parece que te falta definir el valor del $key, prueba agregar:
      $key = get_password_reset_key( $user );
      Revisa: https://wordpress.stackexchange.com/questions/306642/customize-wp-new-user-notification-email

  5. jessica

    30 noviembre, 2020

    hola jhon me podria ayudar a mi no me funciono soy novata en esto, me urge hacer esta modificación ,lo estoy haciendo con el plugin y no me funciona .

    • Jhon Marreros Guzmán

      3 diciembre, 2020

      Prueba colocar el código en el archivo functions.php de tu theme.

  6. jessica

    4 diciembre, 2020

    hola jhon lo he intentado como tu lo dices y no pasa nada … esta bien como lo hago

    add_filter( ‘wp_new_user_notification_email’, ‘dcms_new_user_email’, 10, 3 );

    function dcms_new_user_email( $wp_new_user_email, $user, $blogname ) {
    $headers = array(‘From: jessy ‘);
    $subject = sprintf( ‘Te has registrado en [%s].’, $blogname );

    $wp_new_user_email[‘headers’] = $headers;
    $wp_new_user_email[‘subject’] = $subject;

    return $wp_new_user_email;
    }

    un abrazo , agradezco tu respuesta

  7. jessica

    4 diciembre, 2020

    o disculpa jhon, yo lo necesito es para que especialmente el usuario recupere la contraseña, cuando llegue a su correo no salga el nombre de wordprees , la variable es la misma ? disculpa las molestias yo soy nueva en esto agradezco que me ayudaras con el codigo en caso tal que la variable no sea la misma .

  8. jessica

    10 diciembre, 2020

    hola ya pude realizar el cambio, pero, con otro plugin wp welcome editor email . un abrazo.

  9. Sergio Palomo Lara

    4 enero, 2021

    Esta genial el Post.
    Ahora me gustaria agregar una imagen en el cuerpo del mesaje. El logotipo de mi empresa. y no consigo hacerlo.
    Siempre que intento incluir un código me lo pinta tal cual ya sea una <img src="… o un div o lo que sea…

    Muchas gracias de ante mano,
    saludos,
    Sergio

    • Jhon Marreros Guzmán

      6 enero, 2021

      Hola, revisa el siguiente enlace: https://stackoverflow.com/questions/15646187/display-inline-image-attachments-with-wp-mail

  10. Vicenç

    7 marzo, 2021

    Hola Jhon, gracias por el artículo.
    En mi caso, el mail que se envía automáticamente contiene:
    – nombre de usuario
    – contraseña
    – url que lleva a la validación en wordpress.
    ME gustaría que:
    1) no se enviara la contraseña (me parece poco seguro), sino un enlace para introducirla por primera vez o reestablecerla.
    2) la url llevase a mi home y no a wordpress. De esta manera se da más sensación de unidad.

    ¿Alguna ayuda para poder hacerlo?
    Gracias!

    • Jhon Marreros Guzmán

      8 marzo, 2021

      Hola, implica más código, podrías evaluar usar un plugin, revisa por ejemplo: https://es.wordpress.org/plugins/emails-verification-for-woocommerce/

      • Vicenç

        11 marzo, 2021

        Gracias, pero utilizo EDD. ¿Es lo mismo?

        • Jhon Marreros Guzmán

          16 marzo, 2021

          Hola, no lo he probado con EDD, pero el registro es parte del core de WP, pruébalo y me comentas.

  11. Raul

    25 marzo, 2021

    Hola John,
    Una pregunta se podría hacer un mail de alta diferente por Rol de usuario, con textos persolizados en el mail para cada tipo de rol de usuario.

    Un saludo

    • Jhon Marreros Guzmán

      25 marzo, 2021

      Hola, pero el alta siempre va a un rol específico, a menos que lo designes tu desde el backend o al menos que el usuario al registrase tenga la opción de seleccionar el rol. Si hay roles diferentes en el registro si que podría detectarse.

  12. Mario Jiménez Espinoza

    25 abril, 2021

    Saludos estoy usando wp_new_user_notification_email, pero quiero que invoque la plantilla WC_Email_Customer_New_Account de woocomerce, como puedo hacer esto gracias.

    • Jhon Marreros Guzmán

      28 abril, 2021

      En ese caso creo que mejor estiliza el correo de WooCommerce que es el que se usará si lo tienes instalado.

  13. Ross

    14 noviembre, 2022

    Hola! podria ayudarme a obtener el tipo de rol de usuario que estoy creando? para enviarle un mensaje especial a ese rol al crearlo como usuario? por ejemplo que a los de rol “editor” les llegue cierto correo. En mi caso tengo Roles personalizados de los que yo conozco el nombre. gracias!!!

    • Jhon Marreros Guzmán

      15 noviembre, 2022

      Hola, hay un plugin que podría ayudarte, revisa: https://wordpress.org/plugins/bnfw/ , sin embargo evaluaré hacer un futuro artículo sobre esto que comentas.

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Personalizar plantilla para una categoría específica en Woocommerce

Eliminar campo URL de los comentarios de WordPress

Cómo duplicar un Widget en WordPress con Javascript

Cambiando la estructura de menú de WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados