我的问题:
我想在结帐页面开始之前使用观察者,因为根据购物车中的产品,如果它不符合某些条件,我想禁用运输。
我正在使用 [controller_action_predispatch_checkout_onepage_index]事件观察器,这基本上是在结帐页面开始加载之前调用...我能够获取所有产品和报价信息,但没有找到任何禁用运输的方法。
我在寻找什么,
从观察者那里,是否可以通过调用某些 magento 方法或任何其他解决方案来禁用运输?
覆盖 collectRates()
在收到很少的回复后,我尝试使用下面给出的代码覆盖 collectRates() 方法
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier('flatrate');
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethod('flatrate');
$method->setMethodTitle($this->getConfigData('name'));
if ($request->getFreeShipping() === true || $request->getPackageQty() == $this->getFreeBoxes()) {
$shippingPrice = '0.00';
}
$method->setPrice($shippingPrice);
$method->setCost($shippingPrice);
$result->append($method);
虽然,我也不想启用统一运费方式。我只想禁用运输,或者选择回复类似
- 免运费 $0.00
用户可以选择继续下一步。请从这里帮助我.. 我应该在 $method->setCarrier('??????'); 中使用什么 或者我需要在上面的代码中做哪些更改?