Polski for WooCommerce
Plugin gratuito que adapta WooCommerce a las condiciones legales y comerciales del mercado polaco. GPSR, Omnibus, GDPR, DSA, KSeF-ready y funciones de tienda en un solo lugar.
Polski for WooCommerce reúne los requisitos del mercado polaco, las directivas europeas vigentes y las funciones de tienda en un único plugin. En lugar de instalar 10 plugins separados para gestionar precios por unidad, formularios de devolución, GPSR, DSA, datos alimentarios, auditoría de cumplimiento y herramientas de merchandising - tienes todo en un solo paquete.
El plugin está actualmente en proceso de revisión en WordPress.org. El código fuente está disponible en GitHub.
Requisitos: WordPress 6.4+, WooCommerce 8.0+, PHP 8.1+ | Versión: 1.3.0 | Licencia: GPLv2
Índice de contenidos
- Instalación y configuración
- GPSR - seguridad general de productos
- Omnibus - precio más bajo de los últimos 30 días
- Desistimiento del contrato - formulario de devoluciones
- Módulos de tienda
- Productos alimentarios
- Otros módulos (DSA, KSeF, GDPR, NIP, marcas, Schema.org, CRA, DPA y más)
- Requisitos técnicos
- Shortcodes
- Notificación de errores y debates
Instalación y configuración
Primeros pasos
La configuración de Polski for WooCommerce consta de 6 pasos. La mayoría de los ajustes funcionan con los valores predeterminados - basta con activar los módulos.
Instalación
Desde el panel de WordPress (recomendado)
- Ve a Plugins > Añadir nuevo
- Busca Polski for WooCommerce
- Haz clic en Instalar y Activar
- El nuevo menú Polski aparecerá en la barra lateral
Manualmente desde un archivo ZIP
- Descarga el ZIP desde GitHub
- Plugins > Añadir nuevo > Subir plugin
- Selecciona el archivo ZIP y haz clic en Instalar
- Haz clic en Activar
Activación de módulos
Tras la activación, ve a Polski > Módulos. Verás una lista de 42 módulos disponibles agrupados por categorías:
- Precios y Omnibus - precio por unidad, precio más bajo de los últimos 30 días, visualización del IVA
- Checkout - botón de pedido, casillas legales, NIP
- Cumplimiento legal - GPSR, DSA, KSeF, greenwashing, GDPR
- Derechos del consumidor - formulario de devolución, páginas legales, ODR
- Información de productos - tiempo de entrega, fabricante, marcas, GTIN
- Productos alimentarios - valores nutricionales, alérgenos, Nutri-Score
- Módulos de tienda - wishlist, comparador, quick view, filtros, buscador
- Email - adjuntos legales, double opt-in
- Herramientas - panel de cumplimiento, auditoría de tienda
Cada módulo tiene un interruptor de activación. Activa los que necesites.
Configuración legal (mínimo)
Para el cumplimiento básico con la legislación polaca, activa:
- Casillas legales - ve a los ajustes del módulo, activa las casillas para los términos y condiciones, política de privacidad y derecho de desistimiento
- Botón de pedido - cambia automáticamente el texto a “Zamawiam z obowiązkiem zapłaty”
- Páginas legales - selecciona tus páginas de Términos y condiciones, Política de privacidad y Derecho de desistimiento
Configuración del IVA
- Asegúrate de tener las tasas de IVA correctas en WooCommerce > Ajustes > Impuestos (23 %, 8 %, 5 %, 0 %)
- Activa el módulo Visualización del IVA y selecciona el modo (bruto/neto)
- Si aplicas exención subjetiva (art. 113) - marca la casilla correspondiente
GPSR (si vendes productos físicos)
Desde el 13 de diciembre de 2024, el reglamento GPSR exige indicar en la página del producto los datos del fabricante y del responsable. Activa el módulo GPSR y completa los datos en la pestaña Polski del editor de producto.
Panel de cumplimiento
Ve a Polski > Panel y haz clic en Verificar cumplimiento. El sistema comprobará:
- Si las páginas legales están creadas y asignadas
- Si las casillas legales están activadas en el checkout
- Si el botón de pedido tiene el texto correcto
- Si las tasas de IVA están configuradas
- Si los datos GPSR están completos (si el módulo está activo)
Resultado en verde/rojo para cada punto. Corrige los elementos en rojo y vuelve a verificar.
Plantillas del tema
Todas las plantillas del plugin pueden sobreescribirse desde el tema. Copia el archivo desde wp-content/plugins/polski/templates/ a wp-content/themes/your-theme/polski/ y edítalo.
REST API
El plugin expone una REST API completa bajo el namespace polski/v1/:
GET /polski/v1/settings- obtener ajustesPOST /polski/v1/settings- actualizar ajustesGET /polski/v1/withdrawals- lista de solicitudes de devoluciónGET /polski/v1/checkboxes- configuración de casillas
La documentación de la API está disponible tras instalar el plugin.
WP-CLI
wp polski migrate # ejecutar migraciones de base de datos
wp polski smoke-test # verificar la correcta instalación
GPSR - seguridad general de productos
Desde el 13 de diciembre de 2024, el reglamento UE 2023/988 (GPSR - General Product Safety Regulation) exige que las páginas de producto en tiendas online incluyan los datos del fabricante y del responsable del cumplimiento normativo del producto. El módulo GPSR de Polski for WooCommerce muestra automáticamente esta información en la página del producto y proporciona herramientas para gestionarla desde el panel de administración.
Activación del módulo
- Ve a Polski > Módulos
- Busca la sección Cumplimiento legal
- Activa el módulo GPSR
- Guarda los cambios
Tras la activación, el módulo registrará nuevos campos en el editor de producto y añadirá una columna de estado en la lista de productos.
Campos GPSR en el editor de producto
Tras activar el módulo, en el editor de cada producto aparece la sección GPSR - Seguridad del producto (pestaña Polski). Contiene 8 campos:
| Campo | Tipo | Descripción |
|---|---|---|
| Nombre del fabricante | texto | Nombre completo de la entidad que fabricó el producto |
| Dirección del fabricante | textarea | Dirección postal completa del fabricante |
| Nombre del importador | texto | Nombre del importador (rellena si el producto proviene de fuera de la UE) |
| Dirección del importador | textarea | Dirección postal completa del importador |
| Persona responsable | texto | Entidad en la UE responsable del cumplimiento del producto con GPSR |
| Identificador del producto | texto | Número de lote, número de serie u otro identificador |
| Advertencias de seguridad | textarea | Advertencias requeridas por la normativa o el fabricante |
| Instrucciones de seguridad | textarea | Instrucciones para el uso seguro del producto |
La sección GPSR en la página del producto se muestra únicamente cuando al menos un campo tiene contenido. Los datos se presentan en un elemento <details> con el encabezado “Seguridad del producto (GPSR)” - el clientes puede desplegarlo haciendo clic.
Visualización en la página del producto
El módulo inyecta automáticamente la sección GPSR bajo la información del producto (hook woocommerce_product_meta_end). Muestra únicamente los campos que tienen valor.
Estructura HTML de la sección:
<div class="polski-gpsr-info">
<details class="polski-gpsr-info__details">
<summary class="polski-gpsr-info__summary">Bezpieczeństwo produktu (GPSR)</summary>
<dl class="polski-gpsr-info__list">
<dt>Producent</dt>
<dd>Nazwa producenta</dd>
<!-- kolejne pola -->
</dl>
</details>
</div>
Puedes personalizar el estilo de la sección mediante CSS en el tema, usando las clases .polski-gpsr-info, .polski-gpsr-info__details y .polski-gpsr-info__list.
Si deseas modificar el diseño o el contenido de la sección, copia la plantilla desde:
wp-content/plugins/polski/templates/single-product/gpsr-info.php
a:
wp-content/themes/tu-tema/polski/single-product/gpsr-info.php
Columna de estado GPSR en la lista de productos
En la lista de productos (Productos > Todos los productos) el módulo añade la columna GPSR con un indicador visual del grado de cumplimentación:
- Marca verde (✓) - 3 o más de los 8 campos completados
- Triángulo de advertencia amarillo - 1 o 2 campos completados
- Guion gris - ningún campo completado
Al pasar el cursor sobre el icono aparece un tooltip con el número de campos completados, por ejemplo “5/8 campos completados”. Esto permite identificar rápidamente los productos que requieren datos GPSR sin abrir cada uno de ellos.
Importación y exportación CSV
El módulo GPSR es totalmente compatible con el mecanismo de importación/exportación CSV de Polski for WooCommerce. Es la forma más rápida de completar datos GPSR para muchos productos a la vez.
Exportación
- Ve a Polski > Importar / Exportar CSV
- Haz clic en Exportar productos
- Descarga el archivo CSV
En el archivo CSV, cada producto tiene columnas GPSR con el prefijo polski_gpsr_:
| Columna CSV | Campo correspondiente |
|---|---|
polski_gpsr_manufacturer_name | Nombre del fabricante |
polski_gpsr_manufacturer_address | Dirección del fabricante |
polski_gpsr_importer_name | Nombre del importador |
polski_gpsr_importer_address | Dirección del importador |
polski_gpsr_responsible_person | Persona responsable |
polski_gpsr_product_identifier | Identificador del producto |
polski_gpsr_safety_warnings | Advertencias de seguridad |
polski_gpsr_instructions | Instrucciones de seguridad |
Importación
- Completa las columnas GPSR en el archivo CSV (la columna
idoskues obligatoria para identificar el producto) - Ve a Polski > Importar / Exportar CSV
- Sube el archivo y haz clic en Importar
- El plugin actualizará los metadatos de los productos para todas las filas del archivo
La importación sobreescribe los valores existentes. Las celdas vacías en el CSV eliminan los datos guardados previamente para ese campo.
Preguntas frecuentes
¿Debo completar los 8 campos?
No. La sección GPSR se muestra en la página del producto únicamente para los campos que tienen valor. Como mínimo debes proporcionar los datos exigidos por el reglamento GPSR para tu tipo de actividad - generalmente el fabricante o importador y la persona responsable. Consulta con un abogado o con el organismo de supervisión sobre los requisitos específicos.
La sección GPSR no aparece en la página del producto - ¿qué comprobar?
Primero asegúrate de que el módulo GPSR está activado en Polski > Módulos. Después abre el editor del producto y comprueba que al menos un campo GPSR tiene valor - una sección vacía nunca se muestra. Si el tema sobreescribe la plantilla del producto y elimina el hook woocommerce_product_meta_end, la sección GPSR no se inyectará.
¿Cómo identificar rápidamente qué productos no tienen datos GPSR?
En la lista de productos (Productos > Todos los productos) la columna GPSR muestra un guion gris para los productos sin ningún dato. Puedes ordenar la lista o usar los filtros de WooCommerce para identificar los productos que hay que completar. Para un mayor número de productos, usa la exportación CSV, filtra las filas con columnas GPSR vacías e importa el archivo completado.
¿Los datos GPSR están disponibles en la WooCommerce Store API (bloques de Gutenberg)?
Sí. Los datos GPSR se registran mediante la extensión Store API del plugin (ProductDataExtension), por lo que están disponibles tanto en el tema clásico como en los bloques de WooCommerce.
¿Cómo personalizar la apariencia de la sección GPSR en la página del producto?
Copia el archivo wp-content/plugins/polski/templates/single-product/gpsr-info.php a wp-content/themes/tu-tema/polski/single-product/gpsr-info.php y edítalo libremente. También puedes añadir tus propios estilos CSS para las clases .polski-gpsr-info y .polski-gpsr-info__list.
Páginas de documentación relacionadas
Omnibus - precio más bajo de los últimos 30 días
El módulo Omnibus de Polski for WooCommerce realiza un seguimiento automático del historial de precios de los productos y muestra el precio más bajo de los últimos 30 días en los productos en promoción. Cumple con los requisitos de la Directiva Omnibus (UE 2019/2161), vigente en Polonia desde el 1 de enero de 2023.
¿Qué es la Directiva Omnibus?
La Directiva Omnibus (UE 2019/2161) obliga a las tiendas online a informar a los clientes del precio más bajo del producto en los últimos 30 días cuando se presenta en promoción. Esto significa que junto al precio tachado (regular) y al precio promocional debe aparecer un mensaje del tipo: “Precio más bajo de los últimos 30 días: 89,00 EUR”.
El módulo registra el precio cada vez que se guarda el producto y mantiene el historial de forma automática. No requiere la introducción manual de datos.
Activación del módulo
- Ve a Polski > Módulos
- Busca el módulo Precio más bajo (Omnibus) en el grupo “Precios y Omnibus”
- Activa el interruptor y haz clic en Guardar ajustes
- A partir de ese momento el plugin empieza a registrar los precios cada vez que se guarda un producto
¿Cómo funciona el seguimiento de precios?
El precio se registra automáticamente en dos situaciones:
- al guardar un producto simple (woocommerce_update_product, woocommerce_new_product)
- al guardar una variante de producto variable (woocommerce_save_product_variation)
Cada día se guarda como máximo un registro por producto - los duplicados se omiten. El módulo realiza el seguimiento tanto del precio regular como del precio promocional. El precio efectivo más bajo del periodo de seguimiento se calcula automáticamente en el momento de la visualización.
Los registros antiguos se eliminan automáticamente mediante la tarea cron (polski_daily_maintenance) según el ajuste “Almacenar historial (días)”.
Ajustes del módulo
Seguimiento de precios
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
| Periodo de seguimiento (días) | 30 | Número de días considerados al calcular el precio más bajo. La directiva exige un mínimo de 30 días. |
| Almacenar historial (días) | 90 | Los registros más antiguos que este límite se eliminan automáticamente de la base de datos. |
| Precios con impuesto | activado | Cuando está activo, realiza el seguimiento y muestra los precios brutos (con IVA). |
Visualización
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
| Solo productos en promoción | activado | La información aparece únicamente cuando el producto tiene un precio promocional activo. |
| Página del producto | activado | Muestra el mensaje en la página del producto individual. |
| Lista de productos (tienda, categorías) | desactivado | Muestra el mensaje en el bucle de productos. |
| Productos relacionados y destacados | desactivado | Muestra el mensaje en las secciones “Productos similares” y “Destacados”. |
| Carrito | desactivado | Muestra el mensaje junto al producto en el carrito. |
| Mostrar precio regular (antes de la promoción) | desactivado | Información adicional sobre el precio antes del inicio de la promoción. |
Plantilla del mensaje
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
| Contenido del mensaje | Precio más bajo de los ultimos {days} días: {price} | Texto que se muestra junto al producto. Admite las variables: {price}, {days}, {date}, {regular_price}. |
| Sin historial de precios | Ocultar mensaje | Comportamiento cuando no hay datos históricos: ocultar / mostrar precio actual / texto personalizado. |
| Texto personalizado (sin historial) | El precio no ha cambiado en el periodo de {days} días | Texto que se muestra cuando no hay historial y se selecciona la opción “texto personalizado”. |
| Calculado desde | El día de inicio de la promoción | Punto de referencia: el día de inicio de la promoción o el día de hoy. |
Productos con variantes
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
| Seguimiento de variantes por separado | activado | Cada variante del producto variable tiene su propio historial de precios independiente. |
Variables de plantilla
En el campo “Contenido del mensaje” puedes usar las siguientes variables:
{price}- precio efectivo más bajo del periodo de seguimiento (formateado, con moneda){days}- número de días del ajuste “Periodo de seguimiento”{date}- fecha en que se registró el precio más bajo{regular_price}- precio regular del producto antes de la promoción
Ejemplos de mensajes:
Precio más bajo de los ultimos {days} dias: {price}
Precio más bajo anterior: {price} (en los ultimos {days} dias)
Precio antes de la promocion: {regular_price} | Mas bajo en 30 dias: {price}
Shortcode
El shortcode [polski_omnibus_price] permite mostrar la información del precio más bajo en cualquier lugar - en la descripción del producto, en la plantilla de la página o en un elemento del page builder.
Uso básico (muestra el precio del producto actual en el bucle de WooCommerce):
[polski_omnibus_price]
Con un producto específico (fuera del bucle de WooCommerce, por ejemplo en una página de texto):
[polski_omnibus_price product="123"]
Donde 123 es el ID del producto. El shortcode devuelve una cadena vacía cuando el producto no está en promoción (con el ajuste predeterminado “Solo productos en promoción”) o cuando no hay datos históricos.
Compatibilidad con plugins Omnibus externos
El plugin Polski for WooCommerce detecta automáticamente las soluciones Omnibus externas más populares (p. ej. wc-price-history). Cuando dicho plugin está activo, el módulo le delega la obtención de datos en lugar de usar su propia base de historial de precios. El estado de la integración es visible en el panel del módulo.
Cuando no hay ningún plugin externo instalado, se usa el sistema de seguimiento integrado.
Clases CSS y filtro HTML
El HTML generado tiene la siguiente estructura:
<div class="polski-omnibus-price">
<span class="polski-omnibus-price__text">Precio más bajo de los ultimos 30 dias: 89,00 PLN</span>
</div>
Puedes modificar el aspecto mediante CSS en el tema o usar el filtro PHP:
add_filter('polski/price/omnibus_html', al (string $html, $lowest, $product): string {
// $lowest es un objeto OmnibusPrice con el campo effectivePrice() y currency
// $product es un objeto WC_Product
return $html;
}, 10, 3);
Preguntas frecuentes
¿El módulo funciona de forma retroactiva - tendrá datos desde el momento en que se active?
No. El seguimiento comienza desde el momento de la activación. Los primeros datos aparecerán la próxima vez que se guarde un producto (manualmente o mediante actualización masiva). Para tiendas con un gran número de productos se puede realizar una actualización masiva desde WooCommerce > Productos > Seleccionar todos > Editar.
El producto no muestra el mensaje Omnibus - ¿por qué?
Comprueba en orden: (1) si el módulo está activado en Polski > Módulos, (2) si el producto tiene un precio promocional activo - con los ajustes predeterminados el mensaje aparece únicamente para productos en promoción, (3) si el producto ya tiene datos históricos guardados - el plugin debe haber registrado al menos un registro primero.
¿El módulo funciona con productos variables?
Sí. Con la opción “Seguimiento de variantes por separado” activada, cada variante tiene su propio historial de precios. El shortcode y la visualización automática funcionan tanto para productos simples como para variantes.
¿Con qué rapidez se eliminan los datos antiguos?
La tarea cron polski_daily_maintenance se ejecuta una vez al día. Elimina los registros más antiguos que el valor del ajuste “Almacenar historial (días)” (90 días por defecto). Puedes cambiarlo en la configuración del módulo.
¿Se puede usar una plantilla de vista personalizada?
Sí. Copia el archivo de plantilla desde wp-content/plugins/polski/templates/ a wp-content/themes/your-theme/polski/ y edítalo. Como alternativa, usa el filtro polski/price/omnibus_html en PHP.
Navegación
Desistimiento del contrato - formulario de devoluciones
El módulo de devoluciones automatiza el derecho legal del consumidor a desistir de un contrato celebrado a distancia. El clientes presenta la solicitud directamente desde el panel “Mi cuenta”, la tienda recibe la notificación y todo el flujo queda registrado en el panel de administración.
Directiva 2023/2673 - qué cambia y cuándo entra en vigor
La Directiva del Parlamento Europeo y del Consejo 2023/2673, de 22 de noviembre de 2023, modifica las normás de ejercicio del derecho de desistimiento para las tiendas online que operan en la UE. La implementación polaca entra en vigor el 19 de junio de 2026.
Los cambios más importantes:
- El consumidor debe tener acceso a un formulario de desistimiento unificado en formato electrónico directamente en la página de la tienda
- El vendedor está obligado a confirmar la recepción de la solicitud por vía electrónica sin demora injustificada
- El plazo de 14 días se cuenta desde el día en que el consumidor obtuvo la posesión física del bien (no desde la fecha del pedido)
El módulo de devoluciones de Polski for WooCommerce cumple con estos requisitos desde el momento de su activación.
Cómo funciona el proceso de devolución
Lado del clientes
- El clientes inicia sesión en Mi cuenta > Pedidos
- En cada pedido que cumple los requisitos de devolución aparece el botón Desistir del contrato
- Tras hacer clic, el clientes ve un formulario con un campo opcional “Motivo del desistimiento”
- Tras enviar el formulario, el clientes recibe un mensaje de confirmación de recepción de la solicitud
- Se envía una confirmación al correo electrónico indicado - requerida por la directiva 2023/2673
Lado del administrador
- En el panel de pedidos aparece una nota sobre la solicitud presentada
- La solicitud llega a la sección Polski > Devoluciónes con el estado “Presentada”
- El administrador revisa la solicitud y elige una acción: Confirmar o Rechazar
- Tras la confirmación, la tienda procesa el reembolso manualmente o a través de WooCommerce Refunds
- Al finalizar el proceso, el administrador cambia el estado a “Completada”
Estados de la solicitud
| Estado | Descripción |
|---|---|
| Presentada | El clientes ha presentado la solicitud, a la espera de respuesta de la tienda |
| Confirmada | El administrador ha confirmado la recepción de la solicitud |
| Completada | Reembolso procesado |
| Rechazada | Solicitud rechazada (p. ej. por haber superado el plazo) |
Shortcode [polski_withdrawal_form]
El shortcode permite colocar el formulario de desistimiento en cualquier página de WordPress - por ejemplo en una página dedicada “Devoluciónes y reclamaciones”.
[polski_withdrawal_form]
El formulario verifica automáticamente si el clientes está conectado y si el pedido es elegible. Si el clientes no ha iniciado sesión, muestra un enlace de acceso.
Modo de un solo clic (one-click)
Cuando la opción Desistimiento en un clic está activada en los ajustes del módulo, junto al pedido aparece un segundo botón con un flujo simplificado:
- El clientes hace clic en el botón con un solo clic
- Se muestra una página de confirmación (sin formulario con campo de motivo)
- El clientes confirma haciendo clic en “Confirmar desistimiento”
- La solicitud llega al sistema de la misma forma que con el formulario estándar
Este modo minimiza el número de pasos y el abandono del proceso de devolución. Útil en tiendas con un gran volumen de devoluciones.
Exclusiones por producto
Algunos productos están excluidos por ley del derecho de desistimiento - por ejemplo, artículos fabricados a medida, grabaciones de audio/vídeo después de ser desprecintadas, contenido digital entregado de forma inmediata.
Para excluir un producto específico:
- Ve al editor del producto en WooCommerce
- Abre la pestaña Datos del producto > Polski
- Marca la opción Excluir del derecho de desistimiento
Si todos los productos del pedido están excluidos, el botón de desistimiento no aparece en ese pedido. Si el pedido contiene una combinación de productos excluidos y normales, el botón está disponible.
Configuración del módulo
Ajustes del módulo disponibles en Polski > Ajustes > Devoluciónes:
| Ajuste | Descripción |
|---|---|
| Texto del botón | Etiqueta del botón junto al pedido (por defecto: “Desistir del contrato”) |
| Desistimiento en un clic | Activa el flujo simplificado de un solo clic |
| Texto del botón one-click | Etiqueta separada para el botón one-click |
| Nota al pedido (presentación) | Contenido de la nota automática al presentar la solicitud |
| Nota al pedido (confirmación) | Contenido de la nota automática al confirmar por el administrador |
| Texto de éxito | Mensaje que se muestra al clientes tras presentar la solicitud |
| Etiqueta del motivo | Contenido de la etiqueta del campo “Motivo del desistimiento” en el formulario |
| Formato de fecha del estado | Formato de la fecha que se muestra en los detalles del pedido del clientes |
Notificaciones por correo electrónico
El módulo envía correos electrónicos a través del sistema estándar de WooCommerce:
- Al clientes - confirmación de recepción de la solicitud, enviada automáticamente tras presentar el formulario
- Al administrador - notificación de nueva solicitud
- Al clientes - notificación de confirmación por parte de la tienda (tras la acción del administrador)
El contenido de los correos puede editarse en WooCommerce > Ajustes > Correos electrónicos. Las plantillas están disponibles para sobreescribir en el tema en el directorio yourtheme/polski/emails/.
Filtros para desarrolladores
El módulo proporciona filtros PHP para personalizar el comportamiento:
// Cambiar el número de dias para el desistimiento (por defecto 14)
add_filter('polski/withdrawal/period_days', al(int $days): int {
return 30; // p. ej. ampliar a 30 dias como USP de la tienda
});
// Cambiar la elegibilidad del pedido
add_filter('polski/withdrawal/eligible', al(bool $eligible, \WC_Order $order): bool {
// lógica personalizada
return $eligible;
}, 10, 2);
// Anadir campos personalizados al formulario
add_filter('polski/withdrawal/form_fields', al(array $fields): array {
$fields['contact_preference'] = [
'type' => 'select',
'label' => 'Metodo de contacto preferido',
'options' => ['email' => 'Correo', 'phone' => 'Telefono'],
'required' => false,
];
return $fields;
});
Acciones disponibles para hookear:
add_action('polski/withdrawal/requested', al(\Polski\Model\WithdrawalRequest $req): void { /* ... */ });
add_action('polski/withdrawal/confirmed', al(\Polski\Model\WithdrawalRequest $req): void { /* ... */ });
add_action('polski/withdrawal/completed', al(\Polski\Model\WithdrawalRequest $req): void { /* ... */ });
Condiciones de elegibilidad del pedido
Un pedido es elegible para devolución cuando se cumplen todas las condiciones siguientes:
- Han transcurrido menos de 14 días desde la fecha de finalización del pedido (o la fecha de creación, si el pedido no tiene el estado “completado”)
- No existe una solicitud de devolución activa para ese pedido (con un estado distinto de “Rechazada”)
- Al menos un producto del pedido no está excluido del derecho de desistimiento
- El filtro
polski/withdrawal/eligibleno devuelvefalse
Preguntas frecuentes
¿Puede el clientes presentar varias solicitudes para el mismo pedido?
No. El sistema bloquea una segunda solicitud si existe una solicitud activa para ese pedido (con estado Presentada, Confirmada o Completada). Solo es posible presentar una nueva solicitud cuando la anterior haya sido rechazada.
¿Qué ocurre cuando todos los productos del pedido están excluidos de la devolución?
El botón de desistimiento no aparece en ese pedido. El clientes no puede presentar la solicitud ni a través de “Mi cuenta” ni a través del shortcode.
¿El módulo emite automáticamente el reembolso en WooCommerce?
No. El módulo gestiona las solicitudes y la comunicación - el propio reembolso requiere la acción manual del administrador en el panel del pedido o la integración con un sistema externo a través de la acción polski/withdrawal/confirmed.
¿Puedo ampliar el periodo de 14 días?
Sí, mediante el filtro polski/withdrawal/period_days. Ten en cuenta que reducirlo por debajo de 14 días es contrario a la legislación de consumidores de la UE.
¿Cómo personalizar la apariencia del formulario en la página?
Copia la plantilla desde wp-content/plugins/polski/templates/account/withdrawal-confirm.php a wp-content/themes/yourtheme/polski/account/withdrawal-confirm.php y edítala según tus necesidades.
Otras páginas de documentación
Módulos de tienda
Polski for WooCommerce incluye 13 módulos de tienda que amplían la interfaz de WooCommerce con las funciones que esperan los clientes de las tiendas modernas. Cada módulo se activa por separado en Polski > Módulos y se configura de forma independiente.
1. Wishlist (lista de deseos)
Permite a los clientes guardar productos en una lista de deseos sin necesidad de comprarlos. Funciona tanto para visitantes (cookie) como para usuarios registrados (base de datos). Al iniciar sesión, la lista de la sesión de invitado se fusiona automáticamente con la cuenta.
Dónde aparece el botón:
- Página del producto (hook
woocommerce_single_product_summary, prioridad 33) - Fichas de productos en el archivo (hook
woocommerce_after_shop_loop_item, prioridad 19)
Pestaña en la cuenta del clientes: el enlace “Favoritos” se añade automáticamente al menú Mi cuenta.
Shortcode: no hay shortcode dedicado - la lista se renderiza a través del endpoint de cuenta /polska-wishlist/.
Ajustes principales:
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
allow_guests | true | Permitir a visitantes sin registro |
show_on_single | true | Botón en la página del producto |
show_on_loop | true | Botón en el listado |
show_in_account | true | Pestaña en Mi cuenta |
grid_columns | 4 | Número de columnas de cuadrícula (2-6) |
show_price | true | Precio en la lista de deseos |
show_add_to_cart | true | Botón de añadir al carrito |
Bloque de Gutenberg y widget de Elementor disponibles para incrustar la lista de deseos en cualquier lugar.
2. Comparador de productos
Permite comparar hasta 4 productos (por defecto) en una tabla comparativa. Compatible con visitantes y usuarios registrados. Cuando la lista está llena, el producto más antiguo se reemplaza automáticamente.
Dónde aparece el botón:
- Página del producto (prioridad 34, justo después del wishlist)
- Fichas en el listado (prioridad 20)
La tabla comparativa muestra: precio, precio por unidad, SKU, disponibilidad, tiempo de entrega, marca, fabricante, GTIN/EAN, descripción corta y atributos del producto.
Pestaña en la cuenta del clientes: enlace “Comparar” en Mi cuenta. Para visitantes, la tabla se muestra en la página de la tienda añadiendo el parámetro ?polski_compare=1 a la URL.
Ajustes principales:
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
max_items | 4 | Número máximo de productos (2-6) |
allow_guests | true | Acceso sin registro |
show_only_differences | false | Mostrar solo diferencias por defecto |
highlight_differences | true | Resaltar celdas con diferencias |
show_attributes | true | Atributos en la tabla |
show_description | true | Descripción corta en la tabla |
show_add_to_cart | true | Botón de compra en la tabla |
Bloque de Gutenberg y widget de Elementor disponibles.
3. Quick view (vista rápida)
Abre un modal AJAX ligero con una vista previa del producto directamente desde el listado, sin abandonar la página. El modal admite variantes de productos.
El botón aparece en las fichas del listado (hook woocommerce_after_shop_loop_item, prioridad 21). Se activa únicamente en páginas de archivo (tienda, categoría, etiqueta, taxonomías de productos).
El modal incluye: imagen y galería (hasta 4 imágenes), título, precio, precio por unidad, SKU, marca, fabricante, tiempo de entrega, formulario de añadir al carrito.
Ajustes principales:
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
show_on_loop | true | Botón en el listado |
show_image | true | Imagen principal en el modal |
show_gallery | true | Galería (hasta 4 imágenes) |
show_price | true | Precio |
show_unit_price | true | Precio por unidad |
show_sku | true | SKU |
show_brand | true | Marca |
show_delivery_time | true | Tiempo de entrega |
show_add_to_cart | true | Formulario de compra |
show_backdrop_close | true | Cerrar haciendo clic en el fondo |
4. AJAX search (buscador en tiempo real)
Amplía el buscador estándar de WooCommerce con sugerencias en tiempo real. Los resultados aparecen tras escribir un número mínimo de caracteres (2 por defecto), con debouncing opcional.
El motor de búsqueda también busca en los campos: fabricante (taxonomía polski_manufacturer), GTIN/EAN, ingredientes y datos GPSR - campos no disponibles en el buscador estándar de WooCommerce.
Shortcode:
[polski_ajax_search]
Bloque de Gutenberg y widget de Elementor disponibles para incrustar el buscador en el menú, la barra lateral o la cabecera.
Endpoint REST: GET /?rest_route=/polski/v1/search
Ajustes principales:
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
min_chars | 2 | Número mínimo de caracteres |
debounce_ms | 180 | Retardo de la consulta (ms) |
limit | 6 | Número de resultados |
show_image | true | Miniatura del producto |
show_price | true | Precio en los resultados |
show_sku | true | SKU en los resultados |
show_view_all_link | true | Enlace “Ver todos” |
include_out_of_stock | false | Incluir productos sin stock |
5. AJAX filtros
Filtros progresivos para archivos de productos. El filtrado se realiza mediante parámetros GET (URL-friendly, favorables para el SEO y el historial del navegador).
Filtros disponibles automáticamente: categoría de producto, marca (polski_brand), rango de precio, estado de stock, productos en promoción, atributos de WooCommerce (hasta 4 taxonomías, configurables).
Dónde se renderiza el formulario: automáticamente antes del listado de productos (woocommerce_before_shop_loop, prioridad 9) en las páginas de tienda, categoría, etiqueta y taxonomía de productos.
Shortcode:
[polski_ajax_filters]
Bloque de Gutenberg y widget de Elementor disponibles para colocar los filtros en la barra lateral o encima del listado.
Ajustes principales:
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
show_on_shop | true | Render automático en el archivo |
show_attributes | true | Filtros de atributos |
max_attribute_taxonomies | 4 | Cuántos atributos mostrar |
Parámetros URL de los filtros:
| Parámetro | Descripción |
|---|---|
polski_filter_category | Slug de categoría |
polski_filter_brand | Slug de marca |
polski_filter_min_price | Precio mínimo |
polski_filter_max_price | Precio máximo |
polski_filter_stock | instock - solo disponibles |
polski_filter_sale | 1 - solo promociones |
polski_filter_{taxonomy} | Slug de término para atributos |
6. Slider de productos
Carrusel de productos para presentar grupos seleccionados del catálogo: novedades, bestsellers, productos relacionados o indicados manualmente. Compatible con arrastre (touch/mouse drag) y autoplay.
Shortcode:
[polski_product_slider category="obuwie" limit="8" autoplay="1"]
Bloque de Gutenberg con selección visual de categoría y widget de Elementor con control total del aspecto disponibles.
7. Gestión de etiquetas (Badge management)
Etiquetas automáticas y manuales que se muestran sobre la imagen del producto en el listado y en la página del producto. Cada etiqueta tiene un estilo (color) y opcionalmente una forma.
Tipos de etiquetas generadas automáticamente:
| Etiqueta | Condición | Estilo predeterminado |
|---|---|---|
| Promoción | Producto con descuento (is_on_sale) | warning |
| Novedad | Producto añadido en los últimos X días | success |
| Últimás unidades | Stock <= umbral | warning |
| Bestseller | Ventas totales >= umbral | accent |
Etiquetas manuales: se configuran por producto en la pestaña Polski del editor. Campos: texto principal (_polski_badge_text), estilo (_polski_badge_style), texto secundario (_polski_badge_secondary_text).
Dónde se muestran las etiquetas:
- Página del producto: hook
woocommerce_before_single_product_summary, prioridad 6 - Listado: hook
woocommerce_before_shop_loop_item_title, prioridad 9
Ajustes principales:
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
show_on_single | true | Página del producto |
show_on_loop | true | Listado de productos |
shape | pill | Forma (pill o square) |
uppercase | false | Mayúsculas |
max_badges_single | 4 | Máx. de etiquetas en la página del producto |
max_badges_loop | 3 | Máx. de etiquetas en el listado |
newness_days | 30 | Días para la etiqueta “Novedad” |
low_stock_threshold | 3 | Umbral “Últimás unidades” |
bestseller_threshold | 25 | Umbral “Bestseller” |
show_sale_badge | true | Etiqueta de promoción |
show_new_badge | true | Etiqueta de novedad |
show_low_stock_badge | true | Etiqueta de stock bajo |
show_bestseller_badge | true | Etiqueta de bestseller |
8. Gestor de pestañas (Tab manager)
Permite gestionar las pestañas de la página del producto: cambiar el orden, ocultar las pestañas predeterminadas de WooCommerce (Descripción, Información adicional, Valoraciones) y añadir pestañas personalizadas con contenido HTML o shortcodes.
Configuración disponible en Polski > Módulos > Tab manager con vista previa del diseño de pestañas.
9. Vídeo destacado (Featured video)
Permite incrustar un vídeo (YouTube, Vimeo o archivo propio) como primer slide de la galería del producto. El vídeo reemplaza o complementa las imágenes del producto.
El campo de vídeo se configura en la pestaña Polski del editor de producto. Admite URL de YouTube/Vimeo y URL directa de archivo mp4.
10. Zoom de galería (Gallery zoom)
Añade zoom a la imagen del producto al pasar el cursor o hacer clic - tanto en forma de lightbox como de efecto zoom inline. Solo requiere activar el módulo, sin necesidad de configuración de código.
11. Lista de espera (Waitlist)
Cuando un producto está agotado, muestra un formulario de inscripción en la lista de espera. El clientes introduce su dirección de correo electrónico y recibe automáticamente una notificación cuando el producto vuelva al stock.
Las notificaciones se envían a través de los correos electrónicos transacciónales de WooCommerce. La lista de espera es visible en la pestaña del producto en el panel de administración.
12. Scroll infinito (Infinite scroll)
Sustituye la páginación estándar de WooCommerce por la carga automática de más productos al hacer scroll (o mediante el botón “Cargar más”). Funciona con los filtros AJAX.
Opciones de modo:
scroll- carga al llegar al final del listadobutton- botón “Mostrar más productos”
13. Popup
Módulo de ventanas emergentes para crear una lista de correo, presentar promociones o descuentos de bienvenida. Disparadores: tiempo en la página, intención de salida (exit intent), porcentaje de scroll.
Shortcode para incrustar el popup en el contenido de la página:
[polski_popup id="123"]
Editor visual de popups disponible en Polski > Popup.
14. Trust Badges (sellos de confianza)
Muestra señales de confianza configurables en páginas de producto, carrito y checkout: pago seguro, entrega rápida, garantía de devolución, garantía de calidad. CSS puro + iconos SVG en línea para un impacto cero en el rendimiento (sin solicitudes HTTP adicionales).
Iconos disponibles: lock, truck, refresh, shield, star, check, heart
15. Live Cart Sidebar (barra lateral del carrito)
Panel deslizante que muestra el contenido del carrito cuando se añade un producto. Muestra lista de productos, subtotal, barra de progreso de envío gratuito y enlace rápido al checkout. Sin recarga de la página - se actualiza mediante fragmentos del carrito de WooCommerce.
| Ajuste | Predeterminado | Descripción |
|---|---|---|
auto_open | true | Abrir automáticamente al añadir al carrito |
show_subtotal | true | Mostrar subtotal |
free_shipping_threshold | 0 | Umbral de envío gratuito (0 = desactivado) |
position | right | Lado del panel (right/left) |
16. Social Proof (notificaciones de compras)
Notificaciones toast flotantes que muestran compras recientes (“Jan de Varsovía acaba de comprar…”). Carga AJAX, caché de 5 minutos, posición y tiempo configurables. Opción de anonimización de nombres para cumplimiento con el RGPD.
| Ajuste | Predeterminado | Descripción |
|---|---|---|
display_interval | 8 | Intervalo entre notificaciones (segundos) |
display_duration | 5 | Duración de la visualización (segundos) |
position | bottom-left | Posición (bottom-left, bottom-right, top-left, top-right) |
anonymize_name | false | Anonimizar nombres de clientes |
hide_on_mobile | false | Ocultar en dispositivos móviles |
17. Product Q&A (preguntas y respuestas)
Preguntas y respuestas al estilo Amazon en las páginas de producto. Los clientes hacen preguntas, cualquiera puede responder. Notificaciones por correo al administrador, votación de respuestas, marcado Schema.org QAPage para rich snippets de SEO.
18. Price History Chart (gráfico de historial de precios)
Sparkline SVG visual que muestra tendencias de precios en las páginas de producto. Utiliza los datos de precios del módulo Omnibus. Período configurable (30/90/180 días), muestra precios mínimos y máximos. Aumenta la transparencia de precios y la confianza del cliente.
| Ajuste | Predeterminado | Descripción |
|---|---|---|
days | 30 | Período del historial (días) |
show_min_max | true | Mostrar precios mín./máx. |
color | #0369a1 | Color de la línea del gráfico |
19. Social Login (inicio de sesión social)
Inicio de sesión y registro mediante Google y Facebook. Botones con branding en Mi cuenta, checkout y formularios de inicio de sesión de WordPress. Crea automáticamente cuentas de cliente de WooCommerce. Enlaza cuentas por dirección de correo.
20. Expert Reviews (reseñas de expertos)
Tipo de contenido personalizado expert_review para reseñas editoriales de productos. Enlaza reseñas con productos, asigna puntuaciones (1-10) y veredictos. Insignias de puntuación con código de colores y marcado Schema.org Review + Rating para SEO.
21. Product Authors (autores de productos)
Taxonomía personalizada product_author para autores/creadores de productos. Se muestra en las páginas de producto y archivos. Marcado Schema.org Person. Ideal para librerías y editoriales.
22. FAQ (preguntas frecuentes)
Tipo de contenido personalizado polski_faq con taxonomía de categoría. Shortcode [polski_faq] con filtro de categoría. Acordeón CSS sin JavaScript. Marcado Schema.org FAQPage para rich snippets de Google.
Shortcode:
[polski_faq category="shipping" limit="10"]
23. Custom Checkout Fields (campos de checkout personalizados)
Añade, modifica y reordena los campos del formulario de checkout. 9 tipos de campos: text, textarea, select, checkbox, radio, number, email, date, tel. Los campos se muestran en la administración, en los correos y en Mi cuenta.
Lógica condicional: mostrar/ocultar campos según el método de envío, método de pago, valor del campo, categoría de producto o mínimo del carrito.
Gestiona en WooCommerce > Checkout Fields.
24. GA4 DataLayer / GTM
Seguimiento de comercio electrónico de Google Analytics 4 mediante dataLayer. Admite eventos: view_item_list, view_item, add_to_cart, begin_checkout, purchase, remove_from_cart. Soporte de contenedor GTM y gtag.js. Scripts diferidos para Web Vitals.
| Ajuste | Predeterminado | Descripción |
|---|---|---|
gtm_container_id | “ | ID del contenedor GTM (GTM-XXXXXXX) |
ga4_measurement_id | “ | ID de medición GA4 (G-XXXXXXXXXX) |
use_sku_as_id | false | Usar SKU en lugar del ID del producto |
25. Order Export (exportación de pedidos)
Exporta pedidos de WooCommerce a CSV con campos configurables, intervalos de fechas y filtros de estado. Más de 30 campos exportables, incluidos productos, datos de cliente y cupones.
Disponible en WooCommerce > Order Export.
26. Stock Export (exportación de stock)
Exporta datos de stock de productos a CSV con 10 campos configurables. Filtro de umbral de stock (<=, >=, =). Compatibilidad con variaciones. Modo de vista previa (tabla HTML). Separador por punto y coma + BOM para Excel.
Disponible en Products > Stock Export.
27. Auto Restore Stock (restauración automática de stock)
Restaura automáticamente el stock de productos cuando los pedidos se cancelan, reembolsan o fallan. Evita la restauración duplicada mediante el meta _polski_stock_restored.
28. AJAX Add to Cart (añadir al carrito por AJAX)
Añade productos al carrito sin recargar la página, incluidos productos variables en páginas de producto individuales. Notificación toast con animación deslizante al completarse con éxito.
29. Minimum Order (pedido mínimo)
Bloquea el checkout cuando el carrito no cumple el valor mínimo o el número mínimo de productos. Avisos en las páginas de carrito y checkout. Sobrescrituras por rol de usuario.
30. Review Requests (solicitudes de reseña)
Envía automáticamente correos de solicitud de reseña tras completar el pedido. Secuencia de 2 correos (inicial + recordatorio). Incluye imágenes de producto y enlaces de reseña.
Integración con Gutenberg y Elementor
Todos los módulos con shortcodes tienen bloques de Gutenberg y widgets de Elementor equivalentes. Los bloques de Gutenberg están disponibles en la categoría Polski del insertor de bloques. Los widgets de Elementor en la sección Polski del panel de widgets.
Sobreescritura de plantillas
Todas las plantillas de los módulos de tienda pueden sobreescribirse desde el tema activo. Copia el archivo desde:
wp-content/plugins/polski/templates/
al directorio del tema:
wp-content/themes/tu-tema/polski/
Conserva la estructura de directorios original. Ejemplos de rutas:
polski/loop/wishlist-button.php- botón de wishlist en el listadopolski/single-product/compare-button.php- botón del comparador en la página del productopolski/account/wishlist.php- página de lista de deseos en Mi cuentapolski/account/compare.php- página del comparador en Mi cuentapolski/shared/badges.php- plantilla de etiquetaspolski/quick-view/content.php- contenido del modal de quick viewpolski/forms/ajax-search.php- formulario del buscador AJAXpolski/forms/ajax-filters.php- formulario de filtros AJAX
Pasos siguientes
Módulo de productos alimentarios
El módulo alimentario de Polski for WooCommerce permite mostrar en la página del producto toda la información requerida para los artículos alimentarios que se venden en Polonia y la UE: valores nutricionales, alérgenos, composición, Nutri-Score, contenido de alcohol, país de origen y datos del distribuidor.
Activación del módulo
El módulo se gestiona mediante la opción polski_food en la base de datos. Para activarlo, ve al panel del plugin y pon el interruptor Productos alimentarios en activo. Al desactivar el módulo, ningún elemento se renderiza en la página del producto - los metadatos del producto permanecen intactos.
Campos del producto
Cada campo se guarda como metadato del producto de WooCommerce. La siguiente tabla describe los campos disponibles y sus correspondientes claves meta.
| Campo | Clave meta | Descripción |
|---|---|---|
| Composición | _polski_ingredients | Lista completa de ingredientes como texto continuo |
| Alérgenos | taxonomía polski_allergen | Términos de taxonomía asignados al producto |
| Valores nutricionales | _polski_nutrients | Objeto JSON: nombre del nutriente, valor, unidad |
| Unidad de referencia | _polski_nutrient_reference_unit | Por ejemplo “100 g” o “100 ml”; el valor predeterminado se configura globalmente |
| Nutri-Score | _polski_nutri_score | Una letra: A, B, C, D o E |
| Cantidad neta | _polski_net_filling_quantity | Por ejemplo “250 g” |
| Contenido de alcohol | _polski_alcohol_content | Valor numérico; el sufijo ”% vol.” se añade automáticamente |
| País de origen | _polski_place_of_origin | País o región de producción |
| Distribuidor | _polski_food_distributor | Datos del distribuidor o importador |
Tabla de valores nutricionales
Los valores nutricionales se almacenan como JSON en el meta _polski_nutrients. Cada fila de la tabla es un par clave-valor, donde la clave es el nombre del nutriente y el valor es un objeto con los campos value (valor) y unit (unidad).
Ejemplo de estructura JSON:
{
"Wartość energetyczna": { "value": 350, "unit": "kcal" },
"Tłuszcz": { "value": 12, "unit": "g" },
"w tym kwasy nasycone": { "value": 4.2, "unit": "g" },
"Węglowodany": { "value": 48, "unit": "g" },
"w tym cukry": { "value": 6, "unit": "g" },
"Białko": { "value": 8, "unit": "g" },
"Sól": { "value": 0.5, "unit": "g" }
}
La tabla se renderiza con un encabezado que indica la unidad de referencia, por ejemplo “Valores nutricionales por 100 g”. La unidad de referencia puede configurarse globalmente en los ajustes del módulo o sobreescribirse individualmente por producto usando el meta _polski_nutrient_reference_unit.
La tabla no se muestra cuando el meta _polski_nutrients está vacío o cuando la opción show_nutrients está desactivada en los ajustes.
Declaración de alérgenos
Los alérgenos se gestionan a través de la taxonomía polski_allergen. En lugar de introducirlos manualmente, se asignan al producto los términos de esa taxonomía - igual que las categorías o las etiquetas. Esto permite filtrar productos por alérgenos y gestionar la lista de forma global.
En la página del producto, los alérgenos se muestran en negrita, separados por comas, precedidos de la etiqueta “Alérgenos”. La etiqueta es configurable en los ajustes del módulo (allergens_label).
La sección no se muestra cuando el producto no tiene términos de taxonomía asignados o cuando la opción show_allergens está desactivada.
Composición del producto
El campo de composición (_polski_ingredients) es un campo de texto - se introduce la composición completa tal como debe aparecer en la etiqueta del producto. El módulo la muestra precedida de la etiqueta “Ingredientes” (configurable como ingredients_label).
La sección no se muestra cuando el campo está vacío o cuando la opción show_ingredients está desactivada.
Nutri-Score
Nutri-Score es el sistema europeo de evaluación nutricional de productos alimentarios en una escala de A (mejor) a E (peor). En el campo meta _polski_nutri_score se introduce una sola letra: A, B, C, D o E.
El módulo valida el valor - solo se aceptan estas cinco letras. Si el campo contiene otro valor o está vacío, la insignia no se muestra.
En la página del producto, la insignia se renderiza como un elemento HTML con la clase CSS polski-nutri-score--a (o b, c, d, e), lo que permite aplicar un color diferente a cada nivel sin configuración adicional.
La visualización de la insignia se controla con la opción show_nutri_score en los ajustes del módulo.
Contenido de alcohol
Para los productos alcohólicos, el campo _polski_alcohol_content acepta el valor numérico del contenido de alcohol. El sufijo ”% vol.” se añade automáticamente y puede modificarse mediante la opción alcohol_suffix en los ajustes. La etiqueta “Contenido de alcohol” es configurable como alcohol_label.
La sección no se muestra para productos que tienen este campo vacío o cuando la opción show_alcohol está desactivada.
País de origen y distribuidor
País de origen (_polski_place_of_origin) y datos del distribuidor (_polski_food_distributor) son campos de texto. La visualización de cada uno se controla de forma independiente mediante las opciones show_origin y show_distributor.
Las etiquetas “País de origen” y “Distribuidor” son configurables mediante origin_label y distributor_label respectivamente.
Cantidad neta
El campo _polski_net_filling_quantity almacena la cantidad neta del producto como texto, por ejemplo “250 g” o “0,5 l”. La visualización se controla con la opción show_net_filling, y la etiqueta “Cantidad neta” es configurable mediante net_filling_label.
Shortcode [polski_nutrients]
El shortcode [polski_nutrients] permite incrustar la tabla de valores nutricionales en cualquier lugar de la descripción del producto o de la página.
[polski_nutrients]
El shortcode renderiza el mismo HTML que la visualización automática de la tabla en la página del producto. Es útil cuando se quiere colocar la tabla en un lugar específico de la descripción en lugar de en la posición predeterminada debajo de la descripción.
Bloque completo de información alimentaria
El método getFoodInfoHtml() renderiza todas las secciones en un único bloque <div class="polski-food-info">. El orden de los elementos es fijo:
- Composición
- Alérgenos
- Tabla de valores nutricionales
- Nutri-Score
- Contenido de alcohol
- País de origen
- Distribuidor
- Cantidad neta
Cada sección se renderiza únicamente cuando la opción correspondiente está activada y el campo del producto contiene datos.
Preguntas frecuentes
¿Puedo usar el módulo alimentario para productos sin valores nutricionales?
Sí. Cada sección es independiente. Si solo completas el campo de composición y los alérgenos, únicamente se mostrarán estos. La tabla de valores nutricionales aparecerá solo cuando el meta _polski_nutrients contenga datos.
¿Dónde introduzco los valores nutricionales en el panel de WooCommerce?
Los datos del producto alimentario se introducen en la pestaña “Producto alimentario” del editor de producto de WooCommerce, que el módulo añade automáticamente tras su activación. Los valores nutricionales se introducen en una sección dedicada con campos para cada nutriente.
¿Cómo asignar alérgenos a un producto?
En el editor de producto, busca la sección “Alérgenos” (funciona de forma similar a las etiquetas de WooCommerce). Escribe o selecciona de la lista los alérgenos - por ejemplo “Gluten”, “Lactosa”, “Frutos secos”. Los términos se gestionan globalmente en Productos > Alérgenos.
¿Se calcula el Nutri-Score automáticamente?
No. La puntuación Nutri-Score se introduce manualmente (A, B, C, D o E). El cálculo de la puntuación requiere conocer la composición completa y las fórmulas específicas para cada categoría de producto - esto es responsabilidad del vendedor.
¿Puedo cambiar las etiquetas “Ingredientes”, “Alérgenos”, etc.?
Sí. Todas las etiquetas son configurables en los ajustes del módulo (polski_food). Los cambios se realizan en el panel del plugin y afectan a todos los productos a la vez.
Otros módulos
DSA Toolkit - ley de servicios digitales
Formulario de notificación de contenido ilegal mediante el shortcode [polski_dsa_report]. Panel de administración para gestionar notificaciones con seguimiento de estado. Notificaciones por correo electrónico sobre nuevas notificaciones.
KSeF-ready - preparación para la factura electrónica
Detección automática de pedidos que requieren factura KSeF basada en el NIP. Hooks de acción: polski/ksef/invoice_ready, polski/ksef/is_required. Columna de estado KSeF en la lista de pedidos. Integración con plugins de facturación.
Anti-greenwashing
Campos a nivel de producto: base de la alegación ecológica, enlace al certificado, fecha de vencimiento. Cumplimiento con la directiva de la UE sobre greenwashing (septiembre de 2026).
Consentimientos GDPR y registro de auditoría
Casillas legales configurables en el checkout, registro y valoraciones. Registro de auditoría GDPR completo: IP, user agent, marcas de tiempo. 7 casillas integradas con etiquetas y mensajes editables.
Precio por unidad
Visualización del precio por kg, litro, metro o cualquier unidad. Requerido por la legislación comercial polaca. Shortcode: [polski_unit_price].
Visualización del IVA
Configuración bruto/neto con información sobre la tasa de IVA (“incluye 23 % IVA”). Gestión de la exención subjetiva (art. 113 párr. 1 de la ley del IVA). Shortcode: [polski_tax_notice].
Tiempo de entrega
Tiempo de entrega estimado por producto, por variante, con fallback predeterminado. Shortcode: [polski_delivery_time].
Páginas legales y correo electrónico
Generación automática de páginas: Términos y condiciones, Política de privacidad, Política de devoluciones, Reclamaciones. Adjuntos legales en los correos electrónicos de pedidos (texto o PDF). Información sobre la plataforma ODR.
Double opt-in
Verificación de la dirección de correo electrónico en el registro de cuenta. Enlace de activación enviado por correo, bloqueo de acceso para cuentas no activadas.
Valoraciones verificadas
Insignia de compra verificada en las valoraciones. Funciona para clientes registrados y compras de invitado identificadas por correo electrónico.
NIP en el checkout
Campo NIP en la página de pago con validación de dígito de control. Obtención automática de datos de la empresa (nombre, dirección) de la base de datos GUS REGON al introducir el NIP. Configuración del entorno de la API (pruebas/producción).
Marcas de productos
Taxonomía de marcas independiente de los datos del fabricante GPSR. Vista en la página del producto y en los listados, archivos de marcas con URLs propias. Etiqueta y separador configurables.
Datos energéticos
Información sobre el consumo de energía para dispositivos eléctricos (etiquetas energéticas, clase energética). Se muestran en la página del producto en la sección de información.
Schema.org
Generación automática de datos estructurados (Product, Offer, AggregateRating) en las páginas de producto. Compatible con Google Rich Results.
CRA readiness - preparación para la Cyber Resilience Act
Preparación para los requisitos del CRA (EU Cyber Resilience Act). Monitorización de componentes de código abierto, notificación de vulnerabilidades de seguridad, integración con el registro de incidentes.
DPA Tracker - registro de tratamiento de datos
Seguimiento de las operaciones de tratamiento de datos personales conforme al art. 30 del GDPR. Registro de contratos de encargado de tratamiento con subcontratistas y proveedores de servicios.
Integración con Checkout toolkit
Capa de compatibilidad con los plugins más populares para campos de checkout, cookies y datos de productos. Detección e integración automáticas.
Panel de cumplimiento y auditoría de tienda
Punto de control central: páginas legales, dark patterns, DPA, DSA, KSeF-ready, anti-greenwashing, seguridad. Estado verde/rojo con un solo clic.
Idiomás compatibles
El plugin incluye traducciones integradas para el panel de administración y el frontend:
| Idioma | Código | Estado |
|---|---|---|
| Polaco | pl_PL | Traducción completa (predeterminado) |
| Inglés | en_US | Traducción completa |
| Alemán | de_DE | Traducción completa |
| Checo | cs_CZ | Traducción completa |
| Eslovaco | sk_SK | Traducción completa |
| Ucraniano | uk | Traducción completa |
Los archivos de traducción se encuentran en el directorio languages/. Se pueden sobrescribir desde wp-content/languages/plugins/.
Requisitos técnicos
| Parámetro | Requisito |
|---|---|
| WordPress | 6.4+ (probado hasta 6.8) |
| WooCommerce | 8.0+ (probado hasta 9.6) |
| PHP | 8.1+ |
| HPOS | Sí (Custom Order Tables) |
| WooCommerce Blocks | Sí (Store API) |
| Bloques de Gutenberg | Sí (AJAX Search, Filters, Slider) |
| Elementor | Sí (widgets para search, filters, slider) |
| Plantillas del tema | Sí (sobreescritura desde yourtheme/polski/) |
| REST API | namespace polski/v1/ |
| WP-CLI | wp polski migrate, wp polski smoke-test |
| Licencia | GPLv2 |
Shortcodes
| Shortcode | Descripción |
|---|---|
[polski_withdrawal_form] | Formulario de desistimiento del contrato |
[polski_ajax_search] | Buscador AJAX |
[polski_ajax_filters] | Filtros AJAX |
[polski_product_slider] | Slider de productos |
[polski_wishlist] | Lista de deseos |
[polski_compare] | Comparador |
[polski_dsa_report] | Formulario DSA |
[polski_unit_price] | Precio por unidad |
[polski_delivery_time] | Tiempo de entrega |
[polski_tax_notice] | Aviso fiscal |
[polski_shipping_notice] | Aviso de envío |
[polski_omnibus_price] | Precio Omnibus |
[polski_manufacturer] | Datos del fabricante |
[polski_safety_info] | Información de seguridad |
[polski_nutrients] | Valores nutricionales |
[polski_payment_methods] | Métodos de pago |
[polski_complaints] | Formulario de reclamaciones |
Cómo instalar
El plugin está actualmente en proceso de revisión en WordPress.org. Una vez aprobado:
- Ve a Plugins > Añadir nuevo en el panel de WordPress
- Busca Polski for WooCommerce
- Haz clic en Instalar y Activar
- Ve al nuevo menú Polski en la barra lateral
Código fuente: github.com/wppoland/polski
Notificación de errores y debates
El plugin es un proyecto de código abierto. Te animamos a participar activamente en su desarrollo:
- Informes de errores y propuestas de funciones - github.com/wppoland/polski/issues
- Debates y preguntas - github.com/wppoland/polski/discussions
- Código fuente - github.com/wppoland/polski
Antes de notificar un error, comprueba si ya existe una notificación similar. Describe el problema con el mayor detalle posible: versión de WordPress, WooCommerce, PHP, plugins activos y pasos para reproducirlo.
¿Necesitas ayuda con la configuración?
Si necesitas asistencia para configurar el plugin o adaptarlo a los requisitos específicos de tu tienda - contáctame.
Polski for WooCommerce - versión 1.3.0. Autor: wppoland.com. Licencia: GPLv2.


