Magento Password Reset Conferma traduzione e-mail
-
16-10-2019 - |
Domanda
Sto cercando di creare una traduzione olandese per la Password Reset-mail di conferma.
Quello che ho provato finora:
Nella struttura delle cartelle Magento, v'è una directory contenente tutte le traduzioni e-mail olandesi: / app / locale / nl_nl / template / email / ma tutti i miei tentativi di creare un modello per la simular Password Reset-mail di conferma sono unsuccesvol.
Qualcuno ha potuto fare questo lavoro, forse per un'altra lingua? Per favore qualcuno può impostare nella giusta direzione?
Soluzione
È necessario copiare /app/locale/en_US/template/email/account_password_reset_confirmation.html
alla cartella nl_NL
e tradurlo.
È anche possibile creare un modello nel backend di amministrazione.
Altri suggerimenti
Credo che questo sia un bug nel modulo Mage_Customer.
Nel Mage_Customer_Model_Customer::sendPasswordResetConfirmationEmail
, il messaggio viene inviato nel locale del negozio che è associato all'istanza cliente chiamando $this->getStoreId()
. Quando il negozio non è impostata, l'archivio predefinito per il sito web a cui il cliente è associato viene utilizzato.
Nel Mage_Customer_AccountController::forgotPasswordPostAction
(l'unico luogo in cui viene utilizzato questo metodo), un'istanza cliente viene creato in base alla posta elettronica comunicato, ma il negozio è mai messo su questa istanza. Questo significa che la posta elettronica viene inviato al negozio di default del sito a cui istanza del cliente è associato.
Per risolvere questo problema, aggiungere la seguente riga appena prima della chiamata a sendPasswordResetConfirmationEmail
:
$customer->setStoreId(Mage::app()->getStore()->getId());
Quando si inserisce questo in un override del Mage_Customer_AccountController
originale, gli sguardi metodo come questo (Magento CE 1.9.0.1):
/**
* Forgot customer password action
*/
public function forgotPasswordPostAction()
{
$email = (string) $this->getRequest()->getPost('email');
if ($email) {
if (!Zend_Validate::is($email, 'EmailAddress')) {
$this->_getSession()->setForgottenEmail($email);
$this->_getSession()->addError($this->__('Invalid email address.'));
$this->_redirect('*/*/forgotpassword');
return;
}
/** @var $customer Mage_Customer_Model_Customer */
$customer = $this->_getModel('customer/customer')
->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
->loadByEmail($email);
if ($customer->getId()) {
try {
$newResetPasswordLinkToken = $this->_getHelper('customer')->generateResetPasswordLinkToken();
$customer->changeResetPasswordLinkToken($newResetPasswordLinkToken);
//START Set store id to fix email locale
$customer->setStoreId(Mage::app()->getStore()->getId());
//END Set store id to fix email locale
$customer->sendPasswordResetConfirmationEmail();
} catch (Exception $exception) {
$this->_getSession()->addError($exception->getMessage());
$this->_redirect('*/*/forgotpassword');
return;
}
}
$this->_getSession()
->addSuccess( $this->_getHelper('customer')
->__('If there is an account associated with %s you will receive an email with a link to reset your password.',
$this->_getHelper('customer')->escapeHtml($email)));
$this->_redirect('*/*/');
return;
} else {
$this->_getSession()->addError($this->__('Please enter your email.'));
$this->_redirect('*/*/forgotpassword');
return;
}
}
Anche se creiamo una nuova email transazione per PASSWORD RESET nel backend, non esiste alcuna opzione per impostare la reimpostazione della password a quello nuovo file.
Come si fa a farlo? Non vedo alcuna opzione per la nuova registrazione e le opzioni di reimpostazione della password che cambiano.