Ссылки БАЗА: реальные URL записи/оплаты + сохранение якоря в UTM
- Кнопки записи/оплаты ведут на форму сайта infocyber.pro (service_id web_1..web_5); тарифы — на главную с якорем #prices; пробное и интенсив — на общую форму записи (отдельной страницы интенсива на сайте пока нет). - _utm(): UTM вставляется ДО якоря (?utm...#prices), иначе браузер не доскроллит до раздела. Значения ссылок вынесены в .env / задокументированы в .env.example. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -646,10 +646,16 @@ class VKBotApplication:
|
||||
# ==========================================================
|
||||
|
||||
def _utm(self, url: str, campaign: str = "main") -> str:
|
||||
"""Добавляет UTM-метку к ссылке (main — обычные, summer — интенсив)."""
|
||||
"""Добавляет UTM-метку к ссылке (main — обычные, summer — интенсив).
|
||||
|
||||
Якорь (#...) сохраняется: UTM вставляется ДО него, иначе браузер не
|
||||
доскроллит до раздела (напр. https://infocyber.pro/?utm...#prices).
|
||||
"""
|
||||
utm = config.UTM_SUMMER if campaign == "summer" else config.UTM_MAIN
|
||||
sep = "&" if "?" in url else "?"
|
||||
return f"{url}{sep}{utm}"
|
||||
base, sep_frag, frag = url.partition("#")
|
||||
sep = "&" if "?" in base else "?"
|
||||
result = f"{base}{sep}{utm}"
|
||||
return f"{result}#{frag}" if sep_frag else result
|
||||
|
||||
def _baza_send_openlink(self, user_id: int, link_key: str, message: str, button: str,
|
||||
campaign: str = "main"):
|
||||
|
||||
Reference in New Issue
Block a user