Hola @fernando_iberia,
Entiendo perfectamente tu frustración con este tipo de problemas de configuración, son bastante comunes en versiones de PrestaShop como la 1.7.4.3, donde la gestión de la configuración a veces no es tan robusta como en versiones más recientes.
El problema que describes, donde Configuration::get('eurovat_alert_enabled') no devuelve un valor que se evalúe a true a pesar de estar activado en el Back Office, suele deberse a dos cosas:
- El valor no se guardó correctamente: Como menciona @ramon_sevilla60, el valor '1' (string) debería estar en la tabla
ps_configuration. Si no está, el problema es en la lógica de guardado del módulo o en un conflicto.
- Problemas de caché o de tipo de dato: Aunque el
(bool) cast debería funcionar bien para '1' y '0', a veces para mayor seguridad o para evitar posibles null o cadenas vacías que Configuration::get podría devolver si la clave no existe, es mejor ser explícito.
Para el snippet que nos proporcionas, te sugiero una pequeña modificación para asegurar que el valor es estrictamente el que esperamos ('1' como string, que es lo que PrestaShop suele guardar para los booleanos en ps_configuration):
function isEnabled()
{
return Configuration::get('eurovat_alert_enabled') === '1';
}
Explicación del cambio:
- En lugar de
(bool) Configuration::get(...), usamos Configuration::get(...) === '1'.
- Esto asegura que la función devuelve
true solo si el valor recuperado de la configuración es exactamente el string '1'.
- El operador de comparación estricta
=== verifica tanto el valor como el tipo, lo que lo hace más seguro frente a posibles valores como true (booleano), 1 (entero) o null que, aunque se evaluarían como true o false con el cast (bool), no son el formato estándar de Configuration::get para booleanos.
- Esto puede ayudar a mitigar inconsistencias si el valor se guardó de forma inesperada o si hay algún problema de cache que devuelve un tipo de dato diferente.
Asegúrate de que el valor en la tabla ps_configuration sea '1'. Si no lo es, deberías revisar la instalación o configuración del módulo.