我正在使用Magento Community Edition 1.9.0.1并正确创建并注册了我的模块,但我似乎无法检测到运输方式.基本上,如果选择统一费率或免费送货,我想隐藏货到付款.这是我的观察者类的代码:
class Kol_PaymentToggle_Model_Observer { public function paymentMethodIsActive(Varien_Event_Observer $observer) { $event = $observer->getEvent(); $method = $event->getMethodInstance(); $result = $event->getResult(); $quote = $observer->getEvent()->getQuote(); $shippingMethod = $quote->getShippingAddress()->getShippingMethod(); if($shippingMethod == "standardshipping" || $shippingMethod == "free") { if($method->getCode() == 'cashondelivery' ) { $result->isAvailable = false; } } } }
我猜我没有使用正确的运输方式代码名称或付款方式代码名称,但我不确定.有人有什么建议吗?
编辑:
我只启用了3种送货方式:
>收集商店标题=收藏商店方法名称=收藏商店(Extension link)
>统一费率标题=标准交付方式名称=标准运输
>免费送货标题=免费送货方式名称=免费
编辑2:
config.xml的输出
<?xml version="1.0"?> <config> <modules> <Kol_PaymentToggle> <version>0.0.1</version> </Kol_PaymentToggle> </modules> <frontend> <events> <payment_method_is_active> <observers> <paymentfilter_payment_method_is_active> <type>singleton</type> <class>Kol_PaymentToggle_Model_Observer</class> <method>paymentMethodIsActive</method> </paymentfilter_payment_method_is_active> </observers> </payment_method_is_active> </events> </frontend> </config>
希望这些额外的信息可以证明对我有用!