Bonjour @julienpanier14 et @marineshop64,
@marineshop64 a tout à fait raison, le problème est classique : soit la variable de configuration n'est pas définie du tout, soit elle l'est avec une mauvaise casse, soit sa valeur est false ou 0. La fonction Configuration::get() renvoie false si la clé n'existe pas, ce qui peut bloquer le processus.
Pour sécuriser l'affichage de ta bannière et t'assurer que renderCustomerBanner() est toujours appelé si la configuration le permet, je te suggère de modifier la partie de ton hookdisplayPaymentTop comme suit dans eurovat/eurovat.php :
$this->warmCheckoutVatValidation();
$banner = '';
// S'assure que la bannière est rendue si la config est active ou manquante
if ((bool)Configuration::get('EUROVAT_HOOK_PAYMENT') || !Configuration::get('EUROVAT_HOOK_PAYMENT')) {
$banner = $this->renderCustomerBanner();
}
return $banner;
Ce changement ajoute une condition || !Configuration::get('EUROVAT_HOOK_PAYMENT'). Cela signifie que si la clé 'EUROVAT_HOOK_PAYMENT' est définie et vraie, la bannière s'affichera. Mais si la clé n'est pas définie du tout (et que Configuration::get() renvoie false), la deuxième partie de la condition (!false qui est true) prendra le relais et la bannière sera tout de même rendue. C'est une manière de forcer l'affichage par défaut si la configuration n'a pas été explicitement désactivée, ou de corriger un cas où la clé n'aurait jamais été sauvegardée.
Assure-toi aussi de bien vérifier la casse de la clé (EUROVAT_HOOK_PAYMENT est souvent la norme pour les modules).