Tôi đang cố gắng để làm cho trạng thái của một đánh giá approved
thay vì pending
khi người dùng đăng nó ở frontend trong Magento 2.
Và tôi đã thực hiện phương pháp này. Tạo một plugin trước, chỉ có sẵn trong khu vực lối vào, cho phương thức setStatusId
cho giao Magento\Review\Model\Review
diện giống như thế này
public function beforeSetStatusId(\Magento\Review\Model\Review $review, $status)
{
return [\Magento\Review\Model\Review::STATUS_APPROVED];
}
Nó nối với tôi như một ý tưởng tốt. Và nó sẽ hoạt động kể từ khi tôi trở lại trạng thái được phê duyệt. Phương thức thực tế sau đó nên chọn cái này làm tham số.
nhưng thật ngạc nhiên là nó không hoạt động.
Sau đó, tôi đã đào lên và thấy rằng phương thức setStatusId
này không tồn tại trong mô hình đánh giá. Nó được gọi một cách kỳ diệu và nó thực sự chạy setData('status_id', $status)
.
Tôi đã xem xét trong phần đánh chặn được tạo và thực sự không có setStatusId
phương pháp nào.
Làm cách nào tôi có thể bổ sung các getters / setters ma thuật trong magento 2? Điều đó thậm chí có thể?
Lưu ý: Tôi không cần một giải pháp để thực hiện đánh giá tự động. Tôi biết tôi có thể thực hiện các phương pháp khác, như các save_before
sự kiện. Điều này không quan trọng bây giờ.