PrestaShop - 更改订单状态

PrestaShop - changing order status

我目前正在为 PrestaShop 开发支付模块,我正在与状态作斗争。 id 为 3 的状态是 'Processing in progress',看来我必须这样硬编码它:

$order = new Order($orderId);
$order->setCurrentState(3);

问题是...这些 ID 可以不同吗?就像在不同的 prestashop 安装中或经过很少的重新配置后,id 为 3 的状态可能完全不同。有谁知道 prestashop 中是否定义了任何常量,我可以通过它获取 'Processing in progress' 状态的 ID?

干杯!

Processing in progress 是默认的订单状态,它的 ID 不会改变,除非你直接在数据库中改变它,我不知道你为什么要那样做。

但是,您可以检索配置值 PS_OS_PREPARATION 而不是硬编码数字来获取该订单状态 ID。

$order = new Order($orderId);
$order->setCurrentState((int)Configuration::get('PS_OS_PREPARATION'));

您可以在配置中找到其他默认订单状态 ID,方法是查看 configuration table 并找到具有 name 列且具有 PS_OS_ 前缀的行。