Magneto - 来自特定状态的阻止订单

Posted

技术标签:

【中文标题】Magneto - 来自特定状态的阻止订单【英文标题】:Magneto - block orders from specific state 【发布时间】:2015-11-18 00:31:03 【问题描述】:

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

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

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

或者,如果 IP 是基于特定状态的,则可能是使用地理位置,并且 css 隐藏添加到购物车按钮?

任何建议! 谢谢!

编辑:我已经能够得到这样的状态: 但是怎么说“如果 state=X,则加载这个 css 文件,它可以隐藏添加到购物车、显示横幅等”

<?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'];

?>

【问题讨论】:

【参考方案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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于Magneto - 来自特定状态的阻止订单的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止SAP CRM订单创建好之后,自动被置为传输状态这一行为

Chrome 扩展:阻止来自外部域的内容被加载到特定域的页面中

我想创建一个黑名单命令来阻止来自特定公会 discord.py 的邀请

当付款通过PayPal进入时,如何阻止magento将付款状态设置为“已完成”

如何阻止国家/地区的admob广告

在 PHP 中阻止来自我的网站的特定 IP 块