【问题标题】:Magento - change email in forgotpassword before check itMagento - 在检查之前更改忘记密码的电子邮件
【发布时间】:2017-03-18 05:41:09
【问题描述】:

在忘记密码表格中,我需要在magento检查之前获取电子邮件并更改它。

为什么?,因为我需要将客户个人号码(例如 9834592845)更改为他们在数据库中的电子邮件存储 (bla@ble.bli)

我参与该活动: 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);

还有更多,但什么都没有。

我做错了什么。

感谢您的帮助。

【问题讨论】:

  • 试试 Mage::app()->getRequest()->getParams();而不是把它放在日志中,你可以转储并死掉它。

标签: magento events forgot-password


【解决方案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;
}

【讨论】:

  • 我认为这行不通,因为我不尝试保存客户并且我无法获得客户 ($event->getCustomer();) 因为没有人登录.. .但我还是试过了......不工作
  • 当您尝试忘记密码时,这意味着客户数据库中的更改。我应该打电话。请尝试。
猜你喜欢
  • 2013-03-04
  • 2012-02-29
  • 2011-10-19
  • 2016-08-31
  • 2011-02-19
  • 2017-05-07
  • 2016-11-01
  • 1970-01-01
  • 2013-06-28
相关资源
最近更新 更多