Los mensajes de spam son un problema común en Contact Form 7. Inundan tu bandeja de entrada con contenido irrelevante, comprometen la seguridad y pueden dañar la credibilidad de tu negocio. Una forma sencilla de combatir esto es añadir un código de validación en PHP.

El fragmento de código a continuación bloquea eficazmente cualquier envío de formulario que incluya las palabras definidas como «spam» en el campo de texto «your-message». Si necesitas añadir o eliminar palabras de la lista de spam, simplemente actualiza el array $spam_words.

// Añadir acción para el hook de validación
add_action('wpcf7_validate_textarea', 'custom_textarea_validation_filter', 10, 2);

function custom_textarea_validation_filter($result, $tag) {
    // Obtener la entrada del formulario
    $form_input = $_POST[$tag->name];

    // Definir palabras de spam
    $spam_words = array('spam', 'viagra', 'cialis', 'xanax', 'loan', 'credit', 'claim', 'won', 'selected', 'congratulations');

    // Verificar si alguna palabra de spam existe en la entrada
    foreach($spam_words as $spam_word) {
        if(stripos($form_input, $spam_word) !== false) {
            // Añadir error de validación
            $result->invalidate($tag, 'Por favor, elimine palabras inapropiadas de su mensaje.');
            break;
        }
    }

    return $result;
}

Pasos para Implementar el Código:

  1. Abre tu archivo functions.php del tema activo.
  2. Copia y pega el código proporcionado.
  3. Actualiza el array $spam_words con las palabras que deseas bloquear.
  4. Guarda los cambios y prueba tu formulario de Contact Form 7.

Con esta simple validación, puedes reducir significativamente la cantidad de spam que llega a través de tu formulario de contacto.

por wp-admin