Событие/Наблюдатель за изменением пароля клиента?


Я ищу способ подключиться к событию, когда клиенты меняют свои пароли. Поэтому, если кто-то изменит пароль в интерфейсе клиента, я хотел бы отправить электронное письмо куда-нибудь.

Я действительно сверился со списком по адресу http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7 / но ничто не похоже на событие для смены паролей.

Author: 7ochem, 2013-08-22

3 answers

Благодаря Фабиану Блехшмидту я придумал следующее, что работает для меня (используя событие customer_save_before):

public function detectPwdChange(Varien_Event_Observer $observer) {
    $event              = $observer->getEvent();
    $customer           = $event->getCustomer();
    $postData           = Mage::app()->getRequest()->getPost();

    if($customer instanceof Mage_Customer_Model_Customer && !$customer->isObjectNew()) {

        if( $postData['change_password'] == 1 && $postData['current_password'] != $postData['password'] ) {
            // Do something
        }
    }

    return $this;
}
 9
Author: oschloebe, 2013-08-22 15:05:03

Загляните в код.

Вы можете использовать событие customer_save_after и просто проверить наличие

/app/code/core/Mage/Customer/controllers/AccountController.php:724
$customer->setChangePassword(1);

Возможно, это значение сброшено, тогда вам придется использовать save_before, но я рекомендую отправить письмо после сохранения. Поэтому, если это значение не читается в событии после, скопируйте его в другой атрибут, чтобы иметь его вручную в событии после.

 5
Author: Fabian Blechschmidt, 2013-08-22 08:38:58

Я хотел сделать что-то подобное, но вместо этого я получил его код:

Я подсел на controller_action_postdispatch_customer_account_resetpasswordpost

function resetpasswordpost(Varien_Event_Observer $observer) {
    $customer_id = Mage::app()->getRequest()->getParam('id');
    $customer = Mage::getModel('customer/customer')->load($customer_id);
}

Я думаю, что это немного чище и "безопаснее", чем возиться с самим паролем!

 4
Author: Barry Carlyon, 2015-01-08 13:39:51