
# NewsletterBridge

This Plugin it's a connector for newsletter services like MailUp

## Comandi WP-CLI per Invio Newsletter

### Comandi Disponibili

Il plugin include comandi WP-CLI per la gestione completa della newsletter:

```bash
# Invia newsletter al sito corrente
wp newsletter send

# Invia newsletter forzatamente (ignora controlli data)
wp newsletter send --force

# Invia newsletter a un sito specifico (multisite)
wp newsletter send --site-id=1
wp newsletter send --force --site-id=2

# Testa la configurazione del plugin
wp newsletter test-config
wp newsletter test-config --site-id=1

# Testa la connessione MailUp
wp newsletter test-mailup
wp newsletter test-mailup --site-id=1

# Testa la generazione dei feed
wp newsletter test_feeds
wp newsletter test_feeds --site-id=1

# Mostra lo stato della newsletter
wp newsletter status
wp newsletter status --site-id=1

# Mostra l'help completo
wp newsletter --help
```

### Configurazione Crontab con WP-CLI

Per configurare l'invio automatico con WP-CLI:

```bash
# Apri il crontab per l'utente web server
sudo crontab -u www-data -e

# Aggiungi una delle seguenti righe:

# Invio giornaliero alle 8:00
0 8 * * * cd /path/to/wordpress && wp newsletter send

# Invio giornaliero alle 9:00 con log
0 9 * * * cd /path/to/wordpress && wp newsletter send >> /var/log/newsletter.log 2>&1

# Invio solo nei giorni lavorativi alle 8:30
30 8 * * 1-5 cd /path/to/wordpress && wp newsletter send

# Invio forzato (ignora controlli data)
0 8 * * * cd /path/to/wordpress && wp newsletter send --force

# Invio a siti specifici (multisite)
0 8 * * * cd /path/to/wordpress && wp newsletter send --site-id=1
0 9 * * * cd /path/to/wordpress && wp newsletter send --site-id=2
0 10 * * * cd /path/to/wordpress && wp newsletter send --force --site-id=3
```

### Vantaggi dei Comandi WP-CLI

- ✅ **Gestione errori migliorata**: Output colorato e dettagliato
- ✅ **Notifiche email automatiche**: Invia email a `techteam@blazemedia.it` in caso di errore
- ✅ **Debug integrato**: Log dettagliati per troubleshooting
- ✅ **Controlli automatici**: Verifica calendario, feed vuoti, invii duplicati
- ✅ **Sicurezza**: Verifica configurazioni prima dell'invio
- ✅ **Help integrato**: `wp newsletter --help` per vedere tutti i comandi
- ✅ **Modalità force**: `--force` per ignorare controlli di sicurezza

### Gestione Errori e Notifiche

Il plugin include un sistema completo di gestione errori:

#### Tipi di Errori Gestiti

- **Controllo calendario**: Newsletter non inviabile secondo il calendario
- **Feed vuoti**: Nessun contenuto disponibile per l'invio
- **Newsletter già inviata**: Tentativo di invio duplicato nella stessa giornata
- **Errori MailUp**: Problemi di autenticazione o API MailUp
- **Errori generici**: Qualsiasi altro errore durante il processo

#### Notifiche Email Automatiche

Ogni errore genera automaticamente un'email dettagliata a `techteam@blazemedia.it` contenente:
- Tipo di errore specifico
- Messaggio dettagliato
- Timestamp dell'errore
- Nome e URL del sito
- Stack trace completo per debugging
- Azioni consigliate per risolvere il problema

### Feed Generati

Il plugin genera automaticamente i feed XML per la newsletter:

#### Path dei Feed

I feed vengono salvati in:

```

/path/to/wordpress/web/nl-feed/

```

#### File Generati

-**featured.xml** - Feed contenuti in evidenza

-**newsfeed.xml** - Feed notizie principali

-**focusfeed.xml** - Feed focus

-**newstail.xml** - Feed coda notizie

-**offersfeed.xml** - Feed offerte

-**nlsponsored.xml** - Feed contenuti sponsorizzati

#### URL di Accesso

I feed sono accessibili via web:

```

https://tuodominio.com/nl-feed/[nome-feed].xml

```

Esempi:

-`https://autoblog.it/nl-feed/featured.xml`

-`https://autoblog.it/nl-feed/newsfeed.xml`

-`https://autoblog.it/nl-feed/offersfeed.xml`

#### Aggiornamento Feed

I feed vengono aggiornati automaticamente ogni volta che viene eseguito il comando di invio newsletter.

### Esempi di Utilizzo

#### Test della Configurazione

Prima di configurare il crontab, testa la configurazione:

```bash
# Verifica che il comando sia disponibile
wp newsletter --help

# Testa la configurazione
wp newsletter test-config

# Testa la connessione MailUp
wp newsletter test-mailup

# Testa la generazione dei feed
wp newsletter test_feeds

# Controlla lo stato
wp newsletter status
```

#### Invio Manuale

```bash
# Invio normale
wp newsletter send

# Invio forzato (ignora controlli)
wp newsletter send --force
```

#### Monitoraggio e Debug

```bash
# Visualizza i log di WordPress
tail -f /path/to/wordpress/wp-content/debug.log

# Testa il comando manualmente
cd /path/to/wordpress && wp newsletter send
```
