Hola, 😊
Tengo un problema con los formularios.
En la web se utiliza "contact form7" como plugin de envío formularios.
Tengo puesto reCaptcha también, pero la cuestión es que no paro de recibir formularios con contenido no deseado o sospechoso, no me refiero filtar o moderar los de comentarios, eso no, si no al / los formularios que tenemos todos en la web, como el de la página contactar.
Me gustaría evitar recibir, de alguna otra forma efectiva, los formularios enviados desde contactar (contact form 7) que contengan, las típicas palabras...
Las he puesto en una imagen, porque antes las puse escritas y el servidor vuestro me ha bloqueado varias veces por querer enviar esas palabras en el formulario (precisamente me gustaría algo así también) he tenido que abrir un ticket para que me desbloquearan.
Bueno, supongo que ya me entendéis... quiero ir añadiendo yo esas palabras que contienen esos formularios que envían y que de buen seguro son no emails deseados, es que es tremendo, vamos! 😥
Creo que solo evitando recibir esos formularios ya ganaría en calidad de vida y tiempo, de no tener que andar mirando y eliminándolos.
Por otro lado, esa discriminación o filtro, se podría también hacer para los emails?
Quizás también es posible hacer una lista de palabras no deseadas, no se... en el WePanel, para evitar recibir también esos correos email no deseados,qu emandan usando el email (no el formulario) filtrando por esas mismas palabras.
Creo que se ganaría mucho.
Muchas gracias por vuestra ayuda por adelantado.
Ana 😊
Contenido solo visible a usuarios registrados
Hola Ana.
Puedes añadir un Snippet en el archivo functions.php o si utilizas un plugin para añadir código como puede ser Code snippets
function cf7_block_unwanted_words($result, $tag) {
// Palabras prohibidas
$blocked_words = array('sex', 'sexo', 'casino', 'porn', 'viagra');
// Obtén el nombre del campo
$name = $tag['name'];
// Campos que quieres validar (ajusta según tus campos)
$fields_to_check = array('your-message', 'your-name', 'your-subject'); // Ajusta los nombres de tus campos
if (in_array($name, $fields_to_check)) {
// Obtén el valor del campo enviado
$value = sanitize_text_field($_POST[$name]);
// Busca palabras bloqueadas
foreach ($blocked_words as $word) {
if (stripos($value, $word) !== false) {
$result->invalidate($tag, 'Tu mensaje contiene palabras no permitidas.');
break;
}
}
}
return $result;
}
add_filter('wpcf7_validate_text', 'cf7_block_unwanted_words', 10, 2);
add_filter('wpcf7_validate_textarea', 'cf7_block_unwanted_words', 10, 2);
En la variable $blocked_words puedes definir la lista de palabras no deseadas que quieres que bloquee, puedes añadir o eliminar palabras según lo que necesites.
Si se detecta una palabra no deseada, el formulario no se enviará y se mostrará el mensaje de error: "Tu mensaje contiene palabras no permitidas".
evitar recibir también esos correos email no deseado
Puedes crear filtros para bloquear los correos que contengan esas palabras:
En la condición seleccionas Contiene y vas añadiendo los filtros con las palabras no deseadas
También puedes activar el Filtro Antispam
-> Filtro Antispam (Mailscanner)
Un saludo
Hola Pepe,
Espero que estés muy bien. 😊
Perfecto! Voy a poner ese código y también hacer lo que me dices en el wepanel.
A ver si con todo esto se consigue filtrar y evitar todo lo que entra.
Hay bastante código... espero hacerlo bien, si tengo algún problemilla te lo digo.
Muchas gracias por tu gran ayuda! Como siempre!.
Cuídate mucho pepe! Un abrazo grande!
Ana 😊 🤗
Hola Ana,
Gracias a ti, es un placer para nosotros siempre poder ayudarte.
Quedamos atentos como ha ido todo
Un Saludo 😊