На какой CMS реализована Геолокация и как реализовать на WordPress

Эдуард Бобков
На сайте с 10.10.2019
Offline
13
145
Доброго дня всем разработчикам. 

Во-первых хотел бы узнать на каком движке сделан сайт: avtovary.ru - Не один из нормальных сервисов не смогли определить, скорее всего это самописный, но может я и ошибаюсь.

Второе и самое важное. Мне интересно, как у него реализована функция ГЕО-локации и подмена контента под каждый город (добавляются точки покупки товара, адреса и др. справочная информация), вот пример одного из товаров: https://avtovary.ru/avtoaksessuary/kupit_shtorki-trokot_v-tolyatti.html - для Тольятти. Дело в том, что гео и контент у него задаётся не только в заголовке H1, а именно в Title и без применения доменов 3-го уровня (поддоменов) и папок прикрученных к основному сайту.

Вопрос: Можно ли такое организовать на движке WordPress на уже действующем ресурсе и соответственно, как это сделать. Хотел бы знать точный план работ и порядок реализации. В сайтостроительстве новичок.

За ранее спасибо за подсказки и советы, что бы понять, куда хоть копать или может искать разработчика, к стати сколько примерно будет стоить фронт производимых работ.


Купить Шторки ТРОКОТ , заказать по цене 2950 руб. 🔥 со скидкой
  • голосов: 527
  • 2 950.00 RUB
  • 2021.03.19
  • Филипп Кузьмин (21 марта 2021), Чебоксары Проверенный покупатель
  • avtovary.ru
✔️Ищете где купить Шторки ТРОКОТ недорого? Заказать Шторки ТРОКОТ по цене 2950 руб. 🔥 со скидкой. 💰Самая выгодная цена в магазине автотоваров
T7
На сайте с 19.09.2018
Offline
43
#1
Эдуард Бобков :
функция ГЕО-локации и подмена контента под каждый город

Для ВП не знаю. Как вариант.  Имеем, что то типа:

{
"_id":"NizhniyNovgorod",
"regId":"66297070a982d00c",
"region":["Нижегородская область","56.312764,44.611891"],
"cid":"nizhnii-novgorod",
"visible":1,
"location":{"type":"Point","coordinates":[44.005986,56.326887]},
"name":"Нижний Новгород",
"morph":["Нижний Новгород","Нижнего Новгорода","Нижнему Новгороду","Нижний Новгород","Нижним Новгородом","Нижнем Новгороде"],
"delivery":{"company":"Деловые Линии","adres":"Московское ш., 52"}
}
Которое позволяет сделать почти все что угодно
S
На сайте с 13.10.2014
Offline
156
#2

1. похоже на самопись работает через cloudflare
2. курите в сторону Mod_GeoIP Ну а все остальное - дело техники.

SeVlad
На сайте с 03.11.2008
Offline
1462
#3
Эдуард Бобков :
я), вот пример одного из товаров: https://avtovary.ru/avtoaksessuary/kupit_shtorki-trokot_v-tolyatti.html - для Тольятти.
Угу, для Тольятти :)




Эдуард Бобков :
Можно ли такое организовать на движке WordPress на уже действующем ресурсе и соответственно, как это сделать. Хотел бы знать точный план работ и порядок реализации. В сайтостроительстве новичок.

В таком случае порядок простой - пишешь точное ТЗ, определяешься с бюджетом  и находишь специалиста по ВП который на это согласиться.

Какой бюджет? - Самые разные темы - Не про работу - Форум об интернет-маркетинге
Какой бюджет? - Самые разные темы - Не про работу - Форум об интернет-маркетинге
  • 2021.03.17
  • searchengines.guru
То ли лыжи не едут, то ли я звезданутый. Кто-нибудь может мне объяснить вопрос со стороны исполнителя "Какой бюджет...
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***
Aisamiery
На сайте с 12.04.2015
Offline
216
#4

Вообще функционал изи и по сути не зависит от CMS (зависит разве что только генерация урла)

1. Определение города (например dadata, обязательно с кешем по IP)
2. Склоняем город в каком-нибудь ПО например такой вэб сервис (тоже с кешем чтоб не слать одинаковые запросы и не исчерпать бесплатные лимиты быстро)
3. Пишем текста (на любой cms) вставляя в них какие-нибудь маркеры, например #город# или #городе#
4. Пропускаем все текста через замену по маркерам данных из пункта 2 перед выводом

Я на самом деле в своё время (год так 2010-12) наделал множество сайтов подобных, только правда на CodeIgniter, в то время они залетали в индекс очень клёво и трафика было просто нереально много в очень специфичной нише, которую на законном уровне нельзя в платную рекламу (закон о рекламе) пропихивать.

DaData.ru — максимум информации по клиентам и контрагентам
DaData.ru — максимум информации по клиентам и контрагентам
  • dadata.ru
↑ Все API Город по IP-адресу ✔️ Определяет город по IP-адресу в России. Использует IP-адрес клиента, значение из параметра или заголовок . ✔️ Поддерживает как IPv4, так и IPv6 адреса. ✔️ Возвращает детальную информацию о городе, в том числе почтовый индекс. Как вызвать Пример запроса: Название Тип Обяз.? По умолч. Описание Что в ответе Если...
Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
totamon
На сайте с 12.05.2007
Offline
360
#5
реально не интересно по 10 раз в год одно и тоже расписывать, поиск же есть как по форуму так и гугл-яндекс...
Хостинг от 90р ( https://goo.gl/h1VRkY ) и ВПС от 161р ( https://goo.gl/vw9JH7 ) 14 дней бесплатный тест! Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno ХОСТИНГ №1 РОССИИ https://8fn.ru/beget Монетизация любых сайтов PUSHами ( https://8fn.ru/push ) - лучшая цена клика и показа ;)
T7
На сайте с 19.09.2018
Offline
43
#6
Aisamiery #:
Пишем текста (на любой cms) вставляя в них какие-нибудь маркеры, например #город# или #городе#

Если easy, то да.  А катит в ПС?

По технике.

У меня, в итоге, вот это первая:

if (!GEO_LOC) {
     fetch('https://ipinfo.io?token=

Дальше нужны только координаты, все остальное тут

Ну, например, 51.367725, 42.074977,(Борисоглебск)

Рядом могут быть  Тамбов, Воронеж, Липецк, Саратов, Пенза (точки продаж, где есть контакты 'visible': 1)

GEO query for coord [51.367725, 42.074977]

{'region': ['Тамбовская область', '52.680864,41.587183'], 'location': {'type': 'Point', 'coordinates': [41.452274, 52.721219]}, 'name': 'Тамбов'}

{'region': ['Воронежская область', '50.970898,40.233395'], 'location': {'type': 'Point', 'coordinates': [39.200287, 51.661535]}, 'name': 'Воронеж'}

{'region': ['Липецкая область', '52.644554,39.149784'], 'location': {'type': 'Point', 'coordinates': [39.599346, 52.608782]}, 'name': 'Липецк'}

{'region': ['Саратовская область', '51.578529,46.797223'], 'location': {'type': 'Point', 'coordinates': [46.034158, 51.533103]}, 'name': 'Саратов'}

{'region': ['Пензенская область', '53.1824,44.634151'], 'location': {'type': 'Point', 'coordinates': [45.018316, 53.195063]}, 'name': 'Пенза'}

А могут  Борисоглебск (он и есть, но 'visible': 0),  Балашов, Тамбов, Михайловка, Лиски:

GEO query for coord [51.367725, 42.074977]

{'region': ['Воронежская область', '50.970898,40.233395'], 'location': {'type': 'Point', 'coordinates': [42.074977, 51.367725]}, 'name': 'Борисоглебск'}

{'region': ['Саратовская область', '51.578529,46.797223'], 'location': {'type': 'Point', 'coordinates': [43.146469, 51.554601]}, 'name': 'Балашов'}

{'region': ['Тамбовская область', '52.680864,41.587183'], 'location': {'type': 'Point', 'coordinates': [41.452274, 52.721219]}, 'name': 'Тамбов'}

{'region': ['Волгоградская область', '49.615821,44.151406'], 'location': {'type': 'Point', 'coordinates': [43.240083, 50.070928]}, 'name': 'Михайловка'}

{'region': ['Воронежская область', '50.970898,40.233395'], 'location': {'type': 'Point', 'coordinates': [39.497764, 50.986969]}, 'name': 'Лиски'}

А всего, то в первом случае

query = {
    'visible':1,
   'location': {
       '$near': SON([

==========

Подгон, для php-шников (sqlite), кто понимает:

function geoByDist( array $coord, bool $yaFlag=false,  int $lim=100, ?callable $cb=null ){
      $filter = [
        ':COSLAT' => cos($coord[0] * pi() / 180),
        ':SINLAT' => sin($coord[0] * pi() / 180),
        ':COSLNG' => cos($coord[1] * pi() / 180),
        ':SINLNG' => sin($coord[1] * pi() / 180),
      ];
      $yacity = $yaFlag ? ' WHERE "issub"=1 ':'';
      $sql = sprintf('SELECT rowid as _id, cityid, region, city, coord, yacity, yaregion,
      sub,
      ABS ( (:SINLAT * sin_lat + :COSLAT * cos_lat ) * (cos_lng * :COSLNG + sin_lng * :SINLNG) ) as dist
      FROM "cityes"   %s
      ORDER BY dist DESC LIMIT %d', $yacity, $lim);
      return \Fwe\App\Core::dbsq('geo.db', _DBSqlite)->q($sql, $filter, '_id', $cb);
}

Древняя, работала, не подводила.

На какой CMS реализована Геолокация и как реализовать на WordPress - Веб-строительство - Сайтостроение - Форум об интернет-маркетинге
На какой CMS реализована Геолокация и как реализовать на WordPress - Веб-строительство - Сайтостроение - Форум об интернет-маркетинге
  • 2021.03.09
  • searchengines.guru
Доброго дня всем разработчикам. Во-первых хотел бы узнать на каком движке сделан сайт: avtovary...
Aisamiery
На сайте с 12.04.2015
Offline
216
#7
timo-71 #:
Если easy, то да.  А катит в ПС?

Так меняем все на бэке перед выводом, а не на фронте =))

T7
На сайте с 19.09.2018
Offline
43
#8
Aisamiery #:
а не на фронте =))

А на клиенте тоже можно ответ поменять?

С фронта, только координаты. И то осторожно, токен не резиновый..

Aisamiery #:
1. Определение города (например dadata, обязательно с кешем по IP)

Кеш в ls.setItem('geo', GEO_LOC), фетч только в зависимости

window.addEventListener('mousemove', activate);
window.addEventListener('keypress', activate);
window.addEventListener('click', activate);
Как набралось данных, что царь-юзер настоящий, так и проверим.
if (!GEO_LOC) {
     fetch('https://ipinfo.io?token=

Кстати, в плане activate на клиенте большие надежны в плане request['is_bot']  в диапазоне 0 - 1. И, если

if ('loc' in data) {

то 0.2-0.3 за то что он более менее реальный.

==========

пока: False не бот, -1 левый бот, "юзер агент" : str - хороший бот

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий