Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Поддержка] CityManager (Определение города по IP, Geo IP)


Recommended Posts

Нет, нужен ionCube loader

Надіслати
Поділитися на інших сайтах

Спасибо за вашу работу. Модуль работает хорошо.

 

P.S.  Если ваш сайт находится на  виртуальном хостинге и при этом php работает в режиме FastCGI, то установка некоторых переменных не возможна через .htaccess, в том числе и php_value session.cookie_domain

Попробуйте устанавливать данное значение непосредственно в коде скрипта используя функцию ini_set()

Надіслати
Поділитися на інших сайтах


Спасибо. Добавил в описание.

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Ключ запрашивается сообщением в личку.

Надіслати
Поділитися на інших сайтах

Доброе время суток! Есть ли возможность задать свой список городов для проверки, сверять ip по ним, все ip что к ним не относятся определять как условный Киев?

Пояснение: Есть список наших городов: Киев,Днепропетровск,Харьков.

-Человек из Киева. Заходит на сайт всплывает окно: Вы из Киева?, человек определяется от куда он.

-Человек не из нашего списка городов. Человек заходит из Запорожья(любого города, что не в нашем списке) мы определяем его к Киеву. Спрашиваем вы из Киева?, человек определяется от куда он.

Такое можно реализовать стандартным функционалом?Сможете ли помочь? Сколько будет стоить ваша помощь в такой доработке?

Надіслати
Поділитися на інших сайтах


В принципе, можно. Как-то так:

$geoip = $this->registry->get('geoip');

// Киев
if ($geoip->getZoneId() == 3491) {
    ...
}
// Днепропетровск
elesif ($geoip->getZoneId() == 3484) {
    ...
}
...
// Остальные
else {
   
}

С доработкой помочь не смогу, если только советом.

Надіслати
Поділитися на інших сайтах

В принципе, можно. Как-то так:

$geoip = $this->registry->get('geoip');

// Киев
if ($geoip->getZoneId() == 3491) {
    ...
}
// Днепропетровск
elesif ($geoip->getZoneId() == 3484) {
    ...
}
...
// Остальные
else {
   
}

С доработкой помочь не смогу, если только советом.

Спасибо и на том)) А можно как-то ключ для тестового домена получить? Чтобы на нем уже ковырять. Написал в личные, так логичней...

Змінено користувачем zeyser
Надіслати
Поділитися на інших сайтах


В FAQ написано 

    $geoip = $this->registry->get('geoip');
    $this->data['geoip_phone'] = $geoip->getRule('phone');

а для ОС2.0 надо менять $this->data на $data? В quickcheckout съело с $this, в стандартном методе оплаты (bank_transfer) ругается.

Надіслати
Поділитися на інших сайтах


Да, в OC 2, нужно писать $data

Надіслати
Поділитися на інших сайтах

В принципе, можно. Как-то так:

$geoip = $this->registry->get('geoip');// Киевif ($geoip->getZoneId() == 3491) {    ...}// Днепропетровскelesif ($geoip->getZoneId() == 3484) {    ...}...// Остальныеelse {   }
С доработкой помочь не смогу, если только советом.
1. Подскажите, пожалуйста, где можно найти все id для getZoneId(Киев = 3491)?

2. Есть ли возможность в else добавить что-то типа setZoneId(3491)? То есть мы проверяем есть ли у нас в этой зоне филиал, а если нет - то филиалом будет Киев. Ну или как в else выводить геособщение созданное для Киева

Змінено користувачем zeyser
Надіслати
Поділитися на інших сайтах


у меня такой вопрос, как правильно установить только города России на ранее полную установленную версию, если сделать просто обновлении через ВАШ_САЙТ/install-geoip и установить только города России, то пишет что ваш регион не определен и если в ручную выбрать город из списка то они не выбираются

Надіслати
Поділитися на інших сайтах

 

1. Подскажите, пожалуйста, где можно найти все id для getZoneId(Киев = 3491)?

2. Есть ли возможность в else добавить что-то типа setZoneId(3491)? То есть мы проверяем есть ли у нас в этой зоне филиал, а если нет - то филиалом будет Киев. Ну или как в else выводить геособщение созданное для Киева

1. Я забыл, что у вас OC 2, там другие ID, можно запросами получить (level = 3 - районы, level = 4 - города)

6dd35bafa6.jpg99eec4d220.jpg

 

2. Если вы используете геосообщения, то нет смысла искать id, задайте для каждого города свое сообщение, для остальных будте текст по-умолчанию:

$geoip = $this->registry->get('geoip');
$data['message'] = $geoip->getRule('message', 'Здесь текст по-умолчанию');

или так:

// Для городов, у которых нет геосообщения выводим "Вы из Киева"
$data['message'] = $geoip->getRule('message', 'Вы из Киева');
Надіслати
Поділитися на інших сайтах

 

Приветствую! 

Заметил такую ошибку, что может быть?

 

Где-то до отправки заголовков проскочил какой символ, может пробел или bom https://opencartforum.com/files/file/2153-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2-%D1%81-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9-utf-8-%D1%81-bom/

Надіслати
Поділитися на інших сайтах

Вот у вас на вашем примере в таблице fias есть fias_id, offname. Как их получить в контроллере? В контроллере geoip.php есть даже такая строка $zone_name = $this->geoip->getZoneName(); Только она возвращает пустую строку и getZoneId что-то пустую строку возвращает.

Мне еще надо чтобы человек при заходе на сайт во всплывающем окне видел филиал по области не зависимо от того с какого населенного пункта этой области он заходит. 

Змінено користувачем zeyser
Надіслати
Поділитися на інших сайтах


Если город определился, не должны возвращать пустые строки.

Надіслати
Поділитися на інших сайтах

Если город определился, не должны возвращать пустые строки.

Контроллер bank_transfer

$geoip = $this->registry->get('geoip');
$data['zone_test'] = $geoip->getZoneName();
$data['zone_test2'] = $geoip->getZoneId();

tpl

  <p><b><?php echo var_dump($zone_test); ?></b></p>
  <p><b><?php echo var_dump($zone_test2); ?></b></p>

на сайте http://shot.qip.ru/00N9ey-1krBdQX2z/

Надіслати
Поділитися на інших сайтах


Контроллер bank_transfer

$geoip = $this->registry->get('geoip');
$data['zone_test'] = $geoip->getZoneName();
$data['zone_test2'] = $geoip->getZoneId();

tpl

  <p><b><?php echo var_dump($zone_test); ?></b></p>
  <p><b><?php echo var_dump($zone_test2); ?></b></p>

на сайте http://shot.qip.ru/00N9ey-1krBdQX2z/

При помощи экспериментов определил что getShortCityName(),getCityName(),getPopupCityName() выводят название населенного пункта. А вот getZoneName(), getCountryName(), getZoneId() пустые строки

Надіслати
Поділитися на інших сайтах


Ответил в личку.

Надіслати
Поділитися на інших сайтах

Здравствуйте! А возможно объединить (если это уже по умолчанию не реализовано, конечно)) определение города с выводом пунктов самовывоза сразу этого же города в этом модуле https://opencartforum.com/files/file/1217-пункты-выдачи-товаров-на-яндекскарте/ или подобном https://opencartforum.com/files/file/2275-модуль-пункты-самовывоза-для-opencart-153/  ?

Надіслати
Поділитися на інших сайтах


progroman, ответьте мне пожалуйста, как правильно переустановить модуль что бы включенные были только города РФ

Надіслати
Поділитися на інших сайтах

Удалите таблицу fias и запустите install-geoip

Надіслати
Поділитися на інших сайтах

 

Здравствуйте! А возможно объединить (если это уже по умолчанию не реализовано, конечно)) определение города с выводом пунктов самовывоза сразу этого же города в этом модуле https://opencartforu...на-яндекскарте/ или подобном https://opencartforu...я-opencart-153/  ?

 

Наверно, как-то можно. Я не знаю, можно ли в эти модули передать текущий город.

Надіслати
Поділитися на інших сайтах

Удалите таблицу fias и запустите install-geoip

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

Змінено користувачем Nameless
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.