dwindown 9497a534c4 fix: Dark mode headings, settings redirect, upload nonce, mobile theme toggle
## 1. Fix Dark Mode Headings 

**Issue:** h1-h6 headings not changing color in dark mode

**Fix:**
```css
h1, h2, h3, h4, h5, h6 { @apply text-foreground; }
```

**Result:** All headings now use foreground color (adapts to theme)

---

## 2. Fix Settings Default Route 

**Issue:** Main Settings menu goes to /settings with placeholder page

**Fix:**
- Changed /settings to redirect to /settings/store
- Store Details is now the default settings page
- No more placeholder "Settings interface coming soon"

**Code:**
```tsx
useEffect(() => {
  navigate('/settings/store', { replace: true });
}, [navigate]);
```

---

## 3. Fix "Cookie check failed" Upload Error 

**Issue:** Image upload failing with "Cookie check failed"

**Root Cause:** WordPress REST API nonce not available

**Fix:**
- Added `wpApiSettings` to both dev and prod modes
- Provides `root` and `nonce` for WordPress REST API
- Image upload component already checks multiple nonce sources

**Backend Changes:**
```php
// Dev mode
wp_localize_script($handle, 'wpApiSettings', [
    'root'  => esc_url_raw(rest_url()),
    'nonce' => wp_create_nonce('wp_rest'),
]);

// Prod mode (same)
```

**Result:** Image upload now works with proper authentication

---

## 4. Add Theme Toggle to Mobile 

**Recommendation:** Yes, mobile should have theme toggle

**Implementation:** Added to More page (mobile hub)

**UI:**
- 3-column grid with theme cards
- ☀️ Light | 🌙 Dark | 🖥️ System
- Active theme highlighted with primary border
- Placed under "Appearance" section

**Location:**
```
More Page
├── Coupons
├── Settings
├── Appearance (NEW)
│   ├── ☀️ Light
│   ├── 🌙 Dark
│   └── 🖥️ System
└── Exit Fullscreen / Logout
```

**Why More page?**
- Mobile users go there for additional options
- Natural place for appearance settings
- Doesn't clutter main navigation
- Desktop has header toggle, mobile has More page

---

## Summary

 **Dark mode headings** - Fixed with text-foreground
 **Settings redirect** - /settings → /settings/store
 **Upload nonce** - wpApiSettings added (dev + prod)
 **Mobile theme toggle** - Added to More page with 3-card grid

**All issues resolved!** 🎉

**Note:** CSS lint warnings (@tailwind, @apply) are false positives - Tailwind directives are valid.
2025-11-10 23:30:06 +07:00

WooNooW

WooNooW is a modern experience layer for WooCommerce — enhancing UX, speed, and reliability without data migration.
It keeps WooCommerce as the core engine while providing a modern React-powered interface for both the storefront (cart, checkout, myaccount) and the admin (orders, dashboard).

Three Admin Modes:

  • Normal Mode: Traditional wp-admin integration (/wp-admin/admin.php?page=woonoow)
  • Fullscreen Mode: Distraction-free interface (toggle in header)
  • Standalone Mode: Complete standalone app at yoursite.com/admin with custom login

🔍 Background

WooCommerce is the most used ecommerce engine in the world, but its architecture has become heavy and fragmented.
With Reactbased blocks (Checkout, Cart, Product Edit) and HPOS now rolling out, many existing addons are becoming obsolete or unstable.
WooNooW bridges the gap between Woos legacy PHP system and the new modern stack — so users get performance and simplicity without losing compatibility.


🚀 Key Principles

  • No Migration Needed Woo data stays intact.
  • Safe Activate/Deactivate revert to native Woo anytime, no data loss.
  • Hybrid by Default SSR + React islands for Cart/Checkout/MyAccount.
  • Full SPA Toggle optional Reactonly mode for max performance.
  • HPOS Mandatory optimized datastore and async operations.
  • Compat Layer hook mirror + slot rendering for legacy addons.
  • Async Mail & Tasks powered by Action Scheduler.

🧱 Tech Stack

Layer Technology
Backend PHP 8.2+, WordPress, WooCommerce (HPOS), Action Scheduler
Frontend React 18 + TypeScript, Vite, React Query, Tailwind (optional)
Build & Package Composer, NPM, ESM scripts, Zip automation
Architecture Modular PSR4 classes, RESTdriven SPA islands

🧩 Project Structure

woonoow/
├── admin-spa/
│   ├── src/
│   │   ├── components/
│   │   │   ├── filters/
│   │   │   │   ├── DateRange.tsx
│   │   │   │   └── OrderBy.tsx
│   │   │   └── CommandPalette.tsx
│   │   ├── hooks/
│   │   │   └── useShortcuts.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── currency.ts
│   │   │   ├── dates.ts
│   │   │   ├── query-params.ts
│   │   │   ├── useCommandStore.ts
│   │   │   └── utils.ts
│   │   ├── pages/
│   │   │   └── orders/
│   │   │       ├── partials
│   │   │       │   └── OrderForm.tsx
│   │   │       ├── Orders.tsx
│   │   │       ├── OrdersNew.tsx
│   │   │       └── OrderShow.tsx
│   │   ├── routes/
│   │   │   └── Dashboard.tsx
│   │   ├── types/
│   │   │   └── qrcode.d.ts
│   │   ├── App.tsx
│   │   ├── index.css
│   │   └── main.tsx
│   └── vite.config.ts
├── includes/
│   ├── Admin/
│   │   ├── Assets.php
│   │   └── Menu.php
│   ├── Api/
│   │   ├── CheckoutController.php
│   │   ├── OrdersController.php
│   │   ├── Permissions.php
│   │   └── Routes.php
│   ├── Compat/
│   │   ├── HideWooMenus.php
│   │   └── HooksShim.php
│   └── Core/
│       ├── DataStores/
│       │   ├── OrderStore_HPOS.php
│       │   └── OrderStore.php
│       ├── Mail/
│       │   ├── MailQueue.php
│       │   └── WooEmailOverride.php
│       ├── Bootstrap.php
│       └── Features.php
├── woonoow.php
└── docs (project notes, SOP, etc.)

⚙️ Development Workflow

  1. LocalWP / Docker setup with WordPress + WooCommerce.
  2. Activate plugin: WooNooW should appear in the admin menu.
  3. Build SPAs:
    npm run build
    
  4. Package zip:
    npm run pack
    
  5. Upload dist/woonoow.zip into WordPress → Plugins → Add New → Upload.

🧭 Vision

“WooCommerce, reimagined for now.”

WooNooW delivers modern speed and UX while keeping WooCommerces ecosystem alive.
No migration. No lockin. Just Woo, evolved.


Description
No description provided
Readme 1.8 MiB
Languages
TypeScript 62.9%
PHP 34.2%
HTML 2.3%
CSS 0.4%
JavaScript 0.2%