2016-11-17 18 views
0

私はこのプラグインをインストールしている:私はプラグインの中に「検索」をテストするときhttps://tah.wordpress.org/plugins/geoip-detect/Wordpressプラグインを使用してIPから国を取得するGeoIP検出?

プラグインが正常に動作するようです、それは私の地理情報を返します。 しかし、私は私のワードプレスのページの1つの中でコードを実装しようとすると動作しません。

$ip = $_SERVER['REMOTE_ADDR']; 
$userInfo = geoip_detect2_get_info_from_current_ip($ip); 
echo $userInfo->country->name; 

私は、単一製品が表示されるネイティブのwoocommerceページから関数を呼び出しています。 しかし、関数は何も返しません。 geoip_detect2_get_info_from_current_ip()という関数を呼び出すために何かを追加する必要がありますか?

は、私も試してみました:

<?php echo do_shortcode("[geoip_detect2 property='country']"); ?> 

それはどちらか、何も返しません。 godaddyのコード編集ツールで編集しているので、エラーが見つからない可能性があります。

答えて

2

:あなたののfunctions.phpにこれを追加します。私はhttp://www.geoplugin.netを使って国情報を取得しています。 IPアドレスを取得するにはこの機能を使用しています

function get_client_ip() { 
    $ipaddress = ''; 
    if (getenv('HTTP_CLIENT_IP')) 
     $ipaddress = getenv('HTTP_CLIENT_IP'); 
    else if(getenv('HTTP_X_FORWARDED_FOR')) 
     $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); 
    else if(getenv('HTTP_X_FORWARDED')) 
     $ipaddress = getenv('HTTP_X_FORWARDED'); 
    else if(getenv('HTTP_FORWARDED_FOR')) 
     $ipaddress = getenv('HTTP_FORWARDED_FOR'); 
    else if(getenv('HTTP_FORWARDED')) 
     $ipaddress = getenv('HTTP_FORWARDED'); 
    else if(getenv('REMOTE_ADDR')) 
     $ipaddress = getenv('REMOTE_ADDR'); 
    else 
     $ipaddress = 'UNKNOWN'; 

    return $ipaddress; 
} 

function ip_details($url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    $data = curl_exec($ch); 
    curl_close($ch); 

    return $data; 
} 

これは私のページテンプレートにあります。

<?php 
    $myipd = get_client_ip(); 
    $url = 'http://www.geoplugin.net/json.gp?ip='.$myipd; 
    $details = ip_details($url); 
    $v = json_decode($details); 
    $mycountry = $v->geoplugin_countryName; 
?> 
0

はたぶんのgeoip-検出機能があなたのスコープの外に(非常に奇妙なことが何か)です。私は私のワードプレスのサイトhttp://iradiofind.com/stations/にIPによってGEOを実装しようとしている

require_once ABSPATH . '/wp-content/plugins/geoip-detect/geoip-detect.php'; 
0

私は最近、カスタムソリューションのための同じプラグインを使用していた - geoip_detect2_get_client_ip() - - 代わりにそれを使用しようとする私は、内蔵のIP検出機能を持つプラグインに気づきましたか?

は、あなたのコードから編集:

$ip = geoip_detect2_get_client_ip(); 
$userInfo = geoip_detect2_get_info_from_current_ip($ip); 
echo $userInfo->country->name; 

この機能は、同様に構築されたキャッシュ機能を持っており、私のそれは非常に速く見えたテストで。

関連する問題