Чиним реферальные ссылки биллинга при закрытом сайте

+10
421

Проблема такая: если сайт закрыт, то при переходе по реферальной ссылке типа /r/1 пользователя перехватывает компонент Авторизация, и хук биллинга, который должен был запомнить пользователя, не отработает.

Решение найдено при финансовой поддержке CEH9I

Немного подкапотки

Биллинг запоминает пользователя в хуке error_404 (файл любезно оставлен автором без ioncube). Но если сайт закрыт от гостей, то до хука не доходит, так как авторизация перехватывает посещение в хуке page_is_allowed. Чтобы победить это, надо код из хука error_404 перенести в хук page_is_allowed, а затем хук page_is_allowed биллинга разместить в списке событий самым первым, т.е. выше таких же хуков в списке событий. И тогда при открытии ссылки типа /r/1 биллинг отработает первым.

К практике

1. Качаем архив из приложения.
2. Файл page_is_allowed.php из архива кладем в /system/controllers/billing/hooks
3. идем в компоненты, управление событиями
4. соглашаемся обновить
5. в списке событий фильтруем по имени page_is_allowed

Изображение

и тянем хук page_is_allowed биллинга в самый верх.

Готово. Теперь при переходе гостем по реферальной ссылке /r/xxxxxx биллинг отработает раньше авторизации, кука поставится даже если сайт закрыт от гостей.

Для недоверчивых

Посмотрите код файла page_is_allowed из архива и сравните его с /system/controllers/billing/hooks/error_404.php Он практически идентичен, ничего лишнего не добавлено.

Не сработает на версиях ниже 2.14.2

Работа хуков без файла манифеста появилась только в 2.14.2 Файл манифеста в биллинге закодирован. Можно составить свой ручками, но лениво. Да и сидеть на таких старых версиях движка неправильно. Биллинг нормально работает на 2.16.1

Не без минусов

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

Если что-то пошло не так

Отключите новый хук биллинга. И все будет работать по-старому.

Изображение

Прикреплённый файл:
Скачать 469 байтскачан 16 раз
Нет комментариев. Ваш будет первым!

Еще от автора

Шаблон вывода категорий
Делюсь небольшим компонентом, который выводит на списком записей список категорий со своим шаблоном.
Виджет "Меню добавить"
Небольшой виджет, предназначенный исключительно для вывода меню добавления контента.
ZПоиск. Другой взгляд на поиск
В рамках более глубокого знакомства с Vue в частности с появившимся недавно Composition Api сделал на Vue небольшой компонент, который по функционалу
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.