我创建了一个带有Observer的Magento模块,该模块应隐藏某种送货方式,但我无法让它工作。
class Company_Modulename_Model_Observer
{
public function hideShippingMethods(Varien_Event_Observer $observer)
{
if (Mage::getDesign()->getArea() === Mage_Core_Model_App_Area::AREA_FRONTEND) {
$quote = $observer->getEvent()->getQuote();
$store = Mage::app()->getStore($quote->getStoreId());
$carriers = Mage::getStoreConfig('carriers', $store);
$newPrice = 10;
foreach ($carriers as $carrierCode => $carrierConfig) {
if ($carrierCode == 'flatrate') {
$store->setConfig('carriers/flatrate/price', $newPrice);
$store->setConfig('carriers/flatrate/showmethod', '0');
$store->setConfig('carriers/flatrate/active', '0');
$store->setConfig('carriers/flatrate/title', 'Test title');
}
}
}
}
}
在所有setConfig设置中,只有$ store-> setConfig('carriers / flatrate / title','Test title');的工作原理。
因此,结账时交付方法的标题会发生变化,但价格不会改变,但仍会显示。
如何隐藏或更改某种shippig方法的价格?