如何在Magento中有多种付款方式时将信用卡付款方式设置为默认(选定)

时间:2012-01-31 01:25:51

标签: magento

当有多种付款方式时,有没有办法让信用卡付款方式始终被选中并最初打开?这是在Checkout过程中。

2 个答案:

答案 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);
}

但请注意,此付款方式必须处于有效状态且可以使用,然后您也可以设置此方法,并且必须检查之前是否选择了付款方式,这样您就不会更改用户选择或强制执行相同的付款每个订单的方法,您可能需要更改一些前端代码以打开付款方式表单。

相关问题