Error en el modulo de los productos de la misma categoría en Prestashop 1.7.x.x
Solución fácil y rápida con pocos conocimientos de programación.
Bueno como siempre sin enrollarse mucho os dejo la solución a este Bug o error en los productos de la misma categoría. Concretamente en el modulo que se imprime en cada producto.
Lo primero es que para situarte en el problema deberías de ver lo mismo que yo en la ficha de productos de Prestashop donde tengas el modulo de «Productos de la misma categoría»
De noche a la mañana ha dejado de mostrar el nombre y el precio junto con los detalles del producto
Debería verse mas o menos asi:
Para volver a hacer que aparezcan los precios y el nombre del producto del modulo «productos de la misma categoria» hay que hacer los siguientes sencillos pasos. Para eso necesitarás un editor de código y acceder a los archivos de tu Prestashop 1.7.6.9, 1.7.5.x en el servidor. Esto suele servir para todas las versiones actuales hasta que lo arreglen.
En los foros nos indica claramente el archivo que hay que editar, pero y la ruta de ps_categoryproducts.php? Muy sencillo nos vamos a:
/modules/ps_categoryproducts/ps_categoryproducts.php
Revisa bien tu versión de PHP ya que este error se genera si pones la version a 7.0 o inferior. Para mis la mejor es a partir de 7.2 que ya te la trae el plesk para cambiar en muchos sitios
En el fichero abierto nos vamos a entre la línea 230 y 264 y tendremos este código.
public function renderWidget($hookName = null, array $configuration = array())
{
$params = $this->getInformationFromConfiguration($configuration);
if ($params) {
if ((int)Configuration::get('CATEGORYPRODUCTS_DISPLAY_PRODUCTS') > 0) {
// Need variables only if this template isn't cached
if (!$this->isCached($this->templateFile, $params['cache_id'])) {
if (!empty($params['id_category'])) {
$category = new Category($params['id_category']);
}
if (empty($category) || !Validate::isLoadedObject($category) || !$category->active) {
return false;
}
$variables = $this->getWidgetVariables($hookName, $configuration);
if (empty($variables)) {
return false;
}
$this->smarty->assign($variables);
}
return $this->fetch(
$this->templateFile,
$params['cache_id']
);
}
}
return false;
}
Lo que vamos a hacer es comentar un poco algunas líneas pero sin más rodeos cambien este código por este mismo y ya lo tendríamos arreglado.
public function renderWidget($hookName = null, array $configuration = array())
{
$params = $this->getInformationFromConfiguration($configuration);
if ($params) {
if ((int)Configuration::get('CATEGORYPRODUCTS_DISPLAY_PRODUCTS') > 0) {
// Need variables only if this template isn't cached
//if (!$this->isCached($this->templateFile, $params['cache_id'])) {
if (!empty($params['id_category'])) {
$category = new Category($params['id_category']);
}
if (empty($category) || !Validate::isLoadedObject($category) || !$category->active) {
return false;
}
$variables = $this->getWidgetVariables($hookName, $configuration);
if (empty($variables)) {
return false;
}
$this->smarty->assign($variables);
//}
return $this->fetch(
$this->templateFile
// $this->templateFile,
// $params['cache_id']
);
}
}
return false;
}
Con esto y un bizcocho guardamos y ya lo tendríamos arreglado y el molesto error de los productos de la misma categoría ya no te perturbará más.
Si os pasa el mismo problema que no salen los precios en modulo productos mas vistos deberían de ir al archivo del modulo.
/modules/ps_viewedproduct/ps_viewedproduct.php
Nos iremos a la linea 210 donde dice:
return $this->fetch($this->templateFile, $this->getCacheId());
Y lo cambian por
return $this->fetch($this->templateFile);
Hola, he probado comenta el código en el PS 1.7.8.8 con la última versión de Warehouse y no me funciona, si lo aplico no muestra ni los imágenes del producto. Hay algo diferente para la última versión de PS?
Gracias y saludos
Ten en cuenta que el template también se actualizaría a medida de que tengas un Prestashop más nuevo. Puede variar la solución dependiendo de versión de PS. Dime si pudiste solucionarlo.
Ante todo prueba borrar la cache a nivel de servidor y tienda después de realizar los cambios