阅读609 返回首页    go 阿里云 go 技术社区[云栖]


magento 开发-- 单页结账时根据选择的配送方式来控制支付方式的显示

之前碰到一个客户的需求,他同时提供支付宝和货到付款两种支付方式,但由于货到付款由顺丰提供,运费比普通快递要高出不少,所以客户希望如果买家在配送方式那里选择的是普通快递(比如圆通,只要5块),那在支付方式中就不提供货到付款这个选择项,只能选择支付宝。

      这里需要在支付的文件中获得上一步选择的配送方式,打开文件/template/checkout/onepage/payment/methods.phtml,

 

<?php $shipmethod= Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getShippingMethod();?> 

 

这个$shipmethod就是结账时买家选择的配送方式,支付方式是由一个循环输出的,在循环里做判断,跳过不想显示的支付方式(比如货到付款)

<?php foreach ($this->getMethods() as $_method): $_code = $_method->getCode() ?> <?php if($shipmethod=='yuantong' && $_code=='checkmo'){ continue; } ?> <dt> …………………………………………………………………… 

同理,你可以根据你自己的需要来做判断,控制支付方式的显示。

最后更新:2017-04-02 06:51:17

  上一篇:go 使用ruby与MS Access数据库交互
  下一篇:go magento 1.4 -- 后台权限里角色资源无法翻译的bug及解决方案