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

+10
923

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

Еще от автора

Выбор пользователем количества записей на странице
Небольшой компонент, который позволяет пользователям выбирать, по сколько записей выводить на странице.
Вышло обновление афиши 1.2.2
В обновлении новый современный дизайн всех страниц афиши, новый блок места проведения в афише, возможность указать несколько изображений, поддержка ко
Управление персональным меню v.1.0.2
Небольшое обновление компонента, в котором стало удобнее выбирать иконку пункта меню, а также добавлена опция, разрешающая пользователю добавление ссы
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.