2014-02-14 3 views
0

Мне нужно, чтобы некоторые клиенты меняли свои адреса. Я нашел системное событие 'customer_address_save_ (до | после)'. Можно ли отменить запись в базу данных у собственного наблюдателя (на основе условий некоторых клиентов)? Или я могу это сделать, переписывая системные классы клиентов (т. Е. Метод beforeSave)? Вкратце вопрос заключается в том, как предотвратить изменения данных в собственном модуле.Magento как предотвратить изменения данных в наблюдателе

Спасибо.

ответ

1

Вы можете попробовать в вашем наблюдателя (событие - customer_address_save_before):

/** @var $customerAddress Mage_Customer_Model_Address */ 
$customerAddress = $observer->getCustomerAddress(); 

$origData = $customerAddress->getOrigData(); 
$newData = $customerAddress->getData(); 

Наслаждайтесь.

+0

Юджин, спасибо за ответ (спасибо). Я проверил код под customer_address_save_before event - orig_data не определено здесь :(Но я нашел решение:/** * Флаг, который может остановить сохранение данных после сохранения * Может использоваться для следующей последовательности: мы проверяем данные в _beforeSave, если данные * не действует - мы можем установить этот флаг в ложное значение и сохранить процесс будет остановлен * * @var BOOL */ защищен $ _dataSaveAllowed = истина; – Dzurillo

+0

Nice, спасибо и вам! – Eugene

Смежные вопросы