Ho cercato di fare qualcosa che sembra che dovrebbe essere semplice:Visualizzazione delle modifiche ai dati del modello Magento prima o dopo l'evento di salvataggio?
- gancio un evento MODEL_save_after (o MODEL_save_before se questo è più appropriato)
- controllo getData() vs getOrigData() per vedere cosa modifiche apportate dall'utente
Ora, nell'esempio del modello "customer_address", modificato tramite il backend, trovo che entrambi gli eventi di salvataggio vengono attivati due volte.
La prima volta che viene attivato "customer_address_save_before", seguito da "customer_address_save_after". In entrambi i casi getOrigData() e getData() sono identici, tranne che getData() ha un nuovo valore 'updated_at' e ha un set 'store_id' (si tratta di un bug?). Quindi, il modello non ha ancora i dati inviati dall'utente. Gli eventi sono entrambi prima di inserire i dati dell'utente o la convalida, quindi questo è inutile.
"customer_address_save_before" viene attivato, seguito da "customer_address_save_after" una seconda volta. Questa volta (in entrambi i casi), getOrigData() è vuoto e getData() ha ora tutti i dati inviati dall'utente. Quindi non posso nemmeno confrontare su questi eventi! Sembra che questo sia dopo la convalida, il salvataggio, il lotto!
Non sono sicuro del motivo per cui il processo di salvataggio sembra verificarsi due volte?
Magento v1.3.2.4 in uso.
Mi manca qualcosa?
Qual è il nome dell'evento in cui ti stai collegando? –
customer_address_save_after o customer_address_save_before. È interessante notare che i dati nel modello nei due casi sono identici! – KingJackaL