Magneto - 阻止来自特定州的订单

时间:2015-11-18 00:31:04

标签: magento geolocation ip-geolocation

我希望将Magento中的订单限制为特定状态,或者更确切地说,阻止特定状态。

我销售的产品我不希望本地竞争能够轻松购买。

使用某种形式的地理位置在网站上显示横幅更加清晰,说只有当IP似乎来自该州时,我们才允许来自您所在州的订单。< / p>

或者也许黑客会使用地理位置,如果IP基于特定状态,css会隐藏添加到购物车按钮?

任何建议! 谢谢!

编辑:我已经能够获得这样的状态: 但是怎么说&#34;如果state = X,那么加载这个css文件,可以隐藏添加到购物车,显示横幅等等。&#34;

<?php 
function getClientIP(){
  if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } else {
    $ip = $_SERVER['REMOTE_ADDR'];
 }
  return $ip;
}

$ipaddress = getClientIP();

function ip_details($ip) {
  $json = file_get_contents("http://ipinfo.io/{$ip}/geo");
  $details = json_decode($json, true);
  return $details;
}

$details = ip_details($ipaddress);
echo $details['region'];

?>

2 个答案:

答案 0 :(得分:1)

我反对使用css隐藏CTA按钮,如果有人只是检查页面并取消隐藏它会怎样。我建议你做类似的事情。

//考虑到您可以在服务器端使用php逻辑获取位置。

$details = ip_details($ipaddress);
$loc = $details['region'];
blockedList = array();      //maintain the list of blocked states here.
if(in_array($loc,$blockedList){
    //display banner, hide add-to-cart button
} else {
    //display add-to-cart button
}

答案 1 :(得分:0)

由于某些原因,这个magento扩展程序不容易找到,但它确实有效!

http://www.magentocommerce.com/magento-connect/regions-manager.html