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
✅ StoreSettingsProvider.php:
- get_countries() - All WooCommerce countries
- get_timezones() - All PHP timezones with UTC offsets
- get_currencies() - All WooCommerce currencies with symbols
- get_settings() - Current store settings
- save_settings() - Save store settings
✅ StoreController.php:
- GET /woonoow/v1/store/settings
- POST /woonoow/v1/store/settings
- GET /woonoow/v1/store/countries (200+ countries)
- GET /woonoow/v1/store/timezones (400+ timezones)
- GET /woonoow/v1/store/currencies (100+ currencies)
- Response caching (1 hour for static data)
🔌 Integration:
- Registered in Api/Routes.php
- Permission checks (manage_woocommerce)
- Error handling
Next: Update Store.tsx to use real API