Перейти до вмісту

Харчова цінність

Магазин з харчуванням повинен відображати таблицю харчової цінності (регламент ЄС nr 1169/2011). Плагін Polski for WooCommerce дозволяє додати таблицю до кожного продукту у форматі згідно з вимогами.

Обов’язкові поживні речовини

Section titled “Обов’язкові поживні речовини”

Відповідно до ст. 30 регламенту FIC, таблиця харчової цінності повинна містити щонайменше:

РечовинаОдиницяКлюч JSON
Енергетична цінністькДж / ккалenergy_kj, energy_kcal
Жиригfat
в тому числі насичені жирні кислотигsaturated_fat
Вуглеводигcarbohydrates
в тому числі цукригsugars
Білокгprotein
Сільгsalt

Необов’язкові поживні речовини

Section titled “Необов’язкові поживні речовини”

Додатково можна вказати (ст. 30 п. 2 FIC):

РечовинаОдиницяКлюч JSON
Мононенасичені жирні кислотигmonounsaturated_fat
Поліненасичені жирні кислотигpolyunsaturated_fat
Багатоатомні спирти (поліоли)гpolyols
Крохмальгstarch
Клітковинагfibre
Вітамін Aмкгvitamin_a
Вітамін Dмкгvitamin_d
Вітамін Eмгvitamin_e
Вітамін Kмкгvitamin_k
Вітамін Cмгvitamin_c
Тіамін (B1)мгthiamine
Рибофлавін (B2)мгriboflavin
Ніацин (B3)мгniacin
Вітамін B6мгvitamin_b6
Фолієва кислотамкгfolic_acid
Вітамін B12мкгvitamin_b12
Біотинмкгbiotin
Пантотенова кислотамгpantothenic_acid
Каліймгpotassium
Хлормгchloride
Кальціймгcalcium
Фосформгphosphorus
Магніймгmagnesium
Залізомгiron
Цинкмгzinc
Мідьмгcopper
Марганецьмгmanganese
Фторидмгfluoride
Селенмкгselenium
Хроммкгchromium
Молібденмкгmolybdenum
Йодмкгiodine

Перейдіть до WooCommerce > Налаштування > Polski > Харчування та активуйте підмодуль “Харчова цінність”.

НалаштуванняЗа замовчуваннямОпис
Одиниця виміруна 100 гОдиниця за замовчуванням: на 100 г або на 100 мл
Відображати % РДНТакРеферентна добова норма (% добової потреби)
Позиція таблиціВкладкаДе відображати таблицю на сторінці продукту
Необов’язкові речовиниКлітковина, вітаміниЯкі необов’язкові речовини відображати

Введення даних у редакторі продукту

Section titled “Введення даних у редакторі продукту”

У вкладці “Харчування” в редакторі продукту знаходиться форма харчової цінності. Заповніть поля числовими значеннями на 100 г або 100 мл.

Одиниця виміру для окремого продукту

Section titled “Одиниця виміру для окремого продукту”

Кожен продукт може мати індивідуальну одиницю виміру. Напої повинні мати встановлено “на 100 мл”, тверді продукти - “на 100 г”. Якщо не встановити, буде використано значення за замовчуванням з налаштувань.

Необов’язково можна також вказати розмір порції та харчову цінність на порцію:

ПолеОпис
Розмір порціїнаприклад, “30 г”, “250 мл”, “1 скибочка (25 г)“
Кількість порцій в упаковцінаприклад, “10”

Харчова цінність зберігається в базі даних як JSON у мета-полі _polski_nutrients. Формат:

{
"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
}
  • Значення повинні бути числами (int або float)
  • Десятковий роздільник у JSON: крапка (наприклад, 9.5)
  • Значення не можуть бути від’ємними
  • energy_kj та energy_kcal повинні бути узгоджені (1 ккал = 4.184 кДж)
  • Підкомпоненти не можуть перевищувати батьківський компонент (наприклад, saturated_fat <= fat)

Використовуйте shortcode [polski_nutrients], щоб відобразити таблицю харчової цінності.

ПараметрТипЗа замовчуваннямОпис
product_idintпоточнийID продукту
show_rwsbooltrueЧи відображати % РДН
show_servingboolfalseЧи відображати колонку на порцію
fieldsstringallРечовини для відображення (через кому)
layoutstringtableМакет: table, list, compact
wrapperstringdivHTML-елемент обгортки

Повна таблиця харчової цінності:

[polski_nutrients]

З показниками на порцію:

[polski_nutrients show_serving="true"]

Тільки основні речовини:

[polski_nutrients fields="energy_kcal,fat,carbohydrates,protein,salt"]

Компактний макет (без таблиці):

[polski_nutrients layout="compact"]

Для конкретного продукту:

[polski_nutrients product_id="123" show_rws="true" show_serving="true"]

У шаблоні PHP:

echo do_shortcode('[polski_nutrients product_id="' . $product->get_id() . '"]');

Згенерована HTML-таблиця

Section titled “Згенерована HTML-таблиця”

Shortcode генерує таблицю, сумісну зі стандартом ЄС:

<div class="polski-nutrients">
<table class="polski-nutrients__table">
<thead>
<tr>
<th>Wartość odżywcza</th>
<th>per 100 g</th>
<th>% RWS*</th>
</tr>
</thead>
<tbody>
<tr>
<td>Wartość energetyczna</td>
<td>1046 kJ / 250 kcal</td>
<td>13%</td>
</tr>
<tr>
<td>Tłuszcz</td>
<td>9,5 g</td>
<td>14%</td>
</tr>
<tr class="polski-nutrients__sub">
<td>w tym kwasy tłuszczowe nasycone</td>
<td>3,2 g</td>
<td>16%</td>
</tr>
<!-- ... -->
</tbody>
<tfoot>
<tr>
<td colspan="3">
* Referencyjna wartość spożycia dla przeciętnej osoby dorosłej (8400 kJ / 2000 kcal)
</td>
</tr>
</tfoot>
</table>
</div>

Референтна добова норма (РДН)

Section titled “Референтна добова норма (РДН)”

Плагін обчислює % РДН автоматично на основі референтних значень з додатку XIII регламенту FIC:

РечовинаРеферентне значення
Енергія8400 кДж / 2000 ккал
Жири70 г
Насичені жирні кислоти20 г
Вуглеводи260 г
Цукри90 г
Білок50 г
Сіль6 г
Клітковина25 г

Отримання харчової цінності

Section titled “Отримання харчової цінності”
$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;
}

Збереження харчової цінності

Section titled “Збереження харчової цінності”
$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));

Фільтр значень перед відображенням

Section titled “Фільтр значень перед відображенням”
add_filter('polski/nutrients/values', function (array $nutrients, int $product_id): array {
// Округлення значень відповідно до рекомендацій ЄС
if (isset($nutrients['energy_kcal'])) {
$nutrients['energy_kcal'] = round($nutrients['energy_kcal']);
}
return $nutrients;
}, 10, 2);

Колонка polski_nutrients у CSV повинна містити значення у форматі JSON:

"Musli owocowe","{""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""}"

Лапки всередині JSON повинні бути подвоєні ("") у файлі 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;
}

Найпоширеніші проблеми

Section titled “Найпоширеніші проблеми”

Таблиця харчової цінності не відображається

Section titled “Таблиця харчової цінності не відображається”
  1. Перевірте, чи підмодуль харчової цінності увімкнено
  2. Переконайтеся, що продукт має заповнене поле _polski_nutrients з коректним JSON
  3. Перевірте формат JSON - використовуйте валідатор (наприклад, jsonlint.com)

Значення відображаються з крапкою замість коми

Section titled “Значення відображаються з крапкою замість коми”

Плагін автоматично форматує числа відповідно до польських налаштувань (десяткова кома). Якщо ви бачите крапку, перевірте, чи locale WordPress встановлено на pl_PL.

% РДН не відображається

Section titled “% РДН не відображається”

Перевірте, чи опція “Відображати % РДН” увімкнена в налаштуваннях та чи параметр show_rws у shortcode не встановлено на false.

Ця сторінка має виключно інформаційний характер і не є юридичною консультацією. Перед впровадженням зверніться до юриста. Polski for WooCommerce - це програмне забезпечення з відкритим кодом (GPLv2), що надається без гарантій.