当有多种付款方式时,有没有办法让信用卡付款方式始终被选中并最初打开?这是在Checkout过程中。
答案 0 :(得分:1)
这就是我最终做的事情。
将C:\ Consulting \ SoftStarShoes \ website \ app \ design \ frontend \ base \ default \ template \ checkout \ onepage \ payment \ methods.phtml文件复制到我主题中的等效目录。
在第一条评论后面的顶部添加一个新的循环计数器变量$ i:
$ i = 1;
在<?php if( sizeof($this->getMethods()) > 1 ): ?>
首先进行条件检查时,添加以下条件(基本上,它会检查这是否是第一种付款方式并将其设置为已检查)
<?php if( $i == 1 ): ?>
<input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')" class="radio" />
<?php else: ?>
<input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> class="radio" />
<?php endif; ?>
其他条件与之前相同。
在<?php endforeach; ?>
之前我添加了这一行(<?php
围绕它):
$ i = $ i + 1;
编辑:
实际上,唯一可靠的跨浏览器方式是将文件复制到这里:\ app \ design \ frontend \ base \ default \ template \ payment \ form \ ccsave.phtml到我的主题,然后删除style =“display:none;”从第一个开始。
修复它以便表单始终打开,上面的代码确保默认选中它。
答案 1 :(得分:0)
您可以使用观察者
在之前的步骤中尝试此操作try {
$quote->getPayment()->setMethod('method_code')->getMethodInstance();
} catch ( Exception $e ) {
Mage::logException($e);
}
但请注意,此付款方式必须处于有效状态且可以使用,然后您也可以设置此方法,并且必须检查之前是否选择了付款方式,这样您就不会更改用户选择或强制执行相同的付款每个订单的方法,您可能需要更改一些前端代码以打开付款方式表单。