고객이 비밀번호를 변경하는 경우에 대비할 수있는 방법을 찾고 있습니다. 누군가 고객 프론트 엔드에서 비밀번호를 변경하면 어딘가에 이메일을 보내려고합니다.
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
하지만 저장 후 메일을 보내는 것이 좋습니다. 따라서 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()
상점. (v1.9로 테스트)
/customer/account/resetpassword/?id=ab&token=xyz
?를 사용하여 비밀번호를 재설정 할 때 어떤 관찰자 / 이벤트를 사용해야하는지 알고 있습니까?