# Besked WhatsApp Notifications

Plugin WordPress per inviare notifiche WhatsApp tramite le API di [Besked](https://besked.it).

## Funzionalità

### 🔑 API Integration
- Configurazione API Key e Session ID Besked
- Funzione pubblica `besked_send_whatsapp()` per developer e plugin di terze parti
- Test invio messaggio direttamente dall'admin

### 📱 Integrazione WooCommerce
13 notifiche automatiche configurabili:
- **Admin**: Nuovo ordine, Ordine annullato, Ordine fallito
- **Cliente**: Nuovo ordine, Ordine non riuscito, In sospeso, Conferma ordine, Evaso, Rimborsato, Richiesta pagamento, Nota cliente, Reset password, Account creato

Template personalizzabili con placeholder dinamici.

### 📞 Campo Telefono Avanzato
- Select prefisso internazionale con bandierina 🇮🇹 e codice +39
- Ricerca paese nel dropdown
- Validazione e formattazione automatica in formato E.164
- Supporto 60+ paesi

### ✅ Consenso WhatsApp (GDPR)
- Toggle stile iOS sotto al campo telefono nel checkout
- Icona WhatsApp + testo personalizzabile
- Le notifiche partono solo con consenso attivo
- Opzione globale per abilitare/disabilitare

### 📒 Rubrica Contatti
- Salvataggio automatico da checkout
- Filtri per consenso sì/no
- Ricerca e ordinamento
- Export CSV

### 📬 Storico Messaggi
- Log completo di tutti i messaggi inviati
- Stato: In attesa, Inviato, Fallito (con badge colorati)
- Pulsante reinvio per messaggi falliti
- Contatore tentativi

### 🛒 Recupero Carrelli Abbandonati
- Tracciamento automatico dei carrelli in tempo reale
- Dashboard con statistiche: carrelli recuperati, recuperabili, tasso di recupero, revenue
- **Automazioni configurabili**: trigger per tempo (minuti/ore/giorni dall'abbandono)
- **Regole condizionali**: filtra per importo, numero prodotti, categoria, prodotto, coupon, saldo
- **Coupon dinamici**: generazione automatica coupon sconto (%, fisso, spedizione gratis)
- Auto-apply coupon tramite link di recupero
- Link personalizzato per ripristinare il carrello abbandonato
- Rispetto GDPR: messaggi solo a chi ha dato il consenso WhatsApp
- Placeholder dedicati: `{first_name}`, `{cart_items}`, `{cart_total}`, `{coupon_code}`, `{link_recover_cart}`
- Pulizia automatica coupon scaduti

### 🔄 Retry Automatico
- Cron ogni minuto per reinviare messaggi pendenti
- Max retries configurabile (-1 = illimitato, 0-99)
- Batch di 10 messaggi per esecuzione
- Ordine: dal meno recente

## Uso per Developer

```php
// Invia un messaggio WhatsApp
besked_send_whatsapp( '+393791234567', 'Ciao dal mio plugin!' );

// Con opzioni
besked_send_whatsapp( '+393791234567', 'Messaggio di test', array(
    'context'       => 'my_plugin_notification',
    'order_id'      => 123,
    'immediate'     => true,
    'check_consent' => true,
) );

// Verifica se Besked è configurato
if ( besked_is_configured() ) {
    // ...
}

// Formatta un numero
$e164 = besked_format_phone( '3791234567', 'IT' ); // +393791234567

// Verifica consenso
if ( besked_has_consent( '+393791234567' ) ) {
    // Il numero ha dato il consenso WhatsApp
}
```

## Requisiti

- WordPress 5.8+
- PHP 7.4+
- WooCommerce 5.0+ (opzionale, per le notifiche ordini)

## Installazione

1. Carica la cartella `besked-wa-notifications` in `/wp-content/plugins/`
2. Attiva il plugin da WordPress
3. Vai in **Besked > Impostazioni** e inserisci la tua API Key
4. Seleziona la sessione WhatsApp
5. Configura le notifiche WooCommerce

## License

GPL v2 or later
