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

例如,有的时候我们的商城并不是支持所有地区都可以货到付款的。

那么这个时候就会根据不同城市 选择性的显示货到付款支付方式。

但首先我们要在后台做一些可控的配置

例如:


当然还要有那些城市是可以货到付款的。这里就不显示出来了。(因为我自己是在另一个 选项卡了配置这个信息的。)

(后台开发可以去网上搜索教程。)

之后在文件

app\design\frontend\base\default\template\checkout\onepage\payment\methods.phtml中

代码

 $methods = $this->getMethods();
    $oneMethod = count($methods) <= 1;

下添加代码:

$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); // 获取货到付款的城市
    }

然后找到代码

 foreach ($methods as $_method):
        $_code = $_method->getCode();

下面添加 代码:

if($showCashOnDeliever){
            if($_code == "cashondelivery"){
                $destCity = $shipping->getCity();
                if(!in_array($destCity,$CityArr )){
                    continue;
                }
            }
        }
这时候你就可以结账试试了。 ^_^

--------------------------------------------------唠叨两句----------------------------------------

这只是通过判断的方式使得前台不显示货到付款的支付方式了。同样的你可以去掉任何你需要的支付方式。

当然,有人说我截取post数据修改支付方式为货到付款,那么订单支付方式当然还会是货到付款了。你若真要

细致考虑,那你就在确认订单的时候再去判断合法性。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值