Налаштування WooCommerce Memberships
WooCommerce Memberships — плагін для створення платних або безплатних закритих розділів сайту. Він не обробляє платежі безпосередньо — він керує доступом. Оплата проходить через WooCommerce (звичайні товари) або WooCommerce Subscriptions (регулярні платежі).
Архітектура плагіна
Три ключові об'єкти:
- Membership Plan — тариф з правилами доступу: який контент, які знижки, які можливості
- User Membership — конкретний екземпляр членства для користувача: план, дата початку, дата завершення, статус
- Membership Content Rules — правила типу «приховати/обмежити доступ до посту/категорії/типу контенту для всіх, крім членів плану X»
Дані зберігаються в wp_posts (тип wc_user_membership) та wp_postmeta.
Створення плану членства
WooCommerce → Memberships → Membership Plans → Add New
→ Назва: «Pro Member»
→ Access Length: Unlimited / Fixed (X днів) / Subscription-tied
Після створення плану є три вкладки налаштувань:
Restriction Rules — що приховати для не-членів:
- Окремі пости/сторінки/користувацькі типи
- Весь тип записів
- Таксономія (категорія, тег, користувацька)
- Контент всередині посту через шорткод
[wcm_nonmember_content]
Purchasing Discounts — знижки для членів у магазині:
- Відсоток або фіксована сума для конкретних товарів / категорій
- Застосовується автоматично при додаванні до кошика
Members Area — що показувати в особистому кабінеті члена (розділи: My Membership, My Profile, Members Discounts тощо)
Посилання на товар WooCommerce
Членство надається при покупці конкретного товару. Посилання встановлюється на сторінці товару, вкладка Linked Memberships:
Товар «Річний доступ Pro» → Linked Membership Plan: Pro Member
Grant access: upon purchase / upon order completion
Один товар може надавати кілька планів. Один план може бути пов'язаний з кількома товарами з різними цінами.
Інтеграція з WooCommerce Subscriptions
Якщо членство пов'язано з підпискою, воно автоматично призупиняється при паузі/скасуванні підписки і відновлюється при успішному продленню. Це налаштовується через Tied to a Subscription у налаштуваннях плану.
Обмеження контенту через PHP
// Перевірити, чи є поточний користувач активним членом плану
if ( wc_memberships_is_user_active_member( get_current_user_id(), 'pro-member' ) ) {
// показати обмежений контент
}
// Отримати всі активні членства користувача
$memberships = wc_memberships_get_user_active_memberships( $user_id );
foreach ( $memberships as $membership ) {
echo $membership->get_plan()->get_name();
echo $membership->get_end_date();
}
Крапельний контент (відтермінований доступ)
Memberships підтримує «крапельний» доступ — контент відкривається через N днів після активації членства:
Content Rule → Delay access: 7 днів після початку членства
Використовується для онлайн-курсів: урок 1 одразу, урок 2 через 7 днів, урок 3 через 14 днів.
Масовий імпорт членів через CSV
При міграції з іншої системи або масовому наданню доступу:
WooCommerce → Memberships → Members → Import
CSV формат: user_email, plan_slug, start_date, end_date
Або через WP-CLI:
wp wc memberships member create \
--user_id=42 \
--plan_id=15 \
--status=active
Користувацькі статуси та хуки
// Дія при активації нового членства
add_action( 'wc_memberships_user_membership_status_changed', function( $user_membership, $old_status, $new_status ) {
if ( 'active' === $new_status ) {
// відправити привітальний лист, створити запис у CRM
send_crm_event( $user_membership->get_user_id(), 'membership_activated' );
}
}, 10, 3 );
Контрольний список ручної перевірки
Кешування — злісний ворог Memberships. Якщо на сайті встановлено WP Super Cache, W3 Total Cache або Varnish — обмежений контент може кешуватися і показуватися неавторизованим користувачам. Рішення: либо виключити сторінки з защищеним контентом з кешу, либо перейти на фрагментне кешування і не кешувати для авторизованих користувачів.
Конфлікти з SEO-плагінами: Yoast та RankMath іноді індексують метадані обмежених сторінок. Встановлення noindex для сторінок з обмеженим доступом — окремий крок.
Тимчасові рамки
Один план з базовими правилами обмеження та посиланням на товар — 1–2 робочі дні. Кілька планів з різними рівнями доступу, крапельний контент, інтеграція з Subscriptions, імпорт існуючих членств — 3–5 днів.







