feat: Wishlist settings cleanup + Categories/Tags/Attributes CRUD pages
Wishlist Settings Cleanup:
- Removed wishlist_page setting (not needed for SPA architecture)
- Marked advanced features as 'Coming Soon' with disabled flag:
* Wishlist Sharing
* Back in Stock Notifications
* Multiple Wishlists
- Added disabled prop support to SchemaField toggle component
- Kept only working features: guest wishlist, show in header, max items, add to cart button
Product Taxonomy CRUD Pages:
Built full CRUD interfaces for all three taxonomy types:
1. Categories (/products/categories):
- Table view with search
- Create/Edit dialog with name, slug, description
- Delete with confirmation
- Product count display
- Parent category support
2. Tags (/products/tags):
- Table view with search
- Create/Edit dialog with name, slug, description
- Delete with confirmation
- Product count display
3. Attributes (/products/attributes):
- Table view with search
- Create/Edit dialog with label, slug, type, orderby
- Delete with confirmation
- Type selector (Select/Text)
- Sort order selector (Custom/Name/ID)
All pages include:
- React Query for data fetching/mutations
- Toast notifications for success/error
- Loading states
- Empty states
- Responsive tables
- Dialog forms with validation
Files Modified:
- includes/Modules/WishlistSettings.php (removed page selector, marked advanced as coming soon)
- admin-spa/src/components/forms/SchemaField.tsx (added disabled prop)
- admin-spa/src/routes/Products/Categories.tsx (full CRUD)
- admin-spa/src/routes/Products/Tags.tsx (full CRUD)
- admin-spa/src/routes/Products/Attributes.tsx (full CRUD)
- admin-spa/src/components/nav/SubmenuBar.tsx (removed debug logging)
- admin-spa/dist/app.js (rebuilt)
Result:
✅ Wishlist settings now clearly show what's implemented vs coming soon
✅ Categories/Tags/Attributes pages fully functional
✅ Professional CRUD interfaces matching admin design
✅ All taxonomy management now in SPA