## ✅ Issue 1: Single Source of Truth for Navigation
**Problem:** Confusing dual nav sources (PHP + TypeScript fallback)
**Solution:** Removed static TypeScript fallback tree
**Result:** PHP NavigationRegistry is now the ONLY source
- More flexible (can check WooCommerce settings, extend via addons)
- Easier to maintain
- Clear error if backend data missing
## ✅ Issue 2: Logo in All Modes
**Already Working:** Header component renders in all modes
- Standalone ✅
- WP-Admin normal ✅
- WP-Admin fullscreen ✅
## ✅ Issue 5: Customer Settings 404 Debug
**Added:** Debug logging to track endpoint calls
**Note:** Routes are correctly registered
- May need WordPress permalinks flush
- Check debug.log for errors
## ✅ Issue 6: Dark Mode Logo Support
**Implemented:**
1. **Backend:**
- Added `store_logo_dark` to branding endpoint
- Returns both light and dark logos
2. **Header Component:**
- Detects dark mode via MutationObserver
- Switches logo based on theme
- Falls back to light logo if dark not set
3. **Login Screen:**
- Same dark mode detection
- Theme-aware logo display
- Seamless theme switching
4. **SVG Support:**
- Already supported via `accept="image/*"`
- Works for all image formats
**Result:** Perfect dark/light logo switching everywhere! 🌓
---
## Files Modified:
- `nav/tree.ts` - Removed static fallback
- `App.tsx` - Dark logo in header
- `Login.tsx` - Dark logo in login
- `StoreController.php` - Dark logo in branding endpoint + debug logs
- `Store.tsx` - Already has dark logo upload field
- `StoreSettingsProvider.php` - Already has dark logo backend
## Testing:
1. Upload dark logo in Store settings
2. Switch theme - logo should change
3. Check customer-settings endpoint in browser console
4. Verify nav items from PHP only
## ✅ Issue #1: Drawer Z-Index
- Increased drawer z-index from 60 to 9999
- Now works in wp-admin fullscreen mode
- Already worked in standalone and normal wp-admin
## ✅ Issue #2: Add Zone Button
- Temporarily links to WooCommerce zone creation
- Works for both header button and empty state button
- Full zone dialog UI deferred (complex region selector needed)
## ✅ Issue #3: Modal-over-Modal
- Removed Add Delivery Option dialog
- Replaced with inline expandable list
- Click "Add Delivery Option" → shows methods inline
- Click method → adds it and collapses list
- Same pattern for both desktop dialog and mobile drawer
- No more modal-over-modal!
## ✅ Issue #4-7: Local Pickup Page
Analysis:
- Multiple pickup locations is NOT WooCommerce core
- Its an addon feature (Local Pickup Plus, etc)
- Having separate page violates our 80/20 rule
- Local pickup IS part of "Shipping & Delivery"
Solution:
- Removed "Local Pickup" from navigation
- Core local_pickup method in zones is sufficient
- Keeps WooNooW focused on core features
- Advanced pickup locations → use addons
## Philosophy Reinforced:
WooNooW handles 80% of daily use cases elegantly.
The 20% advanced/rare features stay in WooCommerce or addons.
This IS the value proposition - simplicity without sacrificing power.
## 1. Fixed Shipping Method Toggle State ✅
- Updated useEffect to properly sync selectedZone with zones data
- Added JSON comparison to prevent infinite loops
- Toggle now refreshes zone data correctly
## 2. Replace confirm() with AlertDialog ✅
- Added AlertDialog component for delete confirmation
- Shows method name in confirmation message
- Better UX with proper dialog styling
- Updated both desktop and mobile versions
## 3. Added Local Pickup to Navigation ✅
- Added "Local Pickup" menu item in Settings
- Now accessible from Settings > Local Pickup
- Path: /settings/local-pickup
## 4. Shipping Cost Shortcodes ✅
- Already supported via HTML rendering
- WooCommerce shortcodes like [fee percent="10"] work
- [qty], [cost] are handled by WooCommerce backend
- No additional SPA work needed
## 5. Enhanced Notifications Page ✅
- Added comprehensive info card explaining:
- What WooNooW provides (simple toggle)
- What WooCommerce provides (advanced config)
- Clear guidance on when to use each
- Links to WooCommerce for templates/styling
- Replaced ToggleField with Switch for simpler usage
## Key Decisions:
✅ AlertDialog > confirm() for better UX
✅ Notifications = Simple toggle + guidance to WC
✅ Shortcodes handled by WooCommerce (no SPA work)
✅ Local Pickup now discoverable in nav
## 1. Fixed Tax Settings Route ✅
- Changed /settings/taxes → /settings/tax in nav tree
- Now matches App.tsx route
- Tax page now loads correctly
## 2. Advanced Local Pickup ✅
Frontend (LocalPickup.tsx):
- Add/edit/delete pickup locations
- Enable/disable locations
- Full address fields (street, city, state, postcode)
- Phone number and business hours
- Clean modal UI for adding locations
Backend (PickupLocationsController.php):
- GET /settings/pickup-locations
- POST /settings/pickup-locations (create)
- POST /settings/pickup-locations/:id (update)
- DELETE /settings/pickup-locations/:id
- POST /settings/pickup-locations/:id/toggle
- Stores in wp_options as array
## 3. Email/Notifications Settings ✅
Frontend (Notifications.tsx):
- List all WooCommerce emails
- Separate customer vs admin emails
- Enable/disable toggle for each email
- Show from name/email
- Link to WooCommerce for advanced config
Backend (EmailController.php):
- GET /settings/emails - List all emails
- POST /settings/emails/:id/toggle - Enable/disable
- Uses WC()->mailer()->get_emails()
- Auto-detects recipient type (customer/admin)
## Features:
✅ Simple, non-tech-savvy UI
✅ All CRUD operations
✅ Real-time updates
✅ Links to WooCommerce for advanced settings
✅ Mobile responsive
Next: Test all settings pages