Hola @lorenadev12, entiendo perfectamente tu frustración. El problema que describes es bastante común cuando la clave de configuración eurovat_hook_payment no se establece correctamente o se guarda con un valor que PHP interpreta como falso. Esto puede ocurrir si el método install() o upgrade() del módulo no inicializa esta opción de forma robusta, o si hay algún conflicto al guardar los ajustes.
El fragmento que compartes es el inicio de la función hookdisplayPaymentTop. Asumiendo que más abajo en la función existe una condición que comprueba eurovat_hook_payment para mostrar el banner, puedes modificar esa sección para asegurarte de que el banner siempre intente renderizarse si el modo B2B está activo. Aquí te dejo un parche de código que podrías aplicar en eurovat/eurovat.php, en la sección donde se inicializa $banner y se decide su renderización:
$banner = '';
// Forzamos la visualización del banner si el modo B2B está activo
// independientemente del valor exacto de 'eurovat_hook_payment'
if (Configuration::get('PS_B2B_ACTIVE')) {
$banner = $this->renderCustomerBanner();
}
return $banner;
Este cambio sobrescribe la lógica original para que el banner se muestre si el modo B2B está activo, ignorando la configuración eurovat_hook_payment si está causando problemas. Sin embargo, para una solución más limpia y mantenible a largo plazo, especialmente en entornos de producción, recomiendo utilizar un módulo dedicado que maneje estas validaciones de forma profesional y con soporte. Puedes encontrar una solución robusta como Validar IVA en VIES y establecer 0% IVA que asegura el correcto funcionamiento de estas validaciones sin necesidad de parches manuales.