首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在店前付款后调用功能?

如何在店前付款后调用功能?
EN

Stack Overflow用户
提问于 2016-12-15 18:13:46
回答 3查看 3.1K关注 0票数 0

我正在建立一个自定义模块在商店前,我需要执行付款后,接受和电子邮件已经发送。在mymodule.php中,我有以下钩子:

代码语言:javascript
复制
public function hookActionValidateOrder($params) {

    $order = $params['order'];
    $customer = $params['customer'];
    $valuesToinsert="";
    $attrValue=array();
    etc...

 }

通常都会执行。我试过actionOrderStatusPostUpdate,actionPaymentConfirmation,但是似乎没有一个被调用。我不知道它是否相关,但我使用的是opc模块和产品是免费的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-16 13:54:00

正如您在问题中提到的,您正在尝试的订单是免费的,在这种情况下,任何在付款时调用的钩子都不会调用。

因此,钩子(即actionOrderStatusPostUpdate,actionPaymentConfirmation,hookActionObjectOrderAddAfter等)将永远不会被调用,因为它们是从PaymentModule.php类调用的,而且在自由订单的情况下根本不会调用它们。

不幸的是,当一个免费订单被放置时,没有调用钩子。如果您想对免费订单采取任何操作,那么只能通过在FreeOrder中重写ParentOrderController.php类或_checkFreeOrder()函数来做到这一点

票数 0
EN

Stack Overflow用户

发布于 2016-12-15 18:35:03

这个钩子是在客户确认他的手推车后下订单时调用的。触发这个钩子的函数是来自PaymentModule类的PaymentModule。当客户单击结帐中的en确认按钮时,由支付模块调用。每个支付模块都应该在某个时刻调用此功能。但是,如果您没有支付模块在您的特定过程中,由于免费的产品,这个钩子可能永远不会被调用。无论如何,您可以订阅actionObjectOrderAddAfter钩子或类似的命令,以便在下新订单时得到通知:

代码语言:javascript
复制
public function hookActionObjectOrderAddAfter($params)
{
        //$params['object'] contains specific object, in this case your Order object
}

如果您需要有关订单状态的信息,您也可以订阅钩子actionOrderHistoryAddAfter。钩子actionOrderStatusUpdate仅在changeIdOrderState函数中触发。如果由于某种原因,订单状态发生了更改,而没有调用此函数,那么您将错过通知。

祝好运

票数 2
EN

Stack Overflow用户

发布于 2020-03-02 17:14:14

老帖子,但想放弃评论,以帮助别人。此函数在订单提交后调用,并得到确认页面,无论是否提交了付款:

代码语言:javascript
复制
public function hookDisplayOrderConfirmation($params) { }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41170756

复制
相关文章

相似问题

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