Жестко установленные даты истечения срока действия позволяют назначать уровням членства определенную дату истечения срока действия. Срок действия всех участников этого уровня членства истекает в указанную конкретную дату, независимо от того, когда была зарегистрирована их учетная запись.

Версия плагина: 1.1.4
 
WordPress плагин Restrict Content Pro Hard-set Expiration Dates

Особенности плагина

Например, если для уровня членства назначена дата истечения срока действия 1 июня, срок действия всех учетных записей, зарегистрированных для этого уровня членства, истекает 1 июня, независимо от того, когда была создана учетная запись.

Спецификации:

Дата выхода: 11-10-2019
Дата обновления: 02-09-2020
Тип расширения: Платный
Лицензия: GPL
Тематика: Доступ и безопасность для Restrict Content Pro
Совместимость: W5.x
Включает в себя: Плагин
Языковые пакеты: Английский
Разработчик: Restrict Content Pro

Рейтинг:
4.5095057034221 1 1 1 1 1 (Оценок: 263)
4.5095057034221 263

Скачивание по подписке!

Вам необходимо авторизоваться на сайте и приобрести клубную подписку!

Поделись с друзьями!

 

Руководство по настройке Restrict Content Pro Hard-set Expiration Dates для фиксированных сроков членства

Restrict Content Pro Hard-set Expiration Dates нужен не для обычной подписки, которая длится одинаковое количество дней от момента оплаты, а для другой задачи: сделать так, чтобы все участники выбранного уровня членства потеряли доступ в один заранее заданный день. В этом руководстве разберём, когда такая логика полезна, как подготовить WordPress-сайт, где искать поле фиксированной даты, как проверить результат и какие ошибки чаще всего возникают вокруг статусов, писем и платёжных шлюзов.

Обложка руководства Restrict Content Pro Hard-set Expiration Dates для WordPress
Обложка показывает главный принцип add-on: уровень членства, единая дата окончания и проверка доступа на сайте.

Материал рассчитан на владельца сайта, администратора членского клуба, автора курса или специалиста поддержки, которому нужно не просто активировать плагин, а безопасно встроить фиксированную дату в уже существующую систему Restrict Content Pro. Мы отдельно проговорим, почему такой режим нельзя механически включать на каждом платном уровне, как он отличается от поля Duration, что делать с автообновлением и почему после наступления даты не стоит обещать пользователю обычное продление того же уровня.

Официальная документация подтверждает ключевую механику: add-on добавляет возможность назначить Expiration Date на уровне подписки или уровня членства, и все аккаунты этого уровня истекают в эту дату независимо от того, когда пользователь зарегистрировался. В новых интерфейсах Restrict Content Pro часть документации использует термин Membership Levels, а старые материалы и сам add-on могут говорить Subscription Levels. В руководстве эти названия рассматриваются как один рабочий участок админ-панели.

Главная проверка перед внедрением: если вам нужна подписка на фиксированный срок от даты оплаты, не начинайте с Hard-set Expiration Dates. Сначала убедитесь, что обычное поле длительности уровня не закрывает задачу проще и безопаснее.

Какой сценарий решает фиксированная дата окончания

Обычная логика членского сайта проста: человек оплатил или получил доступ, система прибавила к дате регистрации заданную длительность, а затем либо продлила доступ, либо перевела членство в другой статус. Restrict Content Pro Hard-set Expiration Dates меняет именно эту точку. Он ставит не относительный срок, а общий дедлайн уровня. Поэтому пользователь, который присоединился в начале периода, и пользователь, который пришёл ближе к концу, получают разную фактическую длину доступа, но одинаковую дату завершения.

Такой подход полезен там, где ценность доступа привязана не к индивидуальному дню покупки, а к общему расписанию. Например, группа проходит курс одним потоком, клубный сезон закрывается в один день, материалы конференции доступны до конца кампании, внутренний портал открывается на срок действия контракта, а ассоциация ведёт членство по календарному периоду. В этих случаях единая дата делает управление понятнее: администратор не отслеживает сотни отдельных окончаний и не объясняет каждому участнику, почему его доступ живёт дольше или короче соседнего.

Но у этой простоты есть цена. Если посетитель регистрируется поздно, он получает меньше времени, и это должно быть ясно в тексте уровня, на странице регистрации и в письмах. Если вы продаёте регулярную подписку, где каждый платит за полный месяц или год с момента оплаты, фиксированный дедлайн может создать конфликт ожиданий. Пользователь будет считать, что купил полный период, а система закроет доступ в общий день.

Где фиксированная дата оправдана

Режим хорошо подходит для проектов, где администратор заранее знает общий конец доступа. Чаще всего это не массовый магазин подписок, а ограниченный по времени набор участников. Для таких сайтов важно, чтобы доступ закрывался синхронно и не требовал ручной чистки уровней.

  • Потоковый курс, где уроки, задания и обратная связь привязаны к общей программе.
  • Сезонный клуб, в котором все участники получают доступ до завершения сезона.
  • Корпоративный портал с договором, где срок доступа одинаков для группы сотрудников.
  • Мероприятие, марафон или закрытый архив, который открывается на общий период.
  • Ассоциация или сообщество, где членство привязано к внутреннему отчётному циклу.

В этих сценариях фиксированный срок работает как административное правило, а не как маркетинговый трюк. Пользователь должен заранее понимать, что покупает доступ до общей даты, а не индивидуальную подписку на полный период.

Когда лучше оставить обычную длительность

Если основной сценарий сайта - непрерывные подписки, личные кабинеты, платный архив, ежемесячные материалы или SaaS-подобный доступ, начните с базовых возможностей Restrict Content Pro. Уровень членства уже умеет иметь свою цену, длительность, роль, статус и правила доступа. Поле Duration задаёт период от даты регистрации или продления, а это обычно честнее для пользователя и проще для платёжного шлюза.

Фиксированная дата не делает членство “лучше” или “строже” сама по себе. Она просто меняет календарную модель. Если модель не совпадает с обещанием на странице регистрации, вы получите обращения в поддержку, ручные продления и спорные платежи.

Что проверить перед установкой add-on

Перед установкой полезно сделать короткий аудит существующей системы членства. Restrict Content Pro Hard-set Expiration Dates влияет на дату окончания доступа, а значит, пересекается с уровнями членства, регистрационной формой, письмами, статусами, кешем и платёжными интеграциями. Чем больше на сайте автоматизации, тем осторожнее нужно включать общий дедлайн.

Базовая совместимость и состояние Restrict Content Pro

Сначала проверьте, что основной Restrict Content Pro или его текущая линейка Kadence Memberships корректно работает без add-on. У вас должны открываться страницы регистрации, аккаунта и редактирования профиля, а в админ-панели должны быть видны уровни членства. Если базовый плагин уже имеет проблемы с регистрацией, статусами или письмами, фиксированная дата не исправит их, а только добавит ещё один фактор.

Перед изменениями на рабочем сайте сделайте резервную копию базы данных и файлов. Это особенно важно, если на сайте уже есть активные участники. Настройка даты на уровне членства выглядит простой, но последствия затрагивают доступ реальных пользователей. На тестовой копии проверьте хотя бы один полный путь: регистрация, назначение уровня, отображение даты, доступ к закрытому материалу, письмо о статусе и поведение после ручного изменения даты.

Карта уровней членства

Составьте список уровней и отметьте, какие из них должны жить по общему дедлайну. Не включайте фиксированную дату на всех уровнях “на всякий случай”. Разделите уровни на три группы:

  • Уровни с общим периодом доступа, где Hard-set Expiration Dates действительно нужен.
  • Уровни с обычной длительностью, где доступ должен отсчитываться от даты регистрации.
  • Старые или закрытые уровни, которые лучше перевести в Inactive, но не удалять, если на них есть участники.

Такой список поможет избежать ошибки, когда администратор ставит общий дедлайн на уровень с активными автообновлениями, а потом не понимает, почему пользователи истекли одновременно.

Какие данные собрать перед изменением уровня

Для рабочего сайта полезно подготовить небольшую таблицу до установки add-on. В ней достаточно пяти колонок: название уровня, текущая длительность, число активных участников, наличие автообновления и текущая логика доступа к закрытым материалам. Если у вас есть ручные участники, добавьте отдельную пометку. Именно ручные записи чаще всего отличаются от стандартного потока: кому-то продлевали доступ после обращения в поддержку, кому-то выдавали доступ как бонус, а кто-то попал в уровень через импорт.

Такая таблица нужна не для красивого отчёта. Она помогает понять, где фиксированная дата будет массовым правилом, а где она сломает исключение. Например, если на уровне есть сотрудники партнёра с индивидуальным сроком договора, общий дедлайн может быть неверным решением. Для них лучше создать отдельный уровень или оставить ручное управление, чем потом восстанавливать доступ по обращениям.

Письма и ожидания пользователя

Проверьте, какие письма отправляются при активации, приближении окончания, продлении, отмене и истечении. В Restrict Content Pro напоминания об окончании и продлении настраиваются в разделе писем. Документация разделяет expiration reminders для участников без автообновления и renewal reminders для участников с автообновлением. Для фиксированной даты это различие важно: пользователю нужно получить сообщение не просто “ваша подписка скоро закончится”, а понятное объяснение, что уровень закрывается по общему сроку.

Не скрывайте общий дедлайн. Если человек регистрируется поздно, дата окончания должна быть видна до оплаты или выдачи доступа. Иначе технически корректная настройка будет выглядеть как сокращение обещанного периода.

Где показать общий срок до регистрации

Лучшее место для объяснения - не письмо после оплаты, а экран до регистрации. Добавьте срок в описание уровня, в блок перед формой, в ответы на частые вопросы и в условия доступа к потоку. Если на странице есть несколько уровней, не прячьте дату в длинный абзац после кнопки. Пользователь должен заметить её до выбора уровня, иначе поддержка будет спорить не с технической ошибкой, а с ожиданием, которое сайт сам создал.

Для поздних регистраций используйте отдельную фразу: доступ действует до общего срока завершения текущей группы, поэтому фактическая длительность зависит от даты присоединения. Это честнее, чем обещать “месяц доступа” или “год доступа”, если система настроена на общий дедлайн. Если маркетинговый текст уже написан иначе, исправьте его до запуска add-on.

Установка и первичная проверка в WordPress

Процесс установки для add-on такой же, как для обычного ZIP-плагина WordPress: загрузить архив из официального источника, установить через админ-панель и активировать. В этом руководстве мы не разбираем покупку, лицензию или получение доступа к аккаунту разработчика. Важно только одно: используйте официальный источник и не переносите на сайт случайные архивы из зеркал. Для членского сайта это вопрос не удобства, а безопасности данных пользователей.

Общий порядок установки

  1. Откройте админ-панель WordPress под пользователем с правами администратора.
  2. Перейдите в Plugins и выберите добавление нового плагина.
  3. Загрузите ZIP-архив add-on через Upload Plugin.
  4. После установки нажмите Activate.
  5. Проверьте, что основной Restrict Content Pro тоже активен и не показывает критических предупреждений.

Если после активации вы не видите нового поля, не начинайте вручную менять базу данных. Сначала проверьте, установлен ли именно add-on Hard-set Expiration Dates, активен ли основной плагин и открываете ли вы правильный экран уровня членства. В документации встречается старое название Subscription Levels, но в части новых материалов используется Membership Levels.

Где появляется поле фиксированной даты

Официальная документация описывает путь Restrict > Subscription Levels. На экранах добавления и редактирования уровня появляется поле Expiration Date. В более свежей навигации вы можете видеть Restrict > Membership Levels. Смысл тот же: дата задаётся на уровне, а не в карточке отдельного пользователя.

Поле Expiration Date в настройках Restrict Content Pro Hard-set Expiration Dates
Схема показывает, где в настройках уровня искать фиксированную дату и какие соседние параметры нельзя игнорировать.

После сохранения уровня создайте тестового пользователя или вручную добавьте тестовое членство. Затем проверьте три места: запись в Restrict > Memberships, страницу аккаунта пользователя и закрытый материал, доступный только этому уровню. Если в интерфейсе пользователя дата не видна, добавьте понятный текст на странице регистрации или используйте доступные шорткоды Restrict Content Pro там, где это уместно.

Первый тест не должен быть только админским

Администратор WordPress часто видит больше, чем обычный участник. Поэтому проверка “я открыл страницу и всё работает” почти бесполезна, если вы вошли под админом. Создайте отдельного пользователя без административных прав, назначьте ему нужное членство и повторите путь как реальный участник. Потом откройте ту же страницу как гость и как пользователь с другим уровнем. Только так вы увидите, работает ли ограничение доступа, а не просто права администратора.

Если сайт использует роли WordPress вместе с уровнями Restrict Content Pro, проверьте оба механизма. Бывает, что страница закрыта уровнем членства, но роль пользователя всё равно даёт доступ через другой плагин или настройку темы. Для fixed-date сценария это особенно неприятно: членство может стать expired, а доступ продолжит открываться из-за роли, которую никто не пересмотрел.

Фиксированная дата против обычной длительности уровня

Самая частая ошибка - считать поле Expiration Date более точной заменой Duration. Это разные модели доступа. Обычная длительность отвечает на вопрос: “Сколько времени пользователь получает после регистрации или продления?” Фиксированная дата отвечает на другой вопрос: “В какой общий день закрывается этот уровень для всех?”

Разница между двумя моделями окончания доступа
Параметр Обычная длительность уровня Hard-set Expiration Dates
Логика расчёта Срок отсчитывается от регистрации, ручного добавления или продления. Все участники уровня получают один общий день окончания.
Лучший сценарий Подписки, личные кабинеты, непрерывные клубы, доступ на полный период. Потоки, сезоны, кампании, закрытые группы с общим дедлайном.
Опасный сценарий Нужен общий конец периода, но каждый пользователь заканчивает в свой день. Пользователь ожидает полный срок от оплаты, а получает доступ только до общего дедлайна.
Коммуникация Достаточно указать длительность доступа. Нужно явно показывать общий срок окончания перед регистрацией.

Если у вас есть сомнения, создайте два тестовых уровня. Один настройте через обычную длительность, второй через фиксированную дату. Зарегистрируйте двух тестовых пользователей в разные дни или вручную задайте им разные даты создания. Сравните, что показывает карточка членства. Такой маленький эксперимент быстрее объяснит разницу, чем длинное обсуждение в команде.

Сравнение обычной длительности и фиксированной даты в Restrict Content Pro
Визуальное сравнение помогает выбрать правильную модель: индивидуальный срок или общий дедлайн для уровня.

Подробная настройка после активации

У Hard-set Expiration Dates нет сложного конструктора. Главная настройка - дата на уровне членства. Но именно поэтому важны соседние параметры: статус уровня, видимость на регистрационной форме, автообновление, напоминания, текст ограничения и поведение после окончания. Настройка должна отвечать не только на вопрос “какую дату поставить”, но и на вопрос “что увидит пользователь до и после этой даты”.

Выбор уровня и даты

Откройте нужный уровень через Restrict > Membership Levels или Restrict > Subscription Levels. Если уровень уже существует и на нём есть участники, не меняйте дату без проверки списка активных членств. Для нового потока или сезона безопаснее создать новый уровень, настроить его, проверить регистрацию и только потом открывать доступ пользователям.

При выборе даты задайте себе четыре вопроса:

  • Закрывается ли доступ сразу для всех участников этого уровня в один день?
  • Можно ли пользователю присоединиться после начала периода, и будет ли ему понятна сокращённая длительность?
  • Нужно ли скрыть уровень после завершения набора через статус Inactive?
  • Что произойдёт с платёжным шлюзом, если уровень связан с автообновлением?

Для типового потокового курса лучше использовать отдельный уровень на каждый набор. Так вы не будете переписывать дату на уровне, где уже лежит история прошлых участников, и сможете оставить старые записи для отчётов и поддержки.

Если уровень уже продаётся или используется вручную

На рабочем уровне сначала выгрузите или хотя бы просмотрите список активных членств. Отдельно отметьте участников с автообновлением, ручным доступом, пробным периодом и нестандартной датой. После этого решайте, можно ли поставить общий срок всем сразу или безопаснее закрыть старый уровень и создать новый. Такой шаг кажется лишним только до первого обращения от пользователя, у которого доступ закончился раньше ожидаемого.

Если дата нужна только для новой группы

Не меняйте исторический уровень ради нового набора. Создайте отдельный уровень, назначьте ему фиксированную дату, проверьте описание на форме регистрации и привяжите закрытые материалы к новому уровню. Это проще для поддержки: по названию уровня сразу видно, к какой группе относится участник, а старые записи не меняют своё поведение задним числом.

Статус уровня и регистрационная форма

В Restrict Content Pro активный уровень отображается на регистрационной форме, если форма выводит доступные уровни автоматически. Неактивный уровень скрывается с обычной формы, но может использоваться для ручного назначения или специальных сценариев. Это полезно после закрытия набора: вы можете оставить доступ существующим участникам до фиксированной даты, но перестать показывать уровень новым пользователям.

Не удаляйте старый уровень, если на нём есть реальные участники. Удаление ломает историю и усложняет поддержку. Вместо этого переведите уровень в Inactive, создайте новый уровень для следующего периода и проверьте, что закрытые материалы привязаны к нужному уровню или к корректному уровню доступа.

Автообновление и платёжный шлюз

Фиксированная дата особенно чувствительна к автообновлению. Документация Restrict Content Pro по редактированию членства предупреждает, что изменение даты окончания у членства с включённым автообновлением может не изменить следующую дату списания у платёжного процессора. Платёжный шлюз и запись членства в WordPress - это не одно и то же хранилище. Gateway может продолжать жить по своему расписанию, если его отдельно не синхронизировать.

Поэтому для Hard-set Expiration Dates самый предсказуемый вариант - уровни без автообновления или сценарии, где вы осознанно создаёте новый период как новый уровень. Если автообновление всё же нужно, не делайте выводы только по карточке пользователя в WordPress. Сверяйте статус и расписание в платёжном шлюзе, особенно после ручных изменений.

Что записать в чек-лист администратора

Для каждого уровня с общей датой зафиксируйте выбранную модель оплаты, статус автообновления, страницу регистрации, закрытые материалы и текст письма об окончании. Это не документация ради документации. Когда через несколько недель нужно будет понять, почему один уровень закрылся, а другой продолжает принимать регистрации, короткий чек-лист сэкономит время и не заставит проверять все настройки с нуля.

Напоминания и текст на странице аккаунта

Настройте письма так, чтобы они объясняли общий дедлайн. В разделе Restrict > Settings > Emails проверьте шаблоны активного членства, окончания, продления и уведомления администратора. У письма должны быть заполнены тема и тело, а сам шаблон не должен быть отключён. Если письма не приходят, сначала проверьте, становится ли членство активным, затем журнал исходящих писем и SMTP-настройки сайта.

На странице аккаунта полезно показывать дату окончания. Для этого в Restrict Content Pro есть шорткод [user_expiration], который выводит дату истечения членства для текущего пользователя. Используйте его там, где пользователь ожидает увидеть состояние доступа, но не пытайтесь заменить этим понятное описание на странице регистрации.

[user_expiration]

После добавления шорткода зайдите под тестовым пользователем и проверьте, что дата читается в нужном формате. Если формат дат выглядит непривычно для вашей аудитории, проверьте общие настройки даты WordPress и не смешивайте разные форматы в письмах, таблицах и личном кабинете.

Как применить add-on в реальном сценарии потока

Представим учебный сайт, где новый поток получает доступ к урокам, записям вебинаров и закрытым страницам до общего финального дня. Участники могут присоединиться в начале набора или позже, но все завершают доступ одновременно. В такой модели Restrict Content Pro Hard-set Expiration Dates закрывает ровно ту задачу, ради которой он создан.

Пример потока курса с общей датой окончания доступа
Сценарий потока показывает связь между уровнем членства, страницами курса, письмами и итоговой проверкой доступа.

Цель

Нужно создать отдельный уровень для потока, открыть участникам материалы курса, показать им дату окончания и закрыть доступ в общий день без ручного удаления пользователей. При этом старый поток должен остаться в истории, а новый набор должен запускаться отдельным уровнем, чтобы даты и письма не смешивались.

Подготовка

Перед настройкой убедитесь, что у вас есть тестовая страница регистрации, страница аккаунта, закрытая страница курса и хотя бы один тестовый пользователь. Если сайт принимает оплату, проведите проверку в тестовом режиме шлюза. Если доступ выдаётся вручную, проверьте ручное добавление членства через Restrict > Memberships.

Шаги настройки

  1. Создайте новый уровень в Restrict > Membership Levels и назовите его так, чтобы администратору было понятно, к какому потоку он относится.
  2. Укажите описание уровня. В нём прямо напишите, что доступ действует до общего срока окончания.
  3. Задайте цену и длительность только в той мере, в какой они нужны вашей модели. Не полагайтесь на длительность, если решающим правилом будет фиксированная дата.
  4. В поле Expiration Date укажите общий день окончания уровня.
  5. Проверьте статус Active, если уровень должен появиться на регистрационной форме.
  6. Ограничьте страницы курса через метабокс Restrict Content Pro или через шорткод [restrict], привязав доступ к нужному уровню.
  7. Обновите письма так, чтобы участник видел единый срок доступа и не ожидал индивидуального полного периода.
  8. Зарегистрируйте тестового пользователя и проверьте закрытые страницы, страницу аккаунта и запись в Restrict > Memberships.

Проверка

Проверка должна включать публичную часть сайта и админ-панель. В публичной части зайдите под тестовым участником и откройте закрытый урок. Затем выйдите из аккаунта и убедитесь, что гостю показывается сообщение ограничения, а не сам материал. В админ-панели откройте карточку членства и проверьте статус, уровень и дату окончания.

Мини-итог: настройка считается рабочей только тогда, когда дата видна в записи членства, закрытый материал доступен активному участнику и недоступен гостю, а письма не обещают индивидуальный срок, которого система не выдаёт.

Нюанс поздней регистрации

Если человек регистрируется ближе к окончанию потока, фактический доступ будет короче. Это не ошибка add-on, а следствие выбранной модели. Чтобы снизить количество вопросов, добавьте на страницу регистрации короткий блок: доступ закрывается для всех участников потока в общий срок, независимо от даты присоединения. Если поздняя регистрация нежелательна, переведите уровень в Inactive после закрытия набора или уберите его из формы.

Проверка результата после настройки

Многие проблемы с членством проявляются не в момент настройки, а позже: письмо не отправилось, кеш отдал гостевую версию активному пользователю, платёжный шлюз не обновил статус, администратор вручную изменил дату и не синхронизировал её с внешней подпиской. Поэтому после включения фиксированной даты нужна отдельная проверка результата.

План тестирования перед публикацией уровня

Перед тем как открыть уровень реальным пользователям, пройдите короткий сценарий от начала до конца. Он должен включать не только успешную регистрацию, но и пограничные состояния: пользователь без уровня, пользователь с неправильным уровнем, истёкшее членство, гостевой просмотр, проверка письма и повторный вход после очистки кеша. Это занимает меньше времени, чем ручное исправление доступа после запуска.

Сохраните результаты теста в заметках администратора: какой пользователь использовался, какой уровень выбран, какая дата отображается, какая страница была закрыта и какие письма отправились. Если через месяц возникнет спор, вы сможете сравнить текущее поведение с зафиксированной проверкой, а не вспоминать, что именно было настроено.

Проверка в админ-панели

Откройте Restrict > Memberships и найдите тестовое членство. Убедитесь, что уровень выбран правильно, статус активен, дата окончания соответствует фиксированной дате уровня, а автообновление выключено или осознанно настроено. Если вы добавляете участника вручную, помните: галочка Auto-Renew в карточке членства не создаёт подписку в Stripe или PayPal сама по себе. Она имеет смысл только при реальной связке с записью в платёжном шлюзе.

Что сравнить в карточке членства

Смотрите не только дату. Проверьте статус, уровень, дату регистрации, отметку автообновления, gateway customer ID и gateway subscription ID, если они применимы. Если членство ручное, внешних ID может не быть, и это нормально. Если членство платное и должно обновляться автоматически, отсутствие ID или webhook-событий уже повод проверить интеграцию, а не поле fixed date.

Проверка на публичной части

Откройте закрытую страницу в трёх состояниях: гостем, активным участником и пользователем без нужного уровня. Гость должен видеть сообщение ограничения или приглашение войти. Активный участник должен видеть материал. Пользователь без нужного уровня не должен получить доступ, даже если он авторизован.

Если у сайта есть кеширование страниц, исключите страницы аккаунта, регистрации и платёжные обработчики из полного кеша. Закрытые материалы тоже нужно проверять осторожно: кеш не должен отдавать приватную версию гостю или гостевую версию участнику. Для таких тестов используйте разные браузеры или режим приватного окна.

Проверка писем

Проверьте не только факт отправки, но и смысл текста. В письме активации, напоминании об окончании и сообщении после истечения не должно быть фраз, которые обещают обычную автоматическую пролонгацию, если add-on закрывает уровень по общему сроку. Если письмо не приходит, смотрите статус членства, настройки шаблона, журнал исходящей почты и SMTP. По документации RCP пустые тема или тело письма могут быть причиной того, что письмо не отправится.

Что происходит после наступления общей даты

Официальное описание add-on прямо указывает: когда фиксированная дата достигнута, членство становится expired и не может быть продлено. Это важный момент для поддержки и продаж. Если вы хотите открыть следующий период, не обещайте участнику “продлить старый поток одной кнопкой”, пока не проверили, что выбранная модель это поддерживает.

Контрольный день и действия администратора

В день общего окончания не стоит полагаться только на автоматическое поведение. Запланируйте ручную проверку: откройте список членств уровня, убедитесь, что статусы изменились ожидаемо, проверьте закрытую страницу под тестовым пользователем и посмотрите, ушли ли нужные письма. Если доступ зависит от кеша, очистите кеш после изменения статусов и повторите проверку как гость и как бывший участник.

Если часть пользователей должна сохранить доступ после общего срока, не исправляйте это задним числом через изменение даты всего уровня. Так вы снова откроете доступ всем участникам этого уровня. Для исключений лучше использовать отдельный уровень, ручное членство или новую группу доступа. Это сохраняет исходную логику потока и не создаёт скрытую проблему для следующего запуска.

Почему новый период лучше делать отдельным уровнем

Для сезонных и потоковых проектов отдельный уровень на новый период обычно чище, чем постоянное переписывание даты в старом уровне. Старый уровень хранит историю участников, писем и доступа. Новый уровень получает свою дату, свои тексты, свою форму регистрации и свои правила закрытых материалов. Если часть материалов повторяется, можно дать доступ нескольким уровням через настройки Restrict Content Pro или аккуратно использовать шорткод с нужными параметрами.

Как объяснить это пользователям

После истечения доступа пользователь должен понимать, что произошло. Сообщение ограничения не должно выглядеть как технический сбой. Напишите коротко: доступ к материалам текущего периода завершён, для участия в следующем периоде нужен новый доступ или отдельный уровень. Если следующий период ещё не открыт, не оставляйте человека на пустой странице. Дайте ссылку на страницу ожидания, форму интереса или обычную страницу входа, если это соответствует сайту.

Для службы поддержки подготовьте одну короткую внутреннюю формулировку. В ней должны быть причина окончания, способ проверить уровень пользователя и действие, которое можно предложить: новый период, ручная проверка, ожидание следующего набора или обращение к администратору. Когда ответ поддержки совпадает с текстом на сайте и письмами, пользователь быстрее понимает ситуацию и реже воспринимает окончание доступа как ошибку.

Частые проблемы и диагностика

Ниже собраны проблемы, которые характерны именно для фиксированных сроков и для связанного рабочего процесса Restrict Content Pro. Часть из них не является ошибкой add-on. Часто это конфликт ожиданий, статуса членства, кеша, писем или платёжного шлюза.

Диагностика ошибок фиксированной даты в Restrict Content Pro
Диагностическая карта помогает быстро отделить нормальное поведение add-on от проблем статуса, писем, кеша и шлюза.

Все участники истекают одновременно, хотя регистрировались в разные дни

Это нормальное поведение Hard-set Expiration Dates. Проверьте, не ожидала ли команда обычную длительность от даты регистрации. Если ожидала, снимите фиксированную дату с уровня или создайте новый уровень с обычным Duration. Для уже затронутых пользователей не делайте массовых правок без выгрузки списка членств.

Новый участник получает слишком короткий доступ

Причина почти всегда в том, что общий дедлайн уже близко. Проверьте страницу регистрации, описание уровня и дату в поле Expiration Date. Исправление зависит от бизнес-логики: продлить общий срок, закрыть позднюю регистрацию, снизить ожидания в тексте или создать отдельный уровень для позднего доступа. Если человек уже зарегистрировался, решайте вопрос через ручное изменение членства или перенос на другой уровень, но фиксируйте это в заметках клиента.

Поле Expiration Date не видно

Проверьте, активирован ли add-on, открываете ли вы экран уровня членства, а не карточку отдельного пользователя, и не путаете ли старое название Subscription Levels с новым Membership Levels. Если основной Restrict Content Pro неактивен или конфликтует с текущей версией сайта, поле может не появиться. Не используйте ручное добавление полей в базе как обходной путь.

Пользователь оплатил, но остался в статусе Pending

Фиксированная дата здесь обычно ни при чём. Для PayPal проблема часто связана с IPN, для Stripe - с webhook. Проверьте, завершён ли платёж в шлюзе, доставлены ли уведомления на сайт и не отличается ли тестовый режим от рабочего. Пока членство Pending, пользователь может не получить доступ и письма активного членства. Переводите статус вручную только после сверки платежа.

Минимальный порядок проверки платежного статуса

Сначала откройте запись платежа в шлюзе и убедитесь, что он завершён. Затем проверьте webhook или IPN-доставку на стороне шлюза. После этого откройте запись членства в WordPress и смотрите, есть ли gateway customer ID или subscription ID, если они должны быть. Только в конце меняйте статус вручную. Такой порядок снижает риск открыть доступ по неоплаченному или спорному платежу.

Письма об окончании не отправляются

Проверьте, включён ли нужный шаблон, заполнены ли тема и тело письма, какой тип напоминания выбран и соответствует ли он автообновлению. Если письмо есть в журнале исходящей почты, но не приходит получателю, проблема уже на стороне доставки WordPress-почты или SMTP. Если письма нет в журнале, смотрите статус членства и событие, которое должно было его запустить.

Закрытая страница доступна не тем пользователям

Проверьте настройки блока Restrict This Content, выбранный уровень, роли пользователя и кеш. Если вы используете шорткод, убедитесь, что указан ID нужного уровня, а не старое имя, которое позже переименовали. В спорных случаях временно отключите кеш и проверьте с чистым браузером. Не делайте вывод по одной открытой вкладке администратора, где права шире, чем у обычного участника.

Как отличить ошибку доступа от кеша

Создайте три проверки: гостевой просмотр в приватном окне, просмотр под тестовым участником нужного уровня и просмотр под авторизованным пользователем без этого уровня. Если все три состояния показывают одно и то же, вероятен кеш или неверная настройка страницы. Если отличаются только авторизованные пользователи, ищите проблему в уровне, роли, шорткоде или статусе членства.

Дата в импорте или письмах выглядит неправильно

Для импортов RCP отдельно упоминает проблемы с форматами дат. Проверьте формат даты в WordPress, формат в CSV и то, как дата реально введена в ячейку, а не только как она отображается в таблице. Для писем используйте один стиль записи даты во всех шаблонах, чтобы пользователь не видел разные форматы в аккаунте, письме и описании уровня.

Безопасные улучшения без правки кода плагина

Для этого add-on обычно не нужен пользовательский PHP-код. Большую часть проблем решают аккуратные настройки, понятные тексты и проверка статусов. Кодовые фильтры Restrict Content Pro существуют, но официальные developer docs прямо предупреждают, что кастомный код остаётся зоной ответственности владельца сайта или разработчика. Поэтому безопаснее начать с улучшений, которые можно откатить без изменения ядра.

Сделайте внутренний регламент для повторных запусков

Если поток или сезон повторяется, запишите порядок запуска как внутренний регламент. В нём должны быть шаги: создать новый уровень, поставить фиксированную дату, проверить статус, обновить описание уровня, проверить письма, привязать закрытые материалы, создать тестового участника, открыть регистрацию, закрыть набор, перевести уровень в Inactive после завершения. Это обычный административный список, но он защищает от главной ошибки повторных запусков - случайного редактирования старого уровня вместо создания нового.

Регламент особенно полезен, если сайтом занимается несколько человек. Маркетолог может менять текст страницы, администратор - уровень членства, а специалист поддержки - ручные доступы. Без общего порядка каждый видит только свою часть, и fixed-date логика начинает расползаться: в тексте один срок, в уровне другой, в письме третий, а в поддержке считают, что доступ должен продлеваться.

Покажите дату окончания в личном кабинете

Если страница аккаунта у вас редактируется как обычная страница WordPress, добавьте короткое пояснение рядом с шорткодом даты. Не перегружайте страницу юридическим текстом. Достаточно объяснить, что это дата окончания текущего уровня.

<p>Доступ к текущему уровню действует до: [user_expiration]</p>

Проверка проста: зайдите под тестовым пользователем и убедитесь, что строка видна только там, где она не ломает макет. Откат - удалить абзац со страницы аккаунта.

Сделайте отдельный текст для поздних регистраций

Если поток открыт для поздних участников, добавьте на страницу регистрации блок с ясным предупреждением. Это можно сделать обычным блоком редактора над формой регистрации. Технически add-on сработает и без этого, но поддержка будет получать меньше вопросов, если человек увидит общий дедлайн до отправки формы.

Используйте неактивные уровни вместо удаления

После закрытия набора переведите старый уровень в Inactive. Документация RCP указывает, что неактивный уровень не отображается в обычной форме регистрации, но может сохраняться для существующих сценариев и ручных назначений. Это безопаснее, чем удалять уровень с историей участников.

Вопросы, которые стоит решить до запуска

Можно ли использовать add-on для ежегодной подписки с момента оплаты?

Обычно нет. Для подписки, где каждый пользователь должен получить одинаковый срок от даты регистрации или оплаты, используйте обычную длительность уровня. Hard-set Expiration Dates нужен, когда окончание должно быть общим для всего уровня.

Что будет после наступления фиксированной даты?

По официальной документации членство становится expired и не может быть продлено в обычном смысле этого же уровня. Для нового периода чаще создают новый уровень или новую кампанию, а старый уровень оставляют для истории.

Можно ли вручную продлить одного участника?

Технически отдельную запись членства можно редактировать в Restrict > Memberships, но для уровня с общей фиксированной датой это может нарушить логику потока. Если нужен индивидуальный доступ, лучше заранее выделить отдельный уровень или понятный ручной процесс поддержки.

Повлияет ли фиксированная дата на списания в Stripe или PayPal?

Не считайте это автоматической синхронизацией. Запись членства в WordPress и расписание платежей в шлюзе могут отличаться. При автообновлениях проверяйте gateway ID, webhook/IPN и фактическое расписание платежа в самом шлюзе.

Как показать пользователю дату окончания?

Используйте страницу аккаунта, описание уровня, письма и при необходимости шорткод [user_expiration]. Важнее всего показать дату до регистрации, если человек может присоединиться поздно и получить сокращённый доступ.

Почему уровень лучше переводить в Inactive, а не удалять?

Неактивный уровень можно скрыть с обычной регистрационной формы, сохранив историю и существующие записи. Удаление уровня с участниками усложняет отчёты, поддержку и диагностику доступа.

Нужно ли добавлять кастомный код для правильной работы?

Для обычной настройки - нет. Начните с уровня, даты, статуса, писем и проверки доступа. Кастомные фильтры используйте только с разработчиком и только если задача не решается настройками.

Когда Restrict Content Pro Hard-set Expiration Dates будет удачным выбором

Этот add-on хорош там, где общий срок окончания является частью продукта: поток, сезон, клубный период, корпоративная группа или закрытая кампания. Он экономит администратору ручную работу и делает календарь доступа единым. Но он требует честной коммуникации с пользователем и аккуратного отношения к автообновлению.

Карта выбора сценария для Restrict Content Pro Hard-set Expiration Dates
Карта выбора помогает решить, использовать фиксированную дату, обычную длительность или другой membership-инструмент.

Перед запуском проверьте уровень на тестовом пользователе, убедитесь, что закрытые материалы открываются только нужной группе, письма не вводят в заблуждение, а платёжный шлюз не живёт по другому расписанию. Если эта модель совпадает с вашим сценарием, можно переходить к установочному архиву и скачать Restrict Content Pro Hard-set Expiration Dates для проверки на своём сайте.

Практический вывод простой: используйте фиксированную дату только там, где общий дедлайн важнее индивидуальной длительности. В остальных случаях базовые настройки Restrict Content Pro будут понятнее пользователю, проще для поддержки и безопаснее для платёжной логики.

Автор: Редакция JoomFox.org

Вы не зарегистрированы, чтобы оставлять комментарии.