From 2608f3ec38c3de92e5ca3efd2bb2cd7406e7d755 Mon Sep 17 00:00:00 2001 From: dwindown Date: Sun, 9 Nov 2025 00:14:47 +0700 Subject: [PATCH] debug: Add comprehensive logging for toggle issue Added debug logging to identify where enabled status is lost. Backend Logging: - Log what instance_settings["enabled"] value is read from DB - Log the computed is_enabled boolean - Log for both regular zones and Rest of World zone Frontend Logging: - Log all fetched zones data - Log each method's enabled status - Console output for easy debugging This will show us: 1. What WooCommerce stores in DB 2. What backend reads from DB 3. What backend returns to frontend 4. What frontend receives 5. What frontend displays Next: Check console + error logs to find the disconnect --- admin-spa/src/routes/Settings/Shipping.tsx | 13 ++++++++++++- includes/Api/ShippingController.php | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/admin-spa/src/routes/Settings/Shipping.tsx b/admin-spa/src/routes/Settings/Shipping.tsx index ea49c12..62e9563 100644 --- a/admin-spa/src/routes/Settings/Shipping.tsx +++ b/admin-spa/src/routes/Settings/Shipping.tsx @@ -38,7 +38,18 @@ export default function ShippingPage() { // Fetch shipping zones from WooCommerce const { data: zones = [], isLoading, refetch } = useQuery({ queryKey: ['shipping-zones'], - queryFn: () => api.get('/settings/shipping/zones'), + queryFn: async () => { + const data = await api.get('/settings/shipping/zones'); + console.log('[Shipping] Fetched zones:', data); + // Log each zone's methods + data.forEach((zone: any) => { + console.log(`[Shipping] Zone "${zone.name}" (ID: ${zone.id}):`, zone.rates); + zone.rates?.forEach((rate: any) => { + console.log(` - ${rate.name}: enabled=${rate.enabled}`); + }); + }); + return data; + }, staleTime: 5 * 60 * 1000, // 5 minutes }); diff --git a/includes/Api/ShippingController.php b/includes/Api/ShippingController.php index 18b4b9e..f0e018a 100644 --- a/includes/Api/ShippingController.php +++ b/includes/Api/ShippingController.php @@ -102,6 +102,16 @@ class ShippingController extends WP_REST_Controller { $method->init_instance_settings(); $is_enabled = isset( $method->instance_settings['enabled'] ) && $method->instance_settings['enabled'] === 'yes'; + // Debug: Log what we're reading + error_log( sprintf( + '[WooNooW] Zone %d Method %s (instance %d): enabled setting = "%s", is_enabled = %s', + $zone_data['id'], + $method->id, + $method->instance_id, + isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET', + $is_enabled ? 'true' : 'false' + ) ); + $rate = array( 'id' => $method->id . ':' . $method->instance_id, 'instance_id' => $method->instance_id, @@ -146,6 +156,15 @@ class ShippingController extends WP_REST_Controller { $method->init_instance_settings(); $is_enabled = isset( $method->instance_settings['enabled'] ) && $method->instance_settings['enabled'] === 'yes'; + // Debug: Log what we're reading + error_log( sprintf( + '[WooNooW] Zone 0 (Rest of World) Method %s (instance %d): enabled setting = "%s", is_enabled = %s', + $method->id, + $method->instance_id, + isset( $method->instance_settings['enabled'] ) ? $method->instance_settings['enabled'] : 'NOT SET', + $is_enabled ? 'true' : 'false' + ) ); + $rate = array( 'id' => $method->id . ':' . $method->instance_id, 'instance_id' => $method->instance_id,