# DigiFest — Efectos estacionales para WordPress/WooCommerce

Plugin freemium que decora tu web con efectos animados según la época del año: murciélagos en Halloween, nieve en Navidad, corazones en San Valentín, confeti de Año Nuevo y más. Activación manual o programada por fechas, con banner temático para la tienda y desbloqueo de temas Pro mediante el portal de licencias propio.

## Versión gratuita
- **Halloween**: murciélagos volando, calabazas rebotando y fantasmas flotando.
- **Navidad**: nieve cayendo, Papá Noel cruzando la pantalla, regalos y opción para tradiciones catalanas (Caga Tió, Caganer y Estrella de Belén).

## Versión Pro (requiere licencia)
- **San Valentín**, **Año Nuevo**, **Pascua**, **San Patricio**, **Primavera & Sakura**, **Verano**, **Otoño & Castanyada**, **Black Friday**, **Carnaval**.
- **Chispitas al hacer clic (Click Sparkles)**: ráfaga interactiva sutil de micro-partículas temáticas en cada clic.
- **Zoom-susto de Halloween**: un vampiro gigante se acerca a la pantalla con viñeta oscura (una vez por visita, controlado por `sessionStorage`).
- **Efectos de ambiente**: decoración fija de pantalla según el tema — telarañas en las esquinas con araña que se descuelga (Halloween), guirnalda de luces parpadeantes (Navidad), guirnalda de corazones (San Valentín), guirnalda de estrellas doradas (Año Nuevo), banderines (Carnaval), rincón de huevos (Pascua), arcoíris y caldero de oro (San Patricio), ramas de cerezo en flor (Primavera), olas animadas en la base (Verano), esquinas con hojas secas y castañas (Otoño) y cintas de oferta (Black Friday).

## Requisitos
- WordPress 5.8+, PHP 7.4+.
- WooCommerce opcional (solo para el banner temático y la opción "solo tienda").
- Sin dependencias externas: PHP + vanilla JS/CSS, sprites SVG propios.

## Instalación
1. Comprime la carpeta `digi-fest/` como ZIP (o usa el `digi-fest.zip` generado).
2. WordPress → *Plugins → Añadir nuevo → Subir plugin* → Activa.
3. Menú **DigiFest** → pestaña **Efectos**: activa temas manualmente o por fechas.
4. Pestaña **Licencia**: introduce la clave (compra directa) o el purchase code (Envato) para desbloquear Pro.

## Activación de efectos
Cada tema tiene:
- **Activar ahora (manual)**: fuerza el efecto independientemente de las fechas.
- **Activar automáticamente por fechas**: rango en formato `MM-DD` que **se repite cada año**. Si el inicio es posterior al fin, el rango cruza el año nuevo (ej. Año Nuevo: `12-26` → `01-01`). El botón *Fechas recomendadas* restaura las sugeridas.
- **Densidad** (baja/media/alta), **dónde mostrar** (todo el sitio / solo portada / solo tienda) y **banner de tienda** con texto y colores editables.

Si varios temas están activos a la vez, solo se muestra el primero de la lista.

## Sistema de licencias
Integración con `https://licencias.digitalinnovationglobal.com` (`product_slug: digi-fest`):
- Activación directa (`/activate`) y vía Envato (`/envato-activate`, guarda la `license_key` propia).
- Verificación cacheada 12 h (cron diario) con gracia de 7 días si el portal no responde.
- Desactivación por sitio (`/deactivate`).
- **Actualizaciones automáticas** dentro de wp-admin (la API devuelve `new_version`, `download_url`, `tested` y `changelog`).

### ⚠️ Antes de vender
Hay que dar de alta el producto en el portal de licencias:
1. Crear el producto `digi-fest` con sus planes en el panel de licencias.
2. Configurar el `envato_api_token` si se venderá en Envato.

## Estructura
```
digi-fest/
├── digi-fest.php               # Arranque del plugin
├── uninstall.php               # Limpieza completa al desinstalar
├── includes/                   # Efectos, licencia, frontend, banner Woo
├── admin/                      # Panel de ajustes (3 pestañas) + licencia
├── assets/css|js|img/          # Motor de animación, admin, sprites SVG (8 temas)
├── languages/                  # Traducciones en_US y ca_ES (.po; generar .mo)
└── tools/po2mo.php             # Compilador .po → .mo (requiere PHP CLI)
```

## Traducciones
El idioma por defecto es el español. Para generar los .mo (necesarios para que
WordPress cargue en_US/ca_ES) con PHP CLI:
```bash
php tools/po2mo.php languages/digi-fest-en_US.po
php tools/po2mo.php languages/digi-fest-ca_ES.po
```

## Privacidad / GDPR
- El plugin **no usa cookies de seguimiento** ni envía datos a terceros.
- Única cookie: `df_banner_dismissed` (funcional, 24 h) que recuerda si el usuario cerró el banner de tienda.
- Las llamadas al servidor de licencias envían únicamente `license_key`/`purchase_code` y la URL del sitio, necesarias para validar la activación.

## Accesibilidad y rendimiento
- Respeta `prefers-reduced-motion`: si el usuario lo tiene activo, no se muestran animaciones.
- Límite de partículas vivas según densidad; los nodos se eliminan al terminar su animación.
- Sprites inlineados en el HTML (sin peticiones extra) y CSS animado por el compositor (`transform`/`opacity`).
- Opción de desactivar los efectos en móviles.

## Soporte
Portal de licencias y tickets: https://licencias.digitalinnovationglobal.com/tickets/new
