西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

magento根据运送城市设置支付方式

时间:2016-10-17 15:17来源:未知 作者:好模板 点击:
例如,有的时候我们的magento商城并不是支持所有地区都可以货到付款的。 那么这个时候就会根据不同城市 选择性的显示货到付款支付方式。 但首先我们要在后台做一些可控的配置 例
例如,有的时候我们的magento商城并不是支持所有地区都可以货到付款的。
那么这个时候就会根据不同城市 选择性的显示货到付款支付方式。
但首先我们要在后台做一些可控的配置
例如:
magento根据运送城市设置支付方式
 
当然还要有那些城市是可以货到付款的。这里就不显示出来了。(因为我自己是在另一个 选项卡了配置这个信息的。)
(后台开发可以去网上搜索教程。)
之后在文件
app\design\frontend\base\default\template\checkout\onepage\payment\methods.phtml中 
代码
[php] view plain copy
$methods = $this->getMethods();  
   $oneMethod = count($methods) <= 1;  
 
下添加代码:
[php] view plain copy
$showCashOnDeliever = Mage::getStoreConfig('payment/cashondelivery/accordingCityActive'); // 根据自己编写情况找到实际位置  
    if($showCashOnDeliever){  
        $checkout = Mage::getSingleton('checkout/session')->getQuote();  
        $shipping = $checkout->getShippingAddress(); // 获取当前运送的城市  
        $CityStr = Mage::getStoreConfig('payment/cashondelivery/city');  
        $CityArr = explode(' ',$CityStr); // 获取货到付款的城市  
    }  
然后找到代码
[php] view plain copy
foreach ($methods as $_method):  
       $_code = $_method->getCode();  
 
下面添加 代码:
[php] view plain copy
if($showCashOnDeliever){  
            if($_code == "cashondelivery"){  
                $destCity = $shipping->getCity();  
                if(!in_array($destCity,$CityArr )){  
                    continue;  
                }  
            }  
        }  
这时候你就可以结账试试了。 ^_^
--------------------------------------------------唠叨两句----------------------------------------
这只是通过判断的方式使得前台不显示货到付款的支付方式了。同样的你可以去掉任何你需要的支付方式。
当然,有人说我截取post数据修改支付方式为货到付款,那么订单支付方式当然还会是货到付款了。你若真要
细致考虑,那你就在确认订单的时候再去判断合法性。
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容