2016-09-06 153 views
0

電子郵件模板在screenshot所示,在客戶信息當密碼是由管理員設置,然後保存更改後,電子郵件是發送給客戶。默認情況下,新密碼和帳戶鏈接將通過電子郵件發送。如何發送汽車密碼重置鏈接產生在Magento

我想問的是,是否有可能發送密碼的鏈接也重新設置此電子郵件嗎?

我想使用的模板是:

應用程序/區域/ EN_US /模板/電子郵件/ password_new.html

我嘗試添加以下內容:

{{商店網址= 「客戶/帳號/ resetpassword /」 _query_id = $ customer.id _query_token = $ customer.rp_token}}

但我在前端得到錯誤:

您的密碼重置鏈接已過期。

回答

1

是的,你可以 - 您可以生成新的重置密碼令牌&它設置爲customerObject - 嘗試像

/** @var $customer Mage_Customer_Model_Customer */ 
$customer = Mage::getModel('customer/customer') 
    ->setWebsiteId(Mage::app()->getStore()->getWebsiteId()) 
    ->loadByEmail("[email protected]"); //change the email 
if ($customer->getId()) { 
    try { 
     $newResetPasswordLinkToken = Mage::helper('customer')->generateResetPasswordLinkToken(); 
     $customer->changeResetPasswordLinkToken($newResetPasswordLinkToken); 
     $customer->sendPasswordResetConfirmationEmail(); 
    } catch (Exception $exception) { 
     Mage::log($exception); 
    } 
} 
+1

你好,我面臨的問題與http://magento.stackexchange.com/questions/109149/password-reset-link-token-id-not-fetching –

+0

相同,我應該在哪裏需要保持此代碼? ..我嘗試了很多次,但迄今爲止沒有任何工作。 –

0

所以看起來像重置令牌不產生由管理員生成的電子郵件。

我能夠通過爲app/code/core/Adminhtml/controllers/CustomerController.php文件創建控制器覆蓋(根據這些指令http://inchoo.net/magento/overriding-magento-blocks-models-helpers-and-controllers/ - Adminhtml控制器覆蓋部分)來修復1.9.1.0中的此問題。

saveAction方法複製到覆蓋。

裏面saveAction方法,尋找的周圍線351(原始文件)代碼塊。

if (!empty($data['account']['new_password'])) { 
    $newPassword = $data['account']['new_password']; 
    if ($newPassword == 'auto') { 
     $newPassword = $customer->generatePassword(); 
    } 
    $customer->changePassword($newPassword); 
    $customer->sendPasswordReminderEmail(); 
} 

更改此塊

if (!empty($data['account']['new_password'])) { 
    $newPassword = $data['account']['new_password']; 
    if ($newPassword == 'auto') { 
     // no token generated 
     //~ $newPassword = $customer->generatePassword(); 
     $newResetPasswordLinkToken = Mage::helper('admin')->generateResetPasswordLinkToken(); 
     $customer->changeResetPasswordLinkToken($newResetPasswordLinkToken); 
    } 
    $customer->changePassword($newPassword); 
    $customer->sendPasswordReminderEmail(); 
} 

若要生成並增加新的管理員密碼重置郵件令牌。