Skip to main content

Staff Portal

The Staff Portal is a tailored WordPress admin experience for staff members, introduced in version 5.2.0. When a user with the Shop Staff role logs in, they see a focused, appointment-centric interface instead of the full WordPress admin.

Overview

The portal consists of three main components:

  • Dashboard Widgets — appointment stats, charts, heatmap, and quick actions on the WordPress Dashboard
  • Streamlined Menu — only appointment-related pages are visible
  • Admin Bar — simplified toolbar with quick links to Calendar, Appointments, and Customers
tip

The Staff Portal activates automatically for any user who has the manage_appointments capability but not manage_others_appointments. Administrators and Shop Managers always see the full admin.

Dashboard

When a staff member visits the WordPress Dashboard (Home), all default WordPress and WooCommerce widgets are removed and replaced with appointment-specific widgets arranged in a 3-column layout.

Staff Portal Dashboard

Appointments Overview

A summary card showing key metrics at a glance:

  • Today's appointments count
  • This week's total
  • Pending confirmation count (with a link to review)
  • Completed this month
  • Revenue this month (if the view_own_earnings permission is enabled)
  • Occupancy rate percentage

The widget greets the staff member by name and shows a quick status of their schedule.

An interactive line chart powered by Chart.js showing appointment volume and revenue over time. Staff can toggle between:

  • Last 7 days
  • Last 30 days
  • Last 90 days

The chart displays appointment counts on one axis and revenue on the other (revenue only visible when the view_own_earnings permission is granted).

Upcoming Appointments

A live list of the staff member's next appointments, showing:

  • Date with day and month
  • Today badge for same-day appointments
  • Soon highlight for appointments within the next 2 hours
  • Product name, time range, and customer name
  • Status badge (confirmed, paid, pending, etc.)
  • View Details link to the appointment editor

When there are no upcoming appointments, an empty state message is shown with a Create Appointment button (if the create_appointments permission is enabled).

Insights

Analytics about the staff member's booking patterns:

  • Peak hour — the most popular booking time
  • Peak day — the busiest day of the week
  • Recent customers — list with avatars

This Week

A day-by-day breakdown of the current week showing appointment counts per day, highlighting today.

Monthly Schedule (Heatmap)

A calendar heatmap showing appointment density for the current month. Staff can navigate between months. Days are color-coded by appointment count intensity, making it easy to spot busy and quiet periods.

Top Products

Shows which appointable products the staff member is booked for most frequently, with appointment counts.

Quick Actions

Permission-aware shortcut buttons:

ActionPermission Required
Calendarview_calendar
All Appointmentsview_appointments_list
Availabilitymanage_own_availability
ProfileAlways visible
Customersview_customers
Exportexport_appointments

Each button only appears if the staff member has the corresponding permission.

Streamlined Admin Menu

The Staff Portal removes all standard WordPress menu items and shows only:

  • Dashboard — the custom dashboard with appointment widgets
  • Appointments — list view, calendar, and sub-pages
  • Profile — edit personal details, timezone, availability, and Google Calendar sync

Conditional Menu Items

These appear based on permissions:

Menu ItemPermission Required
Productsmanage_products
Ordersview_orders
Customers (sub-menu under Appointments)view_customers

If a staff member tries to access a page they don't have permission for (e.g., navigating directly to a product URL), they are automatically redirected to the Appointments list.

Admin Bar

The WordPress admin bar is simplified for staff:

  • Standard items like New Post, Comments, Updates, and Site Name are removed
  • An Appointments menu is added with quick links:
    • Dashboard → WordPress Dashboard (with appointment widgets)
    • Calendar → Appointment calendar (requires view_calendar)
    • All Appointments → Appointments list (requires view_appointments_list)
    • Customers → Customer list (requires view_customers)

Pending Badge

When there are appointments awaiting confirmation, a count badge appears on the Calendar menu item, alerting the staff member to take action.

Dashboard Notices

When a staff member has pending-confirmation appointments, a prominent notice appears at the top of the Dashboard:

Action Required — You have X appointments awaiting confirmation. [Review Now]

The notice links directly to the filtered appointments list showing only pending items.

Customers Page

Staff members with the view_customers permission can access a dedicated Customers page under Appointments → Customers. This page shows:

  • Customer name, email, phone, and avatar
  • Appointment count — how many appointments each customer has had
  • Last appointment date

Staff Portal Customers

Customer Permissions

FeaturePermission
View own customers onlyview_customers
View all customers (not just own)view_all_customers
View customer appointment historyview_customer_history
Contact customers (email link)contact_customers

Staff Profile

Staff members can edit their own profile at Profile (top-level menu item). The profile page includes standard WordPress fields plus appointment-specific sections:

Staff Portal Profile Settings

Timezone

Select a working timezone or keep Default to use the site timezone. A "Use my current timezone" button appears when the browser-detected timezone differs from the current setting. See Timezones for details.

Availability Rules

Staff can manage their own availability rules directly from their profile, organized into two tabs:

  • My Rules — manually created availability rules (add, edit, delete, reorder)
  • Synced Rules — rules synced from Google Calendar (read-only display with count badge)

When the staff member's timezone differs from the site timezone, a note shows which timezone the rules are displayed in. Times are automatically converted between staff and site timezones when saving.

Google Calendar Sync

Connect a personal Google Calendar for two-way sync. Requires the store-level Google Calendar integration to be configured first.

Permissions Reference

The Staff Portal respects the granular permissions system. See Roles & Capabilities for the complete list of permissions and how to configure them globally or per-staff-member.

Quick Permission Presets

PresetDashboardCalendarCreateCustomersProductsEarnings
Minimal
Standard
Advanced

Technical Notes

  • The Staff Portal is implemented by WC_Appointments_Admin_Staff_Dashboard and WC_Appointments_Admin_Staff_Menu classes
  • Dashboard widgets use AJAX for real-time data refresh without page reload
  • Chart data is fetched via wca_staff_dashboard_chart_data AJAX action
  • Heatmap data is fetched via wca_staff_dashboard_monthly_heatmap AJAX action
  • Widget layout defaults to 3 columns on first visit, but staff can rearrange widgets using standard WordPress drag-and-drop
  • The footer text is customized to show "Thank you for using WooCommerce Appointments Staff Portal"