diff --git a/includes/Api/PaymentsController.php b/includes/Api/PaymentsController.php index 200508c..951f340 100644 --- a/includes/Api/PaymentsController.php +++ b/includes/Api/PaymentsController.php @@ -208,7 +208,10 @@ class PaymentsController extends WP_REST_Controller { $gateway_id = $request->get_param('id'); $enabled = $request->get_param('enabled'); - if (!is_bool($enabled)) { + // Convert to boolean (handles both bool and string "true"/"false") + $enabled = filter_var($enabled, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); + + if ($enabled === null) { return new WP_Error( 'invalid_enabled_value', 'The "enabled" parameter must be a boolean', diff --git a/includes/Compat/PaymentGatewaysProvider.php b/includes/Compat/PaymentGatewaysProvider.php index a6c649c..541d1de 100644 --- a/includes/Compat/PaymentGatewaysProvider.php +++ b/includes/Compat/PaymentGatewaysProvider.php @@ -33,6 +33,9 @@ class PaymentGatewaysProvider { continue; } + // Force gateway to reload settings from database + $gateway->init_settings(); + $gateways[] = self::transform_gateway($gateway); } @@ -62,6 +65,9 @@ class PaymentGatewaysProvider { return null; } + // Force gateway to reload settings from database + $gateway->init_settings(); + return self::transform_gateway($gateway); }