これを修正するには、ファイル「app\code\local\Mage\Customer\Model\Customer.php」を開きます。
関数sendPasswordResetConfirmationEmail()を探します。685号線の近くです。
この関数は次のようになります。
/**
* Send email with reset password confirmation link
*
* @return Mage_Customer_Model_Customer
*/
public function sendPasswordResetConfirmationEmail()
{
$storeId = $this->getStoreId();
if (!$storeId) {
$storeId = $this->_getWebsiteStoreId();
}
$this->_sendEmailTemplate(self::XML_PATH_FORGOT_EMAIL_TEMPLATE, self::XML_PATH_FORGOT_EMAIL_IDENTITY,
array('customer' => $this), $storeId);
return $this;
}
この関数では、Magento はユーザーが登録されたストア ID を取得していますが、ユーザーがパスワード リセット リクエストを行ったストア ID が必要です。いくつかの行を削除して新しい行を追加するだけです:
public function sendPasswordResetConfirmationEmail()
{
# this will get the current store ID
$storeId = Mage::app()->getStore()->getStoreId();
$this->_sendEmailTemplate(self::XML_PATH_FORGOT_EMAIL_TEMPLATE, self::XML_PATH_FORGOT_EMAIL_IDENTITY,
array('customer' => $this), $storeId);
return $this;
}
これは私にとってはうまくいきました。