@KoystrubVS

Сохранение города как на Авито?

Как можно реализовать сохранение города выбранным пользователем? На Авито или sbagry.com при выборе города, сайт запоминает выбор и далее пока не выберешь другой, будешь попадать на главную страницу этого города.
Интересует любой способ, вообще интересно есть ли решение для wordpress.
  • Вопрос задан
  • 541 просмотр
Пригласить эксперта
Ответы на вопрос 3
rockon404
@rockon404
Frontend Developer
Можно хранить в cookie или localstorage. При первом обращении можно определять с помощью navigator.geolocation. Если пользователь отклонил запрос на доступ к геоданным можно определять местоположение по ip.
Ответ написан
Комментировать
trampick
@trampick
Веб-разработчик
Так можно определить текущий город по ip
$server = $_SERVER['REMOTE_ADDR'];
$rrs = file_get_contents("http://api.sypexgeo.net/json/" . $server);
$obj = json_decode($rrs);
print_r($obj);//Здесь хранятся необходимые данные. Выбирай что нужно - страна, регион, город.

Сохранять данные нужно с помощью session
Так нужно инициализировать сессии в functions.php
add_action('init', 'myStartSession', 1);
add_action('wp_logout', 'myEndSession');
add_action('wp_login', 'myEndSession');

function myStartSession() {
    if(!session_id()) {
        session_start();
    }
}

function myEndSession() {
    session_destroy ();
}

Так сохранить и получить данные
//сохраняем
$_SESSION['city'] = 'Город'; 
//Получаем
if(isset($_SESSION['city'])) {
    $city = $_SESSION['city'];
} else {
    $city= '';
}
Ответ написан
roman_tlt
@roman_tlt
Разработка и продвижение сайтов
Если рассматривать бэкенд-решения, то вам поможет бесплатный плагин WT Geotargeting. С его помощью на сайте можно реализовать выбор города и отображение различной информации с привязкой к городу.

При выборе города значение сохраняется в cookie и при переходе по страницам или последующем посещении повторно город выбирать не нужно.

У плагина есть расширенная платная версия WT Geotargeting Pro, с которой проще управлять большим количеством городов, можно настраивать поддомены, есть поддержка WooCommerce и многое другое.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы