Ціна за одиницю
Польське право вимагає, щоб магазин показував ціну за одиницю продукту - наприклад, ціну за кілограм, літр або метр. Плагін Polski for WooCommerce додає цю інформацію автоматично на сторінці продукту, в лістингу та в кошику.
Коли ціна за одиницю обов’язкова
Section titled “Коли ціна за одиницю обов’язкова”Ціну за одиницю вказуєте для продуктів на вагу, об’єм або довжину. Це стосується:
- продукти харчування (ціна за кг або літр)
- косметику та засоби для прибирання (ціна за 100 мл або літр)
- будівельні матеріали (ціна за погонний метр або квадратний метр)
- сипкі продукти (ціна за кг)
Ціна за одиницю має бути видима всюди, де показуєте ціну продукту - на сторінці продукту, в результатах пошуку, в порівняльниках та в кошику.
Налаштування
Section titled “Налаштування”Перейдіть до WooCommerce > Налаштування > Polski > Ціни та увімкніть модуль ціни за одиницю. Після активації у редакторі продукту з’явиться нова секція у вкладці “Загальні”.
Поля у редакторі продукту
Section titled “Поля у редакторі продукту”| Поле | Опис | Приклад |
|---|---|---|
| Базова кількість | Кількість продукту в упаковці | 500 |
| Базова одиниця | Одиниця виміру продукту | g |
| Референсна кількість | Референсна кількість для ціни за одиницю | 1 |
| Референсна одиниця | Одиниця, за яку зазначається ціна | kg |
Для продукту вагою 500 г та ціною 12,99 зл плагін автоматично обчислить ціну за одиницю як 25,98 зл/кг.
Підтримувані одиниці
Section titled “Підтримувані одиниці”Плагін підтримує наступні одиниці виміру:
- Вага: g, kg, mg
- Об’єм: ml, l, cl
- Довжина: mm, cm, m
- Штуки: szt (piece)
Перерахунок між одиницями відбувається автоматично. Якщо продукт має вагу у грамах, а референсна одиниця - кілограм, плагін сам перерахує значення.
Варіанти продуктів
Section titled “Варіанти продуктів”Для змінних продуктів (variable products) ціну за одиницю можна встановити на двох рівнях:
- На рівні головного продукту - значення успадковується всіма варіантами
- На рівні варіанту - перевизначає налаштування головного продукту
У випадку варіантів з різною вагою (наприклад, упаковка 250 г та 500 г) встановіть ціну за одиницю окремо для кожного варіанту. Плагін автоматично оновить відображувану ціну при зміні варіанту клієнтом (AJAX).
Шорткод
Section titled “Шорткод”Використовуйте шорткод [polski_unit_price], щоб відобразити ціну за одиницю в будь-якому місці.
Параметри
Section titled “Параметри”| Параметр | Тип | За замовчуванням | Опис |
|---|---|---|---|
product_id | int | поточний | ID продукту |
before | string | "" | Текст перед ціною |
after | string | "" | Текст після ціни |
wrapper | string | span | HTML-елемент обгортки |
Приклади використання
Section titled “Приклади використання”Базове використання на сторінці продукту:
[polski_unit_price]З нестандартним ID продукту та текстом:
[polski_unit_price product_id="123" before="Cena za kg: " after=" brutto"]У PHP-шаблоні:
echo do_shortcode('[polski_unit_price product_id="' . $product->get_id() . '"]');Хук: polski/price/unit_price_html
Section titled “Хук: polski/price/unit_price_html”Цей фільтр дозволяє змінити HTML ціни за одиницю перед відображенням.
Сигнатура
Section titled “Сигнатура”apply_filters('polski/price/unit_price_html', string $html, float $unit_price, WC_Product $product, array $args): stringПараметри
Section titled “Параметри”| Параметр | Тип | Опис |
|---|---|---|
$html | string | Згенерований HTML ціни за одиницю |
$unit_price | float | Обчислена ціна за одиницю |
$product | WC_Product | Об’єкт продукту WooCommerce |
$args | array | Масив з ключами: base_qty, base_unit, ref_qty, ref_unit |
Приклад: додавання CSS-класу
Section titled “Приклад: додавання CSS-класу”add_filter('polski/price/unit_price_html', function (string $html, float $unit_price, WC_Product $product, array $args): string { $category_class = ''; if (has_term('napoje', 'product_cat', $product->get_id())) { $category_class = ' polski-unit-price--beverage'; }
return sprintf( '<span class="polski-unit-price%s">%s/%s</span>', esc_attr($category_class), wc_price($unit_price), esc_html($args['ref_unit']) );}, 10, 4);Приклад: приховання ціни за одиницю для вибраних категорій
Section titled “Приклад: приховання ціни за одиницю для вибраних категорій”add_filter('polski/price/unit_price_html', function (string $html, float $unit_price, WC_Product $product): string { if (has_term('uslugi', 'product_cat', $product->get_id())) { return ''; }
return $html;}, 10, 3);Імпорт CSV
Section titled “Імпорт CSV”Ціну за одиницю можна імпортувати за допомогою стандартного імпортера WooCommerce. Додайте наступні колонки до файлу CSV:
| Колонка CSV | Опис |
|---|---|
polski_unit_base_qty | Базова кількість |
polski_unit_base_unit | Базова одиниця |
polski_unit_ref_qty | Референсна кількість |
polski_unit_ref_unit | Референсна одиниця |
Приклад рядка CSV:
"Kawa mielona 500g",29.99,500,g,1,kgНайпоширеніші проблеми
Section titled “Найпоширеніші проблеми”Ціна за одиницю не відображається
Section titled “Ціна за одиницю не відображається”Перевірте, чи:
- Модуль ціни за одиницю увімкнений у налаштуваннях
- Продукт має заповнені поля базової кількості та одиниці
- Тема підтримує хук
woocommerce_after_shop_loop_item_title(лістинг) таwoocommerce_single_product_summary(сторінка продукту)
Неправильний перерахунок
Section titled “Неправильний перерахунок”Переконайтеся, що базова та референсна одиниці належать до однієї категорії (наприклад, обидві вагові або обидві об’ємні). Плагін не перераховує між категоріями - неможливо перерахувати грами у літри.