DataFirefly Social Connect — Guía completa
Instalar, configurar y operar el inicio de sesión social de 6 proveedores para WooCommerce: Google + One-Tap, Apple, Facebook, Microsoft, LinkedIn y X, panel de estadísticas, atribución de pedidos, test A/B y antifraude.
Presentación
DataFirefly Social Connect añade a tu tienda WooCommerce un inicio de sesión social en un clic mediante seis proveedores (Google, Apple, Facebook, Microsoft, LinkedIn y X), un panel de estadísticas completo, la atribución de los pedidos al proveedor de origen, un test A/B de los botones, un sistema antifraude y el cumplimiento RGPD nativo.
El plugin no utiliza ninguna librería CDN externa: los gráficos del panel se renderizan con canvas HTML5 nativo, y los flujos OAuth 2.0 / OpenID Connect están implementados directamente en el módulo (verificación completa de firma JWKS para Google One-Tap, firma ES256 al vuelo para Apple, endurecimiento appsecret_proof para Facebook, PKCE S256 para X).
Requisitos: WordPress 6.2 o superior, WooCommerce 7.0 o superior, PHP 8.0 o superior. La compatibilidad con HPOS y los bloques de carrito y pago de WooCommerce se declara en la activación.
Instalación
- Descarga el archivo ZIP del plugin desde tu área de cliente DataFirefly.
- En WordPress, ve a Plugins → Añadir nuevo → Subir plugin.
- Selecciona el ZIP y haz clic en Instalar ahora.
- Haz clic en Activar. WooCommerce debe estar activo en el momento de la activación; de lo contrario, el plugin se niega a instalarse.
- Aparece un nuevo menú Social Connect en la barra lateral del administrador, con dos subpáginas: Estadísticas y Ajustes.
En la activación se crean dos tablas SQL: wp_dfsc_connections (cuentas vinculadas) y wp_dfsc_events (registro de eventos para las estadísticas). Las opciones por defecto se escriben en dfsc_settings.
Configuración de los proveedores
Cada proveedor tiene su propia tarjeta en la pestaña Proveedores de los ajustes. Para cada uno, en la parte superior de la tarjeta se muestra la URI de redirección que debes copiar y pegar en la consola del proveedor. Este es el parámetro que autoriza a tu sitio a recibir el retorno de la autenticación.
Google (con One-Tap)
- Ve a Google Cloud Console y crea (o selecciona) un proyecto.
- En APIs & Services → OAuth consent screen, configura la pantalla de consentimiento (tipo Externo para una tienda pública, añade tu dominio a los dominios autorizados).
- En Credentials → Create credentials → OAuth client ID, elige Web application.
- En Authorized redirect URIs, pega la URI mostrada en la tarjeta Google de Social Connect (forma:
https://tu-dominio.com/?dfsc_action=callback&dfsc_provider=google). - Para activar Google One-Tap, añade también tu dominio raíz en Authorized JavaScript origins.
- Copia el Client ID y el Client Secret en los campos correspondientes de la tarjeta Google, activa el interruptor del proveedor y marca Mostrar el aviso One-Tap a los visitantes no conectados si lo deseas.
One-Tap funciona con verificación completa de firma JWKS y comprobación de los claims aud, iss y exp. La validación es criptográfica, no solo declarativa.
Apple (Sign in with Apple)
- En Apple Developer (se requiere cuenta de pago), ve a Certificates, Identifiers & Profiles → Identifiers.
- Crea un App ID con la capability Sign In with Apple activada.
- Crea después un Services ID (este es el identificador que usarás como «Client ID» en Social Connect). Configura su Sign In with Apple: añade tu dominio en Domains y la URI de redirección mostrada en la tarjeta Apple en Return URLs.
- Crea una clave privada (Keys → +), con Sign In with Apple marcado, asociada a tu App ID. Descarga el archivo
.p8(solo podrás descargarlo una vez). - En la tarjeta Apple, indica el Services ID, tu Team ID (visible en la parte superior derecha del portal), el Key ID (mostrado junto a la clave creada) y pega el contenido completo del archivo
.p8en la zona Clave privada (incluyendo las líneas-----BEGIN PRIVATE KEY-----).
Apple solo devuelve el nombre del usuario en el primer consentimiento, y nunca devuelve una foto de perfil. Si el usuario activa «Hide My Email», se proporciona una dirección de retransmisión de Apple — el plugin la utiliza normalmente. Si rechaza compartir cualquier dirección, se genera automáticamente un e-mail técnico.
- En Meta for Developers, crea una aplicación de tipo Consumer.
- En la aplicación, añade el producto Facebook Login → Web.
- En los ajustes de Facebook Login, añade la URI de redirección mostrada en la tarjeta Facebook a Valid OAuth Redirect URIs.
- Obtén el App ID y el App Secret en Settings → Basic y pégalos en la tarjeta Facebook.
El plugin endurece cada llamada a la Graph API con appsecret_proof (HMAC-SHA256 del token firmado con tu App Secret), según las buenas prácticas de Meta.
Microsoft
- En Microsoft Entra (antes Azure AD), ve a App registrations → New registration.
- Nombra tu aplicación. Para Supported account types, elige Accounts in any organizational directory and personal Microsoft accounts si quieres aceptar ambos (usa el tenant
common). - En Redirect URI, elige Web y pega la URI mostrada en la tarjeta Microsoft.
- Una vez creada, copia el Application (client) ID en el campo correspondiente.
- En Certificates & secrets, crea un New client secret, copia inmediatamente el valor (no volverá a ser visible) en el campo Client Secret.
- Deja el campo Tenant en
commonpara aceptar cuentas profesionales y personales, o introduce tu ID de tenant para restringir a una organización.
- En LinkedIn Developers, crea una aplicación vinculada a tu página de empresa.
- En la pestaña Products, solicita la activación de Sign In with LinkedIn using OpenID Connect. La aprobación es automática.
- En la pestaña Auth, añade la URI de redirección mostrada en la tarjeta LinkedIn a Authorized redirect URLs.
- Copia el Client ID y el Client Secret de la pestaña Auth en Social Connect.
X (Twitter)
- En el portal de desarrolladores de X, crea un proyecto y luego una aplicación.
- En User authentication settings, activa OAuth 2.0, elige el tipo Confidential client (recomendado) y pega la URI de redirección mostrada en la tarjeta X en Callback URI / Redirect URL.
- Introduce tu Website URL (página de inicio de tu tienda).
- Copia el Client ID y el Client Secret en Social Connect.
La API X v2 no devuelve dirección de e-mail. El plugin genera automáticamente una dirección técnica para crear la cuenta WordPress correspondiente. Si necesitas un e-mail real, el usuario puede actualizarlo desde su área de cliente.
Ubicaciones y apariencia
En la pestaña Apariencia, eliges dónde mostrar los botones:
- Formulario de inicio de sesión de WooCommerce (página Mi cuenta sin sesión iniciada).
- Formulario de registro de WooCommerce.
- Página de pago, encima del formulario.
- Panel Mi cuenta, con la lista de cuentas vinculadas y los botones de asociación manual.
También puedes insertar los botones donde quieras mediante el shortcode:
[datafirefly_social_connect]
[datafirefly_social_connect context="login" heading="yes" providers="google,apple"]
[datafirefly_social_connect context="custom" redirect="https://tu-sitio/destino/"]
La apariencia se puede configurar en cuatro ejes:
- Estilo: relleno (colores de marca), contorno (fondo blanco, borde de color), mínimo (fondo gris claro).
- Forma: redondeado, píldora, cuadrado.
- Disposición: apilados o en línea.
- Etiqueta: «Continuar con…», «Iniciar sesión con…» o solo icono.
Panel de estadísticas
El panel (menú Social Connect → Estadísticas) reúne toda la actividad de inicio de sesión social de tu tienda.
KPI y gráficos
Selector de período en la parte superior derecha: 7, 30, 90 o 365 días. Los seis KPI mostrados cubren:
- Inicios de sesión — total de autenticaciones en el período.
- Registros — nuevas cuentas creadas vía inicio social.
- Cuentas vinculadas (total) — número acumulado de identidades sociales asociadas a usuarios.
- Pedidos atribuidos y facturación atribuida — ver la sección siguiente.
- Tasa de conversión — ratio pedidos / inicios de sesión.
Cuatro gráficos completan los KPI: una curva temporal por proveedor, un donut de reparto por proveedor, un donut de reparto por tipo de dispositivo (ordenador, móvil, tableta) y una tarjeta «Países principales» alimentada por la geolocalización.
Atribución de pedidos
Cada pedido WooCommerce realizado por un usuario llegado vía inicio social se atribuye a su proveedor de origen. La atribución se basa en el meta de usuario _dfsc_registered_via y, como reserva, en la primera conexión social activa del usuario.
Se escuchan los hooks woocommerce_checkout_order_processed y woocommerce_store_api_checkout_order_processed, lo que cubre tanto el pago clásico como el pago por bloques.
Test A/B de los botones
En la pestaña Apariencia, activa el bloque Test A/B de los botones y configura la variante B (estilo, forma, disposición, etiqueta). A partir de ese momento, cada visitante recibe aleatoriamente la variante A (tus ajustes base) o la variante B (cookie dfsc_ab, 50/50, conservada 30 días).
Una impresión se cuenta una vez por sesión de visitante (cookie dfsc_ab_imp), para no inflar el volumen. Las conversiones se miden sobre los eventos de inicio de sesión, registro, vinculación y pedido, y se reportan en la tarjeta Test A/B del panel con impresiones, conversiones, pedidos atribuidos, tasa por variante y designación automática de la variante ganadora.
Para obtener un resultado estadísticamente significativo, cuenta al menos 500 impresiones por variante. Por debajo de 200, las diferencias medidas son esencialmente ruido.
Antifraude — velocidad de inicio de sesión
En la pestaña Privacidad, puedes activar la limitación de velocidad por dirección IP. Tres umbrales son configurables:
- Intentos máximos — por defecto 8.
- Ventana (minutos) — por defecto 5.
- Duración del bloqueo (minutos) — por defecto 15.
Una vez superado el límite, la IP queda bloqueada durante el tiempo configurado. Se registra un evento de tipo blocked y aparece en la actividad reciente. La protección se aplica tanto a las redirecciones OAuth clásicas como al flujo Google One-Tap.
De forma independiente, el plugin mantiene una lista de dominios de e-mails desechables (Mailinator, Yopmail, 10MinuteMail, etc.) que pueden bloquearse al registro. La lista es ampliable mediante el filtro dfsc_disposable_domains.
Geolocalización
Activa la geolocalización en la pestaña Privacidad. El plugin utiliza la base MaxMind ya incorporada por WooCommerce — no se realiza ninguna llamada a un servicio externo. Si aún no has activado la geolocalización del lado de WooCommerce, ve a WooCommerce → Ajustes → General y activa la opción de geolocalización por defecto (WooCommerce descargará automáticamente la base de datos).
Una vez activada, el país de cada inicio de sesión se resuelve y alimenta la tarjeta Países principales del panel y la columna «País» de la exportación CSV.
Exportación CSV
El botón Exportar en CSV en la parte superior del panel exporta todos los eventos del período seleccionado. El archivo incluye una columna para cada campo relevante (fecha UTC, evento, proveedor, contexto, país, dispositivo, variante A/B, usuario, pedido, importe, mensaje). Se añade un BOM UTF-8 al inicio para que Excel y LibreOffice Calc muestren correctamente los acentos.
Vinculación de cuentas
Coexisten tres mecanismos para vincular una identidad social a una cuenta WordPress:
- Identidad ya conocida — el usuario ya ha utilizado este proveedor, su inicio de sesión es inmediato.
- Vinculación automática por e-mail — ya existe un usuario WordPress con la misma dirección que la devuelta por el proveedor. Si el e-mail está verificado por el proveedor (y la opción E-mail verificado requerido está activada), la vinculación se realiza automáticamente.
- Vinculación manual — desde el panel Mi cuenta, un cliente con sesión iniciada puede asociar o disociar cada proveedor mediante el panel Cuentas conectadas.
RGPD y privacidad
Tres modos de almacenamiento de IP están disponibles en la pestaña Privacidad:
- Hash (por defecto) — HMAC-SHA256 con
wp_salt, no reversible. - Completa — IP en claro (usar solo si tu política de privacidad lo menciona explícitamente).
- Ninguna — la IP no se registra en absoluto.
El plugin declara un exporter y un eraser al sistema RGPD nativo de WordPress (Herramientas → Exportar / Borrar datos personales). Al eliminar un usuario, sus cuentas vinculadas y sus eventos también se eliminan (o se anonimizan en caso de borrado).
Shortcode e integración avanzada
El shortcode [datafirefly_social_connect] acepta los siguientes atributos:
context—login,register,checkoutocustom.heading—yesono, para mostrar el título «Inicio rápido» sobre los botones.providers— lista separada por comas para limitar la visualización (ej.google,apple).redirect— URL absoluta de redirección tras el inicio de sesión (prevalece sobre el ajuste global).
También puedes invocar el renderizado directamente en PHP:
echo do_shortcode('[datafirefly_social_connect context="custom" providers="google,microsoft"]');
Hooks y filtros para desarrolladores
dfsc_disposable_domains(filtro) — amplía o sustituye la lista de dominios de e-mails desechables.dfsc_user_registered(acción) — se dispara justo después de la creación de una cuenta vía inicio social, con el ID de usuario y el perfil normalizado.dfsc_after_login(acción) — se dispara tras cada inicio de sesión correcto.dfsc_welcome_subjectydfsc_welcome_body(filtros) — personalizan el asunto y el cuerpo del e-mail de bienvenida.dfsc_placeholder_email_domain(filtro) — cambia el dominio usado para los e-mails técnicos (Apple Hide My Email rechazado, X).
Una API REST de solo lectura expone las estadísticas agregadas en /wp-json/datafirefly-social-connect/v1/stats?days=30 (capacidad manage_woocommerce requerida). Actívala en la pestaña Privacidad.
Compatibilidad
- WooCommerce HPOS — la compatibilidad
custom_order_tablesse declara en la activación; el almacenamiento de pedidos de alto rendimiento está totalmente soportado. - Bloques de pago — el hook
woocommerce_store_api_checkout_order_processedse escucha en paralelo al clásico, por lo que la atribución de pedidos funciona en ambos pagos. - Polylang y WPML — las cadenas de interfaz se pueden traducir mediante el archivo
.potincluido (FR, EN, ES, DE, IT). El contenido (e-mail de bienvenida, etc.) es compatible con ambos plugins multilingües. - Multisitio — cada sitio de la red tiene sus propias tablas y opciones. La desinstalación limpia cada sitio.
Desinstalación
Al eliminar el plugin desde Plugins, el archivo uninstall.php se ejecuta automáticamente. Elimina:
- Las tablas
wp_dfsc_connectionsywp_dfsc_events. - Las opciones
dfsc_settingsydfsc_db_version. - Los transients relacionados (caché JWKS de Google, caché del client secret Apple, tokens de estado).
- Los meta de usuario (
_dfsc_provider,_dfsc_registered_via,_dfsc_avatar_id, etc.).
Tus usuarios WordPress y tus pedidos WooCommerce nunca se tocan. En multisitio, la desinstalación recorre todos los sitios de la red.
FAQ y resolución de problemas
El botón Google muestra «redirect_uri_mismatch»
La URI de redirección pegada en Google Cloud Console no coincide exactamente con la mostrada en la tarjeta Google de Social Connect. Comprueba que has copiado la URI completa (con https://, la barra final y los parámetros ?dfsc_action=callback&dfsc_provider=google).
Apple devuelve «invalid_client»
Tres posibles causas: el Services ID introducido no es un Services ID sino un App ID, el Team ID es incorrecto, o el contenido de la clave privada .p8 está incompleto (faltan las líneas -----BEGIN PRIVATE KEY-----). Vuelve a comprobar los tres y vacía la caché del client secret Apple guardando los ajustes de nuevo.
Facebook devuelve un error de appsecret_proof
El App Secret introducido es incorrecto o se ha regenerado en Meta sin actualizarlo aquí. Ve a Meta for Developers, vuelve a copiar el secreto y pégalo en la tarjeta Facebook.
X / Twitter devuelve «invalid_request» al volver
El Callback URI no se ha introducido correctamente en el portal de desarrolladores X, o el tipo de aplicación no es Confidential client mientras que el Client Secret es obligatorio. Vuelve a comprobar el portal.
El panel está vacío aunque he tenido inicios de sesión
Comprueba que el período seleccionado abarca tus inicios de sesión (por defecto 30 días). Si acabas de activar el plugin, espera a tener algunos eventos antes de que los gráficos se animen.
El test A/B muestra tasas al 0%
Se necesita un mínimo de impresiones y conversiones para que las tasas sean significativas. Cuenta varios cientos de impresiones por variante antes de interpretar los resultados.
La geolocalización no devuelve ningún país
Comprueba que WooCommerce ha descargado la base MaxMind. Ve a WooCommerce → Ajustes → General, activa la geolocalización por defecto y espera unos minutos. WooCommerce mantiene luego la base actualizada automáticamente.
¿Cómo forzar la desvinculación de una cuenta desde la administración?
Ve a la tabla wp_dfsc_connections y elimina la fila correspondiente. En su próximo inicio de sesión vía ese proveedor, el usuario será tratado como una identidad nueva (reasociada a su cuenta WordPress por e-mail si la vinculación automática está activa).