5

我对此主题有多个问题

正如标题所述,我需要在下订单并接受付款时找到正确的挂钩来绑定。

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

2.) 我的印象是没有通用的钩子,因为某些支付方式将订单状态自动设置为“已付款”(如成功的 PayPal 交易),而其他方法需要店主手动将状态设置为“付了'。除了这两个必须调用以涵盖大多数情况外,还有其他的吗?

3.)尽管我仍然希望有一个通用的钩子,如果没有,我将如何解决这个问题?绑定“actionPaymentConfirmation”以及“displayPaymentReturn”以涵盖这两种情况?

4.) 为什么当我在后台将订单状态设置为“已付款”时,挂钩“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.) 有没有人知道一个免费模块做一些类似的事情,我可以深入研究以获得更好的想法?

6.) 或者重写 Prestashops 核心类来解决我的问题是否更容易?为了分解它,我想在下订单并且状态设置为付款被接受或远程接受后执行一些东西。

好吧,我希望我不会同时要求太多东西,但正如你所见,我对掌握这些东西很感兴趣,但在此过程中遇到了一些麻烦。现在一直在尝试,特别是在没有任何运气的情况下寻找答案。

问候!

4

1 回答 1

10

我假设您使用 PrestaShop 1.5

1 actionValidateOrder (新订单) & actionOrderStatusPostUpdate (在这里你可以查看“已付款”状态)

2 喜欢 1。

3 喜欢 1。

4 钩子是 actionOrderStatusPostUpdate

5

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
}

6 看 5。

注意:actionValidateOrder newOrder 的新名称(别名)

于 2013-11-26T11:16:21.980 回答