如何在Wordpress中使用基于位置的搜索?

时间:2010-12-09 06:35:57

标签: php wordpress wordpress-plugin

我最近为优惠券网站下载了wordpress,希望为在线用户提供按邮政编码搜索优惠券/优惠的选项。我该怎么做?我知道我需要有一个可用的邮政编码列表,但我不知道我会怎么做。也许有一个我不知道的插件/ mod。

我真的很感激和帮助。此网站将由我们的客户发布到网站的条目和优惠券交易和其他优惠驱动。 消费者可以按类别,按服务类型,按提供商,按金额和按位置搜索数字。

我希望这是足够的信息来帮助。

非常感谢。

2 个答案:

答案 0 :(得分:1)

最好的方法是将优惠券存储在数据库中,每条记录上都有相关的zipcode。最好索引邮政编码。

然后,您将在数据库中搜索与用户输入的邮政编码相同的所有优惠券,或者可能是用户的邮政编码。

CODE / DB

这就是我接近它的方式:

首先,在你的wordpress数据库中备份一张表来包含优惠券,这取决于你想要存储什么信息,但是有些内容如下:

Table: CouponStore
Rows:
ID | Name | Type | Description | Store | ZipCode

然后当客户输入他们的邮政编码时,抓住它(可能使用XMLHttpRequest对象)。

$ZipCode = acleaningfunction($_GET['ZipCode']);
if (isset($ZipCode) && !empty($$ZipCode)) {
    $result = mysql_query("SELECT * FROM CouponStore WHERE `ZipCode` = '".$ZipCode."'");
    if ($result) {
        while ($row = mysql_fetch_assoc($result)) {
            if (!$row) {
                die('No rows returned.');
            } else {
                return $row['Name'].', '.$row['Store'].', '.$row['Description'].', '.$row['Type'].', '.$row['ZipCode'].', '.$row['ID'];
            }
        }
    } else {
        die('Invalid query: '.mysql_error());
    }
}

不保证该代码是完美的,但它会给你一个想法。如果你想要更多与wordpress完全相关的深度代码,并且有效,请在这里发布,我会特意加入它。

干杯 查理

答案 1 :(得分:1)

您可以使用服务(例如MaxiMindGeo-IO)来获取用户位置。然后,如果优惠券位于用户附近,您可以从数据库中提取优惠券。

这需要一些自定义编码,但如果你打算建立一个优惠券网站,那么我会假设你不怕做一些编码:)

修改

首先使用Geo-IO,您将获得用户的IP地址:

$IP = $_SERVER['REMOTE_ADDR'];

然后你要创建一个请求并从Geo-IO获得结果:

$data = file_get_contents("http://api.geoio.com/q.php?key=[Your_Key_Here]&qt=geoip&d=pipe&q=".$IP);

然后,您要做的是将结果分解为数组:

$location = explode('|', $data);

现在,您已准备好使用$ location中的数据在您的数据库中搜索用户附近的优惠券。如果我在哪里,您将优惠券存储在数据库中,并使用经度和纬度作为位置数据。然后,您可以进行一些相当简单的数学运算,以确定距离用户一英里的指定数字内的优惠券。一个好的'谷歌搜索应该可以帮助你解决这个问题。

希望这有帮助!