Imagen principal para un tutorial: título 'Cómo evitar envíos duplicados de formularios en WordPress' con una mascota a la izquierda y una ilustración de formularios a la derecha.

¿Cómo evitar que las personas envíen tu formulario de WordPress más de una vez?

Abres tus entradas de WPForms y dos filas parecen idénticas, mismo nombre y dirección de correo electrónico, enviadas con 40 segundos de diferencia. Ahora tienes que averiguar cuál cuenta.

Esa segunda entrada podría ser un navegador reenviando el envío, o alguien participando dos veces a propósito en tu sorteo. Cada causa tiene una solución diferente, por lo que ayuda saber con cuál te enfrentas.

¡Bloquea tus formularios de WordPress ahora! :)

Cómo evitar envíos duplicados de formularios en WordPress

WPForms te ofrece cuatro controles separados que detienen los envíos repetidos y funcionan a diferentes niveles. Tres de ellos provienen del complemento Form Locker, y el cuarto ya está en la configuración general de tu formulario.

Lo que necesitarás

WPForms Pro o superior, ya que Form Locker es un complemento Pro. También querrás un formulario publicado para probar. El método 4 es la excepción y funciona en todas las versiones de WPForms, incluida la gratuita.

Paso 1: Instala el plugin WPForms Pro

WPForms es un creador de formularios de arrastrar y soltar con más de 2100 plantillas, por lo que los formularios en los que las entradas duplicadas causan daños ya están creados para ti. Esto cubre un formulario de participación en concursos y todo lo que necesitarías para organizar un sorteo en tu sitio.

Lo que más me gusta de WPForms para este trabajo en particular es que no necesitas un complemento separado para nada de esto. Todo lo siguiente es una configuración de WPForms o parte de un complemento que tu licencia ya incluye.

Tres de los cuatro métodos necesitan el complemento Form Locker, que se desbloquea en el nivel de licencia Pro. Pro cuesta 199,50 $ al año al precio introductorio actual, ¡y la misma licencia cubre encuestas, análisis y mucho más!

La página de precios de WPForms.

Para empezar, compra la licencia Pro. Luego, instala WPForms en tu sitio web. Si necesitas ayuda, sigue estas instrucciones sobre cómo añadir un plugin a WordPress.

¡Actualiza a WPForms Pro ahora! :)

Paso 2: Activar el complemento Form Locker

Form Locker contiene tres de los cuatro controles de esta guía, por lo que va primero. El complemento cubre los permisos del formulario en general, y los límites de entrada son una parte de eso.

Desde tu panel de WordPress, ve a WPForms » Complementos y escribe Form Locker en el cuadro de búsqueda.

Haz clic en Instalar complemento en la tarjeta Form Locker. WPForms lo descarga y lo activa por ti, y el botón se convierte en un interruptor de estado.

activar complemento form locker

Ahora abra el formulario que desea proteger y vaya a Configuración » Bloqueo de formulario en el creador de formularios. Todos los controles a nivel de formulario de esta guía se encuentran en este único panel. El panel se divide en cuatro grupos:

  • Verificación de formulario pide a los visitantes una contraseña, su edad o su dirección de correo electrónico antes de que se cargue el formulario.
  • Programación de formulario abre y cierra las presentaciones en fechas establecidas.
  • Restricciones de formulario limita el formulario a los usuarios que han iniciado sesión.
  • Límites y restricciones de entrada contiene tanto el límite por persona como el límite total.

Solo necesitará los dos últimos para la prevención de duplicados. La documentación del complemento Bloqueo de formulario detalla las opciones de contraseña y programación si las desea más adelante.

Método 1: Requerir una respuesta única en tu campo de correo electrónico

Úselo cuando un valor específico nunca debe aparecer dos veces en todas sus entradas, como una dirección de correo electrónico, un número de teléfono o un ID de empleado.

Abra su formulario en el creador y haga clic en el campo Correo electrónico en el área de vista previa. El panel Opciones de campo se abre a la izquierda. Haga clic en la pestaña Avanzado en la parte superior del panel Opciones de campo.

Opciones avanzadas del campo de correo electrónico

Luego, desplácese hacia abajo hasta Opciones avanzadas y haga clic en la casilla de verificación etiquetada Requerir respuesta única. Seis tipos de campo admiten esta configuración:

  • Nombre
  • Correo electrónico
  • Teléfono
  • Sitio web
  • Contraseña
  • Texto de una sola línea

Cualquiera que ahora ingrese una dirección de correo electrónico que ya esté en sus entradas se detiene antes de que se envíe el formulario. El error dice El valor debe ser único, y puede cambiar el mensaje de validación si esa redacción no se adapta a su formulario.

Esta configuración coincide con el valor en sí, por lo que alguien que use una segunda dirección de correo electrónico aún puede ingresar dos veces.

Método 2: Limitar entradas por persona por correo electrónico o dirección IP

Úselo cuando desee una presentación por persona en lugar de una por valor. Esta es la versión a nivel de formulario del Método 1, y es la configuración que la mayoría de la gente realmente está buscando.

Regrese a Configuración » Bloqueo de formulario y busque el grupo Límites y restricciones de entrada. Active Habilitar límite de entrada de usuario. Aparecen algunos campos más debajo.

Habilitar límites de entradas de usuario para un formulario

Marque Restringir por dirección de correo electrónico, luego elija su campo de correo electrónico en el menú desplegable Campo de correo electrónico. Puede marcar Restringir por dirección IP también, o en lugar de ello.

Correo electrónico o IP, y cómo falla cada uno

El bloqueo de direcciones IP atrapa a todos los que comparten una conexión, por lo que una oficina o una familia en la misma Wi-Fi se queda fuera después de la primera presentación.

Los operadores de telefonía móvil son peores, ya que enrutan a miles de teléfonos a través de una dirección, y cualquiera que cambie a un punto de acceso se escapa de todos modos.

El bloqueo de direcciones de correo electrónico es mucho más amigable para los visitantes reales, y una segunda bandeja de entrada o un alias plus lo eluden.

Marcar ambas casillas aprieta las cosas, y si una dirección específica es el problema, puede bloquear una dirección de correo electrónico específica directamente.

Establezca Límite en 1, luego elija una ventana en el menú desplegable junto a ella.

Seleccionar límite

Ese menú desplegable es lo que evita que una entrada por persona signifique una entrada para siempre. Puedes limitar las entradas hasta el final del día, semana, mes o año, o usar una ventana móvil de 24 horas, 7 días, alrededor de 30 días o alrededor de 365 días.

Una encuesta diaria puede permitir un voto por día, y un formulario de RSVP para un solo evento puede limitar a cada invitado a una respuesta por año. Escribe el mensaje que la gente ve una vez que alcanzan el límite, luego guarda tu formulario.

Método 3: Restringir tu formulario a usuarios registrados

Úsalo cuando una entrega tenga que provenir genuinamente de un humano específico, como votaciones, solicitudes de empleo o comentarios de empleados. Una cuenta de WordPress vincula la entrega a una persona específica en lugar de a un valor que escribieron.

En el mismo panel de Form Locker, busca el grupo Restricciones del formulario y activa la opción de usuarios conectados.

Restringir un formulario a usuarios registrados con el complemento Form Locker

Escribe el mensaje que verán los visitantes desconectados donde solía estar el formulario. Las etiquetas inteligentes funcionan en este campo, por lo que puedes incluir enlaces a tus páginas de inicio de sesión y registro.

Guarda el formulario, luego ábrelo en una ventana privada para comprobar lo que realmente obtiene un visitante desconectado. De los cuatro métodos, este ofrece la garantía más sólida mientras exige más a tus visitantes.

Consejo profesional

Cuando un duplicado realmente te cueste algo, apila estos controles en lugar de elegir entre ellos. Restringe el formulario a usuarios conectados, exige una respuesta única en el campo de correo electrónico y establece el límite de entradas del usuario en 1.

Cada uno cubre una brecha que los otros dos dejan abierta, por eso la combinación se mantiene mejor que cualquier configuración individual por sí sola. Si las reglas de tu concurso lo exigen, este mismo panel también puede restringir la edad de un formulario.

Si esas cuentas aún no existen, empieza con un formulario de registro de usuarios, y nuestra guía sobre cómo restringir el acceso a usuarios conectados cubre el resto de la configuración.

Método 4: Corregir envíos dobles accidentales (no se necesita complemento)

Úsalo cuando tus duplicados lleguen con segundos de diferencia con datos idénticos, lo que significa que el navegador envió la misma entrega dos veces.

Dos cosas causan este tipo de duplicado, y ninguna de ellas implica que el visitante haga algo mal.

Cuando un formulario envía datos y luego muestra un mensaje de confirmación en la misma URL, actualizar la página o reabrir la pestaña más tarde puede enviar los datos nuevamente.

La otra causa son clics adicionales durante una carga lenta, lo que ocurre más en formularios con cargas de archivos o una verificación CAPTCHA.

Abre Ajustes » General en el constructor de formularios y expande la sección Avanzado. Comprueba si Habilitar envío de formularios AJAX está activado.

Con AJAX activado, el envío y la confirmación ocurren sin recargar la página, por lo que no queda carga de página para que una actualización repita. Nuestra guía sobre envíos de formularios AJAX cubre qué más cambia.

Ahora ve a Ajustes » Confirmaciones y mira Tipo de confirmación. Por defecto, selecciona Mensaje, y es la opción que deja a los visitantes en la URL a la que acaban de enviar.

Mensaje de confirmación predeterminado

Cámbialo a Mostrar página y elige la página en la que quieres que la gente aterrice. Ir a URL (Redirigir) hace el mismo trabajo cuando el destino está en otro sitio.

confirmación mostrar página de agradecimiento

Cualquiera de las dos opciones mueve al visitante a una URL nueva, por lo que una actualización simplemente recarga esa página sin problemas. Enviar a la gente a una página de agradecimiento real también te da un lugar donde poner el siguiente paso.

Si los duplicados siguen llegando después de ambos cambios, revisa la caché de tu página. Una página de formulario o de confirmación en caché puede mostrar un estado obsoleto, así que excluye ambas de tus reglas de caché.

Preguntas frecuentes sobre cómo evitar envíos duplicados de formularios

Las entradas duplicadas aparecen a menudo en nuestras conversaciones de soporte, en parte porque dos problemas muy diferentes comparten el mismo síntoma. Las respuestas a continuación cubren cómo distinguir esos problemas y qué configuración maneja cada uno.

¿Por qué mi formulario de WordPress se envía dos veces?

Normalmente, el navegador envió el envío dos veces en lugar de que el visitante rellenara tu formulario de nuevo. Actualizar un mensaje de confirmación, o reabrir una pestaña que todavía tiene los datos enviados, puede reenviarlo.

Comprueba primero las marcas de tiempo en WPForms » Entradas. Los duplicados separados por segundos con respuestas idénticas apuntan a un problema del navegador, así que el Método 4 es donde empezar. Las entradas repartidas en horas o días suelen significar que una persona envió dos veces a propósito.

¿Cómo evito que la misma dirección de correo electrónico envíe mi formulario dos veces?

Activa Requerir respuesta única en las opciones Avanzadas del campo de correo electrónico, que es el Método 1 anterior. WPForms comprueba esa dirección contra tus entradas existentes y bloquea el envío antes de que se guarde.

Esta es la más rápida de las cuatro soluciones porque no necesita configuración de complementos, solo un único interruptor en el propio campo.

¿Limitar los envíos por dirección IP bloquea a los visitantes legítimos?

Sucede, y es la razón principal para pensar dos veces antes de restringir solo por dirección IP. Cualquiera que comparta una conexión a Internet comparte una dirección IP, por lo que una oficina, una escuela o un hogar pueden ser bloqueados después de que una persona envíe.

Las redes móviles empeoran las cosas al enrutar un gran número de teléfonos a través de la misma dirección. Restringir por dirección de correo electrónico es la opción predeterminada más segura para formularios públicos. Mantén las restricciones de IP para casos en los que prefieras rechazar a algunos visitantes reales que aceptar un duplicado.

¿Puede alguien evitar un límite de un envío por persona?

Con límites de correo electrónico o IP, sí, y las soluciones son sencillas. Una segunda bandeja de entrada derrota una restricción de correo electrónico, mientras que cambiar de Wi-Fi a datos móviles derrota una restricción de IP.

Restringir el formulario a usuarios registrados es la única opción que vincula un envío a una identidad real. Úsala cuando un duplicado afectaría a un resultado que tengas que defender, como un voto o una solicitud.

¿Necesito un plugin separado para evitar envíos duplicados de formularios?

No se necesita ningún plugin separado, porque todo en esta guía está integrado en WPForms o incluido con el complemento Form Locker en Pro y superior.

Existen plugins independientes para bloquear duplicados para WordPress, y la mayoría replican la comprobación de campos únicos del Método 1. Si ya tienes WPForms Pro, estarías añadiendo un plugin para hacer algo que tu constructor de formularios hace de forma nativa.

¿Son los envíos duplicados lo mismo que el spam?

No, y mezclarlos lleva a la solución incorrecta. El spam es tráfico automatizado de bots que golpean tu formulario con datos basura, mientras que los duplicados son el mismo envío real que llega más de una vez.

Los límites de entradas y las respuestas únicas no harán mucho contra un bot que varía sus detalles en cada intento. El spam necesita CAPTCHA, filtrado y herramientas anti-spam en su lugar.

¿Puedo permitir un envío por persona por semana en lugar de solo una vez?

Sí, y el campo Límite en Límites y restricciones de entrada se empareja con un menú desplegable que establece exactamente esa ventana, por lo que puedes permitir una entrada cada 7 días o restablecer al final de cada semana.

El mismo menú desplegable cubre ventanas diarias, mensuales y anuales, además de períodos continuos de 24 horas, 30 días y 365 días. Esto se adapta a formularios recurrentes como registros semanales o solicitudes de comentarios mensuales.

A continuación, evita que el spam invada los formularios que acabas de bloquear

Las entradas duplicadas y las entradas de spam se ven similares en tu lista de entradas, y requieren herramientas diferentes.

Ahora que las presentaciones repetidas están controladas, nuestra guía para crear formularios de contacto libres de spam cubre los filtros y las opciones de CAPTCHA que eliminan el tráfico de bots detrás del resto del ruido.

Si estás configurando una votación donde una respuesta por persona es el objetivo principal, un formulario de encuesta combina resultados en vivo con los límites que acabas de configurar.

¡Empieza a Crear Formularios Protegidos Hoy Mismo! 🙂

¿Listo para crear tu formulario? Empieza hoy mismo con el plugin de creación de formularios de WordPress más fácil. WPForms Pro incluye muchas plantillas gratuitas y ofrece una garantía de devolución de dinero de 14 días.

Si este artículo te ha sido útil, síguenos en Facebook y Twitter para obtener más tutoriales y guías gratuitas de WordPress.

Divulgación: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Descubre cómo se financia WPForms, por qué es importante y cómo puedes apoyarnos.

Hamza Shahid

Hamza es Redactor del equipo de WPForms, que también se especializa en temas relacionados con marketing digital, ciberseguridad, plugins de WordPress y sistemas ERP. Aprende más

El mejor plugin constructor de formularios de arrastrar y soltar para WordPress

Fácil, rápido y seguro. Únete a más de 6 millones de propietarios de sitios web que confían en WPForms.