我对此主题有多个问题
正如标题所述,我需要在下订单并接受付款时找到正确的挂钩。
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核心类来解决我的问题?为了分解它,我想在下订单并且状态设置为接受或远程接受付款后执行。
嗯,我希望我不是同时要求很多东西,但正如你所看到的,我有兴趣掌握这些东西,但在此过程中遇到了一些麻烦。现在一直在努力,特别是在没有运气的情况下寻找几天的答案。
问候!
答案 0 :(得分:9)
我假设您使用的是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的新名称(别名)