🔍 Suspect #7: Gateway enabled property not being updated Problem: - We save to database ✅ - We reload settings ✅ - But $gateway->enabled property might not update! Root Cause: WooCommerce has TWO places for enabled status: 1. $gateway->settings['enabled'] (in database) 2. $gateway->enabled (instance property) We were only updating #1, not #2! The Fix: // Update both places $gateway->settings = $new_settings; // Database update_option($gateway->get_option_key(), $gateway->settings); if (isset($new_settings['enabled'])) { $gateway->enabled = $new_settings['enabled']; // Instance property! } Added Debug Logging: - Log toggle request (gateway ID + enabled value) - Log save process (current vs new enabled) - Log update_option result - Log final enabled value after fetch - All logs prefixed with [WooNooW] for easy filtering How to Debug: 1. Toggle a gateway 2. Check debug.log or error_log 3. Look for [WooNooW] lines 4. See exact values at each step Files Modified: - PaymentGatewaysProvider.php: Update both settings + enabled property - PaymentsController.php: Add debug logging Next Step: Test toggle and check logs to see what's actually happening!
9.8 KiB
9.8 KiB