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

Ціна за одиницю

Польське право вимагає, щоб магазин показував ціну за одиницю продукту - наприклад, ціну за кілограм, літр або метр. Плагін Polski for WooCommerce додає цю інформацію автоматично на сторінці продукту, в лістингу та в кошику.

Коли ціна за одиницю обов’язкова

Section titled “Коли ціна за одиницю обов’язкова”

Ціну за одиницю вказуєте для продуктів на вагу, об’єм або довжину. Це стосується:

  • продукти харчування (ціна за кг або літр)
  • косметику та засоби для прибирання (ціна за 100 мл або літр)
  • будівельні матеріали (ціна за погонний метр або квадратний метр)
  • сипкі продукти (ціна за кг)

Ціна за одиницю має бути видима всюди, де показуєте ціну продукту - на сторінці продукту, в результатах пошуку, в порівняльниках та в кошику.

Перейдіть до WooCommerce > Налаштування > Polski > Ціни та увімкніть модуль ціни за одиницю. Після активації у редакторі продукту з’явиться нова секція у вкладці “Загальні”.

Поля у редакторі продукту

Section titled “Поля у редакторі продукту”
ПолеОписПриклад
Базова кількістьКількість продукту в упаковці500
Базова одиницяОдиниця виміру продуктуg
Референсна кількістьРеференсна кількість для ціни за одиницю1
Референсна одиницяОдиниця, за яку зазначається цінаkg

Для продукту вагою 500 г та ціною 12,99 зл плагін автоматично обчислить ціну за одиницю як 25,98 зл/кг.

Плагін підтримує наступні одиниці виміру:

  • Вага: g, kg, mg
  • Об’єм: ml, l, cl
  • Довжина: mm, cm, m
  • Штуки: szt (piece)

Перерахунок між одиницями відбувається автоматично. Якщо продукт має вагу у грамах, а референсна одиниця - кілограм, плагін сам перерахує значення.

Для змінних продуктів (variable products) ціну за одиницю можна встановити на двох рівнях:

  1. На рівні головного продукту - значення успадковується всіма варіантами
  2. На рівні варіанту - перевизначає налаштування головного продукту

У випадку варіантів з різною вагою (наприклад, упаковка 250 г та 500 г) встановіть ціну за одиницю окремо для кожного варіанту. Плагін автоматично оновить відображувану ціну при зміні варіанту клієнтом (AJAX).

Використовуйте шорткод [polski_unit_price], щоб відобразити ціну за одиницю в будь-якому місці.

ПараметрТипЗа замовчуваннямОпис
product_idintпоточнийID продукту
beforestring""Текст перед ціною
afterstring""Текст після ціни
wrapperstringspanHTML-елемент обгортки

Базове використання на сторінці продукту:

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

Цей фільтр дозволяє змінити HTML ціни за одиницю перед відображенням.

apply_filters('polski/price/unit_price_html', string $html, float $unit_price, WC_Product $product, array $args): string
ПараметрТипОпис
$htmlstringЗгенерований HTML ціни за одиницю
$unit_pricefloatОбчислена ціна за одиницю
$productWC_ProductОб’єкт продукту WooCommerce
$argsarrayМасив з ключами: 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);

Ціну за одиницю можна імпортувати за допомогою стандартного імпортера 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 “Ціна за одиницю не відображається”

Перевірте, чи:

  1. Модуль ціни за одиницю увімкнений у налаштуваннях
  2. Продукт має заповнені поля базової кількості та одиниці
  3. Тема підтримує хук woocommerce_after_shop_loop_item_title (лістинг) та woocommerce_single_product_summary (сторінка продукту)

Неправильний перерахунок

Section titled “Неправильний перерахунок”

Переконайтеся, що базова та референсна одиниці належать до однієї категорії (наприклад, обидві вагові або обидві об’ємні). Плагін не перераховує між категоріями - неможливо перерахувати грами у літри.

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