Nutritional values
Una tienda de alimentación debe mostrar una tabla de información nutricional (Reglamento UE 1169/2011). Polski for WooCommerce permite añadir una tabla a cada producto en un formato conforme con la normativa.
Nutrientes obligatorios
Section titled “Nutrientes obligatorios”Según el artículo 30 del Reglamento FIC, la tabla de información nutricional debe contener al menos:
| Nutriente | Unidad | Clave JSON |
|---|---|---|
| Valor energético | kJ / kcal | energy_kj, energy_kcal |
| Grasas | g | fat |
| de las cuales ácidos grasos saturados | g | saturated_fat |
| Hidratos de carbono | g | carbohydrates |
| de los cuales azúcares | g | sugars |
| Proteínas | g | protein |
| Sal | g | salt |
Nutrientes opcionales
Section titled “Nutrientes opcionales”Además, se pueden indicar los siguientes (art. 30, apdo. 2 FIC):
| Nutriente | Unidad | Clave JSON |
|---|---|---|
| Ácidos grasos monoinsaturados | g | monounsaturated_fat |
| Ácidos grasos poliinsaturados | g | polyunsaturated_fat |
| Polialcoholes (polioles) | g | polyols |
| Almidón | g | starch |
| Fibra alimentaria | g | fibre |
| Vitamina A | µg | vitamin_a |
| Vitamina D | µg | vitamin_d |
| Vitamina E | mg | vitamin_e |
| Vitamina K | µg | vitamin_k |
| Vitamina C | mg | vitamin_c |
| Tiamina (B1) | mg | thiamine |
| Riboflavina (B2) | mg | riboflavin |
| Niacina (B3) | mg | niacin |
| Vitamina B6 | mg | vitamin_b6 |
| Ácido fólico | µg | folic_acid |
| Vitamina B12 | µg | vitamin_b12 |
| Biotina | µg | biotin |
| Ácido pantoténico | mg | pantothenic_acid |
| Potasio | mg | potassium |
| Cloruro | mg | chloride |
| Calcio | mg | calcium |
| Fósforo | mg | phosphorus |
| Magnesio | mg | magnesium |
| Hierro | mg | iron |
| Zinc | mg | zinc |
| Cobre | mg | copper |
| Manganeso | mg | manganese |
| Fluoruro | mg | fluoride |
| Selenio | µg | selenium |
| Cromo | µg | chromium |
| Molibdeno | µg | molybdenum |
| Yodo | µg | iodine |
Configuración
Section titled “Configuración”Activación del módulo
Section titled “Activación del módulo”Vaya a WooCommerce > Ajustes > Polski > Alimentación y active el submódulo “Valores nutricionales”.
Ajustes
Section titled “Ajustes”| Ajuste | Predeterminado | Descripción |
|---|---|---|
| Unidad de referencia | por 100 g | Unidad predeterminada: por 100 g o por 100 ml |
| Mostrar % IR | Sí | Ingesta de referencia (% de la necesidad diaria) |
| Posición de la tabla | Pestaña | Dónde mostrar la tabla en la página de producto |
| Nutrientes opcionales | Fibra, vitaminas | Qué nutrientes opcionales mostrar |
Introducción de datos en el editor de producto
Section titled “Introducción de datos en el editor de producto”En la pestaña “Alimentación” del editor de producto encontrará el formulario de valores nutricionales. Rellene los campos con valores numéricos por 100 g o 100 ml.
Unidad de referencia por producto
Section titled “Unidad de referencia por producto”Cada producto puede tener una unidad de referencia individual. Las bebidas deben configurarse como “por 100 ml”, y los productos sólidos como “por 100 g”. Si no se establece, se utilizará el valor predeterminado de los ajustes.
Ración
Section titled “Ración”Opcionalmente, también puede indicar el tamaño de la ración y los valores nutricionales por ración:
| Campo | Descripción |
|---|---|
| Tamaño de la ración | p. ej. “30 g”, “250 ml”, “1 rebanada (25 g)“ |
| Raciones por envase | p. ej. “10” |
Formato JSON
Section titled “Formato JSON”Los valores nutricionales se almacenan en la base de datos como JSON en el campo meta _polski_nutrients. Formato:
{ "energy_kj": 1046, "energy_kcal": 250, "fat": 9.5, "saturated_fat": 3.2, "carbohydrates": 31.0, "sugars": 5.4, "fibre": 2.1, "protein": 8.7, "salt": 1.2, "ref_unit": "100g", "serving_size": "30g", "servings_per_package": 10}Reglas de validación
Section titled “Reglas de validación”- Los valores deben ser números (int o float)
- Separador decimal en el JSON: punto (p. ej.
9.5) - Los valores no pueden ser negativos
energy_kjyenergy_kcaldeben ser coherentes (1 kcal = 4,184 kJ)- Los subnutrientes no pueden superar al nutriente principal (p. ej.
saturated_fat<=fat)
Shortcode
Section titled “Shortcode”Utilice el shortcode [polski_nutrients] para mostrar la tabla de información nutricional.
Parámetros
Section titled “Parámetros”| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
product_id | int | actual | ID del producto |
show_rws | bool | true | Si se muestra el % IR |
show_serving | bool | false | Si se muestra la columna por ración |
fields | string | all | Nutrientes a mostrar (separados por comas) |
layout | string | table | Diseño: table, list, compact |
wrapper | string | div | Elemento HTML envolvente |
Ejemplos de uso
Section titled “Ejemplos de uso”Tabla de información nutricional completa:
[polski_nutrients]Con valores por ración:
[polski_nutrients show_serving="true"]Solo nutrientes básicos:
[polski_nutrients fields="energy_kcal,fat,carbohydrates,protein,salt"]Diseño compacto (sin tabla):
[polski_nutrients layout="compact"]Para un producto concreto:
[polski_nutrients product_id="123" show_rws="true" show_serving="true"]En una plantilla PHP:
echo do_shortcode('[polski_nutrients product_id="' . $product->get_id() . '"]');Tabla HTML generada
Section titled “Tabla HTML generada”El shortcode genera una tabla conforme con el estándar de la UE:
<div class="polski-nutrients"> <table class="polski-nutrients__table"> <thead> <tr> <th>Valor nutricional</th> <th>por 100 g</th> <th>% IR*</th> </tr> </thead> <tbody> <tr> <td>Valor energético</td> <td>1046 kJ / 250 kcal</td> <td>13%</td> </tr> <tr> <td>Grasas</td> <td>9,5 g</td> <td>14%</td> </tr> <tr class="polski-nutrients__sub"> <td>de las cuales ácidos grasos saturados</td> <td>3,2 g</td> <td>16%</td> </tr> <!-- ... --> </tbody> <tfoot> <tr> <td colspan="3"> * Ingesta de referencia para un adulto medio (8400 kJ / 2000 kcal) </td> </tr> </tfoot> </table></div>Ingesta de referencia (IR)
Section titled “Ingesta de referencia (IR)”El plugin calcula el % IR automáticamente a partir de los valores de referencia del anexo XIII del Reglamento FIC:
| Nutriente | Valor de referencia |
|---|---|
| Energía | 8400 kJ / 2000 kcal |
| Grasas | 70 g |
| Ácidos grasos saturados | 20 g |
| Hidratos de carbono | 260 g |
| Azúcares | 90 g |
| Proteínas | 50 g |
| Sal | 6 g |
| Fibra alimentaria | 25 g |
Acceso programático
Section titled “Acceso programático”Obtención de los valores nutricionales
Section titled “Obtención de los valores nutricionales”$nutrients_json = get_post_meta($product_id, '_polski_nutrients', true);$nutrients = json_decode($nutrients_json, true);
if ($nutrients) { $energy_kcal = $nutrients['energy_kcal'] ?? 0; $protein = $nutrients['protein'] ?? 0;}Guardado de los valores nutricionales
Section titled “Guardado de los valores nutricionales”$nutrients = [ 'energy_kj' => 1046, 'energy_kcal' => 250, 'fat' => 9.5, 'saturated_fat' => 3.2, 'carbohydrates' => 31.0, 'sugars' => 5.4, 'protein' => 8.7, 'salt' => 1.2, 'ref_unit' => '100g',];
update_post_meta($product_id, '_polski_nutrients', wp_json_encode($nutrients));Filtro para los valores antes de mostrarlos
Section titled “Filtro para los valores antes de mostrarlos”add_filter('polski/nutrients/values', function (array $nutrients, int $product_id): array { // Redondeo de los valores según las directrices de la UE if (isset($nutrients['energy_kcal'])) { $nutrients['energy_kcal'] = round($nutrients['energy_kcal']); }
return $nutrients;}, 10, 2);Importación CSV
Section titled “Importación CSV”La columna polski_nutrients en el CSV debe contener los valores en formato JSON:
"Muesli de frutas","{""energy_kj"":1590,""energy_kcal"":380,""fat"":8.2,""saturated_fat"":1.5,""carbohydrates"":64.0,""sugars"":22.0,""fibre"":7.5,""protein"":9.8,""salt"":0.05,""ref_unit"":""100g""}"Las comillas dentro del JSON deben duplicarse ("") en el archivo CSV.
Estilos CSS
Section titled “Estilos CSS”.polski-nutrients__table { width: 100%; border-collapse: collapse; font-size: 0.9em;}
.polski-nutrients__table th,.polski-nutrients__table td { padding: 0.4em 0.8em; border-bottom: 1px solid #e0e0e0; text-align: left;}
.polski-nutrients__sub td:first-child { padding-left: 1.5em; font-style: italic;}
.polski-nutrients__table tfoot td { font-size: 0.8em; color: #666; padding-top: 0.8em;}Problemas frecuentes
Section titled “Problemas frecuentes”La tabla de información nutricional no se muestra
Section titled “La tabla de información nutricional no se muestra”- Compruebe que el submódulo de valores nutricionales está activado
- Asegúrese de que el campo
_polski_nutrientsdel producto está relleno con un JSON válido - Verifique el formato JSON - utilice un validador (p. ej. jsonlint.com)
Los valores se muestran con un punto en lugar de una coma
Section titled “Los valores se muestran con un punto en lugar de una coma”El plugin da formato a los números automáticamente según la configuración polaca (coma decimal). Si ve un punto, compruebe que la localización de WordPress está establecida en pl_PL.
El % IR no se muestra
Section titled “El % IR no se muestra”Compruebe que la opción “Mostrar % IR” está activada en los ajustes y que el parámetro show_rws del shortcode no está establecido en false.