Plugin para WooCommerce que gestiona el derecho de desistimiento conforme al D.Lgs. 209/2025, con registro completo, trazabilidad y a prueba de manipulaciones.
Descripción general
Plugin para WooCommerce que gestiona el derecho de desistimiento conforme al D.Lgs. 209/2025, permitiendo a los clientes ejercer el desistimiento tanto desde su área personal como invitados, con registro completo, trazabilidad y a prueba de manipulaciones.
Funcionalidades principales
1. Gestión de Desistimiento de Clientes
- Desistimiento para usuarios registrados → Acceso desde el área "Mis desistimientos" en Mi Cuenta
- Desistimiento para invitados → Verificación con Número de Pedido + Email + Nombre (soporta con/sin #)
- Selección de productos → El usuario puede seleccionar productos individuales (desistimiento parcial)
- Cálculo de plazo → Basado en fecha de entrega o fecha de pedido (configurable)
- Notas opcionales → El usuario puede añadir notas a la solicitud
- Privacidad + Términos → Casilla obligatoria con enlaces a Política de Privacidad y Términos
2. Fecha de Entrega
- Admin establece fecha → En el backend del pedido, campo "Fecha de entrega"
- Cálculo automático → Fecha de pedido + X días (configurable, ej. 2 días)
- Usuario puede ingresar → Opcional (deshabilitado por defecto)
- Validación → La fecha no puede ser anterior al día siguiente del pedido ni futura
- Estado "Entregado" → Se establece automáticamente al registrar la fecha de entrega
- Botón "Marcar como Entregado" → En el backend del pedido para actualizar estado y fecha
3. Exclusión de Productos
- Exclusión individual → Metabox en el producto: "Excluir del derecho de desistimiento"
- Exclusión por categoría → Selecciona categorías excluidas en ajustes
- Exclusión por tipología → Productos digitales, virtuales, suscripciones, personalizados
- Edición masiva → Edición masiva desde lista de productos
- Motivo de exclusión → Digital, personalizado, perecedero, otro
4. Gestión de Administrador
- Lista de desistimientos → Columnas: ID, Pedido, Cliente, Productos, Fecha, Integridad, Email
- Filtro por estado → Pendiente, Aceptado, Completado, Rechazado
- Detalle del desistimiento → Ver productos, notas del cliente, motivo de rechazo
- Cambio de estado → Con envío automático de email al cliente
- Motivo de rechazo → Campo de texto obligatorio enviado por email
- Notas internas → Campo privado para admin
- Creación manual → Página dedicada para crear desistimientos desde admin (con búsqueda de pedido)
- Redirección de creación → Redirige desde post-new.php?post_type=wc_recesso a la página correcta
- Estados de pedido → "Esperando devolución", "Devolución completada", "Entregado"
- Columna desistimiento → En la lista de pedidos WooCommerce muestra el estado del desistimiento
5. Registros y Trazabilidad
- Email al cliente → Confirmación inmediata con fecha y productos
- Email al admin → Notificación de nueva solicitud
- Registro de emails → Tabla separada wp_wc_recesso_email_log
- Página de registro de emails → Dedicada bajo WooCommerce con filtros por email, tipo, fecha, estado
- Columna email → En la lista de desistimientos muestra el número de emails enviados
- Hash criptográfico → HMAC-SHA256 para verificar integridad de datos
- IP y User Agent → Registrados para cada solicitud
- Eliminación suave → Los desistimientos no pueden eliminarse permanentemente
6. Emails Automáticos
- Recibo cliente → Inmediatamente después de la solicitud: ID desistimiento, pedido, fecha, productos, días, dirección de devolución
- Notificación admin → Nueva solicitud: Detalles del cliente, productos, enlace de gestión
- Actualización de estado → Admin cambia estado: Nuevo estado, productos, motivo de rechazo (si existe), dirección de devolución (si se acepta)
- Todos los emails son personalizables con placeholders y textos predeterminados visibles en los ajustes
7. Ajustes del Plugin
- General → Días de desistimiento (mín 14), usar/entrega, ventana de entrega, cálculo automático, permitir usuario
- Dirección de devolución → Personalizable, tienda por defecto
- Tipos excluidos → Productos digitales, virtuales, suscripciones, personalizados
- Exclusiones → Categorías excluidas, página de Términos
- Textos del formulario → Mensaje introductorio, éxito, privacidad (multilingüe con placeholders)
- Emails → Asunto y cuerpo para recibo, admin, cambio de estado (multilingüe con placeholders)
- Privacidad → URL de Política de Privacidad
- CSS → CSS personalizado con guía de clases disponibles
8. Shortcode
[recesso_dlgs209] →
Formulario público para clientes invitados
9. Licencia
- Activación → Clave de licencia con validación API
- Cron diario → Verificación automática del estado de la licencia
- Actualizaciones → Solo con licencia activa
- Bloqueo del plugin → Si no está activado, aviso al admin
Tablas de datos
- wp_posts (post_type=wc_recesso) → Solicitudes de desistimiento
- wp_postmeta → Metadatos: pedido, productos, fecha, notas, hash
- wp_wc_recesso_email_log → Registro de todos los emails enviados (con estado y motivo de error)
Seguridad y cumplimiento
- Hash HMAC-SHA256 para integridad
- Registro de emails append-only
- Eliminación suave (no se puede eliminar permanentemente)
- Seguimiento de IP y User Agent
- Email de confirmación como prueba documental
- Soporte para invitados con verificación de email
- Página de registro de emails para auditoría completa
Multilingüe
- Soporte nativo para Polylang y WPML
- Traducciones incluidas: Italiano, Inglés
- Textos de formulario y emails multilingües con placeholders
- Extensible a otros idiomas
Estados
Estados de Desistimiento
- recesso-in-attesa → Solicitud recibida, en evaluación
- recesso-accettato → Aceptado, cliente debe devolver
- recesso-completato → Devolución completada, reembolso gestionado
- recesso-rifiutato → Rechazado con motivo
Estados de Pedido
- wc-in-reso → Esperando devolución (desistimiento total)
- wc-reso-completato → Devolución completada
- wc-delivered → Entregado (fecha de entrega registrada)
Flujos de usuario
Usuario registrado
Pedido pagado → Fecha de entrega (si es físico) → Accede a Mi Cuenta → Detalles del pedido → Clic en "Derecho de desistimiento" (si está en plazo) → Selecciona productos → Añade notas → Confirma → Recibe email de confirmación → Admin gestiona solicitud → Cliente recibe emails de actualización
Usuario invitado
Pedido pagado → Accede a página con shortcode [recesso_dlgs209] → Introduce: Número de Pedido + Email + Nombre → Verifica → Selección de productos → Confirma → Recibe email de confirmación → Admin gestiona solicitud
Flujo de Administrador
Gestión de Desistimiento
- Lista de desistimientos: WooCommerce → Desistimientos DLgs 209
- Detalle: Haz clic en un desistimiento
- Cambiar estado: Selecciona estado + motivo de rechazo opcional
- Email automático: Enviado al cliente
Creación Manual
- WooCommerce → Nuevo Desistimiento
- Buscar pedido: Introduce ID o número (con/sin #)
- Seleccionar productos: Marca los que desistir
- Crear: Genera la solicitud
Registro de Emails
- WooCommerce → Registro de Emails
- Filtros: Por email, tipo, fecha, estado
- Visualizar: Todos los emails enviados/fallidos
Resumen técnico
- Versión → 1.2.0
- Requiere → WooCommerce
- PHP mínimo → 7.4
- Soporte invitado → Sí
- Soporte multilingüe → Sí (Polylang/WPML)
- Registro inmutable → Sí (hash + registro de emails)
- Eliminación suave → Sí
- Edición masiva de productos → Sí
- Personalización CSS → Sí
- Página de registro de emails → Sí
- Creación admin de desistimiento → Sí
Novedades respecto a la versión anterior
- Página de Registro de Emails → Dedicada con filtros para auditoría completa
- Columna Email → En la lista de desistimientos muestra el número de emails enviados
- Tipos excluidos → Productos digitales, virtuales, suscripciones
- Textos predeterminados → Placeholders visibles en todos los emails y textos del formulario
- CSS moderno → Gráficos actualizados en los ajustes
- Redirección de creación → Botón "Nuevo desistimiento" del CPT redirigido a la página correcta
- Dirección de devolución → Personalizable en los ajustes