=== SEPA Sign ===
Contributors: jocawebs
Tags: sepa, mandate, signature, direct debit, pdf
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 3.11.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Create, sign, log and send SEPA direct debit mandates from WordPress.

== Description ==
SEPA Sign adds a responsive front-end form with handwritten signature capture, Spanish NIF/NIE/CIF and IBAN validation, sequential UMR generation, PDF creation, private storage, and email delivery — everything needed to collect a legally-formatted SEPA direct debit mandate directly on your WordPress site.

Version 2.0 added optional Cloudflare Turnstile spam protection, a diagnostics panel, CSV export, bulk PDF download as ZIP, mandate resending, and a status dashboard. Since version 3.0, this free plugin focuses purely on creating and signing mandates; the licensing, updates, and admin-convenience tools now live in a separate paid add-on, SEPA Sign PRO (not required to use this plugin).

== Installation ==
1. Upload the plugin folder, or install the ZIP from Plugins > Add New.
2. Activate SEPA Sign.
3. Configure your company details, SEPA creditor identifier, and notification email under SEPA Sign > Settings.
4. Insert the [sepa_sign] shortcode on any page, or use the "Generate SEPA mandate page" button in Settings to create it automatically.
5. Optional: for Cloudflare Turnstile spam protection, create a widget in Cloudflare, copy the Site Key and Secret Key, and enable it under Security.

== Credits ==
This plugin bundles jsPDF (https://github.com/parallax/jsPDF), used client-side to generate the mandate PDF in the visitor's browser. Version and license are documented in the file header of assets/vendor/jspdf.umd.min.js. All other JavaScript and PHP in this plugin is original source code, written and maintained by us.

== Changelog ==
= 3.11.0 =
* Cambios a partir de la revisión de WordPress.org: script de la cabecera de Ajustes movido a un archivo propio (wp_enqueue_script en vez de <script> inline); los dos puntos de extensión para complementos ahora se filtran con una lista blanca de HTML concreta en vez de imprimirse directamente; assets/js/public.js reformateado a código legible línea por línea (antes compacto en una sola línea por función, ahora se ve claramente que es código fuente propio, no un archivo compilado); jsPDF actualizado de 2.5.1 a 4.2.1.

= 3.10.1 =
* Quitado el título "SEPA Sign" repetido en el Dashboard, ya que el logo de arriba ya lo dice.

= 3.10.0 =
* Añadido un discreto "Hecho con SEPA Sign" al pie del formulario de firma, junto a la nota de la UMR. Se puede quitar con SEPA Sign PRO (licencia activa).

= 3.9.1 =
* Añadido el logo de SEPA Sign en la pantalla principal del plugin.

= 3.9.0 =
* Color de marca actualizado de verde musgo a azul, a juego con el nuevo logo de SEPA Sign. Afecta a botones, foco de campos y el mensaje de éxito. Los colores de "correcto"/"error" no cambian (siguen siendo verde/rojo, son de estado, no de marca).

= 3.8.5 =
* uninstall.php: el analizador espera el prefijo exacto derivado del nombre del plugin ("sepa_sign", con guion bajo), no una variante pegada. Corregido para que coincida con el resto del código.

= 3.8.4 =
* uninstall.php: el prefijo "ss_" era demasiado corto y genérico para el analizador; renombrado a un prefijo inequívoco.

= 3.8.3 =
* Corregidos el resto de avisos de Plugin Check: nonces sin unslash antes de sanitizar, uso de WP_Filesystem en vez de funciones directas de PHP, consultas de estadísticas del dashboard marcadas como revisadas, variables globales de uninstall.php con prefijo propio, y el falso positivo de "recurso externo" en la carga de jsPDF (ya está empaquetado localmente, solo había que hacer la URL más explícita para el analizador).
* Traducidos al inglés el resumen corto y la sección "Description" del readme (obligatorio para el directorio de WordPress.org); el resto de secciones se mantienen en español.

= 3.8.2 =
* Corregidos los errores señalados por Plugin Check: cabecera del plugin sin License, y varias salidas sin escapar (nombres de campo de ajustes, y los dos puntos de extensión para complementos, marcados explícitamente como revisados).

= 3.8.1 =
* Preparado para el repositorio de WordPress.org: Contributors, Tested up to y License URI correctos, y Author real en la cabecera del plugin.

= 3.8.0 =
* Estilo de los campos del formulario cambiado a un look más sutil (línea inferior en vez de caja completa), para que sea consistente con SEPA Sign PRO > Documentos.

= 3.7.0 =
* Corregido: cuando el formulario de mandato vive en la página real generada automáticamente, el título salía duplicado (el de la propia página de WordPress y el del formulario). Se quita el segundo.

= 3.6.0 =
* Nuevo: si no tienes SEPA Sign PRO, en el menú aparece "Documentos" con una pantalla explicando esa función y cómo conseguirla (no bloquea nada, solo informa).

= 3.5.0 =
* Nuevo: logo de empresa (Ajustes > Apariencia), con casilla "Poner el logo en la cabecera del mandato SEPA".
* Nuevo: color de la firma a elegir (negro, azul oscuro, azul claro, rojo), compartido con SEPA Sign PRO.

= 3.4.0 =
* Nuevo botón "Generar página de mandatos SEPA" en Ajustes: crea una página de WordPress real y editable en /mandato-sepa con el formulario ya insertado. Ya no hace falta crear la página ni pegar el shortcode a mano.

= 3.3.0 =
* Los validadores de NIF/NIE/CIF e IBAN pasan a ser reutilizables por complementos (sin cambios de comportamiento).

= 3.2.0 =
* Se elimina de la Lite todo el código de: exportación CSV, descarga masiva en ZIP, reenvío de mandatos y Cloudflare Turnstile. Esas funciones pasan a SEPA Sign PRO.
* En su lugar, la Lite muestra los controles deshabilitados con un aviso "Disponible en SEPA Sign PRO", y cede el sitio automáticamente si el add-on PRO está activo.
* Nuevos puntos de extensión genéricos para que PRO (u otros complementos futuros) puedan añadir su propia verificación antispam sin que la Lite conozca los detalles.

= 3.1.0 =
* Punto de extensión interno para futuros complementos (p.ej. SEPA Sign PRO): dos acciones (`sepa_sign_mandate_reserved`, `sepa_sign_mandate_completed`) y un token de contexto opcional que viaja con el mandato.
* Sin cambios visibles para quien no tenga ningún complemento instalado.

= 3.0.0 =
* SEPA Sign vuelve a ser un plugin 100% gratuito y autosuficiente: se elimina todo el sistema de licencias (activación, comprobación, avisos de caducidad).
* Ese apartado ahora vive en un complemento aparte, SEPA Sign PRO, que requiere este plugin instalado y activo.
* Sin cambios en la creación y firma de mandatos: sigue funcionando exactamente igual.

= 2.4.0 =
* Aviso en el admin de WordPress cuando la licencia está a 30 días o menos de caducar, o ya ha caducado.
* La pantalla SEPA Sign > Licencia también muestra el aviso junto al estado.
* Se basa en el dato de caducidad ya cacheado localmente (sin llamadas extra a la API).

= 2.3.0 =
* Nuevo botón "Desactivar esta instalación" en SEPA Sign > Licencia: libera la plaza de este sitio sin necesidad de contactar con soporte.
* Útil para migraciones de dominio (staging → producción) o bajas de servicio.

= 2.2.1 =
* Nuevo mensaje de error claro cuando la licencia alcanza su límite de activaciones en otro sitio.

= 2.2.0 =
* Comprobación periódica de la licencia (una vez al día vía WP-Cron) contra el servidor de licencias.
* Si la licencia se suspende o revoca en la plataforma, este sitio ya lo refleja sin necesidad de reactivar manualmente.
* Botón "Comprobar ahora" en SEPA Sign > Licencia para forzar la comprobación.
* Nueva petición POST a /wp-json/sepa-sign/v1/check (license, domain).
* Si la comprobación falla por red, no se cambia el estado guardado (evita falsos negativos).

= 2.1.0 =
* Nueva pantalla SEPA Sign > Licencia.
* Activación de licencia contra el servidor de licencias (sepasign.com).
* Guarda license_key, status, expires_at y product_id en opciones de WordPress.
* Muestra mensajes de error claros si la licencia no es válida o no está activa.

= 2.0.0 =
* Integración opcional con Cloudflare Turnstile y validación en servidor.
* Nombre y descripción mejorados para el honeypot.
* Dashboard con resumen y estado de configuración.
* Diagnóstico de requisitos básicos.
* Correo de prueba.
* Exportación de mandatos a CSV.
* Descarga de todos los PDF en ZIP.
* Reenvío de correos desde la ficha del mandato.
* La clave secreta de Turnstile no se incluye en las exportaciones.
* Conserva las validaciones en tiempo real y la validación PHP.

= 2.0.2 =
* Carga robusta de Turnstile mediante renderizado explícito.
* Avisos visibles de carga y error.
* Corregido el envío del token de Turnstile al servidor.
