Paid Memberships Pro Group Accounts - Плагин WordPress
Paid Memberships Pro Group Accounts - мощный плагин для WordPress, который расширяет функциональность плагина Paid Memberships Pro. С помощью этого плагина владельцы веб-сайтов могут создавать групповые членства и эффективно управлять ими. Он позволяет пользователям создавать и управлять несколькими учетными записями в рамках одного группового членства, что идеально подходит для бизнеса, организаций или любого сайта, предлагающего групповые членства.

Особенности плагина
Paid Memberships Pro Group Accounts предоставляет администраторам простой и интуитивно понятный интерфейс для управления групповыми учетными записями. Администраторы могут легко создавать новые группы и назначать им участников. Они также могут управлять разрешениями и уровнями доступа каждой группы, что позволяет настраивать ограничения и привилегии.
Для участников этот плагин предлагает удобный способ управления их групповыми учетными записями. Они могут легко переключаться между различными учетными записями в рамках своей группы, без необходимости многократного входа и выхода. Это экономит время и обеспечивает беспроблемный опыт для пользователей.
С помощью Paid Memberships Pro Group Accounts владельцы веб-сайтов могут предлагать различные гибкие варианты ценообразования для своих групповых членств. Они могут установить разные уровни членства и планы тарифов для отдельных учетных записей в рамках группы. Это позволяет проводить персонализированную выставку счетов и гарантирует точное списание расходов с каждого участника в соответствии с его конкретным уровнем членства.
Кроме того, этот плагин без проблем интегрируется с другими популярными плагинами, такими как WooCommerce и BuddyPress, дополнительно расширяя его функциональность. Это означает, что владельцы веб-сайтов могут объединить групповые членства с функциями электронной коммерции или функциями социального сообщества, предоставляя полное решение для своих пользователей.
В целом, плагин Paid Memberships Pro Group Accounts является ценным дополнением для любого веб-сайта на WordPress, предлагающего групповые членства. Он упрощает управление групповыми учетными записями, позволяет гибкие варианты ценообразования и без проблем интегрируется с другими плагинами. Используя этот плагин, владельцы веб-сайтов могут улучшить пользовательский опыт для своих участников и эффективно управлять групповыми членствами.
Спецификации:
| Дата выхода: | 06-12-2023 | |
| Дата обновления: | 21-05-2026 | |
| Тип расширения: | Платный | |
| Лицензия: | GPL | |
| Тематика: | Доступ и безопасность для Paid Memberships Pro | |
| Совместимость: | W5.x W6.x | |
| Включает в себя: | Плагин | |
| Языковые пакеты: |
|
|
| Разработчик: | Paid Memberships Pro | |
| Рейтинг: | ||
Скачивание по подписке!
Вам необходимо авторизоваться на сайте и приобрести клубную подписку!
Поделись с друзьями!
Руководство по настройке Paid Memberships Pro Group Accounts для групповых подписок
Paid Memberships Pro Group Accounts нужен не для обычной продажи одного доступа одному человеку, а для сценария, где один владелец оплачивает или управляет набором участников. В этом руководстве разберём, как подготовить уровни подписки, настроить родительский и дочерний доступ, создать страницу управления группой, проверить приглашения, импортировать участников и не потерять контроль над местами, кодами и письмами.
Материал рассчитан на владельца сайта, администратора WordPress или разработчика, который уже понимает базовую логику Paid Memberships Pro, но хочет безопасно включить корпоративные, семейные, учебные или клубные аккаунты. Здесь нет инструкций по покупке продукта или обходу лицензии. Речь только о рабочей настройке уже имеющегося плагина, проверке результата и диагностике типичных проблем.
Главная идея проста: сначала нужно отделить уровень владельца группы от уровня участника группы, затем задать правила мест, цен и кодов, а после этого дать владельцу понятную страницу, где он сможет приглашать, удалять и контролировать людей. Если пропустить любой из этих слоёв, внешне плагин может быть включён, но группа не будет работать так, как ожидают пользователи.
Когда групповые аккаунты действительно нужны сайту
Перед установкой стоит понять, решает ли плагин вашу задачу. Group Accounts полезен, когда членство покупает не каждый участник отдельно, а один ответственный человек: HR-менеджер компании, руководитель учебной группы, глава семейного аккаунта, координатор ассоциации, администратор клуба или представитель организации. В такой модели у владельца есть родительский уровень, а у приглашённых людей - дочерний уровень.
Это отличается от обычного купона, потому что купон чаще меняет цену или даёт скидку на отдельную покупку. Групповой код в этом плагине связывает участника с конкретным владельцем группы и выдаёт ему нужный уровень доступа без отдельной оплаты на дочернем уровне. Поэтому Group Accounts лучше подходит для корпоративных пакетов, учебных лицензий, семейных планов, командных библиотек материалов и закрытых сообществ с ответственным координатором.
Типовые сценарии
Самый понятный сценарий - компания покупает пакет мест для сотрудников. Компания платит за родительский уровень, получает код или прямые ссылки, а сотрудники проходят регистрацию как дочерние участники. Если сотрудник увольняется, владелец группы или администратор удаляет его из группы и освобождает место. Похожая логика работает для онлайн-школы, где факультет или учебный центр оплачивает доступ для преподавателей, студентов или наставников.
Второй сценарий - ассоциация с отделениями. Центральная организация может выступать родителем, а отделения или участники получают доступ через группу. Для сложных отношений "главная организация - отделение - участник" разработчик показывает отдельный пример трёхуровневой структуры, но важно помнить ограничение: каждый уровень напрямую управляет только ближайшим нижним уровнем, а не всей цепочкой сразу.
Третий сценарий - семейный или клубный доступ. Один человек оплачивает членство, а остальные получают индивидуальные учётные записи. Это важно, если на сайте есть личный кабинет, прогресс курса, история заказов, профиль участника или персональные настройки. Нельзя просто раздать один логин всем членам семьи или команды: это ухудшает безопасность, ломает персонализацию и мешает поддержке.
Когда продукт может быть лишним
Если вам достаточно продать обычный доступ одному пользователю, Group Accounts не нужен. Если у вас нет Paid Memberships Pro и вся логика строится на WooCommerce Memberships, проще смотреть на решения внутри WooCommerce. Если нужен полноценный корпоративный портал с отделами, ролями, сложным согласованием и отчётностью по обучению, плагин может закрыть только часть задачи, а остальные процессы придётся проектировать отдельно.
Мини-проверка: если в вашей модели есть один ответственный владелец, ограничение по местам, приглашения и отдельные профили участников, Group Accounts подходит по смыслу. Если нужен только промокод на скидку, начните с обычных discount codes и не усложняйте сайт.
Что проверить перед установкой и включением
Групповые аккаунты затрагивают оплату, регистрацию, письма, страницу личного кабинета и права доступа. Поэтому подготовка здесь важнее, чем у небольшого визуального дополнения. Ошибка в уровнях или странице управления может привести к тому, что люди зарегистрируются бесплатно без группы, владелец не увидит приглашения, а администратор не поймёт, кто к кому привязан.
Базовые зависимости
Сначала убедитесь, что Paid Memberships Pro установлен, активирован и уже настроены основные страницы членства. В документации разработчик указывает, что для Group Accounts нужен установленный и активный Paid Memberships Pro, а сам Add On относится к премиальным дополнениям. Не начинайте с Group Accounts, если ещё не созданы базовые страницы регистрации, аккаунта, подтверждения и уровней.
Проверьте платёжный сценарий родительского уровня. Если владелец группы покупает пакет мест с регулярным списанием, у родительского уровня должна быть корректная схема повторяющихся платежей. В настройках per-seat pricing есть нюанс: если применить стоимость места к регулярному платежу, а у родительского уровня не задана регулярная оплата, плагин может использовать стандартный цикл. Поэтому до теста мест и кодов сначала проверьте базовую модель оплаты родительского уровня.
Уровни и Level Groups
Для Group Accounts требуется минимум два membership level: уровень владельца группы и уровень участника. Дочерний уровень должен быть отдельным уровнем, который получает человек после ввода группового кода или перехода по приглашению. Родительский уровень содержит настройки группы: поддерживаемые дочерние уровни, тип группы, число мест и модель цены.
Если сайт использует новые Level Groups в Paid Memberships Pro, заранее продумайте, могут ли пользователи держать несколько уровней одновременно. Это особенно важно для сложных сайтов, где человек может быть обычным участником, сотрудником компании и покупателем отдельного курса. Неправильно выбранная взаимосвязь уровней может неожиданно заменить доступ или помешать нужной комбинации членств.
Тестовая среда и роли
Проверяйте настройку на копии сайта или хотя бы на тестовых пользователях. Создайте отдельные учётные записи: администратор, владелец группы, дочерний участник и участник без кода. Так вы увидите все три стороны процесса: что задаёт админ, что видит покупатель группы и что происходит с приглашённым человеком.
Особое внимание уделите кешу. Страницы регистрации, аккаунта, оплаты и управления группой не должны обслуживаться как статические страницы для всех пользователей. Если сайт использует плагин кеширования или CDN, исключите критичные страницы PMPro из полного кеша. Это не специфичная настройка Group Accounts, но для групповых приглашений она особенно важна: участник не должен видеть чужой код, устаревшее состояние мест или форму, которая была сгенерирована для другого пользователя.
Установка и первичная проверка в WordPress
Официальный путь установки идёт через админ-панель WordPress: Memberships > Add Ons, поиск нужного Add On, Install Now и активация. Если вы устанавливаете файл вручную, используйте стандартный экран Plugins > Add New > Upload Plugin, затем активируйте плагин через список плагинов. После активации не переходите сразу к приглашениям. Сначала убедитесь, что появились настройки в уровнях и что сайт видит дополнение как часть Paid Memberships Pro.
Первичная проверка состоит из трёх коротких шагов. Откройте Memberships > Settings > Levels и проверьте, что в редактировании уровня появился блок Group Account Settings. Затем откройте настройки страниц PMPro и убедитесь, что можно создать или назначить страницу Manage Group. После этого проверьте, что в админке есть связанный экран управления группами, если используется актуальная версия плагина с отдельной таблицей Memberships > Group Accounts.
Что считать успешным включением
Плагин включён корректно, если администратор может открыть настройки группового уровня, сохранить параметры мест, создать страницу управления группой и пройти тестовый родительский checkout. Владелец группы после оформления должен получить доступ к информации о группе, а дочерний пользователь должен иметь возможность зарегистрироваться по коду или приглашению на соответствующий уровень.
Если один из этих элементов отсутствует, не продолжайте настройку вслепую. Сначала проверьте активность основного Paid Memberships Pro, права администратора, выбранный уровень, назначенные страницы и отсутствие конфликтов в редакторе страниц. Для страницы управления группой разработчик документирует shortcode [pmprogroupacct_manage_group], поэтому ручное создание страницы возможно, но после этого её всё равно нужно назначить в настройках страниц PMPro.
Настройка родительского и дочернего уровней
Это главный раздел настройки. Большинство ошибок с групповыми аккаунтами начинается не на странице управления группой, а в уровнях. Дочерний уровень нужно сделать доступом, который получает приглашённый участник. Родительский уровень нужно сделать продуктом, который покупает владелец группы. Если объединить эти роли в один уровень без понимания последствий, логика мест, цены и кода становится нечитаемой.
Дочерний уровень: доступ без групповых настроек
Создайте или выберите уровень, который будет назначаться участникам группы. В документации разработчик отдельно предупреждает: для child level не нужно задавать Group Account settings. Этот уровень описывает доступ участника, а не правила группы. Если вы также продаёте этот же уровень индивидуально, настройте цену и срок действия как для обычного уровня. Если индивидуальная продажа не нужна, подумайте, нужно ли скрыть этот уровень со страницы уровней, чтобы человек без группового кода не зарегистрировался не тем путём.
Важная ловушка: если у дочернего уровня нет цены и он виден на публичной странице уровней, человек может пройти бесплатную регистрацию вне группы. Для некоторых сайтов это нормально, но для корпоративного пакета это почти всегда ошибка. Безопаснее сделать отдельную страницу тарифов, где родительские и индивидуальные уровни показаны осознанно, а дочерний уровень скрыт от прямого выбора.
Родительский уровень: места, цена и поддерживаемые child levels
Родительский уровень редактируется в Memberships > Settings > Levels. В блоке Group Account Settings выберите уровни, которые будут доступны участникам группы. Затем решите, будет ли группа фиксированной или переменной. Fixed seats подходит для понятных пакетов: например, 10 мест для отдела или 4 места для семьи. Variable seats подходит для сценария, где покупатель сам выбирает число мест в заданном диапазоне.
Дальше настройте pricing model. При варианте None стоимость дочерних мест считается включённой в цену родительского уровня. При варианте Per Seat можно добавить стоимость за место. В документации есть важный нюанс: итоговая сумма не всегда автоматически показывается на checkout до отправки формы, хотя списание рассчитывается при отправке. Поэтому для сайтов с variable seats особенно полезно явно объяснить цену в описании уровня, на странице тарифов и в письме подтверждения.
| Настройка | Когда выбирать | Что проверить после сохранения |
|---|---|---|
Membership Level(s) |
Всегда. Здесь выбирается дочерний уровень или несколько уровней для участников группы. | Дочерний пользователь после кода получает именно этот уровень, а не родительский. |
Fixed Seats |
Для готовых пакетов с заранее известным количеством мест. | После покупки активные и доступные места отображаются в управлении группой. |
Variable Seats |
Для корпоративных клиентов, которым нужно выбрать число мест в диапазоне. | Checkout не принимает число ниже минимума или выше максимума. |
Per Seat |
Если цена зависит от количества мест, а не только от базовой цены уровня. | Тестовый заказ списывает ожидаемую сумму, а описание уровня объясняет расчёт. |
Price Application |
Если per-seat стоимость должна применяться к первому платежу, регулярному платежу или обоим. | Повторяющаяся оплата родительского уровня настроена, если per-seat цена применяется к recurring payment. |
Скидки и групповые места
Разработчик указывает, что discount codes применяются к родительскому уровню, но не к числу мест. Это практичный нюанс для промо-акций. Если вы даёте скидку компании на пакет, скидка должна быть понятна на уровне родительского продукта. Не рассчитывайте, что обычный discount code будет отдельно уменьшать стоимость каждого seat в модели per-seat.
После сохранения уровня сделайте тестовый checkout. Для фиксированного пакета проверьте, что число мест соответствует настройке. Для переменного пакета проверьте минимальное и максимальное значение. Для per-seat цены проверьте итоговую оплату в тестовом режиме платёжного шлюза и текст на странице подтверждения. Такой тест лучше сделать до того, как вы отправите ссылку реальному клиенту.
Страница Manage Group и опыт владельца группы
После настройки уровней нужно дать владельцу группы понятный рабочий экран. Именно на странице Manage Group родитель видит участников, код, ссылки, форму приглашения и действия управления. Если страница не создана или не назначена, владелец оплатит доступ, но не поймёт, как добавить людей.
Создание страницы
Автоматический вариант находится в Memberships > Settings > Pages. В блоке дополнительных страниц нажмите Generate Page для Manage Group. Документация указывает, что страница создаётся дочерней по отношению к странице Membership Account. Это удобно: владелец группы логически попадает в управление группой из личного кабинета.
Ручной вариант тоже допустим. Создайте страницу WordPress, вставьте shortcode [pmprogroupacct_manage_group], затем вернитесь в настройки страниц PMPro и назначьте эту страницу как Manage Group. Не оставляйте страницу просто опубликованной без назначения: shortcode может быть на месте, но PMPro не будет использовать страницу как системную.
Что видит владелец группы
На странице управления владелец может видеть список активных и старых участников, искать людей по имени пользователя или email, удалять участников, смотреть групповой код и ссылки для поддерживаемых уровней, отправлять приглашения по email, создавать аккаунт для нового участника и при необходимости регенерировать group code. Если участников больше десяти, список разбивается на страницы, поэтому проверяйте не только первый экран, но и навигацию по списку.
Особенно важна регенерация кода. Это не декоративная функция, а способ остановить распространение старого кода, если он попал за пределы команды. После смены кода старые приглашения и инструкции нужно обновить. В тексте писем, документации для клиента и внутренней поддержке стоит явно объяснить, что новый код нужно переслать тем, кто ещё не зарегистрировался.
Что происходит с дочерним аккаунтом
Дочерний участник использует групповой код на checkout и получает выбранный дочерний уровень без отдельной оплаты. Если родитель теряет membership, меняет уровень или отменяет доступ, дочерние аккаунты сразу теряют доступ. Документация также отмечает, что ранее связанные дочерние аккаунты не присоединяются автоматически, если родитель вернулся позже. Владелец должен отправить новое приглашение, а участники должны снова присоединиться по актуальной ссылке или коду.
Практический вывод: не обещайте клиентам, что группа "сама восстановится" после отмены и повторного оформления родительского доступа. Для поддержки заранее подготовьте инструкцию: проверить статус родителя, проверить код, отправить новое приглашение, попросить участника пройти checkout заново.
Письма, коды и ссылки приглашения
Групповой сценарий ломается, если владелец не понимает, что отправить участнику. Поэтому после уровней и страницы управления настройте письма. Group Accounts добавляет отдельный шаблон приглашения и переменную для checkout-писем. Это помогает объяснить участнику, почему он получает ссылку, какой доступ ему выдаётся и что делать после регистрации.
Шаблон приглашения
Откройте Memberships > Settings > Email Templates и выберите шаблон Group Accounts - Invite Member. В нём стоит проверить тему письма, отправителя, текст приглашения, наличие прямой ссылки и понятное объяснение, кто пригласил участника. Не перегружайте письмо маркетинговым текстом. Его задача - довести человека до регистрации и снизить количество вопросов в поддержку.
Хороший текст письма отвечает на четыре вопроса: кто приглашает, какой сайт открывает доступ, что нужно нажать, что делать при ошибке. Если у сайта несколько дочерних уровней, добавьте объяснение, какой уровень получит участник. Если приглашения отправляют разные корпоративные клиенты, используйте нейтральные формулировки, которые не привязаны к одной организации.
Переменная для checkout-писем
Для checkout-писем разработчик документирует переменную {{ pmprogroupacct_group_info }}. Она выводит информацию о group code, поддерживаемых child levels и корректных checkout links. Добавляйте её в письма, которые получает родитель после оформления группы, чтобы он не искал код вручную. После изменения шаблона отправьте тестовое письмо, но помните: тестовая отправка не всегда подставляет реальные переменные так же, как живое письмо. Для окончательной проверки нужен тестовый checkout.
Безопасность кода
Group code фактически открывает путь к дочернему уровню. Поэтому код нельзя публиковать в открытой инструкции, на индексируемой странице или в общем чате, где он быстро уйдёт за пределы группы. Если код уже распространился, используйте регенерацию кода на странице управления группой и отправьте новые ссылки только актуальным участникам.
Если вам нужно запретить регистрацию на уровень без group code, у разработчика есть отдельный code recipe на фильтре pmpro_registration_checks. Не добавляйте такой код вслепую. Сначала решите, достаточно ли скрыть дочерний уровень с публичной страницы уровней. Если нужно именно блокировать checkout без кода, используйте официальный рецепт как основу и меняйте только ID уровня и текст ошибки.
Практический пример: корпоративный пакет на 25 мест
Представим сайт с обучающими материалами для специалистов. Компания хочет оплатить доступ для отдела из 25 человек. Нужен один ответственный владелец, отдельные аккаунты сотрудников, возможность отправлять приглашения по email и понятная проверка, что доступ работает.
Цель
Получить родительский уровень "Company Training Pack" и дочерний уровень "Employee Access". Владелец покупает пакет, получает страницу управления группой и приглашает сотрудников. Сотрудники регистрируются по ссылке, не платят на checkout и получают доступ к закрытым материалам.
Подготовка
Перед началом должны быть активны WordPress, Paid Memberships Pro, Group Accounts и настроенные страницы PMPro. Также нужен тестовый платёжный режим или ручной способ проверить заказ. Создайте тестовые аккаунты: администратор, будущий владелец группы и два сотрудника.
Шаги настройки
- Создайте дочерний уровень
Employee Access. Не включайте для него Group Account settings. Если этот уровень не должен продаваться отдельно, скройте его с публичной страницы тарифов через отдельную страницу тарифов или подходящий механизм отображения уровней. - Создайте родительский уровень
Company Training Pack. В блокеGroup Account SettingsвыберитеEmployee Accessкак поддерживаемый дочерний уровень. - Выберите
Fixed Seatsи укажите 25 мест. Если цена пакета уже включает всех сотрудников, оставьте pricing model какNone. Если нужно считать доплату за место, выберитеPer Seatи проверьте расчёт на тестовом checkout. - Создайте или назначьте страницу
Manage Group. Если генерация страницы не сработала, создайте страницу вручную с shortcode[pmprogroupacct_manage_group]и назначьте её в настройках PMPro. - Откройте шаблон
Group Accounts - Invite Memberи напишите короткое приглашение: кто приглашает, зачем нужен аккаунт, что делать после перехода по ссылке. - В checkout-письмо для родителя добавьте
{{ pmprogroupacct_group_info }}, чтобы владелец получил код и ссылки после покупки. - Пройдите checkout родительским тестовым аккаунтом. После подтверждения откройте личный кабинет и перейдите на страницу управления группой.
- Отправьте приглашение тестовому сотруднику, пройдите регистрацию по ссылке и проверьте доступ к закрытому материалу.
Проверка результата
После теста в группе должен появиться дочерний участник. На странице управления должно уменьшиться число доступных мест или увеличиться число активных участников. В админке проверьте таблицу Memberships > Group Accounts, если она доступна, и карточку участника в списке пользователей. В заказах проверьте, что родительский заказ связан с групповой покупкой, а дочерний участник не создаёт отдельную оплату.
Нюанс, который часто мешает
Если сотрудник не получает доступ, сначала проверьте не письмо, а сам checkout: перешёл ли он по актуальной ссылке, введён ли group code, не закончились ли места, не потерял ли родитель доступ. Только после этого смотрите доставку email. Иначе можно долго менять шаблон письма, хотя проблема находится в уровне, коде или статусе родителя.
Админское управление, импорт и перенос групп
После запуска сайта администратор неизбежно столкнётся с задачами поддержки: найти группу, увеличить число мест, заменить владельца, импортировать участников, понять, кто оплатил доступ, и быстро ответить клиенту. В новых версиях Group Accounts добавлена отдельная админ-таблица Memberships > Group Accounts, где видны Group ID, Parent Account, Parent Level, Group Code, seats и status. Это делает поддержку заметно удобнее, чем поиск связей только через пользователей и заказы.
Что проверять в админке
В таблице групп полезно фильтровать группы по родительскому уровню и статусу. Если клиент пишет "участник не может войти", начните с группы: активен ли родитель, есть ли свободные места, какой group code актуален, не была ли группа вручную изменена. Затем проверьте members list: у дочернего участника должен отображаться parent account. В order list можно увидеть, был ли заказ оформлен родителем и какой код использовался при checkout.
Администратор может перейти к конкретной группе через родительский аккаунт и открыть панель Group Accounts на экране редактирования участника. Оттуда доступен переход к управлению группой. Документация уточняет, что администратор может менять число мест, обновлять код, искать участников, удалять или переносить людей, приглашать новых участников, создавать нового пользователя и добавлять существующего пользователя по username.
Почему изменение seats не всегда меняет оплату
Важный операционный нюанс: администратор может изменить число seats внутри группы, но документация отдельно отмечает, что это не обновляет цену подписки пользователя. Поэтому увеличение мест вручную не стоит воспринимать как автоматическое изменение биллинга. Если коммерческая модель требует доплаты, сначала согласуйте процесс с платёжным сценарием PMPro: новый checkout, изменение уровня, ручной заказ или другая подтверждённая процедура.
Перенос группы к новому владельцу
Если руководитель команды меняется, можно перенести участников к новому владельцу. Документация описывает процесс: новый лидер проходит checkout для родительского уровня, администратор фиксирует новый group code, затем у старого лидера открывает Edit Member > Group Accounts > Manage Group, выбирает участников, применяет bulk action Transfer и вводит код новой группы. После этого нужно обновить или удалить membership старого лидера и отменить его подписку, если она больше не нужна.
Перед переносом сделайте список участников и сохраните старый код, если по бизнес-процессу его нужно сохранить. После переноса проверьте доступ минимум двух участников: уже активного и нового, который регистрируется по приглашению. Это защитит от ситуации, где старый лидер потерял роль, а новая группа ещё не принимает участников.
Импорт существующих участников
Для массового переноса разработчик рекомендует использовать Import Members From CSV Add On. В Group Accounts логика импорта двухэтапная: сначала импортируются parent accounts, затем child accounts. Для родительского файла нужна колонка pmprogroupacct_group_total_seats, где указывается число мест. После импорта родителей создаются группы и появляются Group IDs. Для дочернего файла нужна колонка pmprogroupacct_group_id, которая связывает участника с нужной группой.
Не смешивайте родителей и детей в одном неподготовленном CSV. Если дочерний участник импортируется раньше, чем создана группа родителя, связать его будет нечем. Перед импортом проверьте email, username, level ID, group total seats и group ID на нескольких строках. После импорта откройте группу в админке и убедитесь, что число активных участников совпадает с ожиданием.
Безопасные улучшения без правки ядра плагина
Group Accounts уже содержит документированные hooks и filters, но любые доработки должны быть маленькими и обратимыми. Не правьте файлы плагина напрямую: обновление перезапишет изменения, а ошибка в PHP может нарушить checkout. Для WordPress используйте дочернюю тему или Code Snippets, а на рабочем сайте сначала проверяйте код на тестовой копии.
Увеличить число участников на странице управления
По умолчанию документация указывает фильтр pmpro_group_accounts_manage_group_members_per_page, который задаёт количество пользователей в таблице участников на странице Manage Group. Если у корпоративных клиентов обычно много людей, можно увеличить число строк. Это не меняет лимит мест и не добавляет права, а только делает таблицу удобнее.
add_filter( 'pmpro_group_accounts_manage_group_members_per_page', function( $per_page ) {
// Показываем больше участников группы на странице Manage Group.
return 25;
} );
Проверка простая: откройте группу, где больше десяти участников, и убедитесь, что на одной странице видно больше строк. Если страница стала тяжелее или клиентам удобнее постраничная навигация, удалите snippet или верните значение 10.
Скрыть поле group code на checkout только при понятной логике
В документации есть фильтр pmprogroupacct_show_group_code_field, который управляет отображением поля group code на checkout. Но скрывать поле нужно осторожно. Если участники вводят код вручную, скрытие поля сломает регистрацию. Такой фильтр уместен только в сценарии, где все участники идут по прямым invite links и вы не хотите показывать ручной ввод кода.
Если вы используете официальный рецепт, который требует group code для конкретного уровня, не совмещайте его со скрытием поля без теста. Иначе можно создать ситуацию, где код обязателен, но пользователь не видит, куда его вводить. Лучше сначала зафиксировать один способ входа: либо видимое поле кода, либо прямые ссылки приглашения, либо отдельный закрытый checkout.
Текстовые подсказки вместо сложного кода
Часто полезнее не писать PHP, а улучшить описания уровней, письмо приглашения и инструкцию для владельца группы. Добавьте на страницу тарифов короткий блок: сколько мест входит в пакет, кто управляет участниками, как отправляются приглашения, что происходит при отмене родительского доступа. Это снижает нагрузку на поддержку и не создаёт риска при обновлении плагина.
Как проверить результат после настройки
Проверка должна имитировать реальный путь, а не только сохранение настроек. Хороший тест проходит через пять ролей состояния: администратор настроил уровень, родитель купил пакет, дочерний участник получил приглашение, сайт выдал доступ, администратор увидел связь в админке. Если один шаг пропущен, проблема проявится уже у клиента.
Мини-сценарий проверки
- Откройте публичную страницу тарифов в приватном окне и убедитесь, что дочерний уровень не виден как бесплатная регистрация, если он не должен продаваться отдельно.
- Пройдите checkout для родительского уровня. Для variable seats выберите минимальное, максимальное и среднее значение в отдельных тестах.
- Откройте страницу аккаунта владельца и перейдите в
Manage Group. Проверьте код, ссылки, число мест и форму приглашения. - Отправьте приглашение на тестовый email и пройдите регистрацию дочерним пользователем.
- Откройте закрытый материал дочерним пользователем и убедитесь, что доступ есть.
- Удалите дочернего участника из группы и проверьте, что доступ исчез или изменился согласно настройкам PMPro.
- Отмените или измените membership родителя на тестовой копии и проверьте, что дочерние аккаунты теряют доступ.
- Верните родителя и убедитесь, что старые дочерние аккаунты не присоединяются автоматически без нового приглашения.
Проверка писем и логов
Отдельно проверьте письма. Тестовая отправка из Email Templates полезна для внешнего вида, но реальное письмо после checkout лучше проверяет переменные. Если на сайте есть email log, посмотрите живые письма: есть ли group info, корректна ли ссылка, не попал ли текст в спам из-за слишком длинной или подозрительной темы.
Для сайтов с платными родительскими уровнями проверьте заказы и подписки. Убедитесь, что дочерние участники не создают отдельную оплату и не получают доступ через другой тариф. Если используется per-seat price, сравните выбранное число мест с итогом тестового списания и будущей моделью регулярной оплаты.
Ограничения и архитектурные решения, которые лучше принять заранее
Group Accounts гибкий, но не должен превращаться в замену CRM, LMS-отчётности или сложной системы ролей. Чем раньше вы отделите то, что делает плагин, от того, что нужно решать другими инструментами, тем меньше будет ложных ожиданий у клиентов и команды поддержки.
Родитель управляет ближайшим уровнем
В трёхуровневой схеме "grandparent - parent - child" каждый уровень управляет непосредственным нижним уровнем. Grandparent может спонсировать parent accounts, а parent accounts могут спонсировать child accounts, но grandparent не получает прямого управления конечными child accounts. Если вашему заказчику нужен единый главный администратор, который видит всех людей во всех подразделениях, нужно проектировать отдельные отчёты, админские процессы или более специализированную систему.
Group code обнуляет цену дочернего доступа
В документации по трёхуровневой структуре указано, что group codes фактически обнуляют цену для sponsored levels. Это логично для модели, где платит верхний уровень. Но если вы хотите, чтобы каждый нижний уровень частично платил сам, стандартная логика кода может не подойти. В таком случае лучше пересобрать уровни и тарифы, чем пытаться заставить один group code выполнять две противоположные роли.
Админское изменение мест и биллинг
Ручное изменение числа мест в группе не равно автоматическому изменению подписки. Это стоит прописать в регламенте поддержки. Если клиент просит добавить 10 сотрудников, оператор должен понимать, меняется ли оплата, нужен ли новый заказ, достаточно ли вручную увеличить seats или требуется другой уровень. Без такого регламента сайт может технически разрешить больше участников, но коммерческий учёт отстанет.
Редакторы страниц и shortcode
Страница Manage Group строится вокруг shortcode. Если вы используете конструктор страниц, не превращайте системную страницу в сложный макет с вложенными динамическими блоками до базового теста. Сначала проверьте shortcode на простой странице. Если всё работает, аккуратно добавляйте оформление вокруг него. В GitHub issues есть открытые обсуждения, связанные с редактированием Manage Group page в Elementor, поэтому при нестандартном редакторе лучше держать системную страницу максимально простой.
Диагностика частых проблем с групповыми аккаунтами
Ниже собраны проблемы, которые логически вытекают из работы Group Accounts и подтверждаются документацией, changelog или открытыми обсуждениями. Начинайте диагностику с простого: уровень, код, места, статус родителя, назначенная страница, кеш. Только после этого переходите к email, редакторам страниц и кастомному коду.
Дочерний участник может зарегистрироваться бесплатно без группы
Симптом: человек выбирает дочерний уровень на публичной странице уровней и проходит регистрацию без group code. Вероятная причина: child level создан без цены и показан как обычный бесплатный уровень. Документация предупреждает, что при отсутствии pricing or expiration details такой уровень может быть доступен бесплатно.
Что проверить: публичную страницу уровней, отдельную страницу тарифов, настройки отображения child level и наличие group settings на дочернем уровне. Как исправить: скрыть child level из публичного выбора, использовать отдельную страницу тарифов или настроить индивидуальную цену, если уровень действительно должен продаваться отдельно. Когда откатить: если пользователи должны покупать этот уровень индивидуально, не скрывайте его без альтернативной страницы.
Владелец не видит страницу управления группой
Симптом: родительский checkout прошёл, но в аккаунте нет понятного перехода к управлению группой. Вероятная причина: страница Manage Group не создана, не назначена в Memberships > Settings > Pages или shortcode удалён редактором.
Что проверить: назначение страницы в PMPro, наличие shortcode [pmprogroupacct_manage_group], статус публикации страницы и доступность страницы для залогиненного владельца. Как исправить: сгенерировать страницу заново или создать её вручную и назначить в настройках. Когда откатить: если сложный макет конструктора ломает shortcode, временно верните простую страницу и проверьте работу без оформления.
Group code не принимает участника
Симптом: участник вводит код, но checkout не даёт нужный доступ. Вероятная причина: код устарел после регенерации, выбран неверный дочерний уровень, закончились места, родитель потерял membership или участник идёт не по той ссылке.
Что проверить: актуальный group code на странице управления, список supported child levels, seats active/total, статус родительского аккаунта и ссылку в письме. Как исправить: отправить актуальную ссылку, увеличить seats при необходимости, восстановить статус родителя или пересоздать приглашение. Когда откатить: если код был регенерирован из-за злоупотребления, не возвращайте старый код без причины.
Цена за места не выглядит ожидаемой на checkout
Симптом: покупатель выбирает число мест, но до отправки формы не видит понятный итог или считает сумму неверной. Вероятная причина: в документации отмечена известная особенность: total amount due не всегда автоматически отображается на checkout до отправки формы, хотя сумма рассчитывается при отправке.
Что проверить: модель pricing, Cost Per Seat, Price Application, регулярную оплату родительского уровня и итог тестового заказа. Как исправить: добавить ясное описание расчёта на странице уровня и в письме, протестировать списание, не обещать динамический пересчёт в интерфейсе, если он не отображается. Когда откатить: если покупатели путаются, временно используйте fixed seats с заранее понятной ценой пакета.
После отмены родителя участники потеряли доступ
Симптом: сотрудники или члены семьи больше не видят закрытый контент. Вероятная причина: родительский аккаунт потерял membership, изменил уровень или отменил доступ. Документация указывает, что child accounts теряют доступ сразу, а после повторного присоединения родителя не восстанавливаются автоматически.
Что проверить: статус родителя, уровень родителя, историю заказов и активность group code. Как исправить: восстановить родительский доступ, отправить новое приглашение и попросить участников пройти присоединение заново. Когда откатить: не пытайтесь вручную раздавать дочерний уровень всем пользователям, если бизнес-логика требует связи с родителем.
Импорт не связал детей с родителями
Симптом: пользователи импортированы, но не отображаются в нужных группах. Вероятная причина: child CSV импортирован до parent CSV, не указан pmprogroupacct_group_id, неправильно найден Group ID или родительские группы не были созданы.
Что проверить: порядок импорта, колонку pmprogroupacct_group_total_seats в parent file, Group IDs после импорта родителей и колонку pmprogroupacct_group_id в child file. Как исправить: повторить импорт на тестовой копии с двумя файлами и несколькими строками, затем перенести проверенную схему на рабочий сайт. Когда откатить: если импорт создал неправильные связи, остановитесь и восстановите данные из резервной копии или исправляйте связи точечно после консультации с документацией.
Вопросы, которые стоит решить до запуска групповых подписок
Можно ли использовать один дочерний уровень для индивидуальной продажи и для группы?
Да, документация допускает использование существующего membership level как child level. Но тогда нужно продумать публичную страницу тарифов, цену и путь регистрации. Если уровень бесплатный и видимый, человек может зарегистрироваться без группы. Если уровень продаётся отдельно, это нормально, но объясните разницу между индивидуальной покупкой и доступом по group code.
Что лучше выбрать: fixed seats или variable seats?
Fixed Seats проще для поддержки и продаж: пакет заранее понятен. Variable Seats полезен корпоративным клиентам, которые сами выбирают размер команды в заданном диапазоне. Для первого запуска чаще безопаснее начать с фиксированных пакетов, а переменные места добавить после тестов checkout, писем и биллинга.
Можно ли менять количество мест после покупки?
Администратор может управлять seats внутри группы, но документация отдельно предупреждает, что изменение числа seats в управлении группой не обновляет subscription price. Поэтому техническое увеличение мест и коммерческое изменение оплаты нужно согласовать отдельным процессом.
Что будет с участниками, если родительский аккаунт истёк или отменён?
Дочерние аккаунты теряют доступ сразу. Если родитель позже вернётся, прежние дочерние аккаунты не присоединяются автоматически. Владелец должен отправить новое приглашение или актуальный код, а участники должны снова пройти присоединение.
Нужно ли добавлять кодовые snippets для нормальной работы?
Нет. Базовая настройка работает через уровни, страницу Manage Group, письма и админку. Snippets нужны только для узких задач: например, изменить число строк в таблице участников или требовать group code для конкретного уровня по официальному рецепту. Если нет подтверждённого hook или понятной причины, код лучше не добавлять.
Почему приглашение по email не гарантирует регистрацию?
Email только доставляет ссылку или код. Регистрация зависит от статуса родителя, свободных мест, корректного дочернего уровня, актуального group code, исключений кеша и работы checkout. Поэтому при жалобе сначала проверяйте группу и checkout, а потом доставку письма.
Подходит ли Group Accounts для сложной иерархии организаций?
Для трёх уровней есть официальный tutorial, но с ограничениями. Каждый уровень управляет ближайшим нижним уровнем. Если нужен единый главный администратор с видимостью всех конечных участников, стандартная модель может быть недостаточной без дополнительной отчётности или кастомной разработки.
Когда Paid Memberships Pro Group Accounts будет удачным выбором
Paid Memberships Pro Group Accounts стоит использовать, когда сайт уже работает на PMPro и вам нужна настоящая групповая модель: один владелец, ограничение мест, дочерние аккаунты, приглашения, group code, админская таблица и понятная связь между оплатой родителя и доступом участников. Сильнее всего продукт раскрывается в корпоративном обучении, ассоциациях, учебных проектах, семейных подписках и командах, где важно сохранить индивидуальные аккаунты для каждого участника.
Перед запуском проверьте не только наличие плагина, но и архитектуру уровней, страницу Manage Group, письма, кеширование, тестовый checkout, поведение при отмене родителя и импорт, если переносите существующих пользователей. Если эти элементы собраны аккуратно, групповые аккаунты становятся не просто дополнительной функцией, а управляемым продуктовым предложением для организаций и команд.
Если после чтения руководства модель подходит вашему сайту, можно перейти к блоку загрузки и скачать ZIP-архив, затем протестировать его на копии сайта по чек-листу выше. Такой порядок безопаснее, чем сразу включать групповые уровни на рабочей странице тарифов.
Если же вам нужен только индивидуальный доступ, сложная LMS-иерархия, магазинная логика WooCommerce или корпоративный портал с отчётностью по подразделениям, сначала сравните архитектуру. Хороший выбор здесь определяется не количеством функций, а тем, насколько естественно продукт ложится на ваш способ продавать, приглашать и сопровождать участников.


