WP Manifestindependent plugin directory
manifest / ecommerce / carspace-user-dashboard

Carspace User Dashboard WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

New carspace-user-dashboard -React

★ 0stars
8release downloads
v5.11.0latest · 5mo ago

Install

Download carspace-dashboard-v5.11.0.zip From the v5.11.0 release on GitHub, Apr 28, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/samsiani/carspace-user-dashboard/releases/download/v5.11.0/carspace-dashboard-v5.11.0.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

Car dealer CRM dashboard — React SPA with WordPress REST API backend.

Description

Replaces the WooCommerce My Account dashboard with a self-contained React single-page app. Lets dealers see their assigned cars, invoices, port-images, support tickets, and notifications. Admins manage transport prices, auction fees, title codes, and user tiers from the same UI.

  • React SPA mounted via the [carspace_app] shortcode
  • REST API namespace carspace/v1 powers every screen
  • Auto-updates from GitHub Releases (no .org plugin directory needed)

Changelog

5.11.0

  • Persist dealer_fee_paid and commission_paid per invoice. The form had inputs for "how much of the dealer fee / commission has been paid" since v5.x, but the backend silently dropped them on save and hydrate_invoice returned 0 hardcoded — same data-loss pattern as v5.10.0's items / customer fields. Adds DB v2.1: two new DECIMAL(12,2) DEFAULT 0 columns on wp_carspace_invoices, idempotent migration, and full create / update / hydrate wiring.
  • Redesign the print invoice (InvoicePrint) to match the dashboard's visual language — Geist + Noto Sans Georgian font stack, restrained slate typography, the platform's blue accent on the vehicle row icon, lighter card backgrounds with the same 10 px radius the dashboard uses. Adds @page A4 margins, hides empty sections (no vehicle row when there's no car, no notes block when the field is empty). The previous design used a heavy dark-gray brand mark and Inter — both replaced.
  • Bundle Noto Sans Georgian (variable) so Mkhedruli characters render correctly in the dashboard and the printed invoice without any external CDN.

5.10.0

  • Fix invoice round-trip: items / customer email / customer phone / customer company now persist correctly across save → reload → edit. The form's data shape was { description, quantity, unit_price, total, paid } per item, but the DB schema only had make, amount etc., so on save the API stuffed description into make and total into amount, dropping quantity and unit_price entirely. On read, those fields came back as the legacy keys, so the edit form saw description=undefined, quantity=undefined, unit_price=undefined and rendered empty.
  • DB v2.0: add description VARCHAR(255), quantity DECIMAL(10,2), unit_price DECIMAL(12,2) to wp_carspace_invoice_items, and customer_email VARCHAR(255) to wp_carspace_invoices. Migration is idempotent — INFORMATION_SCHEMA-checked; existing rows keep their make/amount values, and hydrate_invoice falls back to those when the new columns are NULL so legacy invoices read coherently.
  • update_invoice_endpoint now also accepts customer_phone (writes customer_personal_id), customer_email, and customer_company_name — they were silently dropped before.
  • hydrate_invoice now returns customer_email, customer_phone, and per-item description, quantity, unit_price, total (in addition to the legacy make, amount keys for any caller still reading those).

5.9.2

  • Dashboard chart: <ResponsiveContainer width="100%" height="100%"> would log "width(-1) and height(-1) of chart should be greater than 0" on first render because parent height resolution from a <CardContent> wasn't immediate. Set the chart's height to a fixed 220 (matches the wrapper h-[220px]), so recharts no longer needs to ask the parent at all. Cosmetic console warning gone, charts render the same.
  • Removed redundant await import('@/stores/car-store') in lib/api.ts — the store was statically imported by 5 other files anyway, so the dynamic import was a no-op that produced a Rollup warning on every build.

5.9.1

  • Fix blank dashboard on v5.9.0 caused by an Uncaught TypeError: O is not a function in the recharts chunk. The previous Vite manualChunks config split recharts and d3-* into one bucket while their bundled-d3 helper victory-vendor fell into the catch-all vendor chunk — that chunk boundary in the middle of recharts' cyclical d3 imports broke runtime evaluation. Drops the manualChunks catch-all and lets Rollup attach lazy-route-only deps (recharts → DashboardPage, react-day-picker → date filters, @tanstack/react-table → grids, react-hook-form/zod → forms) to whichever lazy chunk imports them. First paint goes from ~265 KB gz to ~225 KB gz on non-dashboard routes.
  • No PHP / DB changes.

5.9.0

  • React SPA bundle split. The single 1.6 MB main bundle is gone — first paint now downloads ~265 KB gzipped (main + react-vendor + vendor) instead of ~468 KB. Each route is its own chunk loaded on demand:
    • recharts (~75 KB gz) only downloads when the dashboard opens
    • react-day-picker + date-fns (~19 KB gz) only when a date filter mounts
    • @tanstack/react-table (~14 KB gz) only on Cars / Invoices grids
    • react-hook-form + zod (~28 KB gz) only on form pages
  • Vendor chunks are content-hashed and stable between releases — a code-only update means the browser re-downloads main (~38 KB gz) and the changed page chunks, not the entire app.
  • React source is now version-controlled at github.com/Samsiani/carspace-dashboard-source.

5.8.0

  • DB v1.9: add vin_lower STORED generated column on wp_carspace_invoice_items plus a new compound index (vin_lower, invoice_id). Every VIN lookup (in get_by_vin, get_buyer_by_vin, batch_vin_lookup, and get_dashboard_stats) was rewritten to compare against vin_lower directly, removing the LOWER(it.vin) function call that previously defeated the index. The old idx_vin_invoice (vin, invoice_id) is dropped — it's no longer referenced by any query and was costing write overhead on every invoice item insert.
  • No data change: the column is computed from the existing vin column at write time by MariaDB itself, so existing rows are populated automatically.

5.7.1

  • Add this readme.txt so WordPress shows the plugin description and changelog on the Plugins page and in update notifications.

5.7.0

  • Auto-updates: ship plugin-update-checker so future releases on GitHub appear automatically on update-core.php.
  • DB v1.8: drop redundant indexes (idx_vin on items, idx_user_status on notifications) — both were strict prefixes of compound indexes added later, so they cost write overhead with zero read benefit.
  • next_invoice_number() now flushes WP's option cache after the raw atomic UPDATE so callers don't get the pre-increment value.
  • SPA shell emits <link rel="modulepreload"> for every dynamically-imported chunk in the Vite manifest.
  • Removed duplicate global $wpdb; in get_dashboard_stats().

5.6.0

  • Vite manifest cached via wp_cache with a version-stamped group; saves one file_get_contents + json_decode per SPA page hit.
  • Cache-Control: private, max-age=300 on /transport-prices/locations, /auction-fees, /auction-fees/fixed, /title-codes — admin-managed reference data that rarely changes.
  • Carspace_Notification::count_unread() cached per-user (5 min TTL) with precise bust on create / mark_read / mark_all_read / delete / bulk_delete. Both the admin-bar badge and /notifications/unread-count REST endpoint benefit.
  • get_cars WP_Query switched to fields=ids and skips implicit meta/term cache priming, since the explicit batch primes that follow already do that work.

5.5.0

  • Versioned-key transient cache for /dashboard/stats and /users with carspace_bust_data_cache() busting on invoice mutations, assigned_user / pricing meta changes, and user create/update/delete.
  • Removed three wp_ajax_* handlers in helpers/notifications.php that duplicated REST endpoints.
  • Pruned ~340 KB of legacy code: deact-assets/, unused endpoints/*, endpoints/car-invoices/, helpers/render-table.php + table-parts/, helpers/dashboard-cards.php, helpers/ajax-handlers.php.

5.4.0

  • Initial public release of the React SPA rewrite (production version on artcase.ge).

Releases

10 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v5.11.0 latest
Apr 28, 2026 5mo ago
carspace-dashboard-v5.11.0.zip
3
Apr 28, 2026 5mo ago
carspace-dashboard-v5.10.0.zip
0
Apr 28, 2026 5mo ago
carspace-dashboard-v5.9.2.zip
1
Apr 28, 2026 5mo ago
carspace-dashboard-v5.9.1.zip
1
Apr 28, 2026 5mo ago
carspace-dashboard-v5.9.0.zip
1
Apr 28, 2026 5mo ago
carspace-dashboard-v5.8.0.zip
1
Apr 28, 2026 5mo ago
carspace-dashboard-v5.7.1.zip
1
Apr 28, 2026 5mo ago
carspace-dashboard-v5.7.0.zip
0
Apr 28, 2026 5mo ago
carspace-dashboard-v5.6.0.zip
0
Apr 28, 2026 5mo ago
carspace-dashboard-v5.5.0.zip
0
A grade

Security

Carspace User Dashboard 5.11.0 · audited by WP Registry

No security issues found.

Audited release
5.11.0
Findings
none
Worst severity
—
Content hash
2f494feb2f5130e3a54118fa…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.