
PVD User Dashboard
Give your customers a central dashboard for managing their downloads, licenses, transactions and much more.
PVD User Dashboard provides a modern, block-based front-end dashboard for WordPress users – built for Full Site Editing (FSE) themes and the Block Editor.
Instead of relying on legacy "account shortcodes" and hard-coded templates, this plugin uses a dynamic block + a PHP template so you can:
- Create a dedicated front-end dashboard page (default: /dashboard/)
- Edit the dashboard page like any other WordPress page (Block Editor)
- Toggle optional modules on/off
- Keep front-end output lightweight (assets load only when the dashboard block is present)
- Provide an inbox-like Messages experience with auditable data storage (CPT-based)
Modules
Always enabled:
- Profile
- Messages
Optional (toggle in Settings â†' PVD User Dashboard â†' Modules):
- Orders (Easy Digital Downloads integration)
- Downloads & Licenses (integration point)
- Tables (integration point)
- Like & Save (integration point)
- Upload the pvd-user-dashboard folder to the /wp-content/plugins/ directory.
- Activate the plugin through the WordPress "Plugins" menu.
- On activation, a page titled "User Dashboard" (slug: dashboard) will be created if it does not already exist.
- (Optional) Enable/disable modules in:
Settings â†' PVD User Dashboard â†' Modules
Block-based dashboard (FSE-friendly)
- The dashboard UI is rendered via the pvd-user-dashboard/dashboard-content block.
- The plugin will auto-create a "User Dashboard" page on activation (if one does not already exist).
Orders (Easy Digital Downloads)
The Orders module provides a dashboard-native order history UI using EDD data.
Key points:
- Pagination works correctly inside a dashboard tab/panel (no broken /dashboard/page/2/ routes)
- Pagination is progressive enhanced:
- With JavaScript: loads in-place via AJAX (no full page reload)
- Without JavaScript: uses query-string links like: /dashboard/?orders_page=2#my-orders
- Includes a per-order "See order details" link (EDD receipt URL where available)
Shortcode:
- [pvd_order_history]
- Optional attribute:
- [pvd_order_history per_page="25"]
Note: The dashboard template uses this shortcode. You can adjust per_page in the template (or wherever you place the shortcode) without adding new admin settings.
Messages (Inbox UX)
Messages are stored as a CPT (user_msg) so admins can create and manage messages in wp-admin while users read them on the front-end.
Front-end UX:
- Messages nav badge count (new since last read)
Dashboard page
Default location:
- /dashboard/
The dashboard page content contains:
- <!– wp:pvd-user-dashboard/dashboard-content /–>
You can move this block to a different page if you want. The plugin will still only enqueue its CSS/JS on pages containing that block.
Orders (Shortcode)
You can use the Orders shortcode in other places (not only the dashboard), but it is specifically built to behave correctly inside a "tabbed panel" layout.
Examples:
- [pvd_order_history]
- [pvd_order_history per_page="10"]
Query-string pagination parameter:
- orders_page
Example:
- /dashboard/?orders_page=3#my-orders
CSS hooks
Common hooks:
- Wrapper: .pvd-user-dashboard-wrapper
- Messages badge: .pvd-msg-badge
- Messages item: .pvd-message
- Orders wrapper: .pvd-order-history
- Orders details link: a.pvd-order-details
- Orders pagination wrapper: .pvd-pagination
















