Saya memiliki acara yang ingin saya jalankan ketika pelanggan mendaftar atau menyimpan detailnya. Untuk ini, saya menggunakan dua acara: customer_register_success dan customer_save_after. Masalah saya adalah bahwa saya akhirnya menjalankan tugas dua kali karena customer_save_after selalu dipanggil dalam eksekusi yang sama dengan customer_register_success
.
Saya telah mencoba mendeteksi apakah pelanggan baru dengan memeriksa data asli dan menelepon isObjectNew
, tetapi keduanya mengembalikan data yang menyiratkan objek sebenarnya bukan baru. Bagaimana saya bisa mengecek untuk melihat apakah pelanggan baru saja mendaftar di customer_save_Setelah acara menetapkan sesuatu di registri dalam customer_register_success
acara tersebut?
sumber
before
acara yang memilikiisObjectNew
data sejauh yang saya tahu karena data belum disimpan. Sejauh kotornya, saya kira akan ada cara yang lebih elegan tapi itu jelas bukan hack$customer->save(); $this->_dispatchRegisterSuccess($customer);
sayangnya di sini, pelanggan diselamatkan sebelum acara register dipicu, sehingga metode pengamat tidak akan tetap bekerja :(Pendekatan lain adalah mengecek controller dan action mana yang memicu event.
Di pengamat Anda bisa mendapatkan modul, pengontrol dan nama tindakan.
Dan kemudian periksa metode Anda siapa yang mengirim acara.
Dalam pemasangan magento saham, saat membuat pengguna dari area pengguna nilai $ myURI akan
customer_account_createpost
.sumber