# Plugin de WordPress

> Iniciar sesión con Vimine, el carné de socio y la inscripción en el sitio WordPress de la asociación — sin código.

URL: https://developers.vimine.network/es/guides/wordpress/

El plugin **Vimine** para WordPress lleva lo esencial al sitio de la asociación, del lado del servidor (sin tokens en
el navegador, sin dependencias de JavaScript):

- **Iniciar sesión con Vimine** — el socio inicia sesión con su propia cuenta (OAuth 2.1 con PKCE; el plugin es un
  cliente confidencial e intercambia el código con el secreto en el servidor);
- **Carné** — el carné del socio que ha iniciado sesión, como imagen con el QR (`GET /v1/me/membership/card.svg`);
- **Inscripción** — el formulario de inscripción de la asociación (integrado).

## Instalación

1. En WordPress abre *Plugins → Añadir nuevo plugin*, busca «Vimine», instálalo y actívalo: el plugin está en el
   [directorio de WordPress.org](https://wordpress.org/plugins/vimine/).
2. En la consola Desarrolladores registra un cliente **confidencial**. Como URI de redirección usa el que se muestra
   en *Ajustes → Vimine* en el sitio (normalmente `https://yoursite/vimine-callback/`); elige los permisos (como
   mínimo `profile:read membership:read`).
3. En *Ajustes → Vimine* introduce el client ID y el secreto (el secreto no se vuelve a mostrar después de guardar).

:::note[Actualizaciones]
WordPress ofrece las versiones nuevas por sí solo, como con cualquier plugin del directorio, y las actualizaciones
automáticas se activan desde la página *Plugins*. Un sitio que instaló el zip que ofrecía esta página las recibe de
la misma manera, sin reinstalar: los ajustes se conservan.
:::

## Uso

| Shortcode | Bloque | Qué hace |
|---|---|---|
| `[vimine_signin label="" return_to="" scope=""]` | Vimine — Iniciar sesión | un botón «Iniciar sesión con Vimine»; «Cerrar sesión» cuando el socio ya ha iniciado sesión (revocación + cierre de sesión también en Vimine) |
| `[vimine_card]` | Vimine — Carné de socio | el carné del visitante que ha iniciado sesión; si no, le invita a iniciar sesión |
| `[vimine_enroll slug="…" height="900" lang=""]` | Vimine — Formulario de inscripción | el formulario de inscripción de la asociación, en el idioma del sitio (si Vimine lo habla; si no, en italiano; `lang` para elegir uno); a quien ya tiene una cuenta de Vimine se le ofrece *Continuar en Vimine*, que abre la página en una pestaña nueva donde se hace socio en un solo paso ([por qué una pestaña nueva](https://developers.vimine.network/es/guides/embed-and-verify/#quien-ya-tiene-una-cuenta-de-vimine)) |
| `[vimine_events slug="…" filter="upcoming" limit="10"]` | Vimine — Eventos | los eventos de la asociación con las plazas que quedan (los públicos para los visitantes, todos para un socio que ha iniciado sesión); cada evento enlaza a su página en Vimine, donde se hace la inscripción ([guía](https://developers.vimine.network/es/guides/events/)) |

Los bloques están en el editor, en «Widgets», con las mismas opciones.

## Cómo funciona la sesión

A la vuelta de la página de inicio de sesión alojada, el plugin intercambia el código (verificador PKCE + secreto),
guarda los tokens en un *transient* de WordPress y al navegador solo le da un id de sesión (cookie HttpOnly,
SameSite=Lax). El token de acceso se renueva solo con el refresh token; «Cerrar sesión» revoca el refresh token y pasa
por el `/oauth/logout` de Vimine, así que la sesión también termina allí. Un socio sin carné en la asociación ve el
mensaje correspondiente; una asociación que no ha activado la API recibe `api_disabled`.

## Personalización

La hoja de estilos es mínima y usa las variables `--vimine-accent` y `--vimine-accent-contrast`; cada elemento lleva
una clase `vimine-…`. Para algo más completo (datos del socio en el tema, inscripciones desde un back office) usa
directamente la [API](https://developers.vimine.network/api/) o el [SDK de servidor](https://developers.vimine.network/es/sdk/server/) con las credenciales del plugin.
