我创建了一个扩展来创建md5密码,并将电子邮件和md5密码与我们的第三方数据库同步,以便在其他工具中使用。在Resignation页面上工作完美但我们在结账时遇到问题Resignation,它没有获取密码,也没有可能同步并保存在db中。这是代码:
app/code/local/SyncUsers/config.xml
中的
在全球事件中:
<customer_save_before>
<observers>
<md5password>
<class>membership/observer</class>
<method>storeMD5Password</method>
</md5password>
</observers>
</customer_save_before>
app/code/local/SyncUsers/membership/Observer.php
中的
public $_singletonFlag = false;
public function storeMD5Password($observer)
{
// Prevent the save_handler to call itself and end-up with infinite loops.
if($this->singletonFlag) {
return;
}
$this->singletonFlag = true;
$event = $observer->getEvent();
$customer = $event->getCustomer();
if ($customer instanceof Mage_Customer_Model_Customer) {
if ($new_password = Mage::app()->getRequest()->getPost('password', false) && strlen($new_password) > 0) {
$customer->setData('md5_password', md5($new_password));
$customer->save();
}
}
}
在onpage checkout中它没有传递密码而没有将它们转换为md5!