Commit Graph

4 Commits

Author SHA1 Message Date
dwindown
939f166727 fix: Improve shipping toggle and simplify UI
Fixed toggle functionality and cleaned up redundant buttons.

Backend Fix:
 Fixed toggle to properly update shipping method settings
 Get existing settings, update enabled field, save back
 Previously was trying to save wrong data structure

Frontend Changes:
 Removed "View in WooCommerce" from header (redundant)
 Changed "Edit zone" to "Settings" button (prepares for modal)
 Changed "+ Add shipping zone" to "Manage Zones in WooCommerce"
 Added modal state (selectedZone, isModalOpen)
 Added Dialog/Drawer imports for future modal implementation

Button Strategy:
- Header: Refresh only
- Zone card: Settings button (will open modal)
- Bottom: "Manage Zones in WooCommerce" (for add/edit/delete zones)

Next Step:
Implement settings modal similar to Payments page with zone/method configuration
2025-11-08 22:01:47 +07:00
dwindown
a8a4b1deee feat: Add toggle functionality to Shipping methods
Implemented inline enable/disable for shipping methods.

Frontend Changes:
 Allow HTML in shipping method names and prices
 Add toggle switches to each shipping method
 Loading state while toggling
 Toast notifications for success/error
 Optimistic UI updates via React Query

Backend Changes:
 POST /settings/shipping/zones/{zone_id}/methods/{instance_id}/toggle
 Enable/disable shipping methods
 Clear WooCommerce shipping cache
 Proper error handling

User Experience:
- Quick enable/disable without leaving page
- Similar to Payments page pattern
- Complex configuration still in WooCommerce
- Edit zone button for detailed settings
- Add zone button for new zones

Result:
 Functional shipping management
 No need to redirect for simple toggles
 Maintains WooCommerce compatibility
 Clean, intuitive interface
2025-11-08 21:44:19 +07:00
dwindown
3b0bc43194 fix: ShippingController extends WP_REST_Controller
Fixed fatal error in ShippingController.

Issue:
- ShippingController extended BaseController (does not exist)
- Caused PHP fatal error: Class not found

Fix:
- Changed to extend WP_REST_Controller (WordPress standard)
- Matches pattern used by PaymentsController and StoreController
- Added proper PHPDoc header

Result:
 API endpoint now works
 No more 500 errors
 Shipping zones load correctly
2025-11-08 21:36:50 +07:00
dwindown
bc7206f1cc feat: Add Shipping API controller
Created backend API for fetching WooCommerce shipping zones.

New Files:
- includes/Api/ShippingController.php

Features:
 GET /settings/shipping/zones endpoint
 Fetches all WooCommerce shipping zones
 Includes shipping methods for each zone
 Handles "Rest of the World" zone (zone 0)
 Returns formatted region names
 Returns method costs (Free, Calculated, or price)
 Permission check: manage_woocommerce

Data Structure:
- id: Zone ID
- name: Zone name
- order: Display order
- regions: Comma-separated region names
- rates: Array of shipping methods
  - id: Method instance ID
  - name: Method title
  - price: Formatted price or "Free"/"Calculated"
  - enabled: Boolean

Integration:
- Registered in Routes.php
- Uses WC_Shipping_Zones API
- Compatible with all WooCommerce shipping methods
2025-11-08 21:27:34 +07:00