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

Передпродаж (pre-orders)

Модуль передпродажу дозволяє позначати продукти як pre-order, відображати дату релізу та змінювати текст кнопки. Корисний в магазинах з електронікою, книгами, іграми та іншими продуктами до прем’єри.

Глобальне налаштування

Section titled “Глобальне налаштування”

Перейдіть до WooCommerce > Налаштування > Polski PRO > Передпродаж.

ПараметрЗначення за замовчуваннямОпис
Текст кнопки”Zamów w przedsprzedaży”Глобальний текст кнопки для продуктів pre-order
Текст доступності”Dostępne od {date}“Шаблон тексту, що відображається замість стану запасів
Формат датиd.m.YФормат відображення дати релізу
Блокувати змішування кошикаТакЗабороняє додавання стандартних продуктів до кошика з pre-order
Повідомлення блокування”Produkty w przedsprzedaży muszą być zamawiane osobno.”Повідомлення, що відображається при спробі змішування

Налаштування передпродажу знаходяться в редагуванні продукту, у вкладці Загальне в панелі даних продукту.

Мета-полеКлючТипОпис
Увімкнути передпродаж_polski_preorder_enabledboolПозначає продукт як pre-order
Дата релізу_polski_preorder_release_datestring (Y-m-d)Дата, з якої продукт доступний стандартно
Текст кнопки_polski_preorder_button_textstringПеревизначає глобальний текст кнопки для цього продукту
Текст доступності_polski_preorder_availability_textstringПеревизначає глобальний текст доступності

Налаштування через WP-CLI

Section titled “Налаштування через WP-CLI”
Okno terminala
wp post meta update 123 _polski_preorder_enabled "yes"
wp post meta update 123 _polski_preorder_release_date "2026-06-15"
wp post meta update 123 _polski_preorder_button_text "Zamów teraz - premiera 15 czerwca"

Програмне налаштування

Section titled “Програмне налаштування”
update_post_meta($product_id, '_polski_preorder_enabled', 'yes');
update_post_meta($product_id, '_polski_preorder_release_date', '2026-06-15');

Відображення на фронтенді

Section titled “Відображення на фронтенді”

Коли продукт позначений як pre-order, текст кнопки “Додати до кошика” змінюється на налаштований текст передпродажу. Це стосується:

  • Сторінки окремого продукту
  • Сторінок архіву, категорій та тегів
  • Результатів пошуку
  • Блоків WooCommerce (Product Grid, Product Collection)

Замість стандартного стану запасів (“В наявності”, “Немає в наявності”) відображається текст доступності з датою релізу. Плейсхолдер {date} замінюється на відформатовану дату.

Приклад відображення:

Dostępne od 15.06.2026

Автоматична деактивація

Section titled “Автоматична деактивація”

Після перевищення дати релізу продукт автоматично повертається до стандартного режиму. Деактивація відбувається через завдання WP-Cron, що запускається щодня о 00:01.

/**
* Akcja wywoływana po automatycznej dezaktywacji przedsprzedaży.
*
* @param int $product_id ID produktu
* @param string $release_date Data premiery (Y-m-d)
*/
do_action('polski_pro/preorder/deactivated', int $product_id, string $release_date);

Приклад - сповіщення клієнтів про доступність:

add_action('polski_pro/preorder/deactivated', function (int $product_id, string $release_date): void {
$subscribers = get_post_meta($product_id, '_polski_preorder_subscribers', true);
if (is_array($subscribers)) {
foreach ($subscribers as $email) {
wp_mail(
$email,
'Produkt jest już dostępny!',
sprintf('Produkt %s jest teraz dostępny do zakupu.', get_the_title($product_id))
);
}
}
}, 10, 2);

Блокування змішування продуктів

Section titled “Блокування змішування продуктів”

Коли опція “Блокувати змішування кошика” увімкнена, клієнт не може додати до кошика одночасно:

  • Продукти у передпродажу та стандартні продукти
  • Продукти pre-order із різними датами релізу (необов’язково)

При спробі додавання продукту іншого типу відображається повідомлення блокування, і продукт не додається.

/**
* Filtruje, czy koszyk może zawierać mieszane typy produktów.
*
* @param bool $allow Czy pozwolić na mieszanie (domyślnie false)
* @param int $product_id ID dodawanego produktu
* @param array $cart_items Aktualne produkty w koszyku
*/
apply_filters('polski_pro/preorder/allow_mixed_cart', bool $allow, int $product_id, array $cart_items): bool;

Приклад - дозвіл на змішування для VIP:

add_filter('polski_pro/preorder/allow_mixed_cart', function (bool $allow, int $product_id, array $cart_items): bool {
if (current_user_can('manage_woocommerce')) {
return true;
}
return $allow;
}, 10, 3);

Відображення зворотного відліку до дати релізу:

[polski_preorder_countdown product_id="123" format="days" label="Do premiery pozostało:"]
ПараметрОбов’язковийОпис
product_idНіID продукту (за замовчуванням поточний)
formatНіФормат: days, full (дні, години, хвилини)
labelНіТекст етикетки перед відліком
/**
* Filtruje tekst przycisku przedsprzedaży.
*
* @param string $text Tekst przycisku
* @param \WC_Product $product Obiekt produktu
*/
apply_filters('polski_pro/preorder/button_text', string $text, \WC_Product $product): string;

Приклад - динамічний текст із ціною:

add_filter('polski_pro/preorder/button_text', function (string $text, \WC_Product $product): string {
return sprintf('Zamów za %s - premiera wkrótce', $product->get_price_html());
}, 10, 2);

Фільтр тексту доступності

Section titled “Фільтр тексту доступності”
/**
* Filtruje tekst dostępności przedsprzedaży.
*
* @param string $text Tekst dostępności
* @param string $release_date Data premiery (Y-m-d)
* @param \WC_Product $product Obiekt produktu
*/
apply_filters('polski_pro/preorder/availability_text', string $text, string $release_date, \WC_Product $product): string;

Сумісність із варіантами

Section titled “Сумісність із варіантами”

Модуль передпродажу працює з варіантними продуктами. Кожний варіант може мати незалежні налаштування pre-order:

  • Варіант A - стандартний (доступний одразу)
  • Варіант B - pre-order (реліз через 2 тижні)

Змішування варіантів pre-order та стандартних у рамках одного продукту дозволено - валідація кошика стосується лише змішування різних продуктів.

Продукт не перемикається автоматично після дати релізу Перевірте, чи WP-Cron працює правильно. Якщо використовується зовнішній CRON, переконайтеся, що wp-cron.php викликається регулярно. Альтернативно запустіть вручну: wp cron event run polski_pro_preorder_check.

Клієнт додав продукти pre-order та звичайні до кошика Перевірте, чи опція “Блокувати змішування кошика” увімкнена. Очистіть кеш, якщо використовуються плагіни кешування фрагментів кошика.

Дата релізу відображається в неправильному форматі Перевірте налаштування “Формат дати” в конфігурації модуля. Формат використовує стандартні плейсхолдери PHP date().

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