Location-Based Content

时间:2016-06-03 作者:Keefer

我正在建立一个网站,该网站的页面有一个联系pod,通过高级自定义字段在wp admin中有11个不同的下拉列表。

根据用户的IP,我想显示这10个联系人中的一个(如果没有给出位置或与客户的某个“区域”不匹配,则第11个是默认联系人)。

这10个地区都以美国的部分地区为基础,但并不总是与各州相匹配(例如,加利福尼亚分为两个地区,而另一个地区可能包括弗吉尼亚州、南卡罗来纳州和北卡罗来纳州)。这些地区以外的任何人都会收到默认/国际联系人/消息。

我很难思考如何做到这一点。我已经在wp admin设置中设置了高级自定义字段,并且对从该插件输出项目感到满意,但我正在努力:

将什么用作检查IP的数据库。有现成的东西可以做这个吗

1 个回复
SO网友:Nebri

我建议使用地理定位服务查找用户IP地址的位置,例如freegeoip.net. 为了做到这一点,您需要通过php或javascript发出RESTAPI get请求。

要获取访问用户的ip地址,您可以在

<?php echo $_SERVER[\'REMOTE_ADDR\']; ?>
然后将其发送到freegeoip的restful api。网免费geoip将为您提供大量的日常查找,并可以从json api中为您提供以下信息作为示例:

{
"ip": "104.37.65.178",
"country_code": "CA",
"country_name": "Canada",
"region_code": "ON",
"region_name": "Ontario",
"city": "Burlington",
"zip_code": "L7M",
"time_zone": "America/Toronto",
"latitude": 43.4191,
"longitude": -79.8544,
"metro_code": 0
}

如您所见,您可以获得估计位置的纬度和经度,以及地区、国家、城市和估计邮政编码。一旦您获得了这些信息,那么就需要检查状态是否与您定义的区域匹配,而无需使用ip范围的“桶列表”。

我希望这有帮助。

相关推荐