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
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.

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_earningspermission is enabled) - Occupancy rate percentage
The widget greets the staff member by name and shows a quick status of their schedule.
Appointment Trends (Chart)
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:
| Action | Permission Required |
|---|---|
| Calendar | view_calendar |
| All Appointments | view_appointments_list |
| Availability | manage_own_availability |
| Profile | Always visible |
| Customers | view_customers |
| Export | export_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 Item | Permission Required |
|---|---|
| Products | manage_products |
| Orders | view_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

Customer Permissions
| Feature | Permission |
|---|---|
| View own customers only | view_customers |
| View all customers (not just own) | view_all_customers |
| View customer appointment history | view_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:

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
| Preset | Dashboard | Calendar | Create | Customers | Products | Earnings |
|---|---|---|---|---|---|---|
| Minimal | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Standard | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| Advanced | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Technical Notes
- The Staff Portal is implemented by
WC_Appointments_Admin_Staff_DashboardandWC_Appointments_Admin_Staff_Menuclasses - Dashboard widgets use AJAX for real-time data refresh without page reload
- Chart data is fetched via
wca_staff_dashboard_chart_dataAJAX action - Heatmap data is fetched via
wca_staff_dashboard_monthly_heatmapAJAX 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"