=== Shop Manager for WooCommerce – AI-Powered Frontend Dashboard & Smart Order, Product & Employee Management ===
Contributors: oxilab, richardmallick
Tags: woocommerce order management, woocommerce frontend dashboard, frontend order management, woocommerce product management, woocommerce ai
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.3.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

AI-powered WooCommerce Frontend Order Manager to manage orders, products, employees, and customers without wp-admin.

== Description ==

**Shop Manager for WooCommerce** gives store owners and managers a clean, fast frontend dashboard to run their entire WooCommerce store, without needing access to the WordPress admin.

Whether you're handling 10 orders a day or 500, the goal was simple: make WooCommerce management feel less like work. Every screen is built around what you actually need to do, create orders, update statuses, manage products, track customers, not what the database looks like on the inside.

✨ **[All Features](https://oxilab.dev/shop-manager/features/)** | 💰 **[Upgrade to Pro](https://oxilab.dev/shop-manager/pricing/)** | 📖 **[Documentation](https://oxilab.dev/docs/shop-manager/)** | 🆘 **[Support](https://wordpress.org/support/plugin/shop-manager/#new-post)**

---

Most WooCommerce store managers spend half their day inside the WordPress backend, an interface that was never really designed for high-volume order management. Shop Manager replaces that with a purpose-built frontend dashboard that's fast, intuitive, and actually pleasant to use.

You get full order management, product management, a real-time analytics dashboard, and a customer CRM, all in one place. The Pro version also includes AI-powered tools that can write your product content, auto-tag your customers, and surface insights about your store.

---

== 🚀 Key Features ==

* **Frontend WooCommerce dashboard**: manage your entire store without logging into the WordPress admin
* **Full order management**: create, edit, delete, bulk-update, and export orders as CSV
* **Complete product management**: add/edit products with variations, categories, brands, tags, attributes, and reviews
* **Real-time analytics**: revenue, average order value, top products, and order trends, live, no 12-hour cache delay
* **Customer list & profiles**: full purchase history, billing & shipping addresses, notes, order stats, and tags
* **Custom order statuses**: create unlimited custom statuses with color presets that fit your exact workflow
* **AI chat assistant**: ask questions about your store in plain language and get answers from live data, orders, revenue, products, customers, and employees
* **AI product content generator**: write product titles, short descriptions, and full descriptions with one click
* **AI customer auto-tagging**: automatically segments customers as VIP, Loyal, At Risk, Big Spender, Frequent, New, or Inactive
* **AI dashboard insight cards**: plain-English summaries of what's happening in your store right now
* **Your own AI keys**: works with Anthropic Claude, OpenAI, or Google Gemini; keys are AES-256 encrypted
* **CSV export**: export product lists and order data for reporting, accounting, or migration
* **Built for WooCommerce HPOS**: fully compatible with High-Performance Order Storage

---

== ✅ Free Version Features ==

The free version covers the essentials, enough to manage a real store day to day:

✅ Frontend Dashboard: view your store at a glance without touching the WP admin
✅ Order list: search, filter, and view order details
✅ Bulk order actions + CSV export
✅ Create, edit, and delete products
✅ Product variations, categories, brands, tags, attributes, and reviews
✅ Real-time analytics: revenue, AOV, top products
✅ Customer list with purchase history
✅ Fully responsive: works on desktop, tablet, and mobile
✅ **Employee management + role-based access**: control who can see and do what
✅ **Customer segmentation**: filter customers by tag, spend, or behavior

---

== 🔥 Pro Version Features ==

Pro unlocks the full toolkit for growing stores:

✅ **AI chat assistant**: ask about your store in plain language, orders, revenue, products, customers, and employee activity, answered from live data
✅ **AI product content generator**: write product titles, short descriptions, and full descriptions with one click
✅ **AI customer auto-tagging**: automatically segments customers as VIP, Loyal, At Risk, Big Spender, Frequent, New, or Inactive
✅ **AI dashboard insight cards**: plain-English summaries of what's happening in your store
✅ **Multi-provider AI support**: works with Anthropic Claude, OpenAI, and Google Gemini; bring your own API key
✅ **Advanced order management**: create, edit, and delete orders directly from the frontend
✅ **Advanced order filters**: filter by status, date, customer, and more
✅ **Invoice PDF generation**: generate and download professional invoices. Also send to customer with email
✅ **Custom order statuses (unlimited)**: with color presets and visual workflow control
✅ **Customer notes & communication log**: keep track of interactions on every customer profile
✅ **Priority email support**: 12h response


👉 **[See full Free vs Pro comparison](https://oxilab.dev/shop-manager/pricing/#feature-comparison)**

---

== 🎯 Perfect For ==

* 🏪 **Store owners** who don't want to spend time in the WordPress admin every morning
* 👩‍💼 **Shop managers and employees** who need to handle orders without full admin access
* 👨‍💻 **WooCommerce developers and agencies** building client dashboards that clients can actually use
* 📦 **High-volume stores** that need fast bulk actions and reliable status workflows
* 🌍 **Multi-language stores**: built with WordPress i18n and translation-ready throughout

---

== 📈 Why Shop Manager ==

There are a handful of WooCommerce frontend manager plugins out there, but most of them were built years ago and show it. Shop Manager was designed from scratch, built with React, tested against real store workflows, and updated regularly.

Here is what actually sets it apart:

* 🤖 **AI tools built in**: not a third-party integration; the product generator and customer tagging are part of the plugin. Bring your own API key for Claude, OpenAI, or Gemini and it just works.
* ⚡ **Real-time data**: the dashboard pulls live data, not cached summaries from 12 hours ago
* 🏷️ **Smart customer tagging**: customers are automatically segmented based on actual order behavior, not manual effort. Tags update when orders change.
* 📋 **Workflow-first order management**: custom statuses, bulk actions, and CSV export are all designed around how fulfillment workflows actually work
* 🔒 **Secure by default**: API keys are AES-256 encrypted, all REST endpoints are nonce-verified, and user access respects WooCommerce roles
* 🔄 **HPOS compatible**: fully tested with WooCommerce High-Performance Order Storage, which is default in WooCommerce 8.0+

---

== Installation ==

**⬇️ Option 1: Install from WordPress.org (Recommended)**

1. 🔑 Log into your WordPress admin
2. 🔍 Go to **Plugins > Add New** and search for **Shop Manager for WooCommerce**
3. 🖱️ Click **Install Now**, then **Activate**

**📦 Option 2: Manual Upload**

1. ⬇️ Download the plugin zip from WordPress.org
2. 📂 Go to **Plugins > Add New > Upload Plugin**
3. 📤 Upload the zip file and click **Install Now**
4. ✅ Click **Activate Plugin**

**🚀 Getting Started**

1. After activation, go to **Shop Manager** in your WordPress admin sidebar
2. The frontend dashboard shortcode `[shop_manager]` is available for embedding in any page
3. To use AI features, go to **Shop Manager > Admin > AI Settings** and enter your API key
4. Visit the **Customer Settings** tab to configure auto-tagging thresholds for your store

---

== Frequently Asked Questions ==

= 🔌 Does this plugin require WooCommerce? =

Yes. Shop Manager is built entirely on top of WooCommerce and requires it to be installed and active. It is not compatible with other eCommerce plugins.

= 🤖 Do the AI features cost extra? =

Shop Manager never charges extra for AI. The two AI features that generate content, the AI product content generator and the AI chat assistant, are Pro features, and you bring your own API key from Anthropic (Claude), OpenAI (GPT), or Google (Gemini), so you only pay your provider for what you actually use, typically $1–5 per month for average stores. The rule-based smart features, customer auto-tagging and dashboard insight cards, work in every plan including free and don't need an API key at all.

= 🔒 Is my API key stored securely? =

Yes. API keys are encrypted with AES-256-CBC using your WordPress secret keys before being saved to the database. The raw key is never exposed in the browser, API responses, or log files.

= ⚡ Does it work with WooCommerce HPOS? =

Yes. Shop Manager is fully compatible with WooCommerce High-Performance Order Storage (HPOS), which became the default in WooCommerce 8.0.

= 🏷️ How does the AI customer auto-tagging work? =

When an order is placed or its status changes, Shop Manager automatically recalculates tags for the customer based on their order history. Tags like VIP, Loyal, At Risk, and Big Spender are defined by thresholds you set in the admin settings, and you can adjust those thresholds at any time. Changing thresholds triggers a recalculation for all customers automatically.

= 🛒 Can I create and edit orders from the frontend? =

The free version lets you view orders, run bulk actions, and export to CSV. Creating and editing orders from the frontend is a Pro feature.

= 👥 Can shop employees use this without admin access? =

Yes. You can control who can access the frontend dashboard through WordPress role settings. The plugin respects the excluded roles configuration in the admin settings.

= 📱 Does it work on mobile? =

The frontend dashboard is responsive and usable on mobile, though it is designed primarily for desktop use by store managers. All core workflows, order management, product editing, customer review, work on tablet and mobile.

= 🔄 What happens to existing data when I activate the plugin? =

Nothing changes. Shop Manager reads your existing WooCommerce orders, products, and customers, it doesn't create or migrate any data on activation.

= 🆓 Is there really a free version? =

Yes. The free version includes the frontend dashboard, order viewing, bulk actions, product management, customer list, real-time analytics, and the AI tools (product generator, customer auto-tagging, insight cards). Pro unlocks advanced order creation, custom statuses, and the upcoming automation and compliance features.

= 🔑 Which AI providers are supported? =

Shop Manager works with Anthropic Claude, OpenAI (GPT), and Google Gemini. You bring your own API key, so you only pay your provider for what you actually use, there's no markup or subscription through Shop Manager.

= 🏷️ Can I create unlimited custom order statuses in the free version? =

No. The free version lets you filter and manage your existing WooCommerce order statuses. Creating unlimited custom statuses, with color presets, is a Pro feature.

= 🧾 Does the invoice generator support multiple templates? =

Yes. Invoice PDF generation is a Pro feature and includes four templates, Modern, Classic, Bold, and Minimal, so you can match your brand. Invoices can be downloaded individually or in bulk.

= 💾 Will my customer notes and tags be lost if I switch from Pro back to free? =

No. Your data stays in your WooCommerce database either way. If you downgrade, Pro-only features like customer notes and unlimited custom statuses become read-only until you reactivate Pro, nothing is deleted.

= 🗑️ What happens to my orders and data if I deactivate or uninstall the plugin? =

Deactivating keeps everything untouched, your orders, products, and customer data all live in WooCommerce's own database, not in a separate table. Uninstalling removes only the plugin's own settings and custom tags, your actual store data is never touched.

= ⚡ Does this plugin slow down my store? =

No. Dashboard and analytics data is cached briefly to keep things fast, and AI features only run when you actively use them, they don't run in the background or affect your storefront's loading speed for customers.

= 🧩 Will this plugin conflict with other WooCommerce extensions like Subscriptions or Bookings? =

Shop Manager works alongside standard WooCommerce order and product data, so it doesn't override how other extensions handle their own custom order types. As with any plugin that touches order management, highly customized workflows are best tested on a staging site first.

= 🔌 What happens if I don't add an AI API key? =

Everything except the AI product content generator and the AI chat assistant works normally. Customer auto-tagging, insight cards, orders, products, customers, and employee management are all unaffected, since those don't call any AI provider. You only need a key for the two features that generate or answer with AI.

= 👥 Can multiple employees see different parts of the dashboard at the same time? =

Yes. Role-based access is per-user, so two employees logged in at the same time each see only what their role allows, one might manage orders while another only views products, based on the permissions you set.

---

== Screenshots ==

1. 📊 Real-time analytics dashboard: revenue, order trends, and AI insight cards at a glance.
2. 🛒 Order management: full list with search, filters, status column, and bulk action toolbar.
3. 📝 Add / Edit product form with inline AI content generation buttons.
4. 🤖 AI content modal: tone selector, custom instructions, and per-field generation controls.
5. 👥 Customer list: search, tag filter, purchase stats, and auto-tag badges.
6. 👤 Customer profile: order history, address details, notes, and tag management.
7. 🏷️ Custom order status editor: color presets and workflow configuration.
8. ⚙️ Admin settings: customer tagging thresholds, excluded roles, and AI provider config.
9. 👨‍💼 Employee list: all employees with role badges, order stats, and bulk role management.
10. 👤 Employee profile: personal info, assigned role, activity stats, and capability overview.
11. 🔑 Roles & Access: built-in and custom roles with full capability matrix editor.
12. ➕ Create Role modal: define a new custom role with granular module and action-level permissions (Pro).

---

== Changelog ==

= 1.3.1 =
* 🔒 Security: Fixed a broken function-level authorization flaw in the shop-manager/v1 REST API where any built-in Shop Manager employee role could reach every endpoint regardless of its assigned module permissions. Each customer, order, product, analytics, and employee route now enforces its specific per-role capability server-side (e.g. oxi_sm_view_customers, oxi_sm_edit_orders, oxi_sm_view_employees). A product-only employee can no longer read or modify customer, order, or employee-access data. Thanks to security researcher an7ln for the responsible disclosure.
* 🔒 Security: The global dashboard search endpoint (which returns order and customer data) now requires the "view orders" capability.
* 🔒 Security: Server-side REST capability checks now honor both the default roles' coarse capabilities and custom roles' granular per-section capabilities (categories, tags, brands, attributes, reviews, roles & access), matching the frontend permission model so that each employee sees exactly the pages and data their role allows — no more, no less.
* 🐛 Fix: Employees without dashboard access no longer land on an "Access Restricted" screen after logging in; the dashboard now redirects them to the first page their role can actually access (e.g. a product-only employee lands on Products).
* 🐛 Fix: Custom employee roles granted access to a specific product section (e.g. Categories) but not full product access could not load that section's data ("You are not allowed to access this resource"); section-level permissions are now correctly recognized by the REST API.

= 1.3.0 =
* 🆕 New: AI Chat Assistant, ask questions about your store in plain language and get real answers; the assistant uses live-data tools to report on orders, revenue, products, customers, and employee activity (Pro)
* 🆕 New: AI Assistant reachable from the dashboard header on every page; free users get the full chat experience with suggested questions and a preview of what Pro unlocks
* 🆕 New: AI Chatbot module added to the admin Modules tab, enabled by default for new and existing stores; toggle it on/off and open its settings via the Configure button
* 🆕 New: Role-based access for the AI Assistant, grant or revoke the "AI Chatbot" capability per employee role from Roles & Access; the header icon only appears for users who have access
* ✨ Improvement: Employee Management moved into the Modules tab as a card with its own Configure shortcut, consistent with every other module
* ✨ Improvement: Module cards now show a pill-shaped Configure button that jumps straight to that module's settings tab
* 🐛 Fix: Frontend dashboard showed a "No route was found" error toast on reload when the Pro plugin was inactive; the AI conversation endpoints are no longer requested in the free version
* 🐛 Fix: Disabling the Employee Management module in the backend now correctly hides it from the frontend dashboard sidebar (it was previously hard-coded as always on)
* 🐛 Fix: Disabling the AI Chatbot module now also hides the AI Assistant icon in the dashboard header
* 🐛 Fix: AI Assistant replies showed raw HTML entities (e.g. &#2547; instead of ৳) for currency; the symbol is now decoded before reaching the AI and the chat renderer decodes entities defensively (Pro)
* 🐛 Fix: Employee activity reports invented an order-status breakdown (e.g. reporting "Cancelled: 0" when an order was actually cancelled); the assistant now uses the real status-change counts from the activity log (Pro)

= 1.2.7 =
* ⚡ Improvement: Full WooCommerce HPOS (High-Performance Order Storage) compatibility declared via FeaturesUtil; WooCommerce admin warning banner removed
* 🐛 Fix: Export function trash-order query and search were using legacy wp_posts table and breaking on HPOS-enabled sites; both now use wc_get_orders() which works with both HPOS and traditional storage
* ✨ Improvement: HPOS detection updated to use the official OrderUtil::custom_orders_table_usage_is_enabled() API instead of reading a raw option value
* 🐛 Fix: Plugin API calls were using hardcoded /wp-json/ absolute paths, causing all API requests to fail on WordPress subdirectory installations (e.g. example.com/shop/); api.js now derives the correct prefix from rest_url() and patches fetch and axios globally
* 🐛 Fix: React Router basename was hardcoded as /sm-dashboard, breaking page routing on subdirectory WordPress installs; now reads the actual dashboard page path from PHP via wpkinSM.sm_dashboard_path
* 🐛 Fix: Two admin-side API calls in App.jsx and AiSettings.jsx had hardcoded /wp-json/ paths; updated to use wpkinSM.root which already contains the correct rest_url()
* 🔒 Security: Review counts query replaced with $wpdb->prepare() and %d placeholders for the IN() clause; all ID parameters (order_id, customer_id, attribute_id) now cast with absint() before use
* 🔒 Security: Exception message removed from the save-admin-settings API error response; error is now logged server-side via error_log() instead of being exposed to API clients
* 🔒 Pro: Employee Performance Summary card now gated behind a Pro license check; free users see a friendly upgrade prompt linking to the pricing page

= 1.2.5 =
* 🆕 New: Employee Performance Summary feature added, AI-generated weekly summary per employee showing orders processed, completed orders, cancellations, refunds triggered, and products edited, powered by the configured AI provider (Claude, OpenAI, or Gemini)
* 🆕 New: "Orders Today" stat card added to Employee Profile page showing how many orders the employee processed today
* ✨ Improvement: Employee Profile top stat cards updated: Orders Today, Orders This Week, Orders This Month, and Last Active; "Member Since" card removed
* ✨ Improvement: Performance Summary stat chips updated: separated Cancellations and Refunds Triggered into distinct metrics; "Today's orders" chip removed (moved to top stat cards)
* 🔒 Pro: Employee Performance Summary is gated behind a Pro license; free users see an upgrade prompt with a link to the pricing page

= 1.2.4 =
* ✨ Improvement: Products list: all columns now have explicit widths with `scroll={{ x: 940 }}` so the table fits within the desktop container without a horizontal scrollbar and scrolls correctly on mobile
* ✨ Improvement: Products list: Name column given explicit width (160 px) to prevent vertical letter-stacking on tablet and mobile when `table-layout: fixed` is active
* ✨ Improvement: Products / Add Product page headers replaced with flexbox layout (`sm-page-header`): action buttons stay right-aligned on desktop and stack below the title on mobile (≤ 768 px)
* ✨ Improvement: Dashboard period selector uses the same flexbox header pattern: stays right-aligned on desktop, stacks on mobile
* ✨ Improvement: All Products card now shows the total product count in the card title
* ✨ Improvement: Pagination spacing: 16 px top margin added above pagination across all tables
* 🐛 Fix: TinyMCE editor toolbar icons were blank rectangles, the `font-family: inherit` rule was scoped too broadly (universal selector under the plugin ID), overriding TinyMCE's `tinymce` icon font; now only applies to form elements that don't inherit by default
* 🐛 Fix: Persistent vertical scrollbar on All Products page, caused by `overflow-x: auto` on `.ant-table-wrapper` triggering a horizontal scroll (table wider than container), which reduced available height and added a vertical scrollbar; fixed by removing the outer-wrapper overflow rule and letting AntD's inner `scroll` prop handle horizontal overflow on `.ant-table-content`
* ✨ Improvement: Consistent card-based layout applied to all list pages: All Products, Categories, Tags, Brands, Attributes, Reviews, All Employees, and Roles & Access now follow the same design pattern as Orders: a header Card (title + action buttons) and a table Card (`bordered={false}`, `boxShadow: token.boxShadowTertiary`)
* ✨ Improvement: "Add Product" submenu removed from sidebar, route still accessible via the Add Product button on the All Products page
* ✨ Improvement: All Products page header uses the same Card + Row/Col pattern as Orders; "Add New" button renamed to "Add Product"
* ✨ Improvement: Attributes page action icons changed from bordered `size="small"` buttons to `type="text"` icon-only buttons (pencil, trash, tags) matching the Tags/Categories page style
* ✨ Improvement: Header item order changed: "Upgrade to Pro" button now appears before the dark mode toggle, which appears before the user avatar
* 🐛 Fix: Employee filter card had reduced padding (`12px 16px`) inconsistent with all other pages; now uses AntD default card body padding matching the Customers page
* ✨ Improvement: Admin header "Dashboard" button renamed to "Frontend Dashboard" for clarity
* ✨ Improvement: Admin Modules page responsive layout fixed: laptop screens (< 1600 px) now show 3 columns instead of 4, preventing card elongation and text wrapping; 4-column layout reserved for large desktop screens (≥ 1600 px)
* 🐛 Fix: Low Stock Alert insight card "View Products" link was navigating to the wrong page; now correctly navigates to the All Products page pre-filtered to low stock items
* 🆕 New: "Low Stock" added as a selectable option in the Stock Status filter on the All Products page, selecting it shows only products with stock below the configured low stock threshold
* 🐛 Fix: Selecting multiple stock status options including "Low Stock" was only showing low stock products, stock status conditions are now combined with OR so all matching products appear
* ✨ Improvement: Insight cache now clears automatically when a product is saved or its stock changes, not just on order events

= 1.2.3 =
* 🆕 New: Collapsible icon-only sidebar: desktop sidebar now has a toggle button at the top; click to shrink to icon-only mode (72 px) and click again to expand back to full width (240 px)
* 🆕 New: Appearance settings page, preset cards fully redesigned with SaaS-style browser chrome preview (sidebar, stat cards, and table) for accurate visual comparison
* 🆕 New: Dark mode preferred style: choose which dark mode style the frontend toggle switches to; saved as `preferredDark` in appearance settings
* 🆕 New: Employee Management admin page, redesigned with a SaaS-style notice banner and direct action buttons linking to the frontend dashboard Employee and Roles & Access pages
* ✨ Improvement: Dark mode toggle simplified to a single icon button (no dropdown); toggles between light and the configured preferred dark style
* ✨ Improvement: Full dark mode coverage: page background, header, footer, and sidebar all correctly respond to dark mode; fixed partial dark mode where some surfaces stayed light
* ✨ Improvement: Dark mode cards use a glass effect, subtle white-tint background, backdrop blur, and inset highlight border for card distinction on dark backgrounds
* ✨ Improvement: Sidebar background removed in dark mode, sidebar inherits the dark algorithm instead of overriding with white, giving a seamless dark layout
* ✨ Improvement: All color schemes use a consistent white sidebar background; tinted sidebar colors removed for a cleaner, uniform look
* ✨ Improvement: Sidebar width increased to 240 px (was 200 px); sidebar menu icons enlarged to 17 px for better readability
* ✨ Improvement: Footer background now correctly follows the active theme color via CSS custom property instead of a hardcoded value
* ✨ Improvement: Employee profile page redesigned with SaaS-style stat cards, activity summary, and a theme-aware left border that follows the active Color Combination
* ✨ Improvement: Roles & Access modal text and backgrounds are now dark-mode aware, all hardcoded hex colors replaced with AntD token values so the Create/Edit Role modal is fully readable in dark mode
* ✨ Improvement: Employee list filter row now has correct vertical spacing on mobile; action buttons stay on one line with `nowrap` enforcement
* ✨ Improvement: Inter font applied globally across the frontend dashboard, consistent SaaS typography regardless of the active WordPress theme
* ✨ Improvement: Frontend dashboard CSS fully scoped under `#wpkin-shop-manager-public`, prevents WP theme styles from leaking into the plugin UI
* 🐛 Fix: Appearance settings (preset, color scheme, preferred dark) were silently dropped on save, `wpkin_sanitize_settings_data()` now correctly preserves the `appearance` block
* 🐛 Fix: Activity Log Retention setting was not saving or repopulating, `employee_management` block added to `wpkin_sanitize_settings_data()` and deep-merged on save to preserve existing employee data

= 1.2.2 =
* 🆕 New: Employee Management module, role-based access control for frontend dashboard users
* 🆕 New: Custom employee roles, create roles with granular capability assignments (Pro)
* 🆕 New: "Create Role" button locked behind Pro license, shows lock icon and opens Pro upgrade modal for free users
* 🆕 New: Password set page for new employees, welcome email now sends a secure setup link instead of plain-text credentials
* 🆕 New: Lost password / password reset flow inside the frontend dashboard, no redirect to wp-login.php
* 🆕 New: Employee profile route always accessible to the logged-in employee themselves, even without the employees module capability
* ✨ Improvement: Header avatar now shows a caret badge; admins see "WordPress Dashboard" in the dropdown, employees see "My Profile"
* ✨ Improvement: Avatar size standardised to 40×40 px with a circular caret indicator at the bottom-right corner
* ✨ Improvement: Header dropdown now shows the human-readable role name instead of the internal role slug
* ✨ Improvement: Password fields in login and set-password forms now have an eye-icon toggle to show/hide the password
* ✨ Improvement: Custom roles (Pro) are automatically deactivated when the Pro license expires, employees with custom roles lose dashboard access and see a clear "Access Restricted" explanation page
* ✨ Improvement: Employees with expired custom roles still appear in the All Employees list so admins can reassign them
* ✨ Improvement: Employee list shows a lock icon and greyed-out role tag for any employee whose custom role is inactive due to an expired Pro license
* ✨ Improvement: Roles & Access table shows a "Pro Required" warning tag for custom roles when Pro license is not active
* 🐛 Fix: WordPress canonical redirect was stripping `sm_action`, `sm_key`, and `sm_login` query parameters, fixed by registering them as recognised query vars
* 🐛 Fix: Employee profile page was inaccessible to employees without the `oxi_sm_employees_access` capability, even for their own profile

= 1.2.1 =
* 🆕 New: PDF invoice generation, server-side PDF via mPDF with 4 templates (Modern, Classic, Bold, Minimal) matching the live preview pixel-for-pixel
* 🆕 New: Invoice button on Order Details page, opens PDF in a new browser tab for viewing, printing, or downloading
* 🆕 New: Bulk invoice generation, select multiple orders and generate a single merged PDF with one order per page
* 🆕 New: Resend Email button on Order Details page, choose email type from dropdown with confirmation modal before sending
* 🆕 New: Bulk Resend Email, select orders, pick email type from a modal, and send with one click
* 🆕 New: "Send PDF with Email" toggle in Invoice Settings > General, controls whether the invoice PDF is attached to order confirmation emails
* 🆕 New: Inter font embedded in PDF, matches the dashboard preview font exactly
* 🆕 New: Dynamic multi-script font support, Bengali ৳ renders via Noto Sans Bengali; Arabic, CJK, and other scripts use mPDF's built-in language-to-font mapping; all Latin currencies use Inter
* ✨ Improvement: PDF font colors now use the configured text color throughout, matching the live preview
* ✨ Improvement: Admin email (New Order) resend now works correctly using WooCommerce's own resend pattern including the required filter
* 🐛 Fix: Bold font weight in PDF item totals and grand total, mPDF requires font-weight:bold, not 600 or 700
* 🐛 Fix: "Send PDF with Email" setting was not saving due to missing field in both sanitization passes

= 1.2.0 =
* 🆕 New: AI Settings page, configure provider (Claude, OpenAI, Gemini), model, temperature, and max tokens from the admin dashboard
* 🆕 New: AI product content generator, one-click generation of product title, short description, and full description inside the Add/Edit Product form
* 🆕 New: Per-field AI buttons, generate only the field you need without running a full generation
* 🆕 New: Custom Instructions field in AI modal, guide the AI with your own prompt for full creative control
* 🆕 New: Tone selector, Professional, Casual & Friendly, Premium/Luxury, Playful & Fun, Minimalist
* 🆕 New: Multi-provider AI support, Anthropic Claude, OpenAI GPT, and Google Gemini
* 🔒 New: API keys encrypted with AES-256-CBC using WordPress secret keys; never exposed to the browser
* 🆕 New: Test Connection button in AI Settings to verify API key before saving
* 🆕 New: Customers page, full customer list with search, country filter, tag filter, order count, total spent, and last order date
* 🆕 New: Customer Profile page, billing & shipping address, order stats, order history, notes, and tag management
* 🆕 New: AI customer auto-tagging, automatically tags customers as vip, loyal, new, at_risk, big_spender, frequent, or inactive based on order behaviour
* 🆕 New: Auto-tags are event-driven, recalculated on order status change or new order; time-based tags use a 24h transient cache
* 🆕 New: Manual tags, add/remove custom tags on the Customer Profile; manual tags are never overwritten by the system
* 🆕 New: Guest order matching, customer metrics and tags include guest orders placed with the same billing email
* 🆕 New: Bulk tag refresh, recalculate tags for all customers at once from the customer list
* 🆕 New: Customer Settings admin tab, configure all auto-tagging thresholds and excluded roles; changing thresholds invalidates all cached tags automatically
* 🆕 New: Color presets added to order status edit/add modal, 15 built-in color combinations with visual swatch selector
* 🆕 New: Attributes page, create, edit, and delete WooCommerce product attributes and terms from the frontend
* 🆕 New: Subcategory hierarchy, categories and brands display with WooCommerce-style dash indentation in lists and dropdowns
* 🆕 New: CSV product export, download selected or all products as a CSV file directly from the product list
* 🆕 New: "View Product" button on Edit Product page, opens the product's frontend page in a new tab
* ✨ Improvement: Rebranded from WPKIN to Oxilab across all display text and frontend footer
* ✨ Improvement: Admin settings tab position now persists on page reload via URL hash
* 🐛 Fix: Attribute terms failing to load due to invalid orderby parameter
* 🐛 Fix: Sale price validation used string comparison, causing single-digit prices to incorrectly trigger a "greater than regular price" error
* 🐛 Fix: Brands, Attributes, and Reviews sidebar menu items now correctly stay active when those pages are visited
* 🐛 Fix: "View" action in product list now opens the product's frontend page instead of the WP admin edit screen
* 🐛 Fix: Hook names prefixed with wpkin_sm_ to avoid collisions with other plugins

= 1.0.5 =
* 🆕 New: Add Product and Edit Product pages
* 🆕 New: All Products list page
* 🆕 New: Categories, Tags, Brands, and Reviews pages

= 1.0.4 =
* 🐛 Fix: Data saving issue resolved

= 1.0.3 =
* 🆕 New: Translation support, full WordPress i18n throughout the plugin
* ✨ Improvement: Overhauled order management workflow

= 1.0.0 =
* 🎉 Initial release, frontend order dashboard with create, edit, delete, and status management

---

== Upgrade Notice ==

= 1.2.2 =
✨ Adds a complete employee password setup flow, improved header UX, Pro-locked custom role creation, and automatic access revocation for custom-role employees when the Pro license expires. Upgrade recommended for all stores using Employee Management.

= 1.0.6 =
🆕 Major update. Adds AI product content generation, AI customer auto-tagging, a full customer management section, custom order status color presets, and product CSV export. Upgrade recommended for all users.

= 1.0.5 =
🆕 Adds complete product management, create, edit, and organize products with categories, brands, tags, and reviews, all from the frontend dashboard.

= 1.0.3 =
✨ Adds translation support and significantly improves the order management workflow. Upgrade recommended.
