Plugin WordPress

Gestore Newsletter per Wordpress e Woocommerce

Gestore Newsletter per Wordpress e Woocommerce

Be-Side Contact & Newsletter – Il plugin WordPress che ho costruito da zero

Ogni tanto capita un progetto che ti fa dire "ok, stavolta mi sono divertito davvero". Questo è uno di quelli.

Ho costruito Be-Side Contact & Newsletter da zero: un plugin WordPress completo per gestire iscrizioni alla newsletter, inviare campagne email e tenere traccia di tutto — senza dipendere da Mailchimp, Brevo o qualsiasi altro servizio esterno a pagamento. Il cliente voleva pieno controllo sui propri dati e sui propri contatti, senza canoni mensili che crescono al crescere degli iscritti. Problema capito, soluzione costruita.


Cosa fa, in parole semplici

Immagina di avere dentro WordPress un mini-sistema di email marketing completamente tuo. Puoi:

  • Raccogliere iscrizioni tramite un popup che appare sul sito, personalizzabile nel testo, nel ritardo di comparsa e nelle pagine in cui si mostra
  • Gestire i contatti con un pannello dedicato: filtri per stato (attivi, in attesa, disiscritti), ricerca, esportazione CSV, importazione da altri sistemi
  • Creare campagne newsletter con un editor visuale, immagine di copertina, pulsante call-to-action e link ai social
  • Inviare in modo sicuro, rispettando tutti gli standard anti-spam moderni
  • Programmare l'invio a una data e ora precisa, in automatico
  • Vedere le statistiche: quante email consegnate, quante fallite, quante aperte


Il sistema di iscrizione: niente spam, niente sorprese

Ho implementato il double opt-in: quando qualcuno si iscrive, non viene aggiunto subito alla lista. Riceve prima un'email di conferma con un link personale. Solo dopo il click diventa un iscritto attivo. Questo protegge il mittente dalla reputazione negativa e garantisce che in lista ci siano solo persone che vogliono davvero ricevere le email.

Per evitare abusi ho aggiunto anche un rate limiting: non puoi tentare l'iscrizione più di 3 volte ogni 10 minuti dallo stesso IP. E c'è l'integrazione con Google reCAPTCHA v3 per bloccare i bot in modo invisibile, senza quei fastidiosi "seleziona le biciclette o le striscie pedonali".


Le email: costruite per arrivare a destinazione

Questa è la parte che mi ha impegnato di più, e di cui sono più soddisfatto.

Le email vengono costruite con un template HTML ottimizzato per i principali client email (Gmail, Apple Mail, Outlook) con tabelle annidate, CSS inline e compatibilità MSO per Outlook. Ogni email include:

  • Header brandizzato con logo del cliente (o nome del sito come fallback) su sfondo colorato personalizzabile
  • Immagine di copertina opzionale
  • Contenuto ricco con testo formattato, immagini allineate (sinistra, destra, centro) che vengono convertite automaticamente in stili inline — perché i client email non caricano i CSS di WordPress
  • Pulsante call-to-action centrato, con colore coordinato all'header
  • Footer con icone social (Facebook, Instagram, WhatsApp) e link di disiscrizione
  • Versione testo plain in allegato per i client più spartani


Per la deliverability (cioè evitare che le email finiscano nello spam) ho integrato:

  • Header List-Unsubscribe e List-Unsubscribe-Post secondo RFC 8058 — quelli che permettono il disiscrizione con un clic direttamente da Gmail
  • Encoding quoted-printable e charset UTF-8 forzati via PHPMailer
  • Header Precedence: bulk e X-Auto-Response-Suppress per segnalare correttamente il tipo di comunicazione


L'invio in batch: niente timeout, niente blocchi

Inviare 500/800/1500 email in un colpo solo farebbe andare in timeout il server in pochi secondi. Ho risolto con un sistema a batch via WP-Cron: le email vengono inserite in una coda nel database e inviate in gruppi da 50 (configurabile) ogni 5 minuti (configurabile). Il cron gira in background, il cliente non deve fare nulla, e il server non si sovraccarica mai.

Ogni invio tiene traccia dello stato: in attesa, inviata, fallita. Se qualcosa va storto si può reinviare solo le mail fallite con un clic. Se durante un invio si elimina per errore un iscritto, il sistema lo gestisce in modo pulito senza bloccarsi.


Le statistiche: sapere chi apre le email

Ho implementato un tracking pixel: un'immagine trasparente 1×1 pixel inclusa in ogni email. Quando l'iscritto apre il messaggio, il client email carica quell'immagine dal server — e in quel momento il plugin registra l'apertura. Solo la prima conta, quelle successive vengono ignorate. Dalla dashboard si vede subito quante aperture uniche ha avuto ogni campagna, con la percentuale sul totale inviato.


Il pannello di amministrazione

Ho costruito un'interfaccia admin completamente custom, senza usare le tabelle standard di WordPress che sono brutte e scomode. Il risultato è un pannello pulito con:

  • Dashboard con i numeri chiave in evidenza
  • Gestione iscritti con filtri, ricerca, selezione multipla, esportazione e importazione CSV
  • Editor campagne con TinyMCE configurato (grassetto, corsivo, colori, dimensioni font, allineamenti, liste, link, immagini)
  • Anteprima email nel browser prima di inviare
  • Email di test per verificare come arriva prima di mandarla a tutti
  • Programmazione invio con date e ore (gestite correttamente in UTC per evitare problemi di fuso orario)
  • Log invii dettagliato per ogni campagna
  • Duplica campagna per riusare strutture già create


Tecnologie usate

  • PHP 8.0+ con classi separate per ogni responsabilità (Mailer, Campaign, Subscriber, Cron, DB, Admin, Frontend)
  • MySQL con tabelle custom e sistema di migrazione progressiva per gli aggiornamenti
  • WordPress hooks e API: WP-Cron, wp_mail/PHPMailer, wp_editor, wp.media, admin-post.php, AJAX
  • jQuery per le interazioni admin (invio, anteprima, statistiche in tempo reale)
  • HTML email con tabelle, CSS inline, compatibilità MSO/Outlook
  • Google reCAPTCHA v3 per la protezione dei form


Hai un progetto in mente?

Se stai pensando a qualcosa di simile — un tool custom, un plugin WordPress, un sistema che non trovi già fatto e che deve funzionare esattamente come vuoi tu — scrivimi. Mi piace costruire cose da zero, capire il problema e trovare la soluzione giusta senza gonfiare il progetto con roba inutile.

Raccontami cosa hai in mente →

Parliamone.

Trasformo idee in prodotti digitali funzionanti. Contattami per un preventivo gratuito.

Contattami ora ← Tutti i lavori