お客様がパスワードを変更するイベントにフックする方法を探しています。したがって、誰かが顧客のフロントエンドでパスワードを変更した場合、どこかに電子メールを送信したいと思います。
私はhttp://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/でリストを調べましたが、パスワードを変更するイベントのようには見えません。
お客様がパスワードを変更するイベントにフックする方法を探しています。したがって、誰かが顧客のフロントエンドでパスワードを変更した場合、どこかに電子メールを送信したいと思います。
私はhttp://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/でリストを調べましたが、パスワードを変更するイベントのようには見えません。
回答:
Fabian Blechschmidtのおかげで、私は(イベントを使用して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、保存後にメールを送ることをお勧めします。したがって、この値が後のイベントで読み取れない場合は、別の属性にコピーして、後のイベントで手で持ってください。
私は同じようなことをしたかったのですが、代わりに彼のコードで終わりました:
私は夢中になりました 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そしてtho confirmationで利用可能ですMage::app()->getRequest()->getParams()。(v1.9でテスト済み)
                    
/customer/account/resetpassword/?id=ab&token=xyzですか?