Saya mencoba menjadikan status ulasan sebagai approvedganti pendingketika pengguna mempostingnya di frontend di Magento 2.
Dan saya mengambil pendekatan ini. Buat sebuah plugin sebelumnya, hanya tersedia di daerah frontend, untuk metode setStatusIduntuk Magento\Review\Model\Reviewyang 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 setStatusIdini 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 setStatusIdmetode.
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_beforeacara. Ini tidak penting untuk saat ini.