Prestashop 一步结帐以编程方式更改运营商

Prestashop one step checkout programatically change carrier

我正在处理一个问题,我一直在处理一个与购物车规则几乎相同的模块,如果您有特定类型的产品并且购物车中有一定数量,该模块会设置一个免费送货承运人,这可以通过我知道的折扣代码来实现,但是要求是特定的,这样做......不使用折扣代码,所以,该网站启用了一步结账,该模块在5 步结帐,但是 DisplayBeforePayment 钩子不起作用,我知道它可能因为 ajax 调用而不起作用,为了简单起见,我该怎么做才能让我的模块使用一步结帐? (订单 opc 控制器)。提前致谢!

我认为您需要使用不同的钩子。请查看 this 页面。 如果您搜索 "DisplayBeforePayment",您会看到它仅在 /controllers/front/OrderController.php 中使用。 5 步结帐使用此控制器。

一步结账使用不同的控制器:/controllers/front/OrderOpcController.php.

DisplayBeforePayment 钩子在该控制器中不存在,所以我认为您的模块无法在单页结帐时工作。