php订单修改吗,php – Prestashop – 验证付款时更改订单状态

验证付款后,订单状态将变为“付款验证”(法语中的“Paiementaccepté”).我想在验证付款时设置另一个状态,因此历史记录将显示以下内容:

Current status : My personnal status

History :

My personnal status

Payment validated

为此,我使用了hook actionOrderStatusPostUpdate.这是我的代码:

public function hookActionOrderStatusPostUpdate($aParams) {

$oOrder = new Order($aParams['id_order']);

if($aParams['newOrderStatus']->id == Configuration::get('PS_OS_PAYMENT')) {

$oOrder->setCurrentState(Configuration::get('XXXXXX_STATUS_WAITING'));

$oOrder->save();

}

}

配置值已正确定义.此代码有效,因为我看到状态已更改.但事情是在更改为“付款已验证”之前已更改.我不明白为什么.历史看起来像这样:

Current status : Payment validated

History :

Payment validated

My personnal status

我应该怎样做才能使我的个人状态显示为最后状态?

解决方法:

hookActionOrderStatusPostUpdate钩子调用是由changeIdOrderState进行的,但是在调用changeIdOrderState之后,就像在https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/controllers/admin/AdminOrdersController.php#L521-L542中一样,添加到order_history表

public function hookActionObjectOrderHistoryAddAfter($params) {

$orderHistory = $params['object'];

if($orderHistory->id_order_state == Configuration::get('PS_OS_PAYMENT')) {

$oOrder->setCurrentState(Configuration::get('XXXXXX_STATUS_WAITING'));

$oOrder->save();

}

最好的祝福

标签:php,e-commerce,hook,prestashop

来源: https://codeday.me/bug/20190528/1171479.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值