Hola @alberto_bici y @ignacio_tech,
@ignacio_tech ha dado en el clavo. El problema principal es que en PrestaShop 9 (y en las versiones recientes en general), para que un componente complejo como un slider emergente funcione correctamente, no basta con renderizar su plantilla HTML. Es crucial que los archivos JavaScript y CSS asociados se registren y carguen en el momento y lugar adecuados, y que el JS tenga acceso al DOM una vez que esté listo.
Tu snippet inicial devuelve la plantilla, pero no le dice a PrestaShop que también necesita cargar popup_slider.js y popup_slider.css. Para hacerlo de forma robusta, debes usar los métodos addJS y addCSS del controlador de la página. Aquí te muestro cómo podrías adaptar tu hookDisplayHeader:
public function hookDisplayHeader()
{
// Registrar los archivos JavaScript y CSS del slider
$this->context->controller->addJS($this->_path.'views/js/popup_slider.js');
$this->context->controller->addCSS($this->_path.'views/css/popup_slider.css');
// Asignar variables al Smarty si la plantilla lo necesita
$this->context->smarty->assign([
'popup_id_unique' => 'my-custom-popup-'.uniqid(),
]);
return $this->display(__FILE__, 'views/templates/hook/popup_slider.tpl');
Con esto, te aseguras de que tanto el JavaScript como el CSS se encolen y carguen con el resto de los assets de la página. Tu popup_slider.js debería entonces contener la lógica para inicializar el slider y mostrar el popup una vez que el DOM esté cargado (por ejemplo, usando DOMContentLoaded).
Sin embargo, para una solución más completa y mantenible que no requiera tocar código directamente y que te ofrezca opciones de configuración desde el Back Office (frecuencia, contenido, diseño, etc.), te recomiendo usar un módulo dedicado. Para este tipo de funcionalidad, Animación del deslizador en ventana emergente es una opción muy buena y evitará que estos cambios se rompan con futuras actualizaciones de PrestaShop o de tu tema.