Dường như không có sự kiện trạng thái đơn hàng theo mặc định, vậy làm thế nào để bạn thường quan sát sự thay đổi trạng thái đơn hàng? Có hai khả năng tôi thấy: a) Ghi đè mô hình bán hàng / đơn hàng để tạo sự kiện tùy chỉnh của bạn để thay đổi trạng thái b) Quan sát sự kiện lưu đơn hàng và xem trạng thái trong đó
Là một trong những cách để đi hoặc có một lựa chọn tốt hơn?
Chỉnh sửa: Cảm ơn câu trả lời của bạn cho đến nay. Tình hình phức tạp hơn một chút. Tôi muốn thêm thông tin vào đơn hàng tùy thuộc vào trạng thái hiện tại. Bây giờ đây là vấn đề: Trong sự kiện save_b Before tôi vẫn có trạng thái cũ và không phải là trạng thái mới, bởi vì trong mô hình bán hàng / đặt hàng, phương thức _b BeforeSave () như sau:
parent::_beforeSave();
$this->_checkState();
//...
Vì vậy, sự kiện được xử lý trong parent::_beforeSave();
NHƯNG trạng thái đơn hàng thực sự được thay đổi sau đó $this->_checkState();
(đây là thay đổi tự động, ví dụ: nếu bạn tạo hóa đơn, trạng thái được chuyển sang xử lý nếu chưa có lô hàng nào)
Tôi cũng không thể sử dụng sự kiện save_after, vì tôi muốn lưu sth. theo thứ tự và nó có thể sẽ phá vỡ mọi thứ để gọi lưu trong sự kiện save_after.
Có ý kiến gì không? Ý tưởng duy nhất của tôi bây giờ là sao chép $this->_checkState();
hành vi trong trình quan sát save_b Before của tôi để tìm hiểu xem trạng thái cuối cùng sẽ là gì ...