SlideMe Out of Spam – Privacy-Friendly CAPTCHA for WordPress

Notas de la versión

Todas las versiones de SOS Captcha, de la más reciente a la más antigua. Las nuevas versiones están disponibles en la pantalla «Plugins» de tu panel de administración de WordPress.

1.0.85 — 2026-10-12

  • Corrección (Premium): la página de estadísticas ahora registra realmente las validaciones. Su tabla de la base de datos nunca se había creado y los contadores solo se cargaban en el panel de administración, por lo que la página permanecía en «Aún no hay datos».
  • Novedad (Premium): datos del control deslizante en las estadísticas: número medio de puntos de control y tiempo de resolución por formulario, así como un desglose de los intentos bloqueados por motivo, que muestra hasta dónde llegó el control deslizante (un bot que nunca lo toca no acumula ningún punto de control). Las estadísticas se conservan durante un año y siguen sin contener datos personales.
  • Novedad: las acciones soscaptcha_validation_success y soscaptcha_validation_failed reciben los datos del control deslizante (puntos de control, datos recopilados, tiempo de resolución) como argumento adicional.

1.0.84 — 2026-10-12

  • Seguridad (formularios de inicio de sesión, Premium): se ha reforzado la comprobación del control deslizante en la página de inicio de sesión de WordPress y en el inicio de sesión de «Mi cuenta» de WooCommerce. Ahora se ejecuta antes de que se verifiquen el nombre de usuario y la contraseña, y cada intento de inicio de sesión que no supere la comprobación del control deslizante recibe la misma respuesta. Iniciar sesión con el control deslizante resuelto funciona como antes.

1.0.83 — 2026-10-12

  • Corrección (Contact Form 7): un mensaje rechazado por el control deslizante ahora se detiene en la propia fase antispam de Contact Form 7, antes de que otros complementos procesen el envío. Hasta ahora, el rechazo solo cancelaba el correo electrónico, por lo que los complementos que guardan los envíos en la base de datos (como Contact Form CFDB7) podían seguir conservando los mensajes rechazados. Los visitantes ven el mismo mensaje de error que antes.
  • Novedades (Contact Form 7): la acción soscaptcha_cf7_result y SOSCAPTCHA_CF7::get_instance()->get_last_result(), para registrar o almacenar cómo se verificó cada envío (estado, puntos de control, error).

1.0.82 — 2026-10-06

  • Corrección: tras una actualización automática correcta, WordPress podía volver a intentar actualizar a la misma versión poco después y mostrar el mensaje «No se ha podido actualizar (de X a X), se ha restaurado la versión anterior». El programa de actualización comparaba la versión del servidor con la que aún estaba cargada en memoria, en lugar de con la del disco, lo que dejaba una entrada obsoleta de «actualización disponible». Ahora compara con la versión que WordPress lee del archivo del plugin. Los enlaces de descarga generados por sos-captcha.com también son válidos durante 3 días en lugar de 1 hora, por lo que una actualización programada ya no puede encontrarse con un enlace caducado.

1.0.81 — 2026-10-06

  • Corrección (Premium, Ninja Forms): se ha rediseñado la verificación del control deslizante por parte del servidor en los envíos de Ninja Forms y ahora se aplica de forma fiable. Los valores del control deslizante se transmiten en la propia carga útil de envío de Ninja Forms, y cualquier envío que no supere la comprobación se rechaza mostrando un error encima del formulario: no se guarda ni se envía nada.
  • Mejora: ahora el desafío está vinculado al formulario para el que se generó, y se comprueba el tipo de formulario cada vez que se consulta el desafío.
  • Desarrollo: se ha reconstruido el conjunto de pruebas: se ha reparado el conjunto de pruebas del lado del servidor (que no funcionaba desde el cambio de nombre de la versión 1.0.54), se han añadido aserciones negativas estrictas, una prueba de envío del lado del servidor por integración con la captura de correo electrónico y un script bin/test-all.sh no interactivo. Véase CLAUDE.md «Reglas de prueba».

1.0.80 — 2026-10-06

  • Corrección (Premium, WPForms): se ha revisado la verificación del control deslizante por parte del servidor en los envíos de WPForms y ahora se aplica de forma fiable. Un envío que no supere la comprobación se rechaza con un mensaje explícito que indica «Comprobación antispam fallida».
  • Novedad (Premium, WPForms): etiquetas inteligentes {soscaptcha_status} y {soscaptcha_checkpoints} para correos electrónicos de notificación, el equivalente en WPForms de las etiquetas de Contact Form 7 añadidas en la versión 1.0.78. Añádelas en el generador de formularios en Ajustes → Notificaciones → Mensaje de correo electrónico, después de {all_fields} (que por sí sola nunca las incluye). Se calculan del lado del servidor; un visitante no puede modificarlas.

1.0.79 — 2026-10-06

  • Corrección: en algunas situaciones, la comprobación «Omitir tras el primer acierto» podía aceptar un envío que no debería haber aceptado. Se ha reforzado el proceso de verificación: ahora el estado «ya verificado» se comprueba de forma más estricta en el servidor y caduca tras un periodo de tiempo configurable. Los estados registrados por versiones anteriores se restablecen, por lo que los visitantes que vuelvan deberán resolver el control deslizante una vez más.
  • Novedad: opción «Duración de omisión» (Ajustes → Reducción del desafío): tiempo durante el cual un desafío resuelto sigue siendo válido antes de que vuelva a aparecer el control deslizante, desde 1 minuto hasta 24 horas (por defecto: 60 minutos). Anteriormente, duraba toda la sesión del navegador.
  • Desarrollo: nuevos filtros soscaptcha_solved_cookie_ttl y soscaptcha_solved_cookie_context (este último permite, por ejemplo, vincular el estado de verificación a la IP del visitante).

1.0.78 — 2026-10-06

  • Novedad: dos etiquetas especiales de correo para los correos electrónicos de notificación de Contact Form 7: [_soscaptcha_status] y [_soscaptcha_checkpoints]. Te indican, para cada mensaje recibido, si el control deslizante se ha verificado realmente (y con cuántos puntos de control), si se ha omitido para un usuario que ha iniciado sesión o una sesión ya verificada, o si no se ha ejecutado en absoluto. Se calculan del lado del servidor, por lo que un visitante no puede falsificarlas. Añádelas al cuerpo del correo en Contact Form 7 → tu formulario → Correo.

1.0.77 — 2026-10-05

  • Corrección: en sitios web multilingües, los textos del control deslizante se mantenían fijos en el idioma del administrador para todos los visitantes. Ahora, los textos predeterminados se adaptan al idioma de cada visitante; los textos personalizados se conservan y se pueden traducir con WPML o Polylang.
  • Novedad: cuando el desafío ya se ha resuelto en la sesión actual del navegador, los formularios protegidos muestran «✓ Ya verificado en esta sesión» en lugar de no mostrar ningún control deslizante.
  • Corrección: el texto de confirmación del control deslizante siempre aparecía en francés; ahora está traducido.
  • Corrección: se ha corregido la traducción de «Slide» (traducido erróneamente como «diapositiva de presentación») en la mayoría de los idiomas, así como la de «Slide to check» en alemán, árabe, italiano y chino.

1.0.76 — 2026-10-02

  • Corrección: las nuevas cadenas permanecían en inglés en los sitios web traducidos. Ahora, el plugin carga siempre sus traducciones integradas (siempre el catálogo más reciente), en lugar de un paquete de idiomas obsoleto de WordPress.org o del catálogo premium heredado.
  • Corrección: ruta incorrecta para las traducciones en JavaScript del control deslizante.

1.0.75 — 2026-10-02

  • Novedad: pestaña de configuración «Actualizaciones» con un interruptor de actualizaciones automáticas (la misma configuración que el enlace «Habilitar actualizaciones automáticas» en la pantalla de Plugins).
  • Novedad: cuando las actualizaciones automáticas están desactivadas, un aviso de administración informa de cada nueva versión con las opciones «Actualizar ahora», «Activar actualizaciones automáticas» e «Ignorar esta versión».
  • Corrección: la insignia «Protegido por SOS Captcha» ahora se muestra debajo del control deslizante en todos los formularios protegidos (Contact Form 7, WPForms, inicio de sesión…), no solo en los formularios de comentarios.
  • Corrección: el relleno de color del control deslizante ahora sigue al controlador al instante, en lugar de ir con retraso respecto a él.

1.0.74 — 2026-06-19

  • Novedad: actualizaciones automáticas integradas. El plugin ahora busca e instala sus propias actualizaciones directamente desde sos-captcha.com, por lo que te mantienes al día sin necesidad de pasar por el directorio de WordPress.org.
  • Aspectos internos: se ha consolidado el plugin en un único código base (las funciones premium se cargan desde un módulo interno restringido por licencia, en lugar de desde un complemento independiente). No hay cambios en las funciones: la versión gratuita permanece sin cambios y las instalaciones con licencia obtienen la misma funcionalidad premium.
  • Las nuevas instalaciones utilizan ahora, de forma predeterminada, unos ajustes por defecto más intuitivos (4-6 puntos de control, 0,5 s como mínimo por punto de control, límite de 30 s y omisión para los usuarios que hayan iniciado sesión). Los sitios web existentes conservan su configuración guardada.

1.0.73 — 2026-06-15

  • Complemento gratuito totalmente funcional: sin ajustes bloqueados. Todos los controles que aparecen en el plugin gratuito funcionan ahora; no hay opciones desactivadas, limitadas o restringidas a la versión de pago, ni ningún tipo de comprobación de licencia. Las funciones que pertenecen al complemento independiente SOS Captcha Pro (integraciones adicionales, detección avanzada de bots, colores personalizados, estadísticas, eliminación de insignias) aparecen únicamente como simples avisos informativos, nunca como controles desactivados.
  • El rango de puntos de control es ahora el mismo para todos (2-12), sin que aparezca ningún mensaje de actualización.
  • Los colores personalizados del control deslizante se han trasladado íntegramente al complemento Pro: el plugin gratuito incluye colores predeterminados fijos. Los sitios web gratuitos existentes no se ven afectados (la versión gratuita nunca guardaba los colores personalizados).

1.0.72 — 2026-05-26

  • Valores predeterminados más intuitivos: el tiempo mínimo por punto de control se ha reducido de 1 s a 0,5 s; el intervalo de limitación de frecuencia, de 60 s a 30 s; el número de puntos de control ahora varía aleatoriamente entre 4 y 6 (antes era un valor fijo de 6); y el vencimiento predeterminado del desafío se ha ajustado a 10 minutos (antes era de 1 minuto, mientras que el texto de la notificación que ve el usuario, «caducado tras 10 minutos», ya daba por hecho que eran 10). Los sitios web existentes conservan sus valores guardados; solo las nuevas instalaciones aplicarán los nuevos valores predeterminados.

1.0.71 — 2026-05-06

  • Nuevas funciones auxiliares SOSCAPTCHA_Generator::pro_extra_fields() / pro_extra_fields_html(): una única fuente de información para el «honeypot» de la versión Pro y los campos ocultos de huella del navegador que las integraciones necesitan mostrar. Cada uno de los 9 adaptadores de integración (CF7, Comentarios, WPForms, Gravity Forms, Ninja Forms, reseñas/pago/registro de WooCommerce, inicio de sesión/registro/contraseña perdida de WP) ahora genera estos campos cuando sus opciones están activadas.
  • Slider JS ahora calcula una huella digital JSON codificada en base64 ({ ua, lang, tz, screen}) codificada en base64 al inicializarse el control deslizante y la escribe en el campo de entrada oculto, junto con el validador reescrito de la versión Pro 1.0.10, que comprueba que el agente de usuario declarado coincida con $_SERVER['HTTP_USER_AGENT'] para detectar herramientas de automatización.

1.0.70 — 2026-05-06

  • **Crítico: la validación del control deslizante ha fallado en el último punto de control.** El código «resaltar el siguiente punto de control» en assets/challenge-slider.js ejecutaba checkpointDots[lastCheckpoint + 1].style.borderColor = … después de que el bloque AJAX ya hubiera avanzado lastCheckpoint hasta el índice final, por lo que desreferenciaba un valor indefinido una vez alcanzado el último punto. El TypeError interrumpió el resto de updatePosition, incluido el setTimeout que escribe los tokens recopilados en el campo oculto soscaptcha_tokens del formulario. Resultado final: el formulario se envió con tokens vacíos → el servidor lo rechazó con el mensaje «invalid_tokens». Se ha añadido una protección para que el resaltado solo se ejecute cuando realmente haya un siguiente punto de control.

1.0.69 — 2026-05-06

  • **Corrección crítica: el reto del control deslizante no se cargaba** (error 400 de admin-ajax con la acción: soscaptcha_get_challenge_config). Los tres puntos finales AJAX del front-end (get_challenge_config, collect_token, refresh_challenge) estaban registrados en el lado de PHP bajo el prefijo heredado wp_ajax_sos_*, pero el JavaScript del control deslizante envía action=soscaptcha_* (que cumple la regla de WP.org de prefijos de 4 o más caracteres aplicada en la versión 1.0.54). Esta discrepancia provocaba que **todas** las solicitudes de desafío devolvieran un error 400: el control deslizante no se podía mostrar y los envíos de formularios en las páginas protegidas no se podían validar. Ahora, el lado PHP utiliza wp_ajax_soscaptcha_* para que coincida. – Páginas afectadas: todos los formularios protegidos por el plugin (inicio de sesión, comentarios, CF7, página de demostración, etc.) – Misma familia de causas fundamentales que el error 400 de activación de la licencia (1.0.2) y el error 400 de guardado automático de la configuración (1.0.65): por fin hemos localizado el tercer caso.

1.0.68 — 2026-05-06

  • Correcciones de Plugin Check (regresiones detectadas tras la publicación de la versión 1.0.67): escapado adecuado del atributo disabled-input (ahora utiliza la función auxiliar disabled() de WordPress en lugar de mostrar una cadena sin procesar), /* traductores: */ comentario desplazado junto a su llamada a __(), y eliminación de load_plugin_textdomain() (WP carga automáticamente las traducciones de los plugins alojados en WP.org desde la versión 4.6; la llamada está marcada como desaconsejada)

1.0.67 — 2026-05-06

  • **Se ha corregido el error por el que los botones de activación/desactivación de la integración Pro fallaban sin aviso**: la lista de permitidos del controlador de guardado de integraciones solo incluía las dos integraciones gratuitas (comentarios, cf7). El filtro de la versión Pro (desde la 1.0.64) solo activa o desactiva los indicadores de bloqueo en el registro canónico en lugar de añadir entradas, por lo que cualquier opción de la versión Pro (WPForms, Gravity Forms, etc.) se eliminaba de forma silenciosa al guardar. Ahora el controlador se alimenta de SOSCAPTCHA_Integrations::filtered(), de modo que se aceptan las 9 claves, con una protección del lado del servidor que sigue bloqueando los controles de Pro cuando la licencia no está activa.

1.0.66 — 2026-05-06

  • Se han actualizado las traducciones para las 9 configuraciones regionales distintas del inglés (sin cambios en las cadenas de origen; compatible con la versión Pro 1.0.8, que incluye el archivo .mo correspondiente) .

1.0.65 — 2026-05-06

  • **Solución al problema de que no se guardaran los ajustes de administración en «Configuración/Integraciones»** — Los nombres de las acciones AJAX estaban registrados como wp_ajax_sos_save_*, pero el JS guardaba automáticamente las acciones POSTadas como action=soscaptcha_save_*. Esta discrepancia provocaba que todos los cambios fallaran de forma silenciosa. Ahora ambas partes utilizan soscaptcha_save_*.
  • **Corrección de un error crítico en la página «Get Pro»** — DeepL elimina los marcadores de posición %s al traducir cadenas de formato corto, por lo que printf( 'o %s/año (ahorra un 20 %%)', $price ) daba error en PHP 8+ con un ArgumentCountError. Se ha refactorizado en dos cadenas traducibles más sencillas + una protección en tiempo de ejecución que recurre al inglés si a la traducción le falta el marcador de posición.
  • Se han regenerado las traducciones; la línea sobre el ahorro anual, que antes no se mostraba correctamente, ahora se visualiza correctamente en las nueve configuraciones regionales que no son en inglés.

1.0.64 — 2026-05-06

  • La tabla de integraciones muestra ahora las integraciones de formularios de la versión Pro (WPForms, Gravity Forms, Ninja Forms, WooCommerce, inicio de sesión/registro/contraseña olvidada de WP) como vistas previas bloqueadas, incluso cuando el plugin Pro no está instalado en absoluto; los usuarios ven lo que hay disponible sin necesidad de instalar primero la versión Pro.
  • El nuevo archivo de datos compartidos incluye /data/integrations.php (fuente única de información, que refleja el patrón de matriz de niveles), al que se accede a través del nuevo ayudante SOSCAPTCHA_Integrations.
  • Se han vuelto a añadir los tres ajustes preestablecidos de colores degradados (Clásico / Morado / Océano) a la pestaña «Apariencia»; quedan bloqueados si no hay ninguna licencia Pro activa.
  • Traducciones: actualizadas para las nuevas cadenas de texto relacionadas con la vista previa bloqueada, los ajustes preestablecidos y las estadísticas.

1.0.63 — 2026-05-05

  • Se ha rediseñado la página de configuración para mostrar las funciones Pro como vistas previas bloqueadas: los visitantes y los administradores pueden ver lo que desbloquea cada nivel sin necesidad de instalar primero la versión Pro. – Pestaña «Validación»: nueva sección «Detección avanzada de bots» (análisis de comportamiento, honeypot, huella digital del navegador) que aparece desactivada con una insignia Pro hasta que se adquiera la licencia. – Pestaña «Reducción de retos»: nuevo interruptor «Recarga automática al agotarse el tiempo de espera», bloqueado hasta que se adquiera la licencia – Nueva pestaña «Apariencia» con selectores de color degradados y un interruptor «Mostrar/ocultar insignia», ambos bloqueados hasta que se adquiera la licencia
  • Nueva entrada en el submenú «Estadísticas» de la barra lateral de administración (con un icono de candado) cuando la versión Pro no está activa: haz clic en ella para ver la página de venta cruzada de la versión Pro.
  • Nueva función auxiliar SOSCAPTCHA_Tiers::is_pro_active(), respaldada por el filtro soscaptcha_pro_active; la versión Pro la activa cuando su licencia es válida.

1.0.61 — 2026-05-05

  • Novedad: fuente única de información para los niveles de planes y la matriz de características en includes/data/tier-matrix.php (accesible a través de la clase auxiliar SOSCAPTCHA_Tiers ). Tanto la página gratuita «Get Pro» como la página «Licencia» del plugin Pro se generan a partir de ella, y se mantienen sincronizadas con los precios de sos-captcha.com.
  • Página «Get Pro» rediseñada: comparación de 4 niveles (Gratis / Starter / Pro / Agencia) con precios mensuales y anuales, insignia «MÁS POPULAR» en la versión Pro y llamadas a la acción específicas para cada nivel que redirigen a sos-captcha.com
  • Traducciones: se han regenerado todos los archivos .pot/.po/.mo con las cadenas de código fuente más recientes (los archivos .mo anteriores databan de la versión 1.0.50 y les faltaban docenas de cadenas añadidas tras el cambio de nombre de los prefijos).

1.0.60 — 2026-05-05

  • Traducciones: se llama explícitamente a load_plugin_textdomain() para que las cadenas de administración se traduzcan en instalaciones cargadas manualmente (no solo en las distribuidas por WordPress.org).
  • Cuadrícula de integraciones: muestra las integraciones Pro con un icono de candado «Pro» + un botón de llamada a la acción (CTA) para actualizar cuando no haya ninguna licencia Pro activa (se basa en el nuevo indicador premium_locked expuesto por el filtro soscaptcha_integrations del plugin Pro).
  • Se ha añadido el filtro soscaptcha_show_get_pro_menu; el plugin Pro (1.0.2+) lo utiliza para ocultar el submenú de venta adicional «Get Pro» una vez que la licencia está activa.

1.0.59 — 2026-05-05

  • Corrección del error 404 de JS en el panel de administración: cambiar el nombre de admin/js/sos-admin.{js,min.js} a admin/js/soscaptcha-admin.{js,min.js} para que el archivo coincida con la ruta de cola con prefijo introducida en la versión 1.0.54 .

1.0.57 — 2026-05-05

  • Corrección de un error grave al activar el plugin: cambia el nombre de los archivos de clase de class-sos-*.php a class-soscaptcha-*.php para que coincidan con las rutas de require_once introducidas en la versión 1.0.54 (el cambio de nombre afectó a las rutas de require, pero no a los archivos en el disco).
  • Comprobación de plugins de WordPress.org: anteponer el prefijo «soscaptcha_» a las variables de ámbito de vista en admin/views/{settings,integrations,get-pro}.php para eliminar las advertencias de WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound.

1.0.56 — 2026-05-05

  • Añade un prefijo a los tres nombres de los campos de entrada que se transmiten en los formularios (challenge_session, challenge_nonce, collected_tokens → soscaptcha_session, soscaptcha_nonce, soscaptcha_tokens) para evitar conflictos con otros plugins en los formularios del servidor.
  • Se han actualizado todas las integraciones (Contact Form 7, Comentarios + adaptadores premium) y los selectores JS del control deslizante en consecuencia.

1.0.55 — 2026-05-04

  • Amplía el prefijo «soscaptcha-» a las clases CSS y a los identificadores de scripts (prefijo de 4 o más caracteres en todas partes) para cumplir con los requisitos de WordPress.org.

1.0.54 — 2026-05-04

  • Se ha cambiado el prefijo de las clases PHP de SOS_ a SOSCAPTCHA_ y el prefijo de las funciones de sos_ a soscaptcha_ (prefijo de 4 o más caracteres según las directrices de WordPress.org).

1.0.53 — 2026-05-03

  • Arquitectura: el plugin se divide en una versión gratuita (este plugin) y un plugin complementario opcional, «sos-captcha-pro», que se carga a través de los filtros y acciones de WordPress.
  • El plugin gratuito ya no contiene ninguna ruta de código premium, lo que resuelve la preocupación de WordPress.org respecto al software de prueba.
  • El plugin complementario indica que requiere los siguientes plugins: sos-captcha (WP 6.5+)

1.0.52 — 2026-05-03

  • Los archivos fuente incluidos en el ZIP ya no contienen comentarios de desarrollo (CSS y JS), lo que permite que el código sea legible para los revisores sin revelar notas internas.
  • Los cargadores de plugins no han cambiado: los archivos .min.js y .min.css se cargan en producción, mientras que los archivos fuente se cargan con SCRIPT_DEBUG=true
  • Se ha eliminado el enlace al repositorio de GitHub del archivo «readme» (el código fuente se incluye dentro del plugin).

1.0.51 — 2026-05-03

  • Segunda ronda de cumplimiento de WordPress.org (respuesta a los comentarios de los revisores)
  • Versión de prueba: un posprocesador en tiempo de compilación elimina todas las condiciones $is_licensed del archivo ZIP gratuito (nuevo bin/strip-license-checks.php)
  • Visibilidad del código fuente: se distribuyen archivos .js y .css no minificados junto con sus equivalentes .min; se documenta el repositorio de GitHub en el archivo «readme».
  • Seguridad: los puntos finales AJAX ahora requieren un nonce HMAC vinculado a la sesión (compatible con la caché). Al enviar los formularios, el validador comprueba el nonce. Las ocho integraciones muestran el campo del nonce.

1.0.50 — 2026-04-29

  • Cambio de marca: el nombre del plugin ha pasado de «SOS Anti-Spam» a «SOS Captcha»; se han actualizado el slug, el dominio de texto y los archivos de idioma a «sos-captcha».
  • Se ha cambiado el nombre del archivo principal: slide-out-spam.php → sos-captcha.php
  • No hay cambios funcionales para las instalaciones existentes; imagen de marca más limpia, en consonancia con sos-captcha.com

1.0.49 — 2026-04-27

  • Cumple con los requisitos de WordPress.org
  • Añade el prefijo «sos_» a todas las acciones AJAX para evitar conflictos.
  • Se ha eliminado load_plugin_textdomain (no es necesario para los plugins alojados en WordPress.org)
  • Sustituir la página de licencia de la versión gratuita por una página de comparación de planes (sin introducción de licencia ni llamada a una API externa).
  • La actualización a la versión Premium ahora se descarga manualmente desde sos-captcha.com (Complementos → Añadir nuevo → Subir).
  • Lanzamiento público inicial
  • Protección de Contact Form 7 y de los comentarios de WordPress
  • Protección para el inicio de sesión, el registro y la recuperación de contraseña en WordPress (Premium)
  • Hasta 8 puntos de control (versión gratuita) / 15 (versión Premium)
  • Compatible con 10 idiomas