Skip to content

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.

Según el artículo 30 del Reglamento FIC, la tabla de información nutricional debe contener al menos:

NutrienteUnidadClave JSON
Valor energéticokJ / kcalenergy_kj, energy_kcal
Grasasgfat
de las cuales ácidos grasos saturadosgsaturated_fat
Hidratos de carbonogcarbohydrates
de los cuales azúcaresgsugars
Proteínasgprotein
Salgsalt

Además, se pueden indicar los siguientes (art. 30, apdo. 2 FIC):

NutrienteUnidadClave JSON
Ácidos grasos monoinsaturadosgmonounsaturated_fat
Ácidos grasos poliinsaturadosgpolyunsaturated_fat
Polialcoholes (polioles)gpolyols
Almidóngstarch
Fibra alimentariagfibre
Vitamina Aµgvitamin_a
Vitamina Dµgvitamin_d
Vitamina Emgvitamin_e
Vitamina Kµgvitamin_k
Vitamina Cmgvitamin_c
Tiamina (B1)mgthiamine
Riboflavina (B2)mgriboflavin
Niacina (B3)mgniacin
Vitamina B6mgvitamin_b6
Ácido fólicoµgfolic_acid
Vitamina B12µgvitamin_b12
Biotinaµgbiotin
Ácido pantoténicomgpantothenic_acid
Potasiomgpotassium
Cloruromgchloride
Calciomgcalcium
Fósforomgphosphorus
Magnesiomgmagnesium
Hierromgiron
Zincmgzinc
Cobremgcopper
Manganesomgmanganese
Fluoruromgfluoride
Selenioµgselenium
Cromoµgchromium
Molibdenoµgmolybdenum
Yodoµgiodine

Vaya a WooCommerce > Ajustes > Polski > Alimentación y active el submódulo “Valores nutricionales”.

AjustePredeterminadoDescripción
Unidad de referenciapor 100 gUnidad predeterminada: por 100 g o por 100 ml
Mostrar % IRIngesta de referencia (% de la necesidad diaria)
Posición de la tablaPestañaDónde mostrar la tabla en la página de producto
Nutrientes opcionalesFibra, vitaminasQué 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.

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.

Opcionalmente, también puede indicar el tamaño de la ración y los valores nutricionales por ración:

CampoDescripción
Tamaño de la raciónp. ej. “30 g”, “250 ml”, “1 rebanada (25 g)“
Raciones por envasep. ej. “10”

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
}
  • 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_kj y energy_kcal deben ser coherentes (1 kcal = 4,184 kJ)
  • Los subnutrientes no pueden superar al nutriente principal (p. ej. saturated_fat <= fat)

Utilice el shortcode [polski_nutrients] para mostrar la tabla de información nutricional.

ParámetroTipoPredeterminadoDescripción
product_idintactualID del producto
show_rwsbooltrueSi se muestra el % IR
show_servingboolfalseSi se muestra la columna por ración
fieldsstringallNutrientes a mostrar (separados por comas)
layoutstringtableDiseño: table, list, compact
wrapperstringdivElemento HTML envolvente

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() . '"]');

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>

El plugin calcula el % IR automáticamente a partir de los valores de referencia del anexo XIII del Reglamento FIC:

NutrienteValor de referencia
Energía8400 kJ / 2000 kcal
Grasas70 g
Ácidos grasos saturados20 g
Hidratos de carbono260 g
Azúcares90 g
Proteínas50 g
Sal6 g
Fibra alimentaria25 g
$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;
}
$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);

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.

.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;
}

La tabla de información nutricional no se muestra

Section titled “La tabla de información nutricional no se muestra”
  1. Compruebe que el submódulo de valores nutricionales está activado
  2. Asegúrese de que el campo _polski_nutrients del producto está relleno con un JSON válido
  3. 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.

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.

Esta página tiene únicamente carácter informativo y no constituye asesoramiento jurídico. Consulte a un abogado antes de la implementación. Polski for WooCommerce es software de código abierto (GPLv2) proporcionado sin garantía.