Drupal - Personalizar el email de un webform específico

drupal.jpg
Solucionex
06
Nov 15

Hoy vamos a escribir sobre cómo podemos personalizar el email que recibimos con los datos de un formulario creado con el módulo Webform en Drupal 7.

Partimos desde el punto en que tenemos ya creado el webform con los campos que nos interesan y configurados como queremos.

Por defecto recibimos los datos del formulario según configuremos el apartado de "Correos electrónicos" dentro del apartado "Formulario web" del webform.

Webform - Configuración Correo Electrónico

Según la configuración por defecto que nos viene el email que recibiremos nos envía lo siguente:

Webform - Plantilla de correo electrónico

Tenemos la opción de poder modificar lo que queremos que se reciba escribiéndolo directamente en el campo que viene predefinido, por ejemplo, añadiendo un texto que recibiremos siempre, eliminando el "Enviado por el usuario:", ...

Webform - Plantilla de correo electrónico modificada

Esto está muy bien, pero si queremos ir más allá de lo que nos permite este campo tendríamos que hacer lo siguiente:

  • PASO 1:
    Buscar en la carpeta "sites>all>modules>webform>templates" el archivo webform-mail.tpl.php y lo copiamos a la carpeta de templates de nuestro theme o subtheme, renombrándola como webform-mail-[tid].tpl.php donde el [tid] es el id del webform que queremos personalizar.
  • PASO 2:
    Vemos el código del tpl que tenemos por defecto del del módulo webform y hacemos las modificaciones que queramos teniendo en cuenta que aquí ya podemos usar php, html, ... según necesitemos.
  • PASO 3:
    Hasta aquí todo muy bien y fácil, solo nos queda vaciar la caché para que drupal coja este nuevo tpl.
    ¡Pero nos podemos llevar la sorpresa al probarlo y ver que no funciona!
    El motivo es muy simple, pero que si no te fijas te puedes volver loco intentando entender por qué no usa tu tpl para el mail que se envía.
    Se debe a que, en el momento que hemos modificado algo en el campo que vimos antes de la "Plantilla de Correo Electrónico" que nos ofrece la configuración del webform, ya nos cambia a Plantilla personalizada, por lo tanto, drupal ya no usará el tpl nuestro, sino que se basará en lo que tengamos en este campo de configuración, y no es tan difícil que en cualquier momento escribiéramos un simple espacio.
    Por lo tanto, simplemente tenemos que asegurarnos que en la configuración tengamos marcado "Plantilla por defecto" y ya nos funcionará. Webform - Cambio Plantilla de correo electrónico modificada

Espero que os sirva si os encontráis alguna vez con este problemilla.