@irenelab y @lorena_bcn tienen razón en sus observaciones. El problema es la propagación del assign dentro de un hook de visualización. Cuando usas hookDisplayHeader y luego return $this->display(), las variables asignadas con $this->context->smarty->assign() solo son válidas para el template que estás devolviendo (cookielaw_js_injector.tpl en tu caso) o para las secciones que se renderizan después de que tu hook se ha ejecutado y ha asignado esas variables en el contexto del HeaderController.
Si quieres que una variable esté disponible globalmente en el layout.tpl principal y en cualquier otro template que se compile después, es mejor usar un hook que se ejecute antes de que se compile el layout.tpl o al menos antes de que el controlador principal prepare la mayoría de sus variables. hookActionFrontControllerInit es un buen candidato para esto.
Una forma de asegurar que la variable show_cookie_banner sea global es así, si la lógica de determinación de la cookie es ligera:
public function hookActionFrontControllerInit($params)
{
// Aseguramos que la variable se asigna al contexto Smarty global
// antes de que el layout principal o otros templates sean compilados.
$this->context->smarty->assign([
'show_cookie_banner' => (bool)Configuration::get('MY_COOKIE_CONSENT_ENABLED'),
'cookie_policy_link' => $this->context->link->getCMSLink(Configuration::get('MY_COOKIE_POLICY_CMS_ID')),
]);
}
public function hookDisplayFooter($params)
Con este enfoque, hookActionFrontControllerInit se encarga de que la variable show_cookie_banner esté disponible en cualquier template después de la inicialización del controlador frontal. Luego, puedes usar hookDisplayFooter para inyectar el HTML del banner, que podrá acceder a esa variable sin problemas.
Para una solución más completa y que se mantenga actualizada sin problemas con futuras versiones de PrestaShop, mi recomendación es un módulo dedicado. Evita estas ediciones manuales que se vuelven frágiles con las actualizaciones. Puedes echar un vistazo a Ley de Cookies de la UE Pro que gestiona todo esto de forma profesional y configurable.