Prestashop - 付款验证后更改订单状态

2024-02-29

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

Current status : My personnal status
History :
My personnal status
Payment validated

为此,我使用挂钩 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

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


钩子操作订单状态更新后钩子调用是由changeIdOrderState进行的,但添加到order_history表是在调用changeIdOrderState之后进行的,如下所示https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/controllers/admin/AdminOrdersController.php#L521-L542 https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/controllers/admin/AdminOrdersController.php#L521-L542

您宁愿将模块绑定在经典的钩子上,例如hookActionObjectOrderHistoryAddAfter https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/classes/ObjectModel.php#L535-L537 https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/classes/ObjectModel.php#L535-L537

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();
}

此致

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Prestashop - 付款验证后更改订单状态 的相关文章

  • 通过链接导航多个对象而不重复

    我正在尝试浏览一堆带有其他对象链接的对象 我想从 id 1 开始并浏览每个对象 有些对象会循环回到之前的对象 所以我想确保每个对象只查看一次 否则我会陷入无限循环 我还希望能够通过链接导航来判断哪些对象无法访问 我认为导航顺序并不重要 这是
  • 无法打开输入文件应用程序/控制台

    我安装了 wamp 服务器和 Symfony2 框架的副本 我正在尝试使用以下命令创建一个捆绑包 php app console generate bundle nampespace IDP IDP Bundle format yml 我的
  • 带数据透视表的 Laravel 查询生成器

    我有两个带有数据透视表的表 Table tours id name country id featured Table countries id name 数据透视表country tour id country id tour id 我想
  • 将具有子目录的域转发到具有子目录的其他域

    我有一个热爱域名的客户 更喜欢转发域名 其中许多域没有与其关联的网站 它们仅用于营销和转发 我知道如何轻松地将一个域转发到另一个域 但我好奇的是如何将这些域的特定 url 转发到其他特定 url 例如 www site1 com 目录 gt
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • 如果遵循 REST 架构,如何访问 codeigniter 中的 URL 参数?

    以下是可用于访问资源的基于 REST 的有效 URL 使用codeigniter 如何访问下面传递的参数1 我在教程中看到了上述内容并设置了我的代码 然而显然 id this gt input gt get id 不起作用 Using th
  • 根据选择值显示/隐藏字段

    我试图根据我选择的字段之一的值显示和隐藏一些表单字段 我希望使用数组来保存每个选择值应该显示的内容和不应该显示的内容 以将我从大量的 switch 语句中拯救出来 但无法弄清楚如何做到这一点 我正在使用 PHP 和 jQuery 任何帮助都
  • 如何发布数组多维角度js

    我在 angularjs 中有一个数组 示例如下 scope order qty 20 scope order adress Bekasi scope order city Bekasi 这个数组可以用这个代码发布 http method
  • mongodb从不同数据库中选择

    我有大约 200 个 mongodb 数据库 每个数据库都有一个名为 Group 的集合 在该集合中有一个名为 meldingId 的字段 是否可以进行一个 mongodb 查询来查找不同数据库中的所有值 我设法通过 selectDB da
  • 在 PHP 中重新定义常量

    是否可以在 php 中重新定义由define功能 我有一个包含多个常量的类 其中包含用户数据 我正在尝试为多个用户使用该类 define ALLEGRO ID id define ALLEGRO LOGIN login define ALL
  • 参数编号无效:参数未在[重复]中定义

    这个问题在这里已经有答案了 被困在这里有一段时间了 当我尝试运行代码时收到此错误 警告 PDOStatement execute SQLSTATE HY093 无效参数 number 参数未定义于 Applications XAMPP xa
  • PHP比较两个字符串的随机位置

    PHP比较两个字符串 示例我得到了一串数字 1 2 2 1 and another is 2 1 2 1 结果是 true 因为它只是 1 2 2 1 和 2 2 1 1 的位置洗牌 但如果该值为 1 2 2 2 and another i
  • javascript 和 PHP 中的正则表达式有什么区别吗?

    这是在 javascript 中验证电子邮件地址的正则表达式 我不确定是否可以直接在 PHP 中使用它 a z d u00A0 uD7FF uF900 uFDCF uFDF0 uFFEF a z d u00A0 uD7FF uF900 uF
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • 如何在 PHP 中使用 file_get_contents 获取图像的 MIME 类型

    我需要获取图像的 MIME 类型 但我只有图像的正文file get contents 是否有可能获取 MIME 类型 是的 你可以这样得到它 file info new finfo FILEINFO MIME TYPE mime type
  • PhpPresentation imagecreatefromstring():数据不是可识别的格式 - PHP7.2

    我正在尝试使用 PhpPresentation 来阅读sample pptx使用文档中为读者提供的简单说明进行文件处理 我得到 imagecreatefromstring Data is not in a recognized format
  • NetBeans 代码模板 ${date}?

    我在 Eclipse 中有这个代码模板 自 日期 起 当输入时我得到这样的东西 自2009年8月4日起 但是当我添加相同的模板时 自 日期 起 到 NetBeans 它输出 自日期以来 有人可以帮忙吗 还没有答案吗 这在 Netbeans
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • 纠正装饰器模式的一个大缺点

    不久前 我在重构一些游戏战斗代码时决定尝试装饰器模式 战斗者可以拥有各种被动能力 也可能是不同类型的生物 我认为装饰器可以让我在运行时以各种组合添加行为 因此我不需要数百个子类 我几乎已经完成了 15 个左右的被动能力装饰器 在测试中我发现

随机推荐