magento订单状态更改

1u4esq0p  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(197)

在magento 2后端,当我提交发货时,订单状态将从处理更改为完成,但我找不到代码执行位置
谁能告诉我在哪里能找到密码?
我使用的是洋红色2.4.3-p1
我发现代码在“vendor/magento/module-sales/Model/Order/Shipment.php”当执行这个方法“_saveShipment”的状态会改变,但我不知道为什么.

2skhul33

2skhul331#

它位于\Magento\Sales\Model\ResourceModel\Order\Handler\State中,每当保存订单时都会调用该文件。

mnemlml8

mnemlml82#

在“Magento\Sales\Model\ResourceModel\Order”中有一个函数保存()。在该函数中,您可以检索和修改订单的“status”值。最好编写一个插件。
di.xml

<type name="Magento\Sales\Model\ResourceModel\Order">
    <plugin name="after_plugin_order_state" type="Vendor\Module\Plugin\PluginName"/>
</type>

PluginName.php

public function afterSave(
    \Magento\Sales\Model\ResourceModel\Order $subject,
     $result,$object
){
    $setCustomStatus = $object->setData('status','Complete');
    return $result
 }

相关问题