Magento:购物车,付款方式订购

时间:2015-11-27 10:21:37

标签: php magento

我正在运行1.9.x并拥有3种不同的付款方式,亚马逊支付,PayPal快递,鼠尾草支付和继续购物按钮。在购物车页面上,我试图重新排序这些在结帐类型UL中的显示方式。

我目前有以下我认为是默认

<ul class="checkout-types">
        <li><?php if($this->getContinueShoppingUrl()): ?>
                                <button type="button" title="<?php echo $this->__('Continue Shopping') ?>" class="button btn-continue btn-inline" onclick="setLocation('<?php echo $this->getContinueShoppingUrl() ?>')"><span><span><?php echo $this->__('Continue Shopping') ?></span></span></button>
                            <?php endif; ?></li>
        <?php foreach ($this->getMethods('top_methods') as $method): ?>
            <?php if ($methodHtml = $this->getMethodHtml($method)): ?>
             <li><?php echo $methodHtml; ?></li>
            <?php endif; ?>
        <?php endforeach; ?>
        </ul>

我的目标是在继续购物按钮和亚马逊以及贝宝之后显示现在付费按钮进入一页结帐按钮。我花了几个小时查看代码,似乎无法找到改变$ method数组上排序顺序的方法。

2 个答案:

答案 0 :(得分:1)

getMethods($name)方法实际上将用于排序到布局文件中的配置。

作为布局中别名的top_methods的示例,它将从系统中的XML文件中查找该句柄上的所有更新,如果是PayPal,则考虑到RWD是您正在使用的包app/design/frontend/rwd/default/layout/paypal.xml

这是它的xml块部分:

    <block type="paypal/express_shortcut" name="checkout.cart.methods.paypal_express.top" before="checkout.cart.methods.onepage.top" template="paypal/express/shortcut.phtml">
        <action method="setIsQuoteAllowed"><value>1</value></action>
        <action method="setShowOrPosition"><value>after</value></action>
    </block>

在此默认主题配置中,paypal express checkout位于块checkout.cart.methods.onepage.top之前,该块被top_methods配置为after="-"中的最后一个块:

    <block type="core/text_list" name="checkout.cart.top_methods" as="top_methods" translate="label">
            <label>Payment Methods Before Checkout Button</label>
            <block type="checkout/onepage_link" name="checkout.cart.methods.onepage.top" template="checkout/onepage/link.phtml" after="-" />
    </block>

总而言之,您需要做的是浏览您正在使用的付款方式的XML布局文件,以及set the before and after depending on the sort you need。如果你启用了缓存,你需要刷新它,你应该得到预期的结果。

一个例子是:

Change display order of checkout buttons in Magento

答案 1 :(得分:0)

将以下内容添加到结帐布局中,将问题排序

before="checkout.cart.methods.amazonpayments_pay.top"