Magento - измените адрес электронной почты в забытом пароле, прежде чем проверять его

В форме забытого пароля мне нужно получить электронное письмо и изменить его, прежде чем magento проверит его.

Почему? Потому что мне нужно изменить личный номер клиента, например 9834592845, на его адрес электронной почты в базе данных ([email protected])

я работаю с событием: controller_action_predispatch_customer_account_forgotpassword

но я не могу получить письмо, я пытался

$username = $observer->getRequest()->getPost('email');
$username = $observer->getRequest()->getPost();
$postData = Mage::app()->getRequest()->getPost();
$username = $observer->getData('email');
$username = $observer->getEmail();
$username = $_POST;
$username = $_POST['login']['username'];
$username = $_POST['login']['email'];
Mage::log($username);

и больше, но ничего.

Что я делаю неправильно.

Я ценю любую помощь.


person characterError    schedule 04.11.2016    source источник
comment
попробуйте Mage::app()->getRequest()->getParams(); вместо того, чтобы помещать его в журнал, вы можете сбросить его и умереть.   -  person Shrikant    schedule 04.11.2016


Ответы (1)


вы можете использовать customer_save_before Observer в том смысле, что вы можете написать свой собственный код

Пример:

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;
}
person Sunny Rathod    schedule 04.11.2016
comment
Я не думаю, что это работает, потому что я не пытаюсь спасти клиента и не могу получить клиента ($event->getCustomer();), потому что никто не входит в систему... но я все равно пытался и... , не работает - person characterError; 04.11.2016
comment
когда вы пытаетесь забыть пароль, это означает изменение в базе данных клиентов. Мне должны позвонить. Пожалуйста попробуйте. - person Sunny Rathod; 04.11.2016