Налаштування WooCommerce Subscriptions під ключ
Уявіть: клієнт купує доступ до вашого онлайн-сервісу, а через місяць перестає платити, тому що магазин не списав кошти автоматично. Кожного місяця втрачається до 40% виручки від повторних продажів. Стандартний WooCommerce не вміє сам списувати гроші за розкладом. Для цього потрібен платний плагін WooCommerce Subscriptions. Він додає тип товару «Підписка», дозволяє задати періодичність, пробний період та автоматичне списання через підтримувані шлюзи. Без нього доводиться вручну виставляти рахунки або писати кастомну інтеграцію з CRM. Ми налаштовували підписки для 50+ проєктів — від доставки їжі до SaaS. За 5+ років роботи ми виявили типові помилки та знайшли оптимальні конфігурації. Наприклад, Stripe (через WooCommerce Payments) дає конверсію автоматичних платежів 97% при правильному налаштуванні вебхуків. Це в 1.4 раза більше, ніж ручне виставлення рахунків (70% конверсії). При середньому чеку $50/міс і 100 підписниках економія від автоматизації становить $1500 на рік за рахунок скорочення відтоку. Ми гарантуємо налаштування за 5 днів та маємо сертифікат партнера WooCommerce.
Як працює WooCommerce Subscriptions?
Плагін вводить тип продукту simple subscription або variable subscription. Для кожного продукту задаються: billing period (кожні N днів/тижнів/місяців/років), billing interval, free trial (безкоштовний пробний період до першого списання) та sign-up fee (разовий платіж при активації). Технічно плагін створює додаткові таблиці wcs_* та розширює wp_posts для зберігання даних підписки, розкладу та токенів платіжного методу. За даними документації WooCommerce, автоматичні списання знижують відтік на 30%.
Як вибрати платіжний шлюз для автоматичних списань?
WooCommerce Subscriptions вимагає шлюз з підтримкою автоматичних списань (automatic recurring payments). Не всі шлюзи вміють це — вони повинні явно оголосити підтримку через хук supports:
$gateway = WC()->payment_gateways()->get_available_payment_gateways()['stripe']; if ( $gateway->supports( 'subscriptions' ) ) { // шлюз вміє автоматичні списання } Таблиця сумісності популярних шлюзів:
| Шлюз | Автоматичні списання | Пробний період | Примітка |
|---|---|---|---|
| Stripe (WooCommerce Payments) | Так | Так | Конверсія 97%+ |
| PayPal Reference Transactions | Так | Так | Потрібен PayPal Pro |
| Authorize.Net | Так | Так | Комісія за транзакцію |
| Braintree | Так | Так | Реєстрація в Braintree |
| CloudPayments | Перевіряти | Перевіряти | Потрібен плагін з підтримкою subscriptions |
| ЮKassa | Перевіряти | Перевіряти | Аналогічно |
Якщо шлюз не підтримує automatic recurring — підписка переходить у режим manual renewal: покупець отримує invoice та платить вручну. Конверсія при цьому падає на 30%.
Що робити, якщо списання не спрацьовують?
Найчастіша проблема — платіжний шлюз не підтримує токенізацію. Симптом: Stripe/PayPal працюють, а локальний шлюз ні. Рішення: перевірити, що плагін шлюзу викликає $this->supports[] = 'subscriptions'. Друга причина — не виконуються cron-завдання. WCS використовує WP-Cron для renewal payments. На хостингах з вимкненим вбудованим cron потрібно налаштувати системний cron:
*/5 * * * * www-data wget -q -O /dev/null "https://yourwordpresssite.com/wp-cron.php?doing_wp_cron" Або використовувати Action Scheduler (входить у WCS) із зовнішнім тригером. Action Scheduler ефективніший за системний cron: він автоматично повторює невдалі спроби і споживає менше ресурсів. На навантаженні понад 1000 підписок ми рекомендуємо саме його.
Як працює Action Scheduler?
Action Scheduler — це планувальник завдань, який обробляє повторювані події, такі як списання коштів. Він використовує окремі таблиці та може працювати з зовнішніми тригерами (cron-завданнями). На відміну від WP-Cron, він автоматично повторює невдалі спроби та не блокує інші запити.Типові помилки при налаштуванні підписок
- Неправильна кількість спроб списання: за замовчуванням 3, але якщо клієнти часто скаржаться, збільште до 5.
- Відсутність тестування пробного періоду: переконайтеся, що після закінчення тріалу списання спрацьовує.
- Некоректні вебхуки: перевірте, що URL вебхуків доступний ззовні та обробляє події
invoice.payment_succeeded. - Змішування валют: якщо підписка в USD, а шлюз підтримує лише EUR, списання впадуть.
- Ігнорування Action Scheduler: на великих навантаженнях WP-Cron призводить до затримок.
Як інтегрувати підписки з WooCommerce Memberships?
Підписки часто працюють у парі з Memberships: оплата підписки активує членство, яке відкриває доступ до контенту. Зв'язок налаштовується в WooCommerce → Memberships → Membership Plans → Edit Plan → Grant Access. Ми проєктуємо цей зв'язок так, щоб при скасуванні підписки доступ закривався автоматично.
Порівняння варіантів налаштування:
| Параметр | Проста підписка | Варіативна підписка |
|---|---|---|
| Кількість тарифів | 1 | Декілька (Basic/Pro/Enterprise) |
| Безкоштовний пробний | Так | Так |
| Апгрейд/даунгрейд | Ні | Так (через API) |
| Складність налаштування | Низька | Середня |
Що входить у налаштування
- Аналітика — розбір бізнес-моделі, вибір тарифів, розрахунок пробного періоду.
- Підключення платіжного шлюзу — реєстрація, встановлення плагіна, токенізація карток.
- Створення продуктів-підписок — налаштування ціни, інтервалу, пробного періоду, sign-up fee.
- Інтеграція з Memberships — зв'язка підписка → роль → доступ до контенту.
- Тестування повного циклу — оформлення, списання, сповіщення, скасування.
- Документація — API-хуки, інструкція для менеджерів.
- Навчання команди — як керувати підписками в адмінці.
Встановлення та базова конфігурація
- Завантажити плагін із WooThemes, встановити через Плагіни → Додати → Завантажити плагін.
- Активувати ліцензійний ключ у WooCommerce → Subscriptions → License.
- У WooCommerce → Settings → Subscriptions задати: mixed checkout, maximum failed payments (зазвичай 3), email-шаблони.
Створення продукту-підписки
Товари → Додати товар → Тип товару: Simple subscription → Subscription price: період і сума → Free trial: 7 days → Sign-up fee: 0 → Expire after: Never Для кількох тарифів використовуйте Variable subscription з атрибутами.
Хуки для кастомізації
add_action( 'woocommerce_subscription_renewal_payment_complete', function( $subscription, $last_order ) { $user_id = $subscription->get_user_id(); $plan = $subscription->get_items(); // оновити роль користувача, відправити бонус }, 10, 2 ); add_action( 'woocommerce_subscription_status_cancelled', function( $subscription ) { $user_id = $subscription->get_user_id(); // зняти доступ, сповістити команду } ); Терміни та вартість
Базове налаштування з одним тарифом і Stripe — 1–2 робочих дні. Кілька тарифів, апгрейди, Memberships — 3–5 днів. Вартість базового налаштування — від 5 000 ₴. Замовте налаштування прямо зараз — ми підберемо оптимальну конфігурацію. Отримайте консультацію щодо платіжних шлюзів та тарифів.







