Hola @miriam24 y @raul_bcn,
@raul_bcn tiene razón, el problema probablemente radica en que el valor PAYMETHODRULES_ENABLED no se está almacenando o recuperando correctamente de la tabla ps_configuration. Esto suele ocurrir si la instalación del módulo no inicializa bien esta clave o si la interfaz de configuración del módulo no la guarda al cambiarla.
Dado que confirmas que el módulo está habilitado en el Back Office de tu PrestaShop 1.7.7.0, y asumiendo que las reglas deberían estar activas por defecto o al habilitar el módulo, podemos modificar el hookActionPresentPaymentOptions para que, en caso de que esta configuración falle, se base en el estado global del módulo. Es un pequeño ajuste para asegurar que el filtro se ejecute si el módulo está realmente activo.
Aquí tienes la modificación para el archivo paymethodrules/paymethodrules.php:
function hookActionPresentPaymentOptions(&$params)
{
// Si el módulo está habilitado globalmente, procedemos con el filtrado.
// Esto ignora un posible error en la configuración interna 'PAYMETHODRULES_ENABLED'.
if (Module::isEnabled($this->name)) {
$this->getEngine()->filterPaymentOptions($params);
}
// Si el módulo no está habilitado, no hace nada.
}
Con este cambio, la lógica ya no depende únicamente del valor de PAYMETHODRULES_ENABLED en ps_configuration, sino del estado real de habilitación del módulo. Si el módulo está activo, Module::isEnabled($this->name) devolverá true y el filtro se aplicará.