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