Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/designcart/design-cart-woo-dashboard/archive/refs/heads/main.zipDesign Cart Woo Dashboard
Replace the default WordPress dashboard with a WooCommerce store cockpit: 30-day sales, orders, unique buyers, average cart value, navigation tiles, and charts.
GitHub About / short description
Paste into the repository About description field:
WooCommerce store dashboard that replaces the default WordPress admin home: 30-day sales, orders, buyers, charts, and shortcuts. By Paweł Nosko / Design Cart.
Links
- Download / project page (Design Cart): https://www.designcart.pl/laboratorium/365-profesjonalny-kokpit-sklepu-woocommerce-zamiast-domyslnego-wordpress.html
- Documentation / article (Polish): Profesjonalny kokpit sklepu WooCommerce zamiast domyślnego WordPress
- Author — Paweł Nosko: https://www.designcart.pl/pawel-nosko.html
- Studio — Design Cart: https://www.designcart.pl/
What it is
WordPress was built as a publishing CMS. WooCommerce adds a shop, but the first screen after login is still the blog dashboard: a draft, comments, WordPress news. Sales live under Analytics, orders, or reports — not on the home screen.
Design Cart Woo Dashboard changes that first screen. Users with the manage_woocommerce capability land on a store cockpit: four metric tiles, optional shortcuts to daily shop work, and optional 30-day charts with an accessible data table. Everyone else keeps the standard WordPress dashboard. Roles stay separate.
It does not replace WooCommerce Analytics. It does not invent a new reporting engine. It takes orders the shop already has and turns them into one operational home screen.
Full documentation (Polish): Profesjonalny kokpit sklepu WooCommerce zamiast domyślnego WordPress.
Author: Paweł Nosko · Company: Design Cart · License: GPL-2.0-or-later · Version: 1.0.0
The problem it solves
Dedicated commerce platforms greet you with the shop. OpenCart, PrestaShop, Magento, and Shopify show sales, orders, customers, and shortcuts on the first screen. WordPress does not: the CMS home stays a CMS home even after WooCommerce is installed.
Typical results:
- the shop owner logs in and sees a post draft, not yesterday’s sales,
- staff click through menus to reach orders and products,
- WooCommerce Analytics is a separate, heavier React app — good for analysis, poor as “good morning, here is your store”,
- WooCommerce widgets on the default dashboard disappear between drafts, updates, and news.
This plugin fills that gap. It is an operational cockpit, not a cohort / funnel suite: how the last 30 days look, and where to click next.
Features
- Store cockpit under Dashboard → Store cockpit (Kokpit → Kokpit sklepu in the Polish admin UI)
- Optional redirect: visiting a bare
wp-admin/index.phpsends WooCommerce managers to the store cockpit - Four tiles: sales (gross after refunds), orders, unique buyers (including guests), average cart value
- Eight capability-aware shortcuts: products, orders (HPOS-aware), categories, customers, coupons, reports, shop settings, add product
- Three Chart.js charts for the same 30 days (daily sales, order count, average cart) plus a collapsible daily table
- Settings under WooCommerce → Dashboard settings (Ustawienia kokpitu): redirect, navigation tiles, charts, order statuses
- Default statuses: Processing and Completed; you can include any WooCommerce status
- HPOS compatibility declared; stats use
wc_get_orders() - Local assets only — Chart.js 4.4.4 is bundled, no CDN, no telemetry
- Admin UI uses the Design Cart DC Interface (hero + form card + tabs)
Honest limits
- Does not replace WooCommerce Analytics (net revenue, funnels, period comparison stay there).
- Does not count abandoned carts, sessions, or Google Analytics conversions.
- Does not convert currencies; only the current store currency is included.
- The period is always the last 30 calendar days, including today (today is an incomplete day).
- Charts are admin-only — nothing is rendered on the storefront.
Requirements
- WordPress 6.5+
- PHP 7.4+
- WooCommerce 7.1+ (must be active; uses OrderUtil / CRUD orders)
- Tested up to WordPress 7.1
manage_woocommercefor users who should see the store cockpit
If WooCommerce is not active, the plugin does not boot and shows an admin notice.
Installation
- Download the ZIP from the Design Cart project page or from this GitHub repository.
- WordPress → Plugins → Add Plugin → Upload Plugin.
- Upload the ZIP. The root folder must be
design-cart-woo-dashboardwithdesign-cart-woo-dashboard.phpinside. - Activate Design Cart Woo Dashboard. WooCommerce must already be active.
- Open Dashboard → Store cockpit, or just open Dashboard — with default settings you are redirected there.
- Configure under WooCommerce → Dashboard settings.
Manual / FTP: copy design-cart-woo-dashboard/ into /wp-content/plugins/, then activate.
Nothing has to be filled in to see the first screen. By default the plugin replaces the WordPress dashboard, shows navigation tiles and charts, and counts Processing + Completed orders.
Admin: store cockpit
The admin UI is Polish. Labels below are English equivalents.
Screen: Dashboard → Store cockpit (wp-admin/index.php?page=design-cart-woo-dashboard). Requires manage_woocommerce.
Hero
| Control | What it does |
|---|---|
| Dashboard settings | Opens the configuration screen. |
| Go to the store | Opens the storefront homepage. |
Overview tiles
Heading shows the 30-day date range and a badge with the last calculation time (refresh every 5 minutes).
| Tile | What it shows |
|---|---|
| Total sales | Gross after refunds, in the store currency. Taxes and shipping included. A refund reduces sales on the order created day. |
| Orders | Orders in the selected statuses, last 30 days, current store currency only. |
| Customers | Unique buyers, including guests. Billing email first (case-insensitive), then account ID, then the order itself. This is not a count of registered accounts. |
| Average cart value | Sales after refunds / order count. Zero orders → zero, no division by zero. |
If nothing matches the statuses and currency, the tiles stay at zero and an empty-state notice is shown.
Manage the store — shortcuts
Shown when navigation tiles are enabled (default on). Each tile is hidden unless the user has the matching capability.
| Tile | Destination | Capability |
|---|---|---|
| Products | Product list | edit_products |
| Orders | HPOS order screen, or classic shop-order list | edit_shop_orders |
| Categories | Product category taxonomy | manage_product_terms |
| Customers | WooCommerce Analytics customers | manage_woocommerce |
| Coupons | Coupon list | edit_shop_coupons |
| Reports | WooCommerce Analytics overview | view_woocommerce_reports |
| Shop settings | WooCommerce settings | manage_woocommerce |
| Add product | New product form | edit_products |
Charts — last 30 days
Shown when charts are enabled (default on). Same days and statuses as the tiles.
- Daily sales — bar chart
- Orders — bar chart
- Average cart value — line chart (empty days are zero)
A collapsible table under the charts lists day, orders, sales, and average cart (for copy/paste and for users who do not read canvas). Chart.js respects prefers-reduced-motion.
Admin: dashboard settings
Screen: WooCommerce → Dashboard settings (wp-admin/admin.php?page=dcwd-settings). Requires manage_woocommerce. Save uses a nonce. At least one order status is required; otherwise the previous settings are kept.
General (Ogólne)
| Option | Default | What it does |
|---|---|---|
| Replace the default WordPress dashboard with the store cockpit | On | A bare wp-admin/index.php (no query args) redirects users with manage_woocommerce. Other dashboard URLs with parameters are left alone. Turning this off restores the WordPress home screen; the store cockpit stays in the menu. |
| Show navigation tiles | On | Shows or hides “Manage the store”. |
| Show charts and the 30-day data table | On | Shows or hides the charts and table. When off, Chart.js is not enqueued. Metric tiles stay. |
Statistics (Statystyki)
The same status list feeds tiles and charts. Statuses come from wc_get_order_statuses(), including custom statuses added by other plugins.
| Option | Default | What it does |
|---|---|---|
| Include orders with statuses | Processing, Completed | Include the status in the numbers. At least one must stay on. Fully refunded orders are out by default because Refunded is not selected. Turning on Pending or Cancelled adds them to sales as well — the plugin does not guess what “revenue” means for you. |
How the numbers work
| Topic | Rule |
|---|---|
| Period | 30 calendar days, including today. Today is incomplete. |
| Order date | Created date in the WordPress timezone, not payment date or status-change date. |
| Currency | Current store currency only. No FX conversion. |
| Sales | total − total_refunded. A full refund zeroes that order’s sales contribution; the order still counts if its status is selected. |
| Refund day | Refunds reduce sales on the order created day, not the refund day. |
| Buyers | Hashed identity: email, then user ID, then order ID. The cache stores hashes and totals, not emails. |
| Source | WooCommerce CRUD, 100 orders per page. Result cached 5 minutes. Cache key includes statuses and currency, so a settings change recalculates immediately. |
| Deactivate | Restores the default WordPress dashboard. Option dcwd_settings stays in the database. |
License
GPL-2.0-or-later. See the plugin header in design-cart-woo-dashboard.php. Chart.js 4.4.4 is MIT; the original notice is kept with the library, full license in assets/js/Chart.LICENSE.md.
Author: Paweł Nosko / Design Cart.
Project page: https://www.designcart.pl/laboratorium/365-profesjonalny-kokpit-sklepu-woocommerce-zamiast-domyslnego-wordpress.html