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

Підписки

Модуль підписок додає продукти з періодичною оплатою. Клієнти купують підписки з ручним поновленням, адміністратор керує ними у WooCommerce.

  1. Адміністратор створює продукт типу “Підписка” з циклом та ціною
  2. Клієнт купує підписку та оплачує перше замовлення
  3. Плагін створює підписку зі статусом “Активна”
  4. Перед датою поновлення клієнт отримує нагадування електронною поштою
  5. У день поновлення плагін створює замовлення поновлення
  6. Клієнт оплачує замовлення поновлення (ручне поновлення)
  7. Цикл повторюється до скасування підписки

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

Модуль контролюється опцією:

polski_subscriptions
ПараметрОпис
Увімкнути підпискиАктивує модуль
Режим поновленняРучне (клієнт оплачує замовлення)
Дні нагадуванняЗа скільки днів до поновлення надіслати нагадування (за замовчуванням 3)
Період відстрочкиСкільки днів після терміну поновлення підписка залишається активною (за замовчуванням 7)
Автоматичне призупиненняПризупиняти підписку після закінчення періоду відстрочки

Створення продукту підписки

Section titled “Створення продукту підписки”
  1. Перейдіть до Продукти > Додати новий
  2. Виберіть тип продукту: Підписка
  3. Налаштуйте ціну та цикл:
ПолеОпис
Ціна підпискиСума за розрахунковий період
Розрахунковий періодДень / Тиждень / Місяць / Рік
Тривалість періодуКількість періодів (наприклад, 1 місяць, 3 місяці)
Початкова цінаНеобов’язково - інша ціна за перший період
Плата за активаціюНеобов’язково - одноразова плата при першому замовленні
Ліміт поновлень0 = без ліміту, або кількість поновлень
  1. Опублікуйте продукт

Початкова ціна та ціна поновлення

Section titled “Початкова ціна та ціна поновлення”

Плагін підтримує сценарії, коли ціна за перший період відрізняється від ціни за наступні періоди. Типові застосування:

  • пробний період безкоштовно або за зниженою ціною
  • акційна ціна на старт
  • плата за активацію + нижча періодична ціна

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

Життєвий цикл підписки

Section titled “Життєвий цикл підписки”
Pending → Active → On Hold → Active → ...
→ Expired
→ Cancelled
СтатусОпис
PendingОчікує на оплату першого замовлення
ActiveАктивна - клієнт має доступ до продукту
On HoldПризупинена - замовлення поновлення очікує на оплату
ExpiredЗакінчилася - кількість поновлень досягла ліміту або минув період відстрочки
CancelledСкасована клієнтом або адміністратором

У поточній версії плагін підтримує ручні поновлення. Це означає, що:

  1. Плагін створює замовлення поновлення зі статусом “Очікує на оплату”
  2. Клієнт отримує електронний лист із посиланням для оплати замовлення
  3. Клієнт оплачує замовлення обраним способом оплати
  4. Після оплати підписка поновлюється на наступний період

Плагін перевіряє підписки для поновлення щодня за допомогою крону WP:

polski_daily_maintenance

Завдання крону запускається раз на день та виконує:

  • перевірку підписок, дата поновлення яких припадає на сьогодні або раніше
  • створення замовлень поновлення для підписок, що потребують поновлення
  • призупинення підписок, що перевищили період відстрочки
  • завершення підписок, що досягли ліміту поновлень

Нагадування електронною поштою

Section titled “Нагадування електронною поштою”

Плагін надсилає нагадування електронною поштою перед датою поновлення:

ЛистКолиЗміст
Нагадування про поновленняX днів перед поновленнямІнформація про наближене поновлення, сума, посилання на панель
Замовлення поновленняУ день поновленняЗамовлення до оплати з посиланням на оплату
Підписка призупиненаПісля закінчення терміну оплатиІнформація про призупинення, посилання для оплати
Підписка закінчиласяПісля закінчення періоду відстрочкиІнформація про закінчення, посилання для повторної покупки

Шаблони листів можна налаштувати в WooCommerce > Налаштування > Електронні листи.

Панель Мій обліковий запис

Section titled “Панель Мій обліковий запис”

Модуль додає ендпоінт /polski-subscriptions до панелі Мій обліковий запис клієнта. Ендпоінт доступний за адресою:

/moje-konto/polski-subscriptions/

Клієнт бачить таблицю з підписками:

СтовпецьОпис
ПродуктНазва продукту підписки
СтатусПоточний статус підписки
ЦінаСума за період
Наступне поновленняДата наступного поновлення
ДіїСкасувати / Оплатити поновлення

Після натискання на підписку клієнт бачить:

  • повні дані підписки (продукт, ціна, цикл, дати)
  • історію поновлень (список пов’язаних замовлень)
  • кнопку скасування підписки
  • кнопку оплати очікуваного поновлення (якщо застосовується)

Клієнт може скасувати активну підписку з панелі Мій обліковий запис. Скасування:

  • змінює статус підписки на “Cancelled”
  • підписка залишається активною до кінця поточного оплаченого періоду
  • клієнт інформується про дату закінчення доступу

Дія, що викликається після зміни статусу підписки.

/**
* @param int $subscription_id ID subskrypcji
* @param string $new_status Nowy status
* @param string $old_status Poprzedni status
*/
do_action('polski_pro/subscription/status_changed', int $subscription_id, string $new_status, string $old_status);

Приклад:

add_action('polski_pro/subscription/status_changed', function (int $subscription_id, string $new_status, string $old_status): void {
if ($new_status === 'cancelled') {
$subscription = polski_pro_get_subscription($subscription_id);
// Wysłanie ankiety o powód rezygnacji
wp_mail(
$subscription->get_customer_email(),
'Szkoda, że odchodzisz',
'Powiedz nam, dlaczego anulujesz subskrypcję: https://example.com/ankieta'
);
}
}, 10, 3);

Дія, що викликається після створення замовлення поновлення.

/**
* @param int $order_id ID zamówienia odnowienia
* @param int $subscription_id ID subskrypcji
*/
do_action('polski_pro/subscription/renewal_created', int $order_id, int $subscription_id);

Приклад:

add_action('polski_pro/subscription/renewal_created', function (int $order_id, int $subscription_id): void {
$order = wc_get_order($order_id);
$order->add_order_note(
sprintf('Zamówienie odnowienia dla subskrypcji #%d', $subscription_id)
);
}, 10, 2);

Дія, що викликається після оплати замовлення поновлення.

/**
* @param int $order_id ID zamówienia odnowienia
* @param int $subscription_id ID subskrypcji
*/
do_action('polski_pro/subscription/renewal_paid', int $order_id, int $subscription_id);

Адміністративна панель

Section titled “Адміністративна панель”

Перейдіть до WooCommerce > Підписки. Таблиця містить:

  • ID підписки
  • клієнт (ім’я, прізвище, електронна пошта)
  • продукт
  • статус
  • ціна та цикл
  • дата наступного поновлення
  • дата створення

Доступні фільтри: статус, продукт, дата створення.

Адміністратор може:

  • змінити статус підписки
  • змінити дату наступного поновлення
  • змінити ціну (впливає на наступні поновлення)
  • додати нотатку
  • переглянути історію статусів та пов’язані замовлення

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

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

Замовлення поновлення не створюються

Section titled “Замовлення поновлення не створюються”
  1. Перевірте, чи WP-Cron працює правильно (wp_cron викликається)
  2. Перейдіть до Інструменти > Scheduled Actions та перевірте, чи завдання polski_daily_maintenance заплановане
  3. Перевірте, чи підписка має статус “Active” та правильну дату поновлення

Клієнт не отримує нагадування

Section titled “Клієнт не отримує нагадування”
  1. Перевірте конфігурацію електронних листів WooCommerce
  2. Перевірте, чи шаблон листа нагадування увімкнений
  3. Перевірте налаштування “Дні нагадування” - чи значення більше за 0

Підписка не змінює статус після оплати

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