我正在寻找一种方法来挂接客户更改密码的事件。因此,如果有人在客户前端中更改密码,我想在某处发送电子邮件。
我确实在http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/上查阅了该列表,但是看起来没有什么可以更改密码。
我正在寻找一种方法来挂接客户更改密码的事件。因此,如果有人在客户前端中更改密码,我想在某处发送电子邮件。
我确实在http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/上查阅了该列表,但是看起来没有什么可以更改密码。
Answers:
感谢Fabian Blechschmidt,我想到了以下对我有用的东西(使用event 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;
}password并且confirmation在帖子数据中。已通过v1.9测试
                    看一下代码。
您可以使用该customer_save_after事件,只需检查
/app/code/core/Mage/Customer/controllers/AccountController.php:724
$customer->setChangePassword(1);也许此值已重置,那么您必须使用save_before,但是我建议保存后发送邮件。因此,如果此值在after事件中不可读,则将其复制到另一个属性中,以手动添加到after事件中。
我想做类似的事情,但最终得到了他的代码:
我迷上了 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);
}我认为,比使用密码本身更干净,更“安全”!
Mage::app()->getRequest()->getParam('id')在此事件中为null。也在派遣中。password并confirmation在Mage::app()->getRequest()->getParams()tho中可用。(已通过v1.9测试)
                    
/customer/account/resetpassword/?id=ab&token=xyz吗?