magento 如果有一个方法的发货金额为零,则删除所有其他发货方法

pkwftd7m  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(147)

是否可以删除除发货量为0shipping methods之外的所有shipping methods
可能有一个promotion rule将返回运费金额0,因此不能删除它。

rqqzpn5f

rqqzpn5f1#

Display only shipping methods with price 0 (zero) if any
在我的模块中,我将Mage_Checkout_Block_Onepage_Shipping_Method_Available块重写为:

配置文件xml

<global>
    <blocks>
        <checkout>
            <rewrite>
                <onepage_shipping_method_available>Excellence_Subscription_Block_Checkout_Onepage_Shipping_Method_Available</onepage_shipping_method_available>
            </rewrite>
        </checkout>
    </blocks>
</global>

卓越订购阻止结帐单页发货方法可用

<?php

class Excellence_Subscription_Block_Checkout_Onepage_Shipping_Method_Available extends Mage_Checkout_Block_Onepage_Shipping_Method_Available {

    public function getShippingRates() {
        $groups = parent::getShippingRates();
        $free = array();
        foreach ($groups as $code => $_rates) {
            foreach ($_rates as $_rate) {
                if (!$_rate->getPrice() > 0) {
                    $free[$code] = $_rates;
                }
            }
        }
        if (!empty($free)) {
            return $this->_rates = $free;
        }
        return $groups;
    }

}

相关问题