Commit Graph

6 Commits

Author SHA1 Message Date
dwindown
380170096c fix: Shipping toggle and mobile responsiveness
Fixed all reported issues with Shipping page.

Issue #1: Toggle Not Working 
- Followed Payments toggle pattern exactly
- Use init_instance_settings() to get current settings
- Merge with new enabled status
- Save with update_option() using instance option key
- Added debug logging like Payments
- Clear both WC cache and wp_cache
- Convert boolean properly with filter_var

Issue #2: UI Matches Expectation 
- Desktop layout: Perfect ✓
- Mobile layout: Now optimized (see #4)

Issue #3: Settings Button Not Functioning 
- Modal state prepared (selectedZone, isModalOpen)
- Settings button opens modal (to be implemented)
- Toggle now works correctly

Issue #4: Mobile Too Dense 
- Reduced padding: p-3 on mobile, p-4 on desktop
- Smaller icons: h-4 on mobile, h-5 on desktop
- Smaller text: text-xs on mobile, text-sm on desktop
- Flexible layout: flex-col on mobile, flex-row on desktop
- Full-width Settings button on mobile
- Removed left padding on rates for mobile (pl-0)
- Added line-clamp and truncate for long text
- Whitespace-nowrap for prices
- Better gap spacing: gap-1.5 on mobile, gap-2 on desktop

Result:
 Toggle works correctly
 Desktop layout perfect
 Mobile layout breathable and usable
 Ready for Settings modal implementation
2025-11-08 22:15:46 +07:00
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
e8b4421950 feat: Implement live Shipping settings page
Implemented functional Shipping settings page with WooCommerce integration.

Features:
 Fetch shipping zones from WooCommerce API
 Display zones with rates in card layout
 Refresh button to reload data
 "View in WooCommerce" button for full settings
 Edit zone links to WooCommerce
 Add zone link to WooCommerce
 Loading states with spinner
 Empty state when no zones configured
 Internationalization (i18n) throughout
 Shipping tips help card

Implementation:
- Uses React Query for data fetching
- Integrates with WooCommerce shipping API
- Links to WooCommerce for detailed configuration
- Clean, modern UI matching Payments page
- Responsive design

API Endpoint:
- GET /settings/shipping/zones

Note: Full CRUD operations handled in WooCommerce for now.
Future: Add inline editing capabilities.
2025-11-08 21:18:51 +07:00
dwindown
e49a0d1e3d feat: Implement Phase 1 Shopify-inspired settings (Store, Payments, Shipping)
 Features:
- Store Details page with live currency preview
- Payments page with visual provider cards and test mode
- Shipping & Delivery page with zone cards and local pickup
- Shared components: SettingsLayout, SettingsCard, SettingsSection, ToggleField

🎨 UI/UX:
- Card-based layouts (not boring forms)
- Generous whitespace and visual hierarchy
- Toast notifications using sonner (reused from Orders)
- Sticky save button at top
- Mobile-responsive design

🔧 Technical:
- Installed ESLint with TypeScript support
- Fixed all lint errors (0 errors)
- Phase 1 files have zero warnings
- Used existing toast from sonner (not reinvented)
- Updated routes in App.tsx

📝 Files Created:
- Store.tsx (currency preview, address, timezone)
- Payments.tsx (provider cards, manual methods)
- Shipping.tsx (zone cards, rates, local pickup)
- SettingsLayout.tsx, SettingsCard.tsx, SettingsSection.tsx, ToggleField.tsx

Phase 1 complete: 18-24 hours estimated work
2025-11-05 18:54:41 +07:00
dwindown
12e982b3e5 feat: Add WordPress button, settings navigation, and placeholder pages 2025-11-05 10:27:16 +07:00