Cómo podemos evitar tanto spam en los formularios de elementor, ya conocemos el Captcha y el honeypot, incluso en campo numérico de suma.
Hoy os traigo una función básica que evita en gran medida el envió de spam mediante los formularios de elementor.
// Permite el procesamiento solo para un formulario específico de Elementor
add_filter('elementor_pro/forms/new_record', function($record, $handler) {
// Reemplaza 'nombre_del_formulario' con el nombre real de tu formulario en Elementor
$nombre_del_formulario = 'nombre_del_formulario';
// Verifica si el formulario actual tiene el nombre esperado
if ($handler->get_name() === $nombre_del_formulario) {
// Reemplaza 'campo_oculto' con el nombre real de tu campo oculto
$campo_oculto = 'campo_oculto';
// Verifica si el campo oculto está vacío
if (empty($_POST[$campo_oculto])) {
return $record;
}
// Si el campo oculto está lleno, no detengas el procesamiento del formulario
return null;
}
// Permite el procesamiento predeterminado para otros formularios
return $record;
}, 10, 2);
Como podréis apreciar, este script genera un campo oculto que si se rellena corta la instrucción de envió en la función de elementor y evita la propagación de mail spam.
Eso esto, espero haber sido de inspiración para otros proyectos.