Consent management
El módulo de gestión de consentimientos añade el versionado de consentimientos, un registro de auditoría, la exportación de datos y la integración con el RGPD. Registra el historial de consentimientos de los clientes y responde a los cambios en el contenido de los términos y condiciones.
Versionado de consentimientos
Section titled “Versionado de consentimientos”Detección automática de cambios
Section titled “Detección automática de cambios”El plugin supervisa el contenido de las etiquetas de las casillas legales. Cada vez que se guardan los ajustes, calcula un hash (SHA-256) del contenido de la etiqueta. Si el hash ha cambiado, el plugin crea automáticamente una nueva versión del consentimiento.
Cada versión de un consentimiento contiene:
- número de versión (autoincremental)
- hash del contenido de la etiqueta
- contenido completo de la etiqueta
- fecha de creación de la versión
- ID del usuario que realizó el cambio
Historial de versiones
Section titled “Historial de versiones”En los ajustes de las casillas legales, hay disponible un botón Historial de versiones junto a cada casilla. Muestra una lista de todas las versiones con fechas y una vista previa del contenido.
Nuevo consentimiento
Section titled “Nuevo consentimiento”Cuando el contenido de un consentimiento cambia (nueva versión), el plugin puede exigir a los clientes que otorguen de nuevo su consentimiento. Configuración:
| Ajuste | Descripción |
|---|---|
| Exigir nuevo consentimiento | Activa un aviso para volver a otorgar el consentimiento tras un cambio de contenido |
| Mostrar aviso | En la página de pago / En el panel Mi cuenta / Ambos |
| Contenido del mensaje | Texto que informa al cliente sobre el cambio de los términos |
El cliente ve un mensaje sobre el cambio de contenido y debe marcar de nuevo la casilla. El consentimiento anterior permanece en el historial con una etiqueta de versión.
Registro de auditoría
Section titled “Registro de auditoría”Eventos registrados
Section titled “Eventos registrados”El plugin registra todas las operaciones relacionadas con los consentimientos:
| Evento | Datos |
|---|---|
| Consentimiento otorgado | ID de usuario, ID de consentimiento, versión, fecha, IP, user agent |
| Consentimiento revocado | ID de usuario, ID de consentimiento, fecha, origen (cliente/admin) |
| Contenido del consentimiento cambiado | ID de consentimiento, versión anterior, versión nueva, fecha, ID del admin |
| Aviso de nuevo consentimiento | ID de usuario, ID de consentimiento, fecha |
| Nuevo consentimiento otorgado | ID de usuario, ID de consentimiento, versión nueva, fecha |
Consultar el historial
Section titled “Consultar el historial”Vaya a WooCommerce > Ajustes > Polski > Módulos PRO > Consentimientos > Registro de auditoría. La tabla contiene todos los eventos con filtros:
- ID de usuario o correo electrónico
- tipo de evento
- rango de fechas
- consentimiento específico
Exportación de datos
Section titled “Exportación de datos”El registro de auditoría se puede exportar en dos formatos:
- CSV - para abrirlo en una hoja de cálculo
- JSON - para procesamiento programático o importación en otro sistema
La exportación está disponible desde el panel del registro de auditoría. Puede exportar el historial completo o los resultados filtrados.
Integración con el panel Mi cuenta
Section titled “Integración con el panel Mi cuenta”Revocar el consentimiento
Section titled “Revocar el consentimiento”En el panel Mi cuenta del cliente aparece una sección “Mis consentimientos” con una lista de los consentimientos otorgados. El cliente puede:
- consultar los consentimientos otorgados actualmente
- ver la fecha en que se otorgó cada consentimiento
- revocar un consentimiento con el botón “Revocar”
La revocación de un consentimiento queda registrada en el registro de auditoría. El administrador recibe una notificación por correo electrónico sobre la revocación (configurable).
Aviso de nuevo consentimiento
Section titled “Aviso de nuevo consentimiento”Si el contenido de un consentimiento ha cambiado, el cliente ve en el panel Mi cuenta un mensaje que le pide que revise la nueva versión y otorgue de nuevo su consentimiento.
Integración con el RGPD
Section titled “Integración con el RGPD”Exportación de datos personales
Section titled “Exportación de datos personales”El plugin se integra con el mecanismo de exportación de datos personales de WordPress (wp_privacy_personal_data_exporters). Cuando se solicita una exportación de datos de un cliente, el plugin incluye:
- lista de los consentimientos otorgados con fechas y versiones
- historial completo de cambios de los consentimientos (otorgamientos, revocaciones, nuevos consentimientos)
- direcciones IP y fechas asociadas a cada consentimiento
/** * Rejestracja eksportera danych osobowych. */add_filter('wp_privacy_personal_data_exporters', function (array $exporters): array { $exporters['polski-pro-consents'] = [ 'exporter_friendly_name' => 'Polski PRO - Zgody', 'callback' => [PolskiPro\Privacy\Exporter::class, 'export'], ]; return $exporters;});Borrado de datos personales
Section titled “Borrado de datos personales”El plugin se integra con el mecanismo de borrado de datos de WordPress (wp_privacy_personal_data_erasers). Cuando se solicita una eliminación de datos:
- los datos personales del registro de auditoría se anonimizan (IP, user agent)
- las entradas de consentimiento se marcan como eliminadas
- el hecho mismo de otorgar/revocar el consentimiento permanece (sin datos identificativos) a efectos de responsabilidad proactiva
/** * Rejestracja erasera danych osobowych. */add_filter('wp_privacy_personal_data_erasers', function (array $erasers): array { $erasers['polski-pro-consents'] = [ 'eraser_friendly_name' => 'Polski PRO - Zgody', 'callback' => [PolskiPro\Privacy\Eraser::class, 'erase'], ]; return $erasers;});REST API
Section titled “REST API”El módulo proporciona un endpoint de la REST API para consultar los consentimientos (disponible para administradores):
Lista de consentimientos del usuario
Section titled “Lista de consentimientos del usuario”GET /wp-json/polski-pro/v1/consents?user_id={id}Devuelve una lista de los consentimientos del usuario con el estado y la versión actuales.
Historial de cambios
Section titled “Historial de cambios”GET /wp-json/polski-pro/v1/consents/audit?user_id={id}Parámetros de consulta:
| Parámetro | Tipo | Descripción |
|---|---|---|
user_id | int | ID de usuario |
consent_id | string | ID de un consentimiento específico |
event_type | string | Tipo de evento (granted, revoked, re_consented) |
date_from | string | Fecha desde (YYYY-MM-DD) |
date_to | string | Fecha hasta (YYYY-MM-DD) |
per_page | int | Número de resultados (por defecto 50) |
Exportación
Section titled “Exportación”GET /wp-json/polski-pro/v1/consents/export?format={csv|json}Devuelve una exportación completa del registro de auditoría en el formato seleccionado.
polski_pro/consent/granted
Section titled “polski_pro/consent/granted”Acción que se dispara tras otorgar un consentimiento.
/** * @param int $user_id ID użytkownika * @param string $consent_id ID zgody * @param int $version Numer wersji zgody */do_action('polski_pro/consent/granted', int $user_id, string $consent_id, int $version);Ejemplo:
add_action('polski_pro/consent/granted', function (int $user_id, string $consent_id, int $version): void { // Synchronizacja z zewnętrznym CRM if ($consent_id === 'marketing') { wp_remote_post('https://crm.example.com/api/consent', [ 'body' => wp_json_encode([ 'email' => get_userdata($user_id)->user_email, 'consent' => 'marketing', 'status' => 'granted', 'version' => $version, ]), 'headers' => ['Content-Type' => 'application/json'], ]); }}, 10, 3);polski_pro/consent/revoked
Section titled “polski_pro/consent/revoked”Acción que se dispara tras revocar un consentimiento.
/** * @param int $user_id ID użytkownika * @param string $consent_id ID zgody * @param string $source Źródło wycofania (customer, admin) */do_action('polski_pro/consent/revoked', int $user_id, string $consent_id, string $source);Ejemplo:
add_action('polski_pro/consent/revoked', function (int $user_id, string $consent_id, string $source): void { if ($consent_id === 'newsletter' && $source === 'customer') { // Wypisanie z newslettera do_action('newsletter_unsubscribe', get_userdata($user_id)->user_email); }}, 10, 3);Problemas frecuentes
Section titled “Problemas frecuentes”El aviso de nuevo consentimiento no se muestra
Section titled “El aviso de nuevo consentimiento no se muestra”- Compruebe si la opción “Exigir nuevo consentimiento” está activada
- Verifique que el contenido del consentimiento haya cambiado realmente (consulte el historial de versiones)
- Vacíe la caché de la página de pago y del panel Mi cuenta
La exportación RGPD no contiene datos de consentimientos
Section titled “La exportación RGPD no contiene datos de consentimientos”- Asegúrese de que el módulo de gestión de consentimientos esté activo
- Compruebe si el exportador
polski-pro-consentsestá registrado en Herramientas > Exportar datos personales - Verifique los registros en busca de errores de PHP
El registro de auditoría crece demasiado rápido
Section titled “El registro de auditoría crece demasiado rápido”El plugin almacena el historial de consentimientos en una tabla de base de datos independiente. Con un gran número de clientes, la tabla puede crecer. Considere:
- exportar y archivar periódicamente las entradas más antiguas
- configurar la limpieza automática de las entradas más antiguas que un número determinado de meses (opción en los ajustes)