Текст 1:
Текст 2
Цель: Реализовать автоматическое определение города посетителя с возможностью ручного выбора через попап.
1. Подготовка в админке Битрикс
Активация модуля "Интернет-магазин"
Если модуль не активирован:
- Перейдите в
Настройки → Настройки продукта → Модули - Найдите "Интернет-магазин"
- Нажмите "Установить"
Проверка работы сессий
Убедитесь, что в вашем проекте разрешено использование сессий:
- Откройте файл
bitrix/.settings.php - Проверьте наличие строки:
'session' => ['use' => true],
2. Подготовка файловой структуры
local/
├── tools/
│ ├── sxgeo/
│ │ ├── SxGeo.php
│ │ └── SxGeoCity.dat
│ ├── detect_city.php
│ └── save_city.php
└── include/
└── city_popup.php
Загрузка базы городов Sypex Geo
- Скачайте
SxGeoCity.datс официального сайта - Создайте папку
/local/tools/sxgeo/ - Поместите файл базы в эту папку
Установка класса SxGeo
- Скачайте
SxGeo.php (Sypex Geo для PHP 5.2+)с официального сайта - Поместите файл в
/local/tools/sxgeo/адаптируйте код к php версии вашего сайта если она иная
3. Создание необходимых файлов
Файл detect_city.php
Создайте файл по пути /local/tools/detect_city.php
Функционал:
- Определяет город по IP через Sypex Geo
- Проверяет куки пользователя
- Возвращает данные в JSON-формате
Файл save_city.php
Создайте файл по пути /local/tools/save_city.php
Функционал:
- Сохраняет выбранный город в сессию
- Устанавливает куки на 30 дней
- Возвращает статус операции
Файл city_popup.php
Создайте файл по пути /local/include/city_popup.php
Содержит:
- HTML-разметку попапа
- JavaScript для работы попапа
- Логику поиска и выбора города
Обновление шаблона сайта
- В
header.phpдобавьте кнопку выбора города:<button class="header__geo-button">...</button> - В
footer.phpперед</body>добавьте:<?php include $_SERVER['DOCUMENT_ROOT'].'/local/include/city_popup.php'; ?>
4. Проверка работоспособности
Тестирование автоматического определения
- Откройте сайт в режиме инкогнито
- Проверьте, что город определяется автоматически
- Убедитесь, что город сохраняется при обновлении страницы
Тестирование попапа выбора
- Кликните на кнопку города в шапке
- Проверьте работу поиска по городам
- Нажмите "Определить автоматически"
- Выберите город из списка вручную
- Убедитесь, что выбор сохраняется
Готово! После выполнения всех шагов на вашем сайте будет работать:
- Автоматическое определение города
- Попап для ручного выбора
- Сохранение выбора между сессиями