Guided Admin Tour
Admin Tools & ModerationA built-in onboarding walkthrough runs the first time a new admin opens the WP Sell Services dashboard. It introduces the sidebar, the at-a-glance stats cards, and each of the main sub-screens - Services, Vendors, Orders, and Settings - so a first-time operator knows where everything lives without reading docs first.

When The Tour Starts#
The tour auto-opens the first time a logged-in admin lands on Sell Services > Dashboard. It will not re-open on subsequent visits.
- Completion is persisted per-user in the
wpss_tour_completeduser meta - Clicking "Skip" counts as completion - the tour won't nag you again
- Each admin sees the tour once on their own account; a second admin on the same site still gets their own first-time walkthrough
The Eight Steps#
- Welcome -- points at the "Sell Services" sidebar item
- Marketplace at a glance -- highlights the order/revenue stats cards
- Quick actions -- the shortcut panel for common admin tasks
- Services -- where vendor services live
- Vendors -- all vendor accounts and the registration flow
- Orders -- the 11-status order lifecycle
- Settings -- commission, payouts, tax, notifications
- You're all set -- sign-off with a pointer to the "Replay guide" button
Each step carries a short explainer, a Lucide icon, and Back / Next / Skip controls.
Replaying The Tour#
After the first run, the Dashboard header shows a Replay guide button next to the page title. Click it any time to walk through again - you don't need to reset any user meta.
Letting Pro Or Custom Code Add Steps#
The tour content is filterable. A Pro plugin or custom integration can append its own steps by hooking wpss_tour_steps:
add_filter( 'wpss_tour_steps', function ( array $steps ): array {
$steps[] = array(
'id' => 'my-addon',
'title' => __( 'My Add-on', 'my-addon' ),
'text' => __( 'Configure the add-on here.', 'my-addon' ),
'attachTo' => array(
'element' => '#adminmenu a[href="admin.php?page=my-addon"]',
'on' => 'right',
),
'buttons' => array(
array(
'text' => __( 'Back', 'my-addon' ),
'action' => 'back',
'classes' => 'shepherd-button-secondary',
),
array(
'text' => __( 'Next', 'my-addon' ),
'action' => 'next',
'classes' => 'shepherd-button-primary',
),
),
);
return $steps;
} );
Two notes:
actionis a plain string -- the controller translatesnext/back/cancel/completeto the correct Shepherd callback.- If your
attachTo.elementselector doesn't match anything, the step still renders (centered) instead of aborting the tour. Safer for themes that restructure menu markup.
Resetting Completion For A User#
If you need to force the tour to re-open automatically (for example, during a training session) delete the user's meta:
wp user meta delete <user_id> wpss_tour_completed
Or via SQL:
DELETE FROM wp_usermeta WHERE user_id = 1 AND meta_key = 'wpss_tour_completed';
The next time that user opens the dashboard the full walkthrough runs again.
Technical Notes#
The tour is implemented with Shepherd.js v11 and Lucide for icons, both bundled locally (no CDN calls). The controller lives at assets/js/wpss-tour.js; step authoring is in src/Frontend/Tour.php (get_admin_tour_steps()). Completion is persisted through the REST endpoint POST /wpss/v1/tour/complete.