Getting Started with Punchwell

Welcome. This page is your orientation: what Punchwell is, the one setup checklist that trips up most new users, how to take the first punch, and where to find everything afterward. If you can run a WordPress site, you can run Punchwell.

What Punchwell is

Punchwell is a self-hosted WordPress time clock and HR suite for small and mid-sized businesses with on-site, hourly, and shift workforces — retail shops, clinics, restaurants, warehouses, salons, and the like.

Its flagship feature is a hard-enforced office-IP clock-in lock: flag an employee as office-only and they can punch in or out only from your network. It refuses an off-site punch server-side rather than merely logging where it happened — so buddy punching and clocking in from home stop. (Full details in the IP-lock guide.)

A few facts that shape everything else:

  • Employees are WordPress users. A person with the hrm_employee or hrm_manager role is an employee — there’s no separate login system to learn. Their details (department, birthday, IP-lock flag) are stored as WordPress user meta.
  • Self-hosted, your data. Punchwell lives inside the WordPress site you already run. There’s no cloud account and no data call-home — the free version makes no outbound calls at all, Pro’s only outbound call is license validation (never your data), and your timesheets stay in your own database.
  • One base plugin plus optional add-ons. The base does the core HR job (employees, departments, attendance, leave). Each add-on snaps on for one extra capability (front-end self-service, recruitment, loans, attendance reports, payroll export). The base must be active first — every add-on turns itself off if the base is missing.

Punchwell is an independent, third-party maintained fork of the GPL-licensed “WP Human Resource Management” plugin. Sturdyhaus is not affiliated with, endorsed by, or sponsored by wpspear, weDevs, or the original author; the original plugin’s name is referenced descriptively only.

Before you start: get Punchwell installed

This page assumes the base plugin is installed and active. If it isn’t yet, work through the installation guide first, then come back here.

In short: copy the plugin folder into wp-content/plugins/, activate WP Human Resource Management (the base) under Plugins, then activate any add-ons you want. The base creates its database tables automatically on activation — there’s no setup script to run.

The clock-in prerequisites (do these in order)

This is the part new users get wrong, so it’s worth slowing down for. Clock-in will not work until all three of these are true, in this order, because each one depends on the one before it. This is by design, not a bug.

  1. The person has an employee role. They must be a WordPress user with the hrm_employee or hrm_manager role. Adding someone under Punchwell → Employee does this for you.
  2. They are assigned to a department. Create a department first under Punchwell → Structure → Departments, then assign the employee to it. Departments are the backbone — shifts, leave, and clock-in all hang off them.
  3. That department has a shift policy. A department needs an active shift policy (start time and work hours) before anyone in it can punch. Set this up under Punchwell → Attendance and attach the policy to the department.
Employee role  →  Assigned to a department  →  Department has a shift policy  →  Can clock in

If any link in the chain is missing, the employee sees a clear message instead of a punch — for example “You do not have an assigned department” or “You have not been assigned an attendance time-shift policy.” That’s the setup checklist telling you which step is incomplete, not an error to debug.

A sensible first-run order

A clean way to set up from scratch:

  1. Create a departmentPunchwell → Structure → Departments. Name it (e.g. “Operations”) and set it active.
  2. Create a shift policyPunchwell → Attendance → add a time-shift policy (start time, work hours) and attach it to that department.
  3. Add your employeesPunchwell → Employee → Add. For each person, set their department and a role (Employee or Manager). They receive an email with their login details.
  4. Set the fiscal yearPunchwell → Settings. Leave balances and the holiday calendar are scoped to it, so set it early. (Fresh installs default to January 1.)
  5. Tell staff to log in and punch.

Taking the first punch

Once an employee meets all three prerequisites, clocking in is one button:

  1. The employee logs in to WordPress.
  2. They open the Punchwell screen (in wp-admin, or on a public page if you’ve added the front-end self-service widgets).
  3. They click Punch In. The worked time is recorded. At the end of the shift, they click Punch Out.

If you’ve turned on the office-IP lock for that person and they’re off-network, the punch is refused with the server’s message shown inline — exactly the behavior you want. Clock-out is never blocked, so an open punch can always be closed.

Where things live

Everything is reached from a single Punchwell item in the WordPress left-hand admin menu (the people-group icon).

Screen What it’s for
Dashboard Read-only summary — headcounts, who’s in or absent today, birthdays, upcoming HR dates.
Structure Organization details, Departments, Job Titles, Locations (multi-office, with IPs and GPS fence), and Notices.
Employee The staff directory and the “add a person” form.
Attendance The punch clock plus shift policies.
Leave Leave types, the holiday calendar, the work week, and approvals. Also holiday import.
Settings The central configuration hub — see below.

The Settings hub

Almost everything you’d want to configure without touching code lives under Punchwell → Settings (the Hrm_Config hub). Its tabs cover:

  • Branding — company name, logo, address, timezone, date/time format, fiscal-year start, employee-ID auto-numbering.
  • Attendance — punch rounding, grace periods, auto clock-out, overnight shifts.
  • IP & Geofence — enforcement mode (Block / Warn / Flag), the CIDR/range allowlist, lock-by-role, the clock-in time window, and the GPS geofence. (See the IP-lock guide.)
  • Notifications — email From-name, Reply-to, CC HR, and per-event toggles for the daily HR reminder digest.
  • Checklists — onboarding/offboarding task templates.
  • Data & Privacy — attendance-retention purge schedule.

Good news for existing sites: every option in Settings defaults to no-op. Upgrading or installing Punchwell changes no behavior until you explicitly turn something on — so nothing surprises you.

Where to go next

FAQ

Why won’t my employee clock in?
Walk the three prerequisites in order: (1) do they have the hrm_employee or hrm_manager role? (2) are they assigned to a department? (3) does that department have an active shift policy? The on-screen message tells you which step is missing.

Do I need an add-on to take a punch?
No. Punch in/out and the office-IP lock are in the base plugin. Add-ons extend it — for example, the front-end add-on lets staff punch from a public page instead of wp-admin.

Where do office IP addresses go?
Under Punchwell → Settings → IP & Geofence (and per-office under Structure → Locations, or per-employee on the profile). Use your public IP — what the outside world sees — not a 192.168.x.x private address. Full walkthrough in the IP-lock guide.

Is there a per-seat fee or a limit on employees?
No. Punchwell is priced per site, never per seat, with unlimited employees on every tier.

Will my data leave my server?
No. Punchwell is self-hosted with no data call-home — the free version makes no outbound calls at all, and Pro’s only outbound call is validating your license key, never your data. Your data stays in your WordPress database. (The only optional external content is YouTube tutorial embeds and Gravatar avatars, both standard WordPress.)