Prestashop 预置模块:挂钩和订单

Prestashop 预置模块:挂钩和订单,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,关于这个话题,我有很多问题 正如标题所述,我需要找到一个正确的钩子来绑定订单和付款被接受时 1.)下订单(并付款)时,我应该在模块中绑定哪个钩子 2.)我的印象是没有通用的钩子,因为一些付款方法会自动将订单状态设置为“payed”(如成功的PayPal交易),而其他方法则要求店主手动将状态设置为“payed”。在大多数情况下,除了这两种情况外,还有其他情况吗 3.)尽管我仍然希望有一个广义的钩子,但如果没有,我将如何处理这个问题?绑定“actionPaymentConfirmation”和“di

关于这个话题,我有很多问题

正如标题所述,我需要找到一个正确的钩子来绑定订单和付款被接受时

1.)下订单(并付款)时,我应该在模块中绑定哪个钩子

2.)我的印象是没有通用的钩子,因为一些付款方法会自动将订单状态设置为“payed”(如成功的PayPal交易),而其他方法则要求店主手动将状态设置为“payed”。在大多数情况下,除了这两种情况外,还有其他情况吗

3.)尽管我仍然希望有一个广义的钩子,但如果没有,我将如何处理这个问题?绑定“actionPaymentConfirmation”和“displayPaymentReturn”以涵盖这两种情况

4.)为什么当我在后台将订单状态设置为“payed”时,钩子“actionPaymentConfirmation”从未调用过。我的代码如下所示

public function install() {

   if (!parent::install() || !$this->registerHook("actionPaymentConfirmation")) {
        return false;
    }
    return true;
}

public function actionPaymentConfirmation($params) {
    print_r($params);   // stepping through with XDebug but the function is never being invoked
}
5.)是否有人知道一个免费模块正在做一些类似的事情,我可以深入研究以获得更好的想法

或者重写Prestashops核心类来解决我的问题会更容易吗?为了解决这个问题,我想在下了订单并且状态设置为payment was accepted或Remote accepted之后执行这些操作

嗯,我希望我不会同时要求很多东西,但正如你所看到的,我对掌握这些东西很感兴趣,但在这过程中会遇到一些麻烦。几天来,我一直在努力,尤其是在没有任何运气的情况下寻找答案


问候

我想你是用PrestaShop 1.5的

1 actionValidateOrder(对于新订单)和actionOrderStatusPostUpdate(您可以在此处查看“已付款”状态)

2就像1

3就像1

4钩子是actionOrderStatusPostUpdate

五,

6看5


注意:actionValidateOrder newOrder的新名称(别名)非常有用。这正是我需要的。谢谢
public function install()
{
    return (parent::install()
        AND $this->registerHook('newOrder')
        AND $this->registerHook('actionOrderStatusPostUpdate'));
}

public function hookNewOrder($params)
{
    return $this->hookActionOrderStatusPostUpdate($params);
}

public function hookActionOrderStatusPostUpdate($params)
{
    //$params['newOrderStatus'] // after status changed
    //$params['orderStatus'] // after order is placed
}