2016-09-06 4 views
0

screenshotに示されているように、パスワードがadminから設定され、変更が保存されると顧客情報に電子メールが顧客に送信されます。デフォルトでは、新しいパスワードとアカウントのリンクが電子メールで送信されます。magentoで自動生成された電子メールテンプレートでパスワードリセットリンクを送信する方法

このメールでもパスワードリセットのリンクを送信することは可能ですか?私は、次を追加しようとしました

アプリ/ロケール/ en_USの/テンプレート/メール/ password_new.html

{{

私が使用したテンプレートがあると思いますstore url = "customer/account/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ファイルのコントローラオーバーライドを作成することで、これを1.9.1.0で修正できました(これらの手順に従って、http://inchoo.net/magento/overriding-magento-blocks-models-helpers-and-controllers/ - Adminhtmlコントローラオーバーライドセクション)。

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(); 
} 

に変更し、このブロックを。

関連する問題