Employee Self-Service for WordPress

Every “how many hours did I work last week?” and “how much PTO do I have left?” is a small interruption — and across a team they add up to a steady drip of Slack messages, texts, and hallway questions landing on whoever runs HR. Employee self-service is the fix: give staff a place to answer those questions themselves, and the drip stops.

If you already run a WordPress site, you don’t need a separate portal or another cloud login to do it. This is a look at what employee self-service for WordPress actually means, what staff can see and do, and how to set it up without handing anyone the keys to information that isn’t theirs.

What “self-service” means when employees are WordPress users

The foundation matters here. In Punchwell, employees are WordPress users — a person with the hrm_employee role is an employee, and their profile, hours, and leave live in your own WordPress database. Self-service isn’t a bolt-on portal syncing to a vendor cloud; it’s information the site already holds, shown to the person it belongs to.

That has three nice consequences:

  • No new logins. Staff sign in to the site they already use. Nothing new to provision, nothing new to forget.
  • The data stays yours. Self-service reads from your database on your server — it doesn’t ship anything out. There’s no outbound sync to a third party.
  • You place it wherever you want. Because the pieces are ordinary widgets and blocks, you drop them onto an internal page, a private dashboard, or an intranet home — no separate app to send people to.

What staff can see and do themselves

Self-service is delivered as a set of widgets — each one also available as a Gutenberg block, and the clock, holidays, and notices also as classic widgets — so you assemble exactly the view you want. The building blocks include:

  • A clock to punch in and out ([hrm_clock]).
  • My hours — an employee’s own worked-time summary, so “what did I do last week?” is self-serve ([hrm_my_hours]).
  • My time off — their own leave and PTO balances, drawn from the accrual ledger, so “how many days do I have left?” answers itself ([hrm_my_timeoff]).
  • Leave requests — submit a request, and self-cancel one that’s still pending ([hrm_leave_request]).
  • Who’s in — a live view of who’s currently clocked in ([hrm_whos_in]).
  • Team, holidays, and notices — the roster, the holiday calendar, and the company announcement board ([hrm_team], [hrm_holidays], [hrm_notices]).

Managers get a piece of their own: an approvals inbox ([hrm_approvals]) that’s office-scoped, so a manager sees the requests that are actually theirs to action rather than the whole company’s.

To make assembly quick, Punchwell ships three ready-made block patterns — a Staff self-service portal, a Lobby kiosk, and an Intranet home — so you can start from a sensible layout instead of a blank page and adjust from there.

Letting people see their own pay — carefully

Hours and PTO are one thing; pay is more sensitive. Self-service handles that boundary explicitly.

There’s an opt-in “My Pay” view where each employee sees only their own rate, hours, estimated gross, payment method, and key dates — never anyone else’s, and never the company-wide totals. Those aggregate dollar figures on the payroll report stay admin/manager-only. So you can give people a straight answer to “what’s my rate and roughly what will I be paid?” without exposing the payroll for the whole team. It’s off by default; you turn it on when you’re ready.

Why this beats a group chat or a shared spreadsheet

Plenty of small teams run “self-service” informally — a pinned message, a shared sheet, a manager who fields the questions. It works until it doesn’t. A few reasons a proper self-service surface is worth the small setup:

  • Fewer interruptions. The routine questions — hours, balances, who’s on today — answer themselves, so HR isn’t the lookup service.
  • One source of truth. Balances come straight from the accrual ledger, not a spreadsheet someone forgot to update, so the number an employee sees is the number that’s real.
  • Cleaner requests. A leave request through the widget lands in the right approver’s inbox with a record attached, instead of a text that gets lost. And because staff can self-cancel a pending request, plans that change don’t require a second message to someone else.
  • Less shoulder-surfing risk. People see their own information, scoped by role — not a shared document where everyone can see everyone.

A note on trust and control

Self-service is only comfortable if you trust where the data lives and who can see what. Two things make that easier here.

First, it’s self-hosted. Employee hours, balances, and pay details never leave your WordPress site — no cloud service in the middle, no data call-home. For a clinic, agency, or any business that would rather not put staff data in someone else’s cloud, that’s the whole point.

Second, visibility is role-scoped by design. Employees see their own records; managers see their office’s approvals; the sensitive dollar totals stay with admins and managers. Self-service widens access to your own information without widening access to everyone’s.

The bottom line

Employee self-service for WordPress turns the steady stream of “how many hours / how much PTO / who’s in today” questions into something staff answer themselves — from the site they already sign in to, with their data staying on your server. Add a clock, a “my hours” and “my time off” view, a leave-request form, and — if you want it — an opt-in “My Pay” view, and HR stops being the help desk for questions people can answer on their own.

If you’d like to see the full set of self-service widgets and how they fit together, start with the employee self-service feature page, or take the broader product tour to see where it sits alongside the time clock and leave tools.


Punchwell, by Sturdyhaus — a self-hosted WordPress time clock and HR suite. Your employee data stays in your own WordPress database: no cloud, no data call-home.


Punchwell is an independently maintained GPL fork. Not affiliated with the original “WP Human Resource Management” plugin or its authors. Competitor names and figures are nominative and approximate (as of the date noted) — confirm current rates.