首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prestashop下的OrderConfirmationController.php页面可以执行自定义模块

prestashop下的OrderConfirmationController.php页面可以执行自定义模块
EN

Stack Overflow用户
提问于 2017-02-11 03:38:05
回答 3查看 966关注 0票数 2

我想添加一个表,当前端订单确认完成时,同样的方式,管理员也可以为客户订购。那么,在prestashop中有没有系统在下单时触发,然后模块就可以执行,或者可以直接放在订单确认控制器或管理员订单控制器上

如果可能的话,请告诉我。

示例-我已经制作了一个模块,当OrderConfirmationController.php运行或订单确认时,我想添加一条记录到新表中。同样的方式在管理订单中得到确认。

提前谢谢。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2017-02-14 19:03:43

您可以通过不同的方式跟踪订单的创建和编辑。这将完全取决于您的需求。我在下面描述一些与订单管理相关的钩子。

  1. actionObjectOrderAddBefore

如果你想在保存到数据库之前验证新订单,你可以使用这个钩子。

  • actionObjectOrderAddAfter

此挂钩将在数据库中保存新订单后执行。你可以使用这个钩子来满足你的需求。

  • actionObjectOrderUpdateBefore

此钩子将在更新现有订单之前调用。但是我不推荐使用这个钩子,因为每次更新现有顺序的任何字段时都会调用这个钩子。

  • actionObjectOrderUpdateAfter

这个钩子将在将订单的任何字段更新到数据库后立即调用。如果您想在定制表中为相应的订单创建条目,请不要使用此挂钩。

  • actionValidateOrder

只要客户下了新订单,就会执行这个钩子。如果您不依赖于支付成功,则可以使用此挂钩,因为此挂钩在创建订单后执行,但不能保证客户是否会为订单支付金额。

  • orderConfirmation

这是在客户下订单后跟踪订单详细信息的最佳和推荐的钩子。此钩子在向数据库中创建订单以及支付成功后调用。

如需更多信息或任何查询,请回复我。

票数 4
EN

Stack Overflow用户

发布于 2017-02-13 22:25:18

您可以在已创建的自定义模块中使用actionValidateOrder挂钩。每次生成订单时都会调用此钩子。

使用以下代码注册钩子(在install()函数中)

代码语言:javascript
复制
$this->registerHook('actionValidateOrder');

然后定义钩子的函数,如下所示,只要生成了新订单,就会调用该函数:

代码语言:javascript
复制
public function hookActionValidateOrder($params)
{
     --- YOUR CODE HERE ---
}
票数 1
EN

Stack Overflow用户

发布于 2017-02-11 05:35:56

您可以使用Hook或覆盖PaymentModule::validateOrder,甚至覆盖actionValidateOrder::add。这取决于你想要做什么,以及你需要什么数据。需要完成订单吗?在订单完成之前,您是否需要保存或更改某些内容?您可以在需要执行的操作之前或之后使用父函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42167372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档