Es un fallo relativamente habitual en PrestaShop y puede ocurrir por varias razones, pero una que nos hemos encontrado en bastantes ocasiones es un código mal escrito o no actualizado. Utilizaremos como ejemplo el módulo SP Custom HTML.
En la versión 1.0.0 de este módulo, dentro del archivo spcustomhtml.php nos encontramos este código para cada uno de los hooks:
public function hookdisplayTopColumn()
{
global $smarty, $cookie;
$smarty_cache_id = $this->getCacheId('spcustomhtml');
if (!$this->isCached('default.tpl', $smarty_cache_id))
{
$list = $this->getItemInHook('displayTopColumn');
$smarty->assign(array(
'list' => $list
));
}
return $this->display(__FILE__, 'default.tpl', $smarty_cache_id);
}
En ciertas versiones de PrestaShop, este código impedirá que el módulo se cargue en la caché, por lo que al activarla el módulo simplemente desaparece. A continuación os mostramos cómo debería quedar el código anterior:
public function hookdisplayTopColumn()
{
$smarty_cache_id = $this->getCacheId ('spcustomhtml_displayTopColumn');
if (!$this->isCached ('default.tpl', $smarty_cache_id))
{
$list = $this->getItemInHook ('displayTopColumn');
if (empty($list))
return;
$this->context->smarty->assign (array(
'list' => $list
));
}
return $this->display (__FILE__, 'default.tpl', $smarty_cache_id);
}