Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Подмена номера (https://javascript.ru/forum/project/76084-podmena-nomera.html)

Julia1991 03.12.2018 14:15

Подмена номера
 
Здравствуйте! Подскажите как можно сделать авто подмену номера на сайте в зависимости от страны? Сайт на вордпресс

laimas 03.12.2018 14:37

Цитата:

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

Какого номера? Вопрос для экстрасенсов? )

Julia1991 03.12.2018 14:40

Номер телефона на сайте должен меняться в зависимости от страны, через которую просматривается сайт

laimas 03.12.2018 14:46

Чей номер, сайта? Можно сделать на клиенте, если браузером поддерживается геолокация и она разрешена, в противном случае только если пользователь (зарегистрированный) указывает свою страну.
Сервером можно узнать если пользователь сообщил, ну или по базе IP.

Julia1991 03.12.2018 15:09

Подскажите скрипт, как узнать ip клиента и выдать ему соответственный номер телефона?

laimas 03.12.2018 15:18

$_SERVER['REMOTE_ADDR'], но это не обязательная гарантия, можно же и через прокси работать.

Nexus 03.12.2018 16:28

<?php

function getCountryByIP($ip=null){
  $ch=curl_init();
  $ip=$ip?:(
    isset($_SERVER['REMOTE_ADDR'])?
      $_SERVER['REMOTE_ADDR']:
      null
  );
  if(!$ip)
    return null;
        
  curl_setopt($ch, CURLOPT_URL, "http://ip-api.com/json/$ip"); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  $response=curl_exec($ch);
  curl_close($ch); 
  
  $response=json_decode($response,true);
  if(!is_array($response) or !isset($response['country']))
    return null;
  
  
  return $response['country'];
};

echo getCountryByIP()==='Russia'?'Its Russia':'Its not Russia';

Julia1991 03.12.2018 16:55

Есть такой скрипт
<script>
    $(document).ready(function() {
        if (YMaps.location.country != '') {
            var youCountry = (YMaps.location.country);
            if (youCountry === "Украина"){
                $('.contact p span').text('+3 06252 5 19 41');
            }
            else if (youCountry === "Россия"){
                $('.contact p span').text('+55555555555');
            }
            else {
                $('.contact p span').text('+0 000 000 00 00');
            }
        }
    });
</script>

Как дополнить его условием на проверку включена ли геолокация в браузере?

laimas 03.12.2018 17:11

А зачем, если используется API Яндекса, который уже возвращает страну?

Julia1991 03.12.2018 17:37

То есть если поддержка геолокации не включена в браузере, то все равно скрипт будет выдавать ту информация, которая должна выводиться для определенного условия?

laimas 03.12.2018 18:03

Цитата:

Сообщение от Julia1991
то все равно скрипт будет выдавать ту информация, которая должна выводиться для определенного условия?

Ну так страну будет определять Яндекс, возвращая ее. Яндекс зная IP клиента (запрос то клиент делает на сторонний сервер) уже по нему может и город определить, не только страну. Конечно если IP не фейковый.


Часовой пояс GMT +3, время: 19:14.