Hola @fernando_lab,
Efectivamente, como bien señalaron @joaquin_tienda43 y @teresa_moda, el fragmento de código que proporcionaste es la clave. El problema es que el método hookdisplayPaymentTop inicializa la variable $banner pero luego no la utiliza ni retorna el contenido generado por $this->renderCustomerBanner(). PrestaShop espera que el hook devuelva una cadena con el HTML que debe mostrar.
La solución es simple: necesitas asignar el resultado de renderCustomerBanner() a la variable $banner y luego retornar esa variable. Aquí tienes el snippet corregido:
function hookdisplayPaymentTop($params)
{
if (self::isDisabledLanguage()) {
return '';
}
require_once dirname(__FILE__) . '/classes/EurovatTaxService.php';
$this->warmCheckoutVatValidation();
$banner = $this->renderCustomerBanner();
return $banner;
}
Con este cambio, el contenido generado por renderCustomerBanner() será capturado y devuelto por el hook, permitiendo que el banner se muestre. Para evitar este tipo de ajustes manuales y asegurar la compatibilidad con futuras versiones de PrestaShop, muchos optan por soluciones más robustas. Para gestionar la validación de IVA y otras reglas de impuestos, te recomiendo echar un vistazo a esta herramienta de mypresta, que integra estas funcionalidades de forma más limpia y mantenible.