似乎默认情况下没有订单状态事件,那么您通常如何观察订单状态变化?我看到两种可能性:a)覆盖销售/订单模型以创建状态更改的自定义事件b)观察订单保存事件并查看其中的状态
是其中一种方式还是有更好的选择?
编辑:感谢您到目前为止的答案。情况要复杂一些。我想根据当前状态向订单添加信息。现在是问题所在:在save_before事件中,我仍然具有旧状态,而现在没有新状态,因为在销售/订单模型中,_beforeSave()方法如下:
parent::_beforeSave();
$this->_checkState();
//...
因此,事件是在parent::_beforeSave();
BUT中处理的,但订单状态实际上是在$this->_checkState();
此(这是自动更改,例如,如果您创建发票,则如果没有货,状态将移至处理中)
我也不能使用save_after事件,因为我想保存某事。按顺序执行,可能会破坏一切以在save_after事件中调用保存。
有任何想法吗?我现在唯一的想法是$this->_checkState();
在观察者之前在save_before中复制行为,以找出状态最终将是...