Saya mencoba menjadikan status ulasan sebagai approved
ganti pending
ketika pengguna mempostingnya di frontend di Magento 2.
Dan saya mengambil pendekatan ini. Buat sebuah plugin sebelumnya, hanya tersedia di daerah frontend, untuk metode setStatusId
untuk Magento\Review\Model\Review
yang terlihat seperti ini
public function beforeSetStatusId(\Magento\Review\Model\Review $review, $status)
{
return [\Magento\Review\Model\Review::STATUS_APPROVED];
}
Bagi saya itu ide yang bagus. Dan itu akan berhasil karena saya mengembalikan status yang disetujui. Metode aktual kemudian harus mengambil ini sebagai parameter.
tapi yang mengejutkan saya itu tidak berhasil.
Kemudian saya menggali dan menemukan bahwa metode setStatusId
ini tidak ada dalam model ulasan. Ini disebut secara ajaib dan benar-benar berjalan setData('status_id', $status)
.
Saya melihat kemudian di interceptor yang dihasilkan, dan memang tidak ada setStatusId
metode.
Bagaimana saya bisa memasang magic getter / setters di magento 2? Apakah itu mungkin?
Catatan: Saya tidak memerlukan solusi untuk membuat ulasan disetujui secara otomatis. Saya tahu saya bisa mengambil pendekatan lain, seperti save_before
acara. Ini tidak penting untuk saat ini.