之前碰到一个客户的需求,他同时提供支付宝和货到付款两种支付方式,但由于货到付款由顺丰提供,运费比普通快递要高出不少,所以客户希望如果买家在配送方式那里选择的是普通快递(比如圆通,只要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>
……………………………………………………………………
同理,你可以根据你自己的需要来做判断,控制支付方式的显示。
时间: 2024-09-21 06:10:43