DataFirefly Social Connect — Guide complet
Installer, configurer et exploiter la connexion sociale 6 fournisseurs pour WooCommerce : Google + One-Tap, Apple, Facebook, Microsoft, LinkedIn et X, tableau de bord statistique, attribution des commandes, test A/B et anti-fraude.
Présentation
DataFirefly Social Connect ajoute à votre boutique WooCommerce une connexion sociale en un clic via six fournisseurs (Google, Apple, Facebook, Microsoft, LinkedIn et X), un tableau de bord statistique complet, l’attribution des commandes au fournisseur d’origine, un test A/B des boutons, un système anti-fraude et la conformité RGPD native.
Le plugin n’utilise aucune librairie CDN externe : les graphiques du tableau de bord sont rendus en canvas HTML5 natif, les flux OAuth 2.0 et OpenID Connect sont implémentés directement dans le module (vérification complète des signatures JWKS pour Google One-Tap, signature ES256 à la volée pour Apple, durcissement appsecret_proof pour Facebook, PKCE S256 pour X).
Pré-requis : WordPress 6.2 ou supérieur, WooCommerce 7.0 ou supérieur, PHP 8.0 ou supérieur. La compatibilité avec HPOS et les blocs de commande WooCommerce est déclarée par le plugin à l’activation.
Installation
- Téléchargez le fichier ZIP du plugin depuis votre espace client DataFirefly.
- Dans WordPress, allez dans Extensions → Ajouter → Téléverser une extension.
- Sélectionnez le ZIP puis cliquez sur Installer maintenant.
- Cliquez sur Activer. WooCommerce doit être actif au moment de l’activation, sinon le plugin refuse de s’installer.
- Un nouveau menu Social Connect apparaît dans la barre latérale d’administration, avec deux sous-pages : Statistiques et Réglages.
À l’activation, deux tables SQL sont créées : wp_dfsc_connections (comptes liés) et wp_dfsc_events (journal des événements pour les statistiques). Les options par défaut sont écrites dans dfsc_settings.
Configuration des fournisseurs
Chaque fournisseur dispose de sa propre carte dans l’onglet Fournisseurs des réglages. Pour chacun, vous trouvez en haut de la carte l’URI de redirection à copier-coller dans la console du fournisseur. C’est ce paramètre qui autorise votre site à recevoir le retour de l’authentification.
Google (avec One-Tap)
- Allez sur Google Cloud Console et créez (ou sélectionnez) un projet.
- Dans APIs & Services → OAuth consent screen, configurez l’écran de consentement (type Externe pour une boutique publique, ajoutez votre domaine dans les domaines autorisés).
- Dans Credentials → Create credentials → OAuth client ID, choisissez Web application.
- Dans Authorized redirect URIs, collez l’URI affichée dans la carte Google de Social Connect (forme :
https://votre-domaine.com/?dfsc_action=callback&dfsc_provider=google). - Pour activer Google One-Tap, ajoutez aussi votre domaine racine dans Authorized JavaScript origins.
- Copiez le Client ID et le Client secret dans les champs correspondants de la carte Google, activez l’interrupteur du fournisseur, et cochez Afficher l’invite One-Tap aux visiteurs non connectés si vous le souhaitez.
One-Tap fonctionne avec une vérification complète de la signature JWKS et un contrôle des claims aud, iss et exp. La validation est cryptographique, pas seulement déclarative.
Apple (Sign in with Apple)
- Sur Apple Developer (compte payant requis), allez dans Certificates, Identifiers & Profiles → Identifiers.
- Créez un App ID avec la capability Sign In with Apple activée.
- Créez ensuite un Services ID (c’est cet identifiant que vous utiliserez comme « Client ID » côté Social Connect). Configurez son Sign In with Apple : ajoutez votre domaine dans Domains, et l’URI de redirection affichée dans la carte Apple dans Return URLs.
- Créez une clé privée (Keys → +), avec Sign In with Apple coché, associée à votre App ID. Téléchargez le fichier
.p8(vous ne pourrez le télécharger qu’une seule fois). - Dans la carte Apple, renseignez le Services ID, votre Team ID (visible en haut à droite du portail), le Key ID (affiché à côté de la clé créée), et collez le contenu complet du fichier
.p8dans la zone Clé privée (lignes-----BEGIN PRIVATE KEY-----incluses).
Apple ne renvoie le nom de l’utilisateur qu’au tout premier consentement, et ne fournit jamais de photo de profil. Si l’utilisateur active « Hide My Email », un e-mail relais Apple est fourni — le plugin l’utilise normalement. S’il refuse de partager son adresse, un e-mail technique est généré automatiquement par le plugin.
- Sur Meta for Developers, créez une application de type Consumer.
- Dans l’application, ajoutez le produit Facebook Login → Web.
- Dans les paramètres de Facebook Login, ajoutez l’URI de redirection affichée dans la carte Facebook dans Valid OAuth Redirect URIs.
- Récupérez l’App ID et l’App Secret dans Settings → Basic et collez-les dans la carte Facebook.
Le plugin durcit chaque appel à la Graph API avec appsecret_proof (HMAC-SHA256 du jeton signé avec votre App Secret), conformément aux bonnes pratiques de Meta.
Microsoft
- Sur Microsoft Entra (anciennement Azure AD), allez dans App registrations → New registration.
- Donnez un nom à votre application. Pour Supported account types, choisissez Accounts in any organizational directory and personal Microsoft accounts si vous voulez accepter les deux (utilise le tenant
common). - Dans Redirect URI, choisissez Web et collez l’URI affichée dans la carte Microsoft.
- Une fois créée, copiez l’Application (client) ID dans le champ correspondant.
- Dans Certificates & secrets, créez un New client secret, copiez immédiatement la valeur (elle ne sera plus visible ensuite) dans le champ Client Secret.
- Laissez le champ Tenant sur
commonpour accepter comptes pro et personnels, ou renseignez votre ID de tenant pour restreindre à une organisation.
- Sur LinkedIn Developers, créez une application liée à votre page entreprise.
- Dans l’onglet Products, demandez l’activation de Sign In with LinkedIn using OpenID Connect. L’approbation est automatique.
- Dans l’onglet Auth, ajoutez l’URI de redirection affichée dans la carte LinkedIn dans Authorized redirect URLs.
- Récupérez le Client ID et le Client Secret de l’onglet Auth et collez-les dans Social Connect.
X (Twitter)
- Sur le portail développeurs X, créez un projet puis une application.
- Dans User authentication settings, activez OAuth 2.0, choisissez le type Confidential client (recommandé), et collez l’URI de redirection affichée dans la carte X dans Callback URI / Redirect URL.
- Renseignez votre Website URL (page d’accueil de votre boutique).
- Récupérez le Client ID et le Client Secret et collez-les dans Social Connect.
L’API X v2 ne renvoie pas l’adresse e-mail. Le plugin génère automatiquement une adresse technique pour créer le compte WordPress correspondant. Si vous tenez à un e-mail réel, l’utilisateur peut toujours le mettre à jour dans son espace client.
Placements et apparence
Dans l’onglet Apparence, vous choisissez où afficher les boutons :
- Formulaire de connexion WooCommerce (page Mon compte non connecté).
- Formulaire d’inscription WooCommerce.
- Page de commande (checkout), au-dessus du formulaire.
- Tableau de bord Mon compte, avec la liste des comptes liés et les boutons d’association manuelle.
Vous pouvez aussi insérer les boutons n’importe où via le shortcode :
[datafirefly_social_connect]
[datafirefly_social_connect context="login" heading="yes" providers="google,apple"]
[datafirefly_social_connect context="custom" redirect="https://votre-site/destination/"]
L’apparence est paramétrable sur quatre axes :
- Style : plein (couleurs de marque), contour (fond blanc, bordure colorée), minimal (fond gris clair).
- Forme : arrondi, pilule, carré.
- Disposition : empilés ou en ligne.
- Libellé : « Continuer avec… », « Se connecter avec… » ou icône seule.
Tableau de bord statistique
Le tableau de bord (menu Social Connect → Statistiques) regroupe toute l’activité de connexion sociale de votre boutique.
KPI et graphiques
Sélecteur de période en haut à droite : 7, 30, 90 ou 365 jours. Les six KPI affichés couvrent :
- Connexions — total des authentifications sur la période.
- Inscriptions — nouveaux comptes créés via connexion sociale.
- Comptes liés (total) — nombre cumulé d’identités sociales associées à des utilisateurs.
- Commandes attribuées et CA attribué — voir la section suivante.
- Taux de conversion — ratio commandes / connexions.
Quatre graphiques complètent les KPI : une courbe d’évolution dans le temps par fournisseur, un donut de répartition par fournisseur, un donut de répartition par type d’appareil (ordinateur, mobile, tablette) et une carte « Top pays » alimentée par la géolocalisation.
Attribution des commandes
Chaque commande WooCommerce passée par un utilisateur arrivé via connexion sociale est attribuée à son fournisseur d’origine. L’attribution s’appuie sur la méta utilisateur _dfsc_registered_via et, en secours, sur la première connexion sociale active de l’utilisateur.
Les hooks woocommerce_checkout_order_processed et woocommerce_store_api_checkout_order_processed sont écoutés, ce qui couvre à la fois le checkout classique et le checkout en blocs.
Test A/B des boutons
Dans l’onglet Apparence, activez le bloc Test A/B des boutons et configurez la variante B (style, forme, disposition, libellé). À partir de ce moment, chaque visiteur reçoit aléatoirement la variante A (vos réglages de base) ou la variante B (cookie dfsc_ab, 50/50, conservé 30 jours).
Une impression est comptée une fois par session de visiteur (cookie dfsc_ab_imp), pour ne pas gonfler le volume. Les conversions sont mesurées sur les événements de connexion, d’inscription, de liaison et de commande, et reportées sur la carte Test A/B du tableau de bord avec impressions, conversions, commandes attribuées, taux par variante et désignation automatique de la variante gagnante.
Pour obtenir un résultat statistiquement significatif, comptez au minimum 500 impressions par variante. Sous 200, les écarts mesurés sont essentiellement du bruit.
Anti-fraude — vélocité de connexion
Dans l’onglet Confidentialité, vous pouvez activer la limitation de vélocité par adresse IP. Trois seuils sont configurables :
- Tentatives maximum — par défaut 8.
- Fenêtre (minutes) — par défaut 5.
- Durée de blocage (minutes) — par défaut 15.
Une fois la limite franchie, l’IP est bloquée pour la durée configurée. Un événement de type blocked est journalisé et apparaît dans l’activité récente. La protection s’applique à la fois aux redirections OAuth classiques et au flux Google One-Tap.
Indépendamment, le plugin maintient une liste de domaines d’e-mails jetables (Mailinator, Yopmail, 10MinuteMail, etc.) qui peuvent être bloqués à l’inscription. La liste est extensible via le filtre dfsc_disposable_domains.
Géolocalisation
Activez la géolocalisation dans l’onglet Confidentialité. Le plugin utilise la base MaxMind déjà embarquée par WooCommerce — aucun appel à un service externe n’est effectué. Si vous n’avez pas encore activé la géolocalisation côté WooCommerce, allez dans WooCommerce → Réglages → Général et activez l’option de géolocalisation par défaut (WooCommerce téléchargera automatiquement la base de données).
Une fois activée, le pays de chaque connexion est résolu et alimente la carte Top pays du tableau de bord et la colonne « Pays » de l’export CSV.
Export CSV
Le bouton Exporter en CSV en haut du tableau de bord exporte tous les événements de la période sélectionnée. Le fichier inclut une colonne pour chaque champ pertinent (date UTC, événement, fournisseur, contexte, pays, appareil, variante A/B, utilisateur, commande, montant, message). Le BOM UTF-8 est ajouté en début de fichier pour qu’Excel et LibreOffice Calc affichent correctement les accents.
Liaison de comptes
Trois mécanismes coexistent pour relier une identité sociale à un compte WordPress :
- Identité déjà connue — l’utilisateur a déjà utilisé ce fournisseur, sa connexion est immédiate.
- Liaison automatique par e-mail — un utilisateur WordPress existe déjà avec la même adresse e-mail que celle renvoyée par le fournisseur. Si l’e-mail est vérifié par le fournisseur (et que l’option E-mail vérifié requis est activée), la liaison est faite automatiquement.
- Liaison manuelle — depuis le tableau de bord Mon compte, un client connecté peut associer ou dissocier chaque fournisseur via le panneau Comptes connectés.
RGPD et confidentialité
Trois modes de stockage des IP sont disponibles dans l’onglet Confidentialité :
- Hachée (par défaut) — HMAC-SHA256 avec
wp_salt, non réversible. - Complète — IP en clair (à n’utiliser que si votre politique de confidentialité le mentionne explicitement).
- Aucune — l’IP n’est pas du tout enregistrée.
Le plugin déclare un exporter et un eraser auprès du système RGPD natif de WordPress (Outils → Exporter / Effacer des données personnelles). À la suppression d’un utilisateur, ses comptes liés et ses événements sont également supprimés (ou anonymisés en cas d’effacement).
Shortcode et intégration avancée
Le shortcode [datafirefly_social_connect] accepte les attributs suivants :
context—login,register,checkoutoucustom.heading—yesouno, pour afficher le titre « Connexion rapide » au-dessus des boutons.providers— liste séparée par des virgules pour limiter l’affichage (ex.google,apple).redirect— URL absolue de redirection après connexion (prime sur le réglage global).
Vous pouvez aussi appeler le rendu directement en PHP :
echo do_shortcode('[datafirefly_social_connect context="custom" providers="google,microsoft"]');
Hooks et filtres pour développeurs
dfsc_disposable_domains(filtre) — étend ou remplace la liste des domaines d’e-mails jetables.dfsc_user_registered(action) — déclenchée juste après la création d’un compte via connexion sociale, avec l’ID utilisateur et le profil normalisé.dfsc_after_login(action) — déclenchée après chaque connexion réussie.dfsc_welcome_subjectetdfsc_welcome_body(filtres) — personnalisent le sujet et le corps de l’e-mail de bienvenue.dfsc_placeholder_email_domain(filtre) — change le domaine utilisé pour les e-mails techniques (Apple Hide My Email refusé, X).
Une API REST en lecture seule expose les statistiques agrégées sur /wp-json/datafirefly-social-connect/v1/stats?days=30 (capacité manage_woocommerce requise). Activez-la dans l’onglet Confidentialité.
Compatibilité
- WooCommerce HPOS — la compatibilité
custom_order_tablesest déclarée à l’activation, vos commandes en stockage haute performance sont supportées sans réserve. - Blocs de commande — le hook
woocommerce_store_api_checkout_order_processedest écouté en parallèle du hook classique, l’attribution des commandes fonctionne sur les deux types de checkout. - Polylang et WPML — les chaînes d’interface sont traduisibles via le fichier
.potfourni (FR, EN, ES, DE, IT). Le contenu (e-mail de bienvenue, etc.) est compatible avec les deux plugins multilingues. - Multisite — chaque site du réseau a ses propres tables et options. La désinstallation nettoie chaque site.
Désinstallation
À la suppression du plugin depuis Extensions, le fichier uninstall.php est exécuté automatiquement. Il supprime :
- Les tables
wp_dfsc_connectionsetwp_dfsc_events. - Les options
dfsc_settingsetdfsc_db_version. - Les transients liés (cache JWKS Google, cache du secret client Apple, jetons d’état).
- Les métadonnées utilisateur (
_dfsc_provider,_dfsc_registered_via,_dfsc_avatar_id, etc.).
Vos utilisateurs WordPress et vos commandes WooCommerce ne sont jamais touchés. En multisite, la désinstallation parcourt tous les sites du réseau.
FAQ et dépannage
Le bouton Google m’affiche « redirect_uri_mismatch »
L’URI de redirection collée dans Google Cloud Console ne correspond pas exactement à celle affichée dans la carte Google de Social Connect. Vérifiez que vous avez bien copié l’URI complète (avec https://, le slash final, et les paramètres ?dfsc_action=callback&dfsc_provider=google).
Apple me retourne « invalid_client »
Trois causes possibles : le Services ID renseigné n’est pas un Services ID mais un App ID, le Team ID est erroné, ou le contenu de la clé privée .p8 est incomplet (lignes -----BEGIN PRIVATE KEY----- manquantes). Re-vérifiez les trois et videz le cache du secret client Apple en sauvegardant à nouveau les réglages.
Facebook me retourne une erreur d’appsecret_proof
L’App Secret saisi est incorrect ou a été régénéré côté Meta sans être mis à jour ici. Allez dans Meta for Developers, copiez à nouveau le secret, et collez-le dans la carte Facebook.
X / Twitter me retourne « invalid_request » au moment du retour
Le Callback URI n’a pas été correctement renseigné dans le portail développeurs X, ou le type d’application n’est pas Confidential client alors que le Client Secret est obligatoire. Re-vérifiez le portail.
Le tableau de bord est vide alors que j’ai eu des connexions
Vérifiez que la période sélectionnée couvre bien les connexions (par défaut 30 jours). Si vous venez d’activer le plugin, attendez d’avoir au moins quelques événements pour voir les graphiques s’animer.
Le test A/B affiche des taux à 0 %
Il faut un minimum d’impressions et de conversions pour que les taux deviennent significatifs. Comptez quelques centaines d’impressions par variante avant d’interpréter les résultats.
La géolocalisation ne renvoie aucun pays
Vérifiez que WooCommerce a bien téléchargé la base MaxMind. Allez dans WooCommerce → Réglages → Général, activez la géolocalisation par défaut, et patientez quelques minutes. La base est mise à jour automatiquement par WooCommerce ensuite.
Comment forcer la dissociation d’un compte côté admin ?
Allez dans la table wp_dfsc_connections et supprimez la ligne correspondante. À sa prochaine connexion via ce fournisseur, l’utilisateur sera traité comme une identité nouvelle (rattachée à son compte WordPress par e-mail si la liaison automatique est active).