dwindown fe63e08239 fix(ui): Ensure Customer module UI/UX consistency with SOP
Aligned Customers module with Products/Coupons patterns per PROJECT_SOP.md

Issues Found & Fixed:
 Missing 'New' submenu tab (violated SOP CRUD pattern)
 FAB showing on index page (should be 'none' - submenu handles New)
 No mobile search bar (inconsistent with Products/Coupons)
 Duplicate coupons entry in navigation

Changes Made:

1. NavigationRegistry.php:
 Added 'New' submenu tab to customers navigation
 Removed duplicate coupons navigation entry
 Now matches Products/Coupons pattern: [All customers | New]

2. Customers/index.tsx:
 Changed FAB from 'customers' to 'none' (submenu handles New per SOP)
 Added mobile search bar (md:hidden) matching Products/Coupons
 Desktop toolbar already correct (hidden md:block)

Verified SOP Compliance:

 Submenu Tabs Pattern:
   - Products: [All products | New | Categories | Tags | Attributes]
   - Coupons: [All coupons | New]
   - Customers: [All customers | New] ← NOW CONSISTENT

 Toolbar Structure (Desktop):
   - Left: Bulk Actions (Delete when selected, Refresh always)
   - Right: Search input
   - NO 'New' button (handled by submenu)

 Mobile Pattern:
   - Search bar at top (md:hidden)
   - Toolbar hidden on mobile
   - Cards instead of table

 Table Styling (matches SOP standards):
   - Container: rounded-lg border overflow-hidden
   - Table: w-full
   - Header: bg-muted/50 + border-b
   - Header cells: p-3 font-medium text-left
   - Body rows: border-b hover:bg-muted/30 last:border-0
   - Body cells: p-3

 Button Styling:
   - Delete: bg-red-600 text-white hover:bg-red-700
   - Refresh: border hover:bg-accent
   - All: inline-flex items-center gap-2

Result: Customer module now 100% consistent with Products/Coupons
following PROJECT_SOP.md CRUD Module Pattern standards
2025-11-20 23:15:29 +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 5.8 MiB
Languages
TypeScript 65.1%
PHP 33.1%
HTML 0.9%
CSS 0.7%
JavaScript 0.1%