# DataFirefly Social Connect — Guía completa

> Guía completa de instalación, configuración y uso de DataFirefly Social Connect: inicio de sesión social con Google, Apple, Facebook, Microsoft, LinkedIn y X para WooCommerce, con estadísticas, atribución de pedidos, test A/B y antifraude.

- Página: <https://www.datafirefly.com/es/documentation/datafirefly-social-connect/>
- Idioma: es
- Actualizado el: 2026-06-28
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/datafirefly-social-connect/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-social-connect/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-social-connect/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-social-connect/index.md), [pl](https://www.datafirefly.com/pl/documentation/datafirefly-social-connect/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-social-connect/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-social-connect/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## 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

1. Descarga el archivo ZIP del plugin desde tu área de cliente DataFirefly.
2. En WordPress, ve a _Plugins → Añadir nuevo → Subir plugin_.
3. Selecciona el ZIP y haz clic en _Instalar ahora_.
4. Haz clic en _Activar_. WooCommerce debe estar activo en el momento de la activación; de lo contrario, el plugin se niega a instalarse.
5. 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)

1. Ve a [Google Cloud Console](https://console.cloud.google.com/) y crea (o selecciona) un proyecto.
2. 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).
3. En _Credentials → Create credentials → OAuth client ID_, elige _Web application_.
4. 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`).
5. Para activar Google One-Tap, añade también tu dominio raíz en _Authorized JavaScript origins_.
6. 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)

1. En [Apple Developer](https://developer.apple.com/) (se requiere cuenta de pago), ve a _Certificates, Identifiers & Profiles → Identifiers_.
2. Crea un _App ID_ con la capability _Sign In with Apple_ activada.
3. 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_.
4. 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).
5. 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 `.p8` en 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.

### Facebook

1. En [Meta for Developers](https://developers.facebook.com/), crea una aplicación de tipo _Consumer_.
2. En la aplicación, añade el producto _Facebook Login → Web_.
3. En los ajustes de Facebook Login, añade la URI de redirección mostrada en la tarjeta Facebook a _Valid OAuth Redirect URIs_.
4. 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

1. En [Microsoft Entra (antes Azure AD)](https://entra.microsoft.com/), ve a _App registrations → New registration_.
2. 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`).
3. En _Redirect URI_, elige _Web_ y pega la URI mostrada en la tarjeta Microsoft.
4. Una vez creada, copia el _Application (client) ID_ en el campo correspondiente.
5. En _Certificates & secrets_, crea un _New client secret_, copia inmediatamente el valor (no volverá a ser visible) en el campo _Client Secret_.
6. Deja el campo _Tenant_ en `common` para aceptar cuentas profesionales y personales, o introduce tu ID de tenant para restringir a una organización.

### LinkedIn

1. En [LinkedIn Developers](https://www.linkedin.com/developers/), crea una aplicación vinculada a tu página de empresa.
2. En la pestaña _Products_, solicita la activación de _Sign In with LinkedIn using OpenID Connect_. La aprobación es automática.
3. En la pestaña _Auth_, añade la URI de redirección mostrada en la tarjeta LinkedIn a _Authorized redirect URLs_.
4. Copia el _Client ID_ y el _Client Secret_ de la pestaña _Auth_ en Social Connect.

### X (Twitter)

1. En el [portal de desarrolladores de X](https://developer.x.com/), crea un proyecto y luego una aplicación.
2. 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_.
3. Introduce tu _Website URL_ (página de inicio de tu tienda).
4. 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:

1. **Identidad ya conocida** — el usuario ya ha utilizado este proveedor, su inicio de sesión es inmediato.
2. **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.
3. **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`, `checkout` o `custom`.
- `heading` — `yes` o `no`, 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_subject` y `dfsc_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_tables` se 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_processed` se 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 `.pot` incluido (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_connections` y `wp_dfsc_events`.
- Las opciones `dfsc_settings` y `dfsc_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).
