Errores fatales de Prestashop 1.5.5.0 y cómo solucionarlos

por | Sep 30, 2013 | Ecommerce, Prestashop

 

Son innumerables las mejoras que incorpora esta versión de Prestashop, pero también hemos de saber que viene, como todo software que se precie, con los típicos bugs o errores que encontraremos sobre la marcha. En este caso, ya hemos podido identificar algunos que son bastante críticos, y vamos a solucionarlos para que podáis disfrutar de vuestra versión 1.5.5.0 de Prestashop

Error al procesar un pedido y a crear una cuenta en Prestashop 1.5.5.0

Es posible que al procesar un pedido o al crear una cuenta en Prestashop 1.5.5.0 nos aparezca el siguiente error:

Fatal error: Using $this when not in object context in /xxxxxx/tools/swift/Swift/Message/Headers.php on line 426

 

SOLUCIÓN:

Debemos editar el fichero siguiente:

/tools/swift/Swift/Message/Headers.php

Nos situamos sobre las líneas de 423 a 427 y buscamos el código siguiente:

$encoded_value[$key] = preg_replace_callback("/<([^>]+)>/", 
function ($matches)
{
 return str_replace("' . $this->LE . '", "", "<$matches[1]>");
}, $encoded_value[$key]);

Lo sustituimos por el siguiente:

$encoded_value[$key] = preg_replace_callback("/<([^>]+)>/", array($this, 'prestaShopReplace'), $encoded_value[$key]);

 

Sin salir del mismo fichero, añadimos la siguiente función:

public function prestaShopReplace($matches)
{
return str_replace("' . $this->LE . '", "", "<$matches[1]>");
}

 

justo debajo de este bloque de cógido (línea 560):

return $ret;
}

 

Fatal error al añadir un email no válido en el perfil de cliente desde el backoffice de Prestashop 1.5.5.0

Cuando estamos editando el perfil de un cliente desde el backoffice (pestaña Clientes->Clientes) y escribimos un email no válido, Prestashop 1.5.5.0 genera un Fatal Error que podemos solucionar de la siguiente manera:

Editamos el fichero:

/controllers/admin/AdminCustomersController.php

Nos situamos en la línea 777 y buscamos:

$customer = new Customer();
$customer->getByEmail($customer_email);

Y la modificamos para que quede de la siguiente manera:

$customer = new Customer();
if (Validate::isEmail($customer_email))
$customer->getByEmail($customer_email);

 

De este modo, si introducimos un email no válido, nos avisará así:

email fatal error

 

 

 

 

 

Seguiremos estudiando esta versión de Prestashop 1.5.5.0 para identificar errores y proponer soluciones.

Os ha sucedido alguno de ellos?

No votes yet.
Please wait...

Translate »