DataFirefly Social Connect: kompletny przewodnik
Instalacja, konfiguracja i wykorzystanie logowania społecznościowego z 6 dostawcami dla WooCommerce: Google + One-Tap, Apple, Facebook, Microsoft, LinkedIn i X, panel statystyczny, przypisywanie zamówień, test A/B i antyfraud.
Prezentacja
DataFirefly Social Connect dodaje do Twojego sklepu WooCommerce logowanie społecznościowe jednym kliknięciem przez sześciu dostawców (Google, Apple, Facebook, Microsoft, LinkedIn i X), kompletny panel statystyczny, przypisywanie zamówień do dostawcy pochodzenia, test A/B przycisków, system antyfraudowy i natywną zgodność z RODO.
Wtyczka nie używa żadnej zewnętrznej biblioteki z CDN: wykresy panelu są renderowane w natywnym canvasie HTML5, a przepływy OAuth 2.0 i OpenID Connect są zaimplementowane bezpośrednio w module (pełna weryfikacja podpisów JWKS dla Google One-Tap, podpis ES256 w locie dla Apple, wzmocnienie appsecret_proof dla Facebooka, PKCE S256 dla X).
Wymagania: WordPress 6.2 lub nowszy, WooCommerce 7.0 lub nowszy, PHP 8.0 lub nowszy. Zgodność z HPOS i blokami checkoutu WooCommerce jest deklarowana przez wtyczkę przy aktywacji.
Instalacja
- Pobierz plik ZIP wtyczki ze swojego konta klienta DataFirefly.
- W WordPressie przejdź do Wtyczki → Dodaj nową → Wyślij wtyczkę na serwer.
- Wybierz plik ZIP i kliknij Zainstaluj teraz.
- Kliknij Włącz. WooCommerce musi być aktywne w momencie aktywacji, inaczej wtyczka odmówi instalacji.
- W pasku bocznym panelu pojawi się nowe menu Social Connect z dwiema podstronami: Statystyki i Ustawienia.
Przy aktywacji tworzone są dwie tabele SQL: wp_dfsc_connections (powiązane konta) i wp_dfsc_events (dziennik zdarzeń na potrzeby statystyk). Opcje domyślne zapisywane są w dfsc_settings.
Konfiguracja dostawców
Każdy dostawca ma własną kartę w zakładce Dostawcy w ustawieniach. Na górze każdej karty znajduje się URI przekierowania do skopiowania i wklejenia w konsoli dostawcy. To ten parametr pozwala Twojej witrynie odebrać powrót z uwierzytelnienia.
Google (z One-Tap)
- Wejdź na Google Cloud Console i utwórz (albo wybierz) projekt.
- W APIs & Services → OAuth consent screen skonfiguruj ekran zgody (typ External dla sklepu publicznego, dodaj swoją domenę do domen autoryzowanych).
- W Credentials → Create credentials → OAuth client ID wybierz Web application.
- W Authorized redirect URIs wklej URI wyświetlone w karcie Google w Social Connect (postać:
https://twoja-domena.com/?dfsc_action=callback&dfsc_provider=google). - Aby włączyć Google One-Tap, dodaj też swoją domenę główną w Authorized JavaScript origins.
- Skopiuj Client ID i Client secret do odpowiednich pól karty Google, włącz przełącznik dostawcy i w razie potrzeby zaznacz Pokazuj monit One-Tap niezalogowanym odwiedzającym.
One-Tap działa z pełną weryfikacją podpisu JWKS i kontrolą claimów aud, iss i exp. Walidacja jest kryptograficzna, a nie tylko deklaratywna.
Apple (Sign in with Apple)
- Na Apple Developer (wymagane płatne konto) przejdź do Certificates, Identifiers & Profiles → Identifiers.
- Utwórz App ID z włączoną funkcją Sign In with Apple.
- Następnie utwórz Services ID (to ten identyfikator posłuży jako „Client ID” po stronie Social Connect). Skonfiguruj jego Sign In with Apple: dodaj swoją domenę w Domains, a URI przekierowania z karty Apple w Return URLs.
- Utwórz klucz prywatny (Keys → +) z zaznaczonym Sign In with Apple, powiązany z Twoim App ID. Pobierz plik
.p8(można go pobrać tylko raz). - W karcie Apple wpisz Services ID, swój Team ID (widoczny w prawym górnym rogu portalu), Key ID (wyświetlany obok utworzonego klucza) i wklej pełną zawartość pliku
.p8w pole Klucz prywatny (razem z liniami-----BEGIN PRIVATE KEY-----).
Apple zwraca imię i nazwisko użytkownika tylko przy pierwszej zgodzie i nigdy nie udostępnia zdjęcia profilowego. Jeśli użytkownik włączy „Hide My Email”, dostarczany jest adres przekaźnikowy Apple, którego wtyczka używa normalnie. Jeśli odmówi udostępnienia adresu, wtyczka generuje automatycznie adres techniczny.
- Na Meta for Developers utwórz aplikację typu Consumer.
- W aplikacji dodaj produkt Facebook Login → Web.
- W ustawieniach Facebook Login dodaj URI przekierowania z karty Facebook w Valid OAuth Redirect URIs.
- Pobierz App ID i App Secret z Settings → Basic i wklej je do karty Facebook.
Wtyczka wzmacnia każde wywołanie Graph API parametrem appsecret_proof (HMAC-SHA256 tokena podpisany Twoim App Secret), zgodnie z dobrymi praktykami Meta.
Microsoft
- Na Microsoft Entra (dawniej Azure AD) przejdź do App registrations → New registration.
- Nadaj aplikacji nazwę. W Supported account types wybierz Accounts in any organizational directory and personal Microsoft accounts, jeśli chcesz akceptować oba typy (używa tenanta
common). - W Redirect URI wybierz Web i wklej URI z karty Microsoft.
- Po utworzeniu skopiuj Application (client) ID do odpowiedniego pola.
- W Certificates & secrets utwórz New client secret i natychmiast skopiuj wartość (później nie będzie już widoczna) do pola Client Secret.
- Zostaw pole Tenant na
common, aby akceptować konta firmowe i osobiste, albo wpisz identyfikator swojego tenanta, aby ograniczyć logowanie do jednej organizacji.
- Na LinkedIn Developers utwórz aplikację powiązaną ze stroną firmową.
- W zakładce Products poproś o aktywację Sign In with LinkedIn using OpenID Connect. Zatwierdzenie jest automatyczne.
- W zakładce Auth dodaj URI przekierowania z karty LinkedIn w Authorized redirect URLs.
- Pobierz Client ID i Client Secret z zakładki Auth i wklej je w Social Connect.
X (Twitter)
- Na portalu deweloperskim X utwórz projekt, a następnie aplikację.
- W User authentication settings włącz OAuth 2.0, wybierz typ Confidential client (zalecany) i wklej URI przekierowania z karty X w Callback URI / Redirect URL.
- Uzupełnij Website URL (strona główna Twojego sklepu).
- Pobierz Client ID i Client Secret i wklej je w Social Connect.
API X v2 nie zwraca adresu e-mail. Wtyczka generuje automatycznie adres techniczny, żeby utworzyć odpowiadające konto WordPressa. Jeśli zależy Ci na prawdziwym adresie, użytkownik może zawsze zaktualizować go w swoim panelu klienta.
Rozmieszczenie i wygląd
W zakładce Wygląd wybierasz, gdzie wyświetlać przyciski:
- Formularz logowania WooCommerce (strona Moje konto dla niezalogowanych).
- Formularz rejestracji WooCommerce.
- Strona zamówienia (checkout), nad formularzem.
- Panel Moje konto, z listą powiązanych kont i przyciskami ręcznego wiązania.
Przyciski możesz też wstawić w dowolnym miejscu przez shortcode:
[datafirefly_social_connect]
[datafirefly_social_connect context="login" heading="yes" providers="google,apple"]
[datafirefly_social_connect context="custom" redirect="https://twoja-witryna/cel/"]
Wygląd jest konfigurowalny w czterech wymiarach:
- Styl: pełny (kolory marki), kontur (białe tło, kolorowa obwódka), minimalny (jasnoszare tło).
- Kształt: zaokrąglony, pigułka, kwadratowy.
- Układ: w kolumnie albo w wierszu.
- Etykieta: „Kontynuuj z…”, „Zaloguj się przez…” albo sama ikona.
Panel statystyczny
Panel (menu Social Connect → Statystyki) zbiera całą aktywność logowania społecznościowego w Twoim sklepie.
KPI i wykresy
Selektor okresu w prawym górnym rogu: 7, 30, 90 lub 365 dni. Sześć wyświetlanych KPI obejmuje:
- Logowania: łączna liczba uwierzytelnień w okresie.
- Rejestracje: nowe konta utworzone przez logowanie społecznościowe.
- Powiązane konta (łącznie): skumulowana liczba tożsamości społecznościowych powiązanych z użytkownikami.
- Przypisane zamówienia i przypisany przychód: patrz następna sekcja.
- Współczynnik konwersji: stosunek zamówień do logowań.
KPI uzupełniają cztery wykresy: krzywa zmian w czasie per dostawca, wykres kołowy podziału per dostawca, wykres kołowy podziału per typ urządzenia (komputer, telefon, tablet) oraz karta „Top kraje” zasilana geolokalizacją.
Przypisywanie zamówień
Każde zamówienie WooCommerce złożone przez użytkownika, który trafił przez logowanie społecznościowe, jest przypisywane do jego dostawcy pochodzenia. Przypisanie opiera się na meta użytkownika _dfsc_registered_via, a awaryjnie na pierwszym aktywnym połączeniu społecznościowym użytkownika.
Nasłuchiwane są hooki woocommerce_checkout_order_processed i woocommerce_store_api_checkout_order_processed, co obejmuje zarówno klasyczny checkout, jak i checkout w blokach.
Test A/B przycisków
W zakładce Wygląd włącz blok Test A/B przycisków i skonfiguruj wariant B (styl, kształt, układ, etykieta). Od tego momentu każdy odwiedzający losowo otrzymuje wariant A (Twoje ustawienia bazowe) albo wariant B (ciasteczko dfsc_ab, podział 50/50, przechowywane 30 dni).
Wyświetlenie liczone jest raz na sesję odwiedzającego (ciasteczko dfsc_ab_imp), żeby nie zawyżać wolumenu. Konwersje mierzone są na zdarzeniach logowania, rejestracji, wiązania kont i zamówienia, i raportowane na karcie Test A/B panelu z wyświetleniami, konwersjami, przypisanymi zamówieniami, współczynnikami per wariant i automatycznym wskazaniem wariantu wygrywającego.
Aby wynik był statystycznie istotny, licz się z minimum 500 wyświetleniami na wariant. Poniżej 200 mierzone różnice to zasadniczo szum.
Antyfraud: limit prób logowania
W zakładce Prywatność możesz włączyć ograniczanie liczby prób per adres IP. Konfigurowalne są trzy progi:
- Maksymalna liczba prób: domyślnie 8.
- Okno (minuty): domyślnie 5.
- Czas blokady (minuty): domyślnie 15.
Po przekroczeniu limitu adres IP jest blokowany na skonfigurowany czas. Zdarzenie typu blocked trafia do dziennika i pojawia się w ostatniej aktywności. Ochrona obejmuje zarówno klasyczne przekierowania OAuth, jak i przepływ Google One-Tap.
Niezależnie od tego wtyczka utrzymuje listę domen jednorazowych adresów e-mail (Mailinator, Yopmail, 10MinuteMail i inne), które można blokować przy rejestracji. Listę rozszerza filtr dfsc_disposable_domains.
Geolokalizacja
Włącz geolokalizację w zakładce Prywatność. Wtyczka korzysta z bazy MaxMind już wbudowanej w WooCommerce: nie jest wykonywane żadne wywołanie do usługi zewnętrznej. Jeśli geolokalizacja po stronie WooCommerce nie jest jeszcze włączona, przejdź do WooCommerce → Ustawienia → Ogólne i włącz domyślną opcję geolokalizacji (WooCommerce pobierze bazę danych automatycznie).
Po włączeniu kraj każdego logowania jest rozwiązywany i zasila kartę Top kraje panelu oraz kolumnę „Kraj” w eksporcie CSV.
Eksport CSV
Przycisk Eksportuj do CSV na górze panelu eksportuje wszystkie zdarzenia z wybranego okresu. Plik zawiera kolumnę dla każdego istotnego pola (data UTC, zdarzenie, dostawca, kontekst, kraj, urządzenie, wariant A/B, użytkownik, zamówienie, kwota, komunikat). Na początku pliku dodawany jest BOM UTF-8, dzięki czemu Excel i LibreOffice Calc poprawnie wyświetlają znaki diakrytyczne.
Wiązanie kont
Współistnieją trzy mechanizmy wiązania tożsamości społecznościowej z kontem WordPressa:
- Tożsamość już znana: użytkownik korzystał już z tego dostawcy, logowanie jest natychmiastowe.
- Automatyczne wiązanie po adresie e-mail: istnieje już użytkownik WordPressa z tym samym adresem, który zwrócił dostawca. Jeśli adres jest zweryfikowany przez dostawcę (a opcja Wymagany zweryfikowany e-mail jest włączona), wiązanie następuje automatycznie.
- Wiązanie ręczne: z panelu Moje konto zalogowany klient może powiązać lub odłączyć każdego dostawcę przez panel Połączone konta.
RODO i prywatność
W zakładce Prywatność dostępne są trzy tryby przechowywania adresów IP:
- Haszowany (domyślnie): HMAC-SHA256 z
wp_salt, nieodwracalny. - Pełny: adres IP jawnie (używaj tylko wtedy, gdy Twoja polityka prywatności wprost to przewiduje).
- Brak: adres IP w ogóle nie jest zapisywany.
Wtyczka rejestruje exporter i eraser w natywnym systemie RODO WordPressa (Narzędzia → Eksport / Usuwanie danych osobowych). Przy usunięciu użytkownika usuwane są też jego powiązane konta i zdarzenia (albo anonimizowane przy wymazywaniu danych).
Shortcode i integracja zaawansowana
Shortcode [datafirefly_social_connect] przyjmuje następujące atrybuty:
context:login,register,checkoutalbocustom.heading:yesalbono, wyświetla tytuł „Szybkie logowanie” nad przyciskami.providers: lista rozdzielona przecinkami ograniczająca wyświetlanie (np.google,apple).redirect: bezwzględny adres URL przekierowania po zalogowaniu (ma pierwszeństwo przed ustawieniem globalnym).
Renderowanie możesz też wywołać bezpośrednio w PHP:
echo do_shortcode('[datafirefly_social_connect context="custom" providers="google,microsoft"]');
Hooki i filtry dla deweloperów
dfsc_disposable_domains(filtr): rozszerza lub zastępuje listę domen jednorazowych adresów e-mail.dfsc_user_registered(akcja): wywoływana tuż po utworzeniu konta przez logowanie społecznościowe, z ID użytkownika i znormalizowanym profilem.dfsc_after_login(akcja): wywoływana po każdym udanym logowaniu.dfsc_welcome_subjectidfsc_welcome_body(filtry): personalizują temat i treść e-maila powitalnego.dfsc_placeholder_email_domain(filtr): zmienia domenę używaną dla adresów technicznych (odrzucone Apple Hide My Email, X).
API REST tylko do odczytu udostępnia zagregowane statystyki pod /wp-json/datafirefly-social-connect/v1/stats?days=30 (wymagana zdolność manage_woocommerce). Włącz je w zakładce Prywatność.
Zgodność
- WooCommerce HPOS: zgodność
custom_order_tablesjest deklarowana przy aktywacji, zamówienia w wydajnym magazynie są obsługiwane bez zastrzeżeń. - Bloki checkoutu: hook
woocommerce_store_api_checkout_order_processedjest nasłuchiwany równolegle z hookiem klasycznym, przypisywanie zamówień działa w obu typach checkoutu. - Polylang i WPML: ciągi interfejsu są tłumaczalne przez dostarczony plik
.pot(FR, EN, ES, DE, IT). Treści (e-mail powitalny i inne) są zgodne z obiema wtyczkami wielojęzycznymi. - Multisite: każda witryna sieci ma własne tabele i opcje. Deinstalacja czyści każdą witrynę.
Deinstalacja
Przy usuwaniu wtyczki z poziomu Wtyczki automatycznie wykonywany jest plik uninstall.php. Usuwa on:
- Tabele
wp_dfsc_connectionsiwp_dfsc_events. - Opcje
dfsc_settingsidfsc_db_version. - Powiązane transienty (cache JWKS Google, cache sekretu klienta Apple, tokeny stanu).
- Metadane użytkowników (
_dfsc_provider,_dfsc_registered_via,_dfsc_avatar_idi inne).
Twoi użytkownicy WordPressa i zamówienia WooCommerce nigdy nie są naruszane. W trybie multisite deinstalacja przechodzi przez wszystkie witryny sieci.
FAQ i rozwiązywanie problemów
Przycisk Google zwraca „redirect_uri_mismatch”
URI przekierowania wklejone w Google Cloud Console nie odpowiada dokładnie temu z karty Google w Social Connect. Sprawdź, czy skopiowano pełne URI (z https://, końcowym ukośnikiem i parametrami ?dfsc_action=callback&dfsc_provider=google).
Apple zwraca „invalid_client”
Trzy możliwe przyczyny: wpisany Services ID to nie Services ID, tylko App ID, błędny Team ID, albo niekompletna zawartość klucza prywatnego .p8 (brak linii -----BEGIN PRIVATE KEY-----). Zweryfikuj wszystkie trzy i wyczyść cache sekretu klienta Apple, zapisując ustawienia ponownie.
Facebook zwraca błąd appsecret_proof
Wpisany App Secret jest błędny albo został zregenerowany po stronie Meta bez aktualizacji tutaj. Wejdź na Meta for Developers, skopiuj sekret ponownie i wklej go do karty Facebook.
X / Twitter zwraca „invalid_request” przy powrocie
Callback URI nie został poprawnie wpisany w portalu deweloperskim X, albo typ aplikacji to nie Confidential client, mimo że Client Secret jest wymagany. Zweryfikuj ustawienia w portalu.
Panel jest pusty, choć były logowania
Sprawdź, czy wybrany okres obejmuje logowania (domyślnie 30 dni). Jeśli wtyczka została dopiero włączona, poczekaj na kilka zdarzeń, żeby wykresy zaczęły się wypełniać.
Test A/B pokazuje współczynniki 0 %
Potrzebne jest minimum wyświetleń i konwersji, żeby współczynniki stały się miarodajne. Licz się z kilkuset wyświetleniami na wariant przed interpretacją wyników.
Geolokalizacja nie zwraca żadnego kraju
Sprawdź, czy WooCommerce pobrało bazę MaxMind. Przejdź do WooCommerce → Ustawienia → Ogólne, włącz domyślną geolokalizację i odczekaj kilka minut. Bazę WooCommerce aktualizuje potem automatycznie.
Jak wymusić odłączenie konta po stronie administratora?
Przejdź do tabeli wp_dfsc_connections i usuń odpowiedni wiersz. Przy następnym logowaniu przez tego dostawcę użytkownik zostanie potraktowany jako nowa tożsamość (powiązana z jego kontem WordPressa po adresie e-mail, jeśli automatyczne wiązanie jest aktywne).