Modificar el mensaje de registro en BuddyPress

Modificar el mensaje de registro en BuddyPress

Hay veces que el cliente nos pide personalizar también los emails que reciben los usuarios en BuddyPress (cosa lógica).

En esta ocasión vamos a hacer uso de un filtro, add_filter( 'bp_core_signup_send_validation_email_message', 'nombre_de_nuestra_funcion', 10, 3 ); para poder “interceptar” los parámetros que intervienen en ese hook y cambiarlos.

El código que pongo en el ejemplo es sólo para modificar el mensaje. Le he añadido otro hook dentro de la función para que el mensaje sea en HTML en lugar de en texto plano y poder darle forma mejor. Para eso, creamos una pequeña función antes que llamaremos desde la otra función para que sólo se cargue al registrarse un usuario:

<br />
&lt;?php<br />
function set_bp_message_content_type() {<br />
    return 'text/html';<br />
}<br />
?&gt;<br />

Ya le hemos dicho que el contenido del email que enviemos llamando a esa función sea en HTML. Ahora vamos al meollo:

<br />
&lt;?php<br />
add_filter( 'bp_core_signup_send_validation_email_message', 'ainder_custom_buddypress_activation_message', 10, 3 );</p>
<p>function ainder_custom_buddypress_activation_message( $message, $user_id, $activate_url ) {<br />
    add_filter( 'wp_mail_content_type', 'set_bp_message_content_type' );<br />
    $user = get_userdata( $user_id );</p>
<p>    return 'Hola ,<br />
            &lt;br&gt;&lt;br&gt;<br />
            ¡Gracias por registrarte! Tus claves de acceso son:<br />
            &lt;br&gt;&lt;br&gt;<br />
            Nombre de usuario: &lt;strong&gt;' . $user-&gt;user_login . '&lt;/strong&gt;<br />
            &lt;br&gt;&lt;br&gt;<br />
            Contraseña: La que usaste para el registro. (Por seguridad, no podemos enviártela por e-mail)<br />
            &lt;br&gt;&lt;br&gt;<br />
            Pero antes de iniciar sesión en nuestra red, activa tu cuenta pinchando en el siguiente enlace:<br />
            &lt;br&gt;&lt;br&gt;<br />
            &lt;a href=&quot;' . $activate_url . '&quot;&gt;' . $activate_url . '&lt;/a&gt;<br />
            &lt;br&gt;&lt;br&gt;<br />
            Y si además quieres suscribirte a nuestro &lt;strong&gt;newsletter&lt;/strong&gt; a pie de web, recibirás más &lt;strong&gt;contenidos, consejos y curiosidades&lt;/strong&gt; que te ayudarán en esta aventura.<br />
            &lt;br&gt;&lt;br&gt;<br />
            Gracias,<br />
            &lt;br&gt;&lt;br&gt;<br />
            &lt;strong&gt;El equipo de ' . get_bloginfo( &quot;name&quot; ) . '.&lt;/strong&gt;';<br />
}<br />
?&gt;<br />

Si os fijáis, hemos llamado a la primera función (la pequeña) en add_filter( 'wp_mail_content_type', 'set_bp_message_content_type' ); para hacer nuestro email en HTML.
Los números del filtro (, 10, 3 ) corresponden el primero al orden de ejecución y el segundo al número de parámetros que admite la función. En este caso los parámetros son tres: $message(contenido del mensaje), $user_id(ID del usuario que recibirá el email), $activate_url(URL con un token de activación)

Pues eso es todo en esta entrada. Espero que la pongáis en práctica y recordad: Sólo se aprende rompiendo y destripando el código. ¡Practica!.

Compartidlo si lo veis útil.

4 Comentarios

  1. Juan Enriquez Autor julio 13, 2016 (5:53 pm)

    ¿En qué archivo se debería editar y aumentar esas funciones?

    Responder a Juan Enriquez
    • Jose Lazo Autor agosto 19, 2016 (1:26 pm)

      Hola Juan,
      Lamento haber tardado tanto en contestar.

      Siempre en el archivo functions.php de tu tema. Si estás usando un tema premium, te recomiendo que crees un ChildTheme del mismo para no perder las modificaciones que hagas.
      En el enalce anterior tienes la docu y aquí tienes el código “por defecto” de la creación de un ChildTheme

      Responder a Jose Lazo
  2. Jarm Autor noviembre 17, 2016 (4:50 pm)

    Cuando me registro el sistema te envia un email al correo con el que me registre..
    como puedo cambiar el correo del quien envia “wordpress@MIDOMINIO.COM”??

    Responder a Jarm
    • Jose Lazo Autor noviembre 22, 2016 (5:07 pm)

      Hola Jarm,

      Puedes usar un servicio de SMPT (el de google vale) con el plugin Easy SMPT.

      Otra opción es modificar las cabeceras desde el functions.php de tu teme o tu tema hijo así:

      add_filter('wp_mail_from', 'new_mail_from');
      add_filter('wp_mail_from_name', 'new_mail_from_name');
      function new_mail_from($old) {
      return 'nombre@tudominio.es';
      }
      function new_mail_from_name($old){
      return 'Nombre que quieras poner al remitente';
      }

      Espero que te sirva de algo. Un saludo.

      Responder a Jose Lazo

Deje un Comentario

*Campos obligatorios Por favor valide los campos obligatorios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.