【发布时间】:2011-11-26 03:17:35
【问题描述】:
我正在寻找一种在 onestepcheckout 过程中从用户购物车中删除优惠券代码的方法。具体来说,如果用户进入的国家/地区不是美国,那么我想删除我们的免费送货优惠券(如果已设置),并将其替换为提供国际订单运费折扣的优惠券。
我可以编写所有其余的代码,基本上我只是在寻找一个允许我在结帐过程中删除设置的优惠券代码的功能(如果添加新优惠券的代码有很大不同,那将也有帮助)。
【问题讨论】:
我正在寻找一种在 onestepcheckout 过程中从用户购物车中删除优惠券代码的方法。具体来说,如果用户进入的国家/地区不是美国,那么我想删除我们的免费送货优惠券(如果已设置),并将其替换为提供国际订单运费折扣的优惠券。
我可以编写所有其余的代码,基本上我只是在寻找一个允许我在结帐过程中删除设置的优惠券代码的功能(如果添加新优惠券的代码有很大不同,那将也有帮助)。
【问题讨论】:
我不知道 onestepcheckout 是如何工作的,但是在 onepage checkout 中,您可以捕获事件“checkout_controller_onepage_save_shipping_method”并设置如下优惠券代码:
function onSaveShippingMethod($observer) {
$quote = $observer->getEvent()->getQuote();
//remove coupon code
$quote->setCouponCode('');
$quote->collectTotals()->save();
}
将上面的方法放到你的观察者类中并修改 config.xml 来捕获事件。
【讨论】: