Hola @raquelstore,
El problema que describes es un patrón común en módulos que usan hooks condicionales. El fragmento de código que has compartido es el punto de entrada al hook, pero efectivamente le falta la lógica para que el banner se genere y se devuelva.
Tu sospecha sobre Configuration::get('eurovat_hook_payment') es acertada. Lo más probable es que el módulo esté esperando esta configuración para decidir si mostrar el banner. La solución es asegurar que, si esa configuración está activa, se llame a $this->renderCustomerBanner() y se retorne su contenido.
Aquí tienes el fragmento de código corregido para tu eurovat/eurovat.php:
function hookdisplayPaymentTop($params)
{
if (self::isDisabledLanguage()) {
return '';
}
require_once dirname(__FILE__) . '/classes/EurovatTaxService.php';
$this->warmCheckoutVatValidation();
$banner = '';
if ((int)Configuration::get('eurovat_hook_payment')) {
$banner = $this->renderCustomerBanner();
Explicación del cambio:
- He añadido una comprobación
if ((int)Configuration::get('eurovat_hook_payment')). Esto asegura que el código para renderizar el banner solo se ejecute si la configuración eurovat_hook_payment está establecida a un valor verdadero (normalmente 1).
- Dentro de esa condición,
$banner = $this->renderCustomerBanner(); llama al método que genera el HTML del banner y asigna su resultado a la variable $banner.
- Finalmente,
return $banner; hace que el contenido generado por el banner sea devuelto por el hook y PrestaShop lo inserte en la posición displayPaymentTop.
Verifica también en el Back Office, en Módulos > Gestor de módulos, la configuración específica de Eurovat para asegurarte de que la opción eurovat_hook_payment esté marcada o activada.