Your password reset link has expired. – Fallo en el core de Magento

Como no, tenemos un pequeño fallo para todos nuestros clientes que quieran recuperar la contraseña en la version 1.9.1 (nueva) o en versiones actualizadas a esta misma.

En la 1.9.1 tenemos que reescribir los parámetros de captura que se mandan por get, ya que no los recupera bien

 app/code/core/Mage/Customer/controllers/AccountController.php

(esto significa sobreeescribir el front controller no que editeis el fichero, esto si lo haceis es modificar el CORE y nos pueden dar de collejas)

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_overload_a_controller

public function resetPasswordAction()
 {
 $resetPasswordLinkToken = (string) $this->getRequest()->getQuery('token');  //esto no devuelve nada
  $customerId = (int) $this->getRequest()->getQuery('id'); //esto tampoco devuelve nada
$customerId = (int) Mage::app()->getRequest()->getParam('query_id');
 $resetPasswordLinkToken = (string) Mage::app()->getRequest()->getParam('query_token');

Para versiones anteriores que actualizais a la 1.9.1, suele pasar si no habeis sobre escrito el layout de customer.xml. Añadirle (sino esta) la siguiente seccion.

<customer_account_resetpassword translate="label">
 <label>Reset a Password</label>
 <remove name="right"/>
 <remove name="left"/>                                                    <reference name="head">
 <action method="setTitle" translate="title" module="customer">
 <title>Reset a Password</title>
 </action>
 </reference>
 <reference name="root">
 <action method="setTemplate">
 <template>page/1column.phtml</template>
 </action>
 <action method="setHeaderTitle" translate="title" module="customer">
 <title>Reset a Password</title>
 </action>
 </reference>
 <reference name="content">
 <block type="customer/account_resetpassword" name="resetPassword" template="customer/form/resetforgottenpassword.phtml"/>
 </reference>
</customer_account_resetpassword>

 

Importante tambien actualizar el email de recordar contraseña, ya que en anteriores versiones se mandaba la variable
{{htmlescape var=$customer.password}}

Y ahora se manda el link con los parametros del token
<a href=”{{store url=”customer/account/resetpassword/” query_id=$customer.id query_token=$customer.rp_token}}”><span>Reset Password</span></a>

Deja un comentario