DataFirefly Social Connect — Guida completa
Installare, configurare e gestire l'accesso social a 6 provider per WooCommerce: Google + One-Tap, Apple, Facebook, Microsoft, LinkedIn e X, dashboard statistiche, attribuzione degli ordini, test A/B e antifrode.
Panoramica
DataFirefly Social Connect aggiunge al tuo negozio WooCommerce un accesso social in un clic tramite sei provider (Google, Apple, Facebook, Microsoft, LinkedIn e X), una dashboard statistica completa, l’attribuzione degli ordini al provider d’origine, un test A/B dei pulsanti, un sistema antifrode e la conformità GDPR nativa.
Il plugin non utilizza alcuna libreria CDN esterna: i grafici della dashboard sono renderizzati con canvas HTML5 nativo, e i flussi OAuth 2.0 / OpenID Connect sono implementati direttamente nel modulo (verifica completa della firma JWKS per Google One-Tap, firma ES256 al volo per Apple, rafforzamento appsecret_proof per Facebook, PKCE S256 per X).
Requisiti: WordPress 6.2 o superiore, WooCommerce 7.0 o superiore, PHP 8.0 o superiore. La compatibilità con HPOS e i blocchi carrello e checkout di WooCommerce viene dichiarata all’attivazione.
Installazione
- Scarica il file ZIP del plugin dalla tua area cliente DataFirefly.
- In WordPress, vai in Plugin → Aggiungi nuovo → Carica plugin.
- Seleziona il file ZIP e clicca su Installa ora.
- Clicca su Attiva. WooCommerce deve essere attivo al momento dell’attivazione, altrimenti il plugin rifiuta di installarsi.
- Nella barra laterale dell’amministrazione appare un nuovo menu Social Connect, con due sottopagine: Statistiche e Impostazioni.
All’attivazione vengono create due tabelle SQL: wp_dfsc_connections (account collegati) e wp_dfsc_events (registro eventi per le statistiche). Le opzioni predefinite vengono scritte in dfsc_settings.
Configurazione dei provider
Ogni provider ha la propria scheda nella tab Provider delle impostazioni. Per ciascuno, in cima alla scheda viene mostrata l’URI di redirezione da copiare e incollare nella console del provider. È questo parametro che autorizza il tuo sito a ricevere il ritorno dell’autenticazione.
Google (con One-Tap)
- Vai su Google Cloud Console e crea (o seleziona) un progetto.
- In APIs & Services → OAuth consent screen, configura la schermata di consenso (tipo Esterno per un negozio pubblico, aggiungi il tuo dominio ai domini autorizzati).
- In Credentials → Create credentials → OAuth client ID, scegli Web application.
- In Authorized redirect URIs, incolla l’URI mostrata nella scheda Google di Social Connect (formato:
https://tuo-dominio.com/?dfsc_action=callback&dfsc_provider=google). - Per attivare Google One-Tap, aggiungi anche il tuo dominio radice in Authorized JavaScript origins.
- Copia il Client ID e il Client Secret nei campi corrispondenti della scheda Google, attiva l’interruttore del provider e seleziona Mostra l’invito One-Tap ai visitatori non connessi se lo desideri.
One-Tap funziona con verifica completa della firma JWKS e controllo dei claim aud, iss ed exp. La validazione è crittografica, non solo dichiarativa.
Apple (Sign in with Apple)
- Su Apple Developer (richiede account a pagamento), vai in Certificates, Identifiers & Profiles → Identifiers.
- Crea un App ID con la capability Sign In with Apple attivata.
- Crea poi un Services ID (è questo l’identificativo che userai come «Client ID» in Social Connect). Configura il suo Sign In with Apple: aggiungi il tuo dominio in Domains, e l’URI di redirezione mostrata nella scheda Apple in Return URLs.
- Crea una chiave privata (Keys → +), con Sign In with Apple selezionato, associata al tuo App ID. Scarica il file
.p8(puoi scaricarlo una sola volta). - Nella scheda Apple, inserisci il Services ID, il tuo Team ID (visibile in alto a destra nel portale), il Key ID (mostrato accanto alla chiave creata) e incolla l’intero contenuto del file
.p8nell’area Chiave privata (incluse le righe-----BEGIN PRIVATE KEY-----).
Apple restituisce il nome dell’utente solo al primo consenso, e non restituisce mai una foto del profilo. Se l’utente attiva «Hide My Email», viene fornito un indirizzo di relay Apple — il plugin lo utilizza normalmente. Se rifiuta di condividere qualsiasi indirizzo, viene generata automaticamente un’e-mail tecnica.
- Su Meta for Developers, crea un’applicazione di tipo Consumer.
- Nell’applicazione, aggiungi il prodotto Facebook Login → Web.
- Nelle impostazioni di Facebook Login, aggiungi l’URI di redirezione mostrata nella scheda Facebook a Valid OAuth Redirect URIs.
- Recupera l’App ID e l’App Secret da Settings → Basic e incollali nella scheda Facebook.
Il plugin rafforza ogni chiamata alla Graph API con appsecret_proof (HMAC-SHA256 del token firmato con il tuo App Secret), secondo le best practice di Meta.
Microsoft
- Su Microsoft Entra (ex Azure AD), vai in App registrations → New registration.
- Dai un nome alla tua applicazione. Per Supported account types, scegli Accounts in any organizational directory and personal Microsoft accounts se vuoi accettare entrambi (usa il tenant
common). - In Redirect URI, scegli Web e incolla l’URI mostrata nella scheda Microsoft.
- Una volta creata, copia l’Application (client) ID nel campo corrispondente.
- In Certificates & secrets, crea un New client secret, copia immediatamente il valore (non sarà più visibile) nel campo Client Secret.
- Lascia il campo Tenant su
commonper accettare sia account personali sia di lavoro/studio, o inserisci il tuo ID di tenant per restringere a un’organizzazione.
- Su LinkedIn Developers, crea un’applicazione collegata alla tua pagina aziendale.
- Nella tab Products, richiedi l’attivazione di Sign In with LinkedIn using OpenID Connect. L’approvazione è automatica.
- Nella tab Auth, aggiungi l’URI di redirezione mostrata nella scheda LinkedIn a Authorized redirect URLs.
- Copia il Client ID e il Client Secret dalla tab Auth in Social Connect.
X (Twitter)
- Sul portale sviluppatori di X, crea un progetto e poi un’applicazione.
- In User authentication settings, attiva OAuth 2.0, scegli il tipo Confidential client (consigliato), e incolla l’URI di redirezione mostrata nella scheda X in Callback URI / Redirect URL.
- Inserisci il tuo Website URL (homepage del tuo negozio).
- Copia il Client ID e il Client Secret in Social Connect.
L’API X v2 non restituisce l’indirizzo e-mail. Il plugin genera automaticamente un indirizzo tecnico per creare l’account WordPress corrispondente. Se hai bisogno di un’e-mail reale, l’utente può aggiornarla dalla propria area cliente.
Posizionamenti e aspetto
Nella tab Aspetto, scegli dove mostrare i pulsanti:
- Modulo di accesso WooCommerce (pagina Il mio account non connessa).
- Modulo di registrazione WooCommerce.
- Pagina di checkout, sopra il modulo.
- Dashboard Il mio account, con l’elenco degli account collegati e i pulsanti di associazione manuale.
Puoi anche inserire i pulsanti ovunque tramite lo shortcode:
[datafirefly_social_connect]
[datafirefly_social_connect context="login" heading="yes" providers="google,apple"]
[datafirefly_social_connect context="custom" redirect="https://tuo-sito/destinazione/"]
L’aspetto è configurabile su quattro assi:
- Stile: pieno (colori del brand), contorno (sfondo bianco, bordo colorato), minimal (sfondo grigio chiaro).
- Forma: arrotondato, pillola, quadrato.
- Disposizione: impilati o in linea.
- Etichetta: «Continua con…», «Accedi con…» o solo icona.
Dashboard statistiche
La dashboard (menu Social Connect → Statistiche) riunisce tutta l’attività di accesso social del tuo negozio.
KPI e grafici
Selettore di periodo in alto a destra: 7, 30, 90 o 365 giorni. I sei KPI mostrati coprono:
- Accessi — totale autenticazioni nel periodo.
- Registrazioni — nuovi account creati via accesso social.
- Account collegati (totale) — numero cumulativo di identità sociali associate agli utenti.
- Ordini attribuiti e fatturato attribuito — vedi la sezione successiva.
- Tasso di conversione — rapporto ordini / accessi.
Quattro grafici completano i KPI: una curva di evoluzione temporale per provider, un donut di ripartizione per provider, un donut di ripartizione per tipo di dispositivo (computer, mobile, tablet) e una scheda «Paesi principali» alimentata dalla geolocalizzazione.
Attribuzione degli ordini
Ogni ordine WooCommerce piazzato da un utente arrivato tramite accesso social viene attribuito al suo provider d’origine. L’attribuzione si basa sul meta utente _dfsc_registered_via e, come riserva, sulla prima connessione social attiva dell’utente.
Vengono ascoltati gli hook woocommerce_checkout_order_processed e woocommerce_store_api_checkout_order_processed, coprendo sia il checkout classico sia quello a blocchi.
Test A/B dei pulsanti
Nella tab Aspetto, attiva il blocco Test A/B dei pulsanti e configura la variante B (stile, forma, disposizione, etichetta). Da quel momento, ogni visitatore riceve casualmente la variante A (le tue impostazioni di base) o la variante B (cookie dfsc_ab, 50/50, conservato 30 giorni).
Un’impressione è contata una volta per sessione di visitatore (cookie dfsc_ab_imp), per non gonfiare il volume. Le conversioni vengono misurate sugli eventi di accesso, registrazione, collegamento e ordine, e riportate sulla scheda Test A/B della dashboard con impressioni, conversioni, ordini attribuiti, tasso per variante e designazione automatica della variante vincente.
Per ottenere un risultato statisticamente significativo, conta almeno 500 impressioni per variante. Sotto 200, le differenze misurate sono essenzialmente rumore.
Antifrode — velocità di accesso
Nella tab Privacy, puoi attivare la limitazione della velocità per indirizzo IP. Tre soglie sono configurabili:
- Tentativi massimi — predefinito 8.
- Finestra (minuti) — predefinito 5.
- Durata del blocco (minuti) — predefinito 15.
Una volta superato il limite, l’IP viene bloccato per la durata configurata. Un evento di tipo blocked viene registrato e appare nell’attività recente. La protezione si applica sia alle redirezioni OAuth classiche sia al flusso Google One-Tap.
Indipendentemente, il plugin mantiene un elenco di domini e-mail usa e getta (Mailinator, Yopmail, 10MinuteMail, ecc.) che possono essere bloccati alla registrazione. L’elenco è estensibile tramite il filtro dfsc_disposable_domains.
Geolocalizzazione
Attiva la geolocalizzazione nella tab Privacy. Il plugin utilizza il database MaxMind già incorporato da WooCommerce — nessuna chiamata a un servizio esterno viene effettuata. Se non hai ancora attivato la geolocalizzazione lato WooCommerce, vai in WooCommerce → Impostazioni → Generali e attiva l’opzione di geolocalizzazione predefinita (WooCommerce scaricherà automaticamente il database).
Una volta attivata, il paese di ogni accesso viene risolto e alimenta la scheda Paesi principali della dashboard e la colonna «Paese» dell’esportazione CSV.
Esportazione CSV
Il pulsante Esporta in CSV in cima alla dashboard esporta tutti gli eventi del periodo selezionato. Il file include una colonna per ogni campo rilevante (data UTC, evento, provider, contesto, paese, dispositivo, variante A/B, utente, ordine, importo, messaggio). Un BOM UTF-8 viene aggiunto all’inizio affinché Excel e LibreOffice Calc mostrino correttamente gli accenti.
Collegamento degli account
Tre meccanismi coesistono per collegare un’identità sociale a un account WordPress:
- Identità già nota — l’utente ha già utilizzato questo provider, il suo accesso è immediato.
- Collegamento automatico tramite e-mail — esiste già un utente WordPress con la stessa e-mail di quella restituita dal provider. Se l’e-mail è verificata dal provider (e l’opzione E-mail verificata richiesta è attiva), il collegamento è effettuato automaticamente.
- Collegamento manuale — dalla dashboard Il mio account, un cliente con sessione attiva può associare o dissociare ogni provider tramite il pannello Account collegati.
GDPR e privacy
Tre modalità di archiviazione dell’IP sono disponibili nella tab Privacy:
- Hash (predefinito) — HMAC-SHA256 con
wp_salt, non reversibile. - Completo — IP in chiaro (da usare solo se la tua policy sulla privacy lo menziona esplicitamente).
- Nessuno — l’IP non viene registrato affatto.
Il plugin dichiara un exporter e un eraser al sistema GDPR nativo di WordPress (Strumenti → Esporta / Cancella dati personali). Alla cancellazione di un utente, anche i suoi account collegati ed eventi vengono cancellati (o anonimizzati in caso di cancellazione).
Shortcode e integrazione avanzata
Lo shortcode [datafirefly_social_connect] accetta i seguenti attributi:
context—login,register,checkoutocustom.heading—yesono, per mostrare il titolo «Accesso rapido» sopra i pulsanti.providers— elenco separato da virgole per limitare la visualizzazione (es.google,apple).redirect— URL assoluto di redirezione dopo l’accesso (prevale sull’impostazione globale).
Puoi anche invocare il rendering direttamente in PHP:
echo do_shortcode('[datafirefly_social_connect context="custom" providers="google,microsoft"]');
Hook e filtri per sviluppatori
dfsc_disposable_domains(filtro) — estende o sostituisce l’elenco dei domini di e-mail usa e getta.dfsc_user_registered(azione) — si attiva subito dopo la creazione di un account tramite accesso social, con l’ID utente e il profilo normalizzato.dfsc_after_login(azione) — si attiva dopo ogni accesso riuscito.dfsc_welcome_subjectedfsc_welcome_body(filtri) — personalizzano oggetto e corpo dell’e-mail di benvenuto.dfsc_placeholder_email_domain(filtro) — modifica il dominio usato per le e-mail tecniche (Apple Hide My Email rifiutato, X).
Un’API REST in sola lettura espone le statistiche aggregate su /wp-json/datafirefly-social-connect/v1/stats?days=30 (capacità manage_woocommerce richiesta). Attivala nella tab Privacy.
Compatibilità
- WooCommerce HPOS — la compatibilità
custom_order_tablesviene dichiarata all’attivazione; l’archiviazione ad alte prestazioni degli ordini è pienamente supportata. - Blocchi di checkout — l’hook
woocommerce_store_api_checkout_order_processedviene ascoltato in parallelo a quello classico, l’attribuzione degli ordini funziona su entrambi i checkout. - Polylang e WPML — le stringhe dell’interfaccia sono traducibili tramite il file
.potfornito (FR, EN, ES, DE, IT). I contenuti (e-mail di benvenuto, ecc.) sono compatibili con entrambi i plugin multilingua. - Multisito — ogni sito della rete ha tabelle e opzioni proprie. La disinstallazione pulisce ogni sito.
Disinstallazione
Alla rimozione del plugin da Plugin, il file uninstall.php viene eseguito automaticamente. Rimuove:
- Le tabelle
wp_dfsc_connectionsewp_dfsc_events. - Le opzioni
dfsc_settingsedfsc_db_version. - I transient correlati (cache JWKS Google, cache del client secret Apple, token di stato).
- I meta utente (
_dfsc_provider,_dfsc_registered_via,_dfsc_avatar_id, ecc.).
I tuoi utenti WordPress e i tuoi ordini WooCommerce non vengono mai toccati. In multisito, la disinstallazione percorre ogni sito della rete.
FAQ e risoluzione dei problemi
Il pulsante Google mostra «redirect_uri_mismatch»
L’URI di redirezione incollata in Google Cloud Console non corrisponde esattamente a quella mostrata nella scheda Google di Social Connect. Verifica di aver copiato l’URI completa (con https://, lo slash finale e i parametri ?dfsc_action=callback&dfsc_provider=google).
Apple restituisce «invalid_client»
Tre possibili cause: il Services ID inserito non è un Services ID ma un App ID, il Team ID è errato, o il contenuto della chiave privata .p8 è incompleto (righe -----BEGIN PRIVATE KEY----- mancanti). Ricontrolla tutti e tre e svuota la cache del client secret Apple salvando nuovamente le impostazioni.
Facebook restituisce un errore di appsecret_proof
L’App Secret inserito è errato o è stato rigenerato lato Meta senza essere aggiornato qui. Vai su Meta for Developers, ricopia il segreto e incollalo nella scheda Facebook.
X / Twitter restituisce «invalid_request» al ritorno
Il Callback URI non è stato inserito correttamente nel portale sviluppatori X, o il tipo di applicazione non è Confidential client mentre il Client Secret è obbligatorio. Ricontrolla il portale.
La dashboard è vuota anche se ho avuto accessi
Verifica che il periodo selezionato copra effettivamente i tuoi accessi (predefinito 30 giorni). Se hai appena attivato il plugin, aspetta di avere alcuni eventi prima di vedere i grafici animarsi.
Il test A/B mostra tassi a 0%
Serve un minimo di impressioni e conversioni affinché i tassi diventino significativi. Conta qualche centinaio di impressioni per variante prima di interpretare i risultati.
La geolocalizzazione non restituisce alcun paese
Verifica che WooCommerce abbia effettivamente scaricato il database MaxMind. Vai in WooCommerce → Impostazioni → Generali, attiva la geolocalizzazione predefinita e attendi qualche minuto. WooCommerce mantiene poi il database aggiornato automaticamente.
Come forzare la disassociazione di un account dall’amministrazione?
Vai nella tabella wp_dfsc_connections ed elimina la riga corrispondente. Al prossimo accesso dell’utente tramite quel provider, sarà trattato come una nuova identità (ricollegata al suo account WordPress per e-mail se il collegamento automatico è attivo).