Пример реализации: кастомизация страницы «Доступ запрещён»
Есть идеи или предложения? Поделитесь ими на портале обратной связи.
Как изменить шаблон страницы
Перейдите во вкладку «Дизайн» → «Управление дизайном» → «Пользователи» → Страница «Доступ запрещён» и замените код основной части страницы (для стандартного шаблона):
Было:
<!-- <body> --><div class="access-denied-wrapper" align="center"> <?if($USER_LOGGED_IN$)?><!--<s5213>-->Вы входите в группу пользователей, которым запрещено совершать данное действие.<br><br><br>По всем вопросам обращайтесь к администратору сайта.<!--</s>--><?endif?> <?if(!$USER_LOGGED_IN$)?><!--<s5211>-->Гостям запрещено просматривать данную страницу, пожалуйста, войдите на сайт как пользователь.<!--</s>--><br /><br /><span style="font-size:13pt;text-transform:uppercase;">[ <a href="$LOGIN_LINK$"><b><!--<s3087>-->Вход<!--</s>--></b></a> ]</span><?endif?> </div><!-- </body> -->
Стало:
<div class="access-denied-wrapper" align="center"> <?if($USER_LOGGED_IN$)?> <div class="info-box"> <h2>Информация о вашей подписке</h2> <?if($SUBSCR_LAST_ID_AUTH$ != 0)?> <p>Текущий тариф: <strong>$SUBSCR_LAST_NAME_AUTH$</strong></p> <?if($SUBSCR_LAST_STATUS_AUTH$)?><p>Статус подписки: <strong>$SUBSCR_LAST_STATUS_AUTH$</strong></p><?endif?> <?if($SUBSCR_LAST_START_AUTH$ != 0)?><p>Дата начала: $SUBSCR_LAST_START_AUTH$</p><?endif?> <?if($SUBSCR_LAST_END_AUTH$ != 0)?><p>Дата окончания: $SUBSCR_LAST_END_AUTH$</p><?endif?> <?if(!$SUBSCR_LAST_STATUS_AUTH$ || $SUBSCR_LAST_STATUS_AUTH$ = 'expired' || $SUBSCR_LAST_STATUS_AUTH$ = 'canceled' || $SUBSCR_LAST_STATUS_AUTH$ = 'paused')?> <p><strong>Контент данной страницы доступен только пользователям с активной подпиской.</strong></p> <?endif?> <?else?> <p><strong>У вас отсутствует активный тарифный план.</strong></p> <p>Контент данной страницы доступен только пользователям с подпиской.</p> <?endif?> <br> <div class="subs-entry-actions" style="display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;"> <a class="button-link subs-entry-buy-link" href="/subscriptions/my">Мои подписки</a> <a class="button-link subs-entry-buy-link" href="/subscriptions">Оформить подписку</a> </div> </div> <?else?> <div class="info-box"> <h2>Требуется подписка</h2> <p>Этот контент доступен только авторизованным пользователям с активной подпиской.</p> <p>Пожалуйста, <a href="$LOGIN_LINK$"><strong>войдите</strong></a> или <a href="$REGISTER_LINK$"><strong>зарегистрируйтесь</strong></a>, чтобы получить доступ.</p> </div> <?endif?> </div>
Что делает этот код
1. Проверка авторизации
<?if($USER_LOGGED_IN$)?>
Проверяется, вошёл ли пользователь на сайт. От этого зависит, какой блок будет показан.
2. Пользователь авторизован
Внутри блока:
<?if($USER_LOGGED_IN$)?>
2.1 Есть подписка
<?if($SUBSCR_LAST_ID_AUTH$ != 0)?>
- Отображается название тарифа:
$SUBSCR_LAST_NAME_AUTH$ - Если указано — статус подписки:
$SUBSCR_LAST_STATUS_AUTH$ - Дата начала:
$SUBSCR_LAST_START_AUTH$ - Дата окончания:
$SUBSCR_LAST_END_AUTH$
2.2 Подписка есть, но она не активна
<!--?if(!$SUBSCR_LAST_STATUS_AUTH$ || $SUBSCR_LAST_STATUS_AUTH$ = 'expired' || $SUBSCR_LAST_STATUS_AUTH$ = 'canceled' || $SUBSCR_LAST_STATUS_AUTH$ = 'paused')?-->
Показывается сообщение: «Контент данной страницы доступен только пользователям с активной подпиской».
2.3 Подписка отсутствует
<?else?>
(если $SUBSCR_LAST_ID_AUTH$ == 0)
Показывается сообщение: «У вас отсутствует активный тарифный план. Контент данной страницы доступен только пользователям с подпиской».
2.4 Кнопки управления подпиской
Отображаются в любом случае:
<a href="/subscriptions/my">Мои подписки</a><a href="/subscriptions">Оформить подписку</a>
3. Пользователь не авторизован
<?else?>
(то есть <?if(!$USER_LOGGED_IN$)?> по сути)
Показывается сообщение: «Этот контент доступен только авторизованным пользователям с активной подпиской».
Предлагается войти или зарегистрироваться с помощью переменных:
$LOGIN_LINK$$REGISTER_LINK$
Используемые переменные
$USER_LOGGED_IN$— авторизация пользователя$SUBSCR_LAST_ID_AUTH$— ID активного тарифа (0 — тарифа нет)$SUBSCR_LAST_NAME_AUTH$— название тарифа$SUBSCR_LAST_STATUS_AUTH$— статус подписки (active, expired, paused и т.д.)$SUBSCR_LAST_START_AUTH$/$SUBSCR_LAST_END_AUTH$— даты начала и окончания подписки$LOGIN_LINK$,$REGISTER_LINK$— ссылки для гостей

