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

+10
721

Проблема такая: если сайт закрыт, то при переходе по реферальной ссылке типа /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 байтскачан 19 раз
Нет комментариев. Ваш будет первым!

Еще от автора

ZПоиск. Другой взгляд на поиск v.1.1.1
Обновленная версия небольшого компонента, который по функционалу повторяет встроенный компонент Поиск.
Группируем наборы v. 1.0.1
Обновление одной моей бесплатной разработки, которая предназначена для группировки наборов.
Запуск instantcms 2 локально в docker
Обновленный docker compose для локального запуска instantcms 2.
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.