DSA - Digital Services Act
La Ley de Servicios Digitales (Digital Services Act, DSA, EU 2022/2065) obliga a las plataformas en línea a permitir la denuncia de contenido ilegal. El plugin añade un formulario de denuncia, un panel de administración para gestionar denuncias, seguimiento de estados y notificaciones automáticas por correo electrónico.
Requisitos de la DSA para tiendas en línea
Section titled “Requisitos de la DSA para tiendas en línea”Desde el 17 de febrero de 2024, las tiendas con contenido generado por los usuarios (reseñas, comentarios, fotos) deben:
- Ofrecer un mecanismo para denunciar contenido ilegal
- Confirmar la recepción de la denuncia
- Tramitar la denuncia en un plazo razonable
- Informar al denunciante de la decisión
- Permitir un recurso contra la decisión
Esto se aplica a las tiendas donde los usuarios pueden publicar contenido, principalmente reseñas de productos.
Formulario de denuncia
Section titled “Formulario de denuncia”Shortcode
Section titled “Shortcode”Incrusta el formulario de denuncia DSA en cualquier página mediante el shortcode:
[polski_dsa_report]Con parámetros
Section titled “Con parámetros”[polski_dsa_report product_id="123" category="illegal_content"]Parámetros del shortcode
Section titled “Parámetros del shortcode”| Parámetro | Descripción | Valor predeterminado |
|---|---|---|
product_id | ID del producto al que se refiere la denuncia | Ninguno (lo elige el usuario) |
category | Categoría de denuncia preseleccionada | Ninguna |

Campos del formulario
Section titled “Campos del formulario”El formulario contiene los siguientes campos:
- Categoría de la denuncia - selección de una lista (contenido ilegal, infracción de derechos de autor, reseña falsa, discurso de odio, datos personales, otros)
- URL o identificador del contenido - enlace al contenido denunciado o ID de la reseña
- Descripción - descripción detallada del problema
- Base legal - referencia opcional a la normativa
- Datos de contacto - nombre, dirección de correo electrónico del denunciante
- Declaración - casilla que confirma que la denuncia se presenta de buena fe
Ejemplo de incrustación
Section titled “Ejemplo de incrustación”Crea una página “Denunciar contenido” y añade el shortcode:
[polski_dsa_report]Añade un enlace a esta página en el pie de la tienda para que sea fácilmente accesible.
Panel de administración
Section titled “Panel de administración”Gestiona las denuncias DSA en WooCommerce > Denuncias DSA.
Lista de denuncias
Section titled “Lista de denuncias”La lista muestra todas las denuncias con las columnas:
- ID de la denuncia
- Fecha de envío
- Categoría
- Estado (nueva, en curso, resuelta, rechazada)
- Denunciante (nombre, correo electrónico)
- Enlace al contenido
Detalles de la denuncia
Section titled “Detalles de la denuncia”Al hacer clic en una denuncia verás:
- Datos completos del formulario
- Vista previa del contenido denunciado (si es una reseña, enlace directo)
- Historial de cambios de estado
- Campo para nota interna
- Botones de acción (cambiar estado, eliminar contenido, rechazar)
Estados de las denuncias
Section titled “Estados de las denuncias”| Estado | Descripción |
|---|---|
new | Denuncia nueva, pendiente de tramitación |
in_progress | Denuncia en análisis |
resolved | Denuncia tramitada, contenido eliminado u otra acción adoptada |
rejected | Denuncia rechazada por infundada |
appealed | El denunciante presentó un recurso contra la decisión |
Notificaciones por correo electrónico
Section titled “Notificaciones por correo electrónico”El plugin envía correos electrónicos automáticos en estas situaciones:
| Evento | Destinatario | Contenido |
|---|---|---|
| Nueva denuncia | Administrador | Información sobre la nueva denuncia con los datos |
| Confirmación | Denunciante | Confirmación de recepción de la denuncia con número de ID |
| Cambio de estado | Denunciante | Información sobre el cambio de estado con justificación |
| Resolución | Denunciante | Decisión con justificación e información sobre el derecho de recurso |
Las plantillas de correo electrónico se pueden personalizar en WooCommerce > Ajustes > Correos electrónicos.
polski/dsa/report_created
Section titled “polski/dsa/report_created”Se activa tras crear una nueva denuncia DSA.
/** * @param int $report_id DSA report ID. * @param array $report_data Report data. * @param string $category Report category. */add_action('polski/dsa/report_created', function (int $report_id, array $report_data, string $category): void { // Example: send notification to the legal team via Slack $webhook_url = 'https://hooks.slack.com/services/XXXX/YYYY/ZZZZ';
wp_remote_post($webhook_url, [ 'body' => wp_json_encode([ 'text' => sprintf( 'New DSA report #%d (category: %s) - %s', $report_id, $category, $report_data['description'] ), ]), 'headers' => ['Content-Type' => 'application/json'], ]);}, 10, 3);Ejemplo - ocultar automáticamente reseñas de una categoría concreta
Section titled “Ejemplo - ocultar automáticamente reseñas de una categoría concreta”add_action('polski/dsa/report_created', function (int $report_id, array $report_data, string $category): void { // Automatically hold reviews reported as hate speech if ($category !== 'hate_speech') { return; }
$comment_id = $report_data['content_id'] ?? 0; if ($comment_id > 0) { wp_set_comment_status($comment_id, 'hold');
// Log the automatic action update_post_meta($report_id, '_auto_action', 'comment_held'); }}, 10, 3);Informes
Section titled “Informes”La DSA exige mantener un registro de denuncias. Exporta todas las denuncias a CSV desde WooCommerce > Denuncias DSA > Exportar. La exportación incluye:
- ID de la denuncia
- Fecha y hora de envío
- Categoría
- Estado y fecha de resolución
- Tiempo de tramitación (en horas)
- Acción adoptada
Configuración
Section titled “Configuración”Los ajustes del módulo DSA se encuentran en WooCommerce > Ajustes > Polski > DSA.
| Opción | Descripción | Valor predeterminado |
|---|---|---|
| Activar formulario DSA | Activa el módulo | Sí |
| Página del formulario | Página de WordPress con el shortcode | Ninguna |
| Correo del administrador | Dirección de correo para las notificaciones | Correo del administrador de WordPress |
| Plazo de tramitación | Número de días hábiles para la tramitación | 7 |
| Categorías de denuncia | Lista de categorías disponibles | Lista predeterminada |
Widget en la página del producto (Polski 1.14.0+)
Section titled “Widget en la página del producto (Polski 1.14.0+)”Desde la versión 1.14.0 puedes activar un widget de denuncia opcional directamente en la página del producto. El cliente hace clic en “Zgłoś nielegalne treści (DSA)” y despliega un formulario con la URL y el nombre del producto ya rellenados - sin copiar el enlace manualmente.
update_option('polski_dsa', array_merge( (array) get_option('polski_dsa', []), [ 'product_widget_enabled' => true, 'product_widget_position' => 'after_summary', // or 'product_meta' ]));El widget utiliza el elemento HTML <details> - funciona sin JavaScript y es accesible para teclados y lectores de pantalla. El formulario se envía al mismo handler (polski_dsa_report), por lo que los envíos llegan a la misma cola del panel de administración que los envíos por shortcode.
Clave de polski_dsa | Valor | Descripción |
|---|---|---|
product_widget_enabled | false (predeterminado) | Activa el widget en las páginas de producto |
product_widget_position | after_summary | product_meta | Posición en la página del producto |
Filtros para desarrolladores:
| Filtro | Finalidad |
|---|---|
polski/dsa/product_widget_enabled | Interruptor principal del widget |
Resolución de problemas
Section titled “Resolución de problemas”El formulario no se muestra en la página
Comprueba que el shortcode [polski_dsa_report] esté en la página y que el módulo DSA esté activado en los ajustes.
Las notificaciones por correo no llegan
Comprueba tu configuración SMTP. La función predeterminada wp_mail() no funciona en todos los servidores. Instala un plugin SMTP (por ejemplo, WP Mail SMTP).
Las denuncias no aparecen en el panel
Comprueba los permisos de usuario. Gestionar las denuncias DSA requiere el rol shop_manager o administrator.
Próximos pasos
Section titled “Próximos pasos”- Reportar problemas: GitHub Issues
- Debates y preguntas: GitHub Discussions