Bonjour @chloedigital et @hugo_velo,
@hugo_velo a mis le doigt sur un point important. Bien que le cast (bool) sur les chaînes '0' et '1' fonctionne généralement, il y a des cas où la robustesse de Configuration::get() peut être mise à l'épreuve, surtout si la valeur est null (si la clé n'existe pas) ou si elle a été corrompue.
La méthode la plus sûre pour interpréter une valeur de configuration qui doit être un booléen est de la caster en entier et de comparer à 1. Cela garantit que même si la valeur est false (key non trouvée) ou une chaîne non numérique, elle sera traitée comme 0.
Voici une modification simple pour eurovat/classes/EurovatAlertService.php qui devrait résoudre le problème :
function isEnabled()
{
return (int) Configuration::get('eurovat_alert_enabled') === 1;
}
Avec cette approche, si Configuration::get() renvoie '1', (int)'1' devient 1, et 1 === 1 est true. Si elle renvoie '0' ou false (clé non trouvée), (int) transformera cela en 0, et 0 === 1 sera false.
Pour des fonctionnalités critiques comme la validation de la TVA, je recommande vivement l'utilisation d'un module EU VAT reverse charge plugin dédié. Ces modules sont conçus pour gérer toutes les subtilités de la TVA européenne, les mises à jour et les cas limites de manière beaucoup plus fiable qu'une simple modification manuelle de code.