Cómo Crear Un Webform Handler Personalizado en Drupal

Modifica el comportamiento de envío del formulario de una manera sencilla

Sergio Guardiola Herrador
3 min readAug 29, 2024
Photo by Rubaitul Azad on Unsplash

Cuando se utilizan webforms en Drupal, el comportamiento predeterminado no permite comprobar si se ha enviado un correo electrónico o no. Por un lado, se crea y almacena el envío del formulario; por otro, se envía el correo electrónico. Son procesos desacoplados.

Pero, como fue mi caso, tal vez necesites hacer ambas cosas simultáneamente. Todo lo que tienes que hacer es crear tu propio handler y reemplazarlo con el existente en tu webform.

Para ello, debes crear un módulo personalizado (o editar uno existente) y crear un archivo CustomEmailHandler.php (puedes poner otro nombre, pero tiene que ser el mismo que el nombre de la clase) en custom_module/src/Plugin/WebformHandler (reemplazando custom_module con el nombre de tu módulo).

Como puedes ver en este handler personalizado, está creando dos campos en la configuración del handler para cambiar los mensajes de confirmación y error.

<?php

namespace Drupal\custom_module\Plugin\WebformHandler;

use Drupal\webform\Plugin\WebformHandlerBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\webform\WebformSubmissionInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use…

--

--

Sergio Guardiola Herrador

I write articles in English and Spanish, mostly about programming, technology, travel, money, investing. You can find me here: https://sergioguardiola.net