Punchwell installs like any other WordPress plugin. If you already run a WordPress site, you have everything you need — there’s no separate server to set up and no cloud account to create. Your employee data lives in your own WordPress database.
This guide covers both paths: the free core from WordPress.org and the Pro zip. Pick the one that matches what you have, then follow the steps in order.
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 only descriptively.
Before you start: requirements
| Requirement | Minimum | Notes |
|---|---|---|
| WordPress | 5.6+ | Tested up to WordPress 7.0. |
| PHP | 7.4+ | Tested and clean on PHP 8. |
| MySQL | — | Tested and clean on MySQL 8 (strict mode). |
| Site type | Single site | Not designed for WordPress Multisite. |
A couple of things worth knowing up front:
- The base plugin must be active for any add-on to run. Add-ons (recruitment, loans, attendance reports, the front-end/kiosk module, payroll export, and the payroll connectors) self-deactivate if the base plugin isn’t active. Always install and activate the base first.
- HTTPS is required for the mobile/GPS punch screen. Browsers only hand over GPS location on secure (https) sites. The rest of Punchwell works fine over http, but you’ll want HTTPS site-wide anyway.
- Back up first if you’re migrating. If you’re moving off the abandoned original “WP Human Resource Management” plugin, follow the Migration guide instead of this page — your existing employees, attendance, and leave records carry over, and the order of steps matters.
Path A — Install the free core from WordPress.org
This is the fastest way to get started. It installs the base plugin (employees, departments, leave, basic attendance, and the basic single-office IP lock).
- In your WordPress dashboard, go to Plugins → Add New.
- Search for Punchwell.
- Click Install Now on the Punchwell listing, then click Activate.
That’s it — a new Punchwell menu appears in your admin sidebar.
If you prefer to install from a downloaded zip instead, follow Path B below — the steps are identical for the free zip.
Path B — Upload the Pro zip
If you’ve purchased a Pro license, you’ll have a download for the Pro plugin package. Install it through the dashboard:
- Download the Pro zip from your Sturdyhaus account at app.sturdyhaus.com.
- In your WordPress dashboard, go to Plugins → Add New, then click Upload Plugin at the top of the page.
- Click Choose File, select the Punchwell zip you downloaded, and click Install Now.
- When the upload finishes, click Activate Plugin.
Manual install via SFTP (optional)
If you’d rather upload by hand, unzip the package and copy the plugin folder into wp-content/plugins/ on your server, then activate it from Plugins in wp-admin. Keep the folder name exactly as it ships (for the base, that’s wp-hrm) — WordPress uses the folder slug to track the plugin and its updates, so renaming it breaks activation and update detection.
What happens on first activation
The first time you load wp-admin after activating, Punchwell sets up its database tables automatically — there’s nothing to run by hand. This step is idempotent and additive: it adds the tables and columns Punchwell needs and never deletes your data, so it’s safe to run on an existing site. It also stamps the version numbers (hrm_version and hrm_db_version) in your options table.
You’ll know it worked when the Punchwell menu loads without errors and the Dashboard shows.
Installing the add-ons
Add-ons are separate plugins. Install each one exactly the way you installed the base (Path A or Path B), and activate the base plugin first.
| Add-on | What it adds |
|---|---|
| Front-end module | HR on public pages, self-service widgets, the kiosk clock, and the mobile/GPS/PWA punch screen |
| Recruitment | Job posts, an apply form, applicant review, and one-click hire → employee |
| Employee loans | Loans repaid automatically via payroll deduction (HR-managed) |
| Attendance reports | Day-by-day reports plus manual punch edits for missed or wrong punches |
| Permission control | Granular custom roles and per-tab access toggles |
| Payroll export | The payroll engine: payout report, CSV export, and provider connectors |
| SurePayroll / Gusto connectors | Vendor connectors that plug into the payroll export engine |
A few add-on notes:
- The payroll connectors (SurePayroll, Gusto) require the payroll export add-on to be active, in addition to the base.
- If you activate an add-on before the base, it will simply deactivate itself. Activate the base, then the add-on, and you’re set.
Activate your Pro license
A Pro license unlocks the full feature bundle (per-employee and per-office IP depth with CIDR and ranges, block/warn/flag modes, GPS geofence, kiosk, mobile punch, payroll export, PTO accrual, reminders, checklists, and more) across the base and add-ons.
- Find your license key. After purchase, the key is issued through your Sturdyhaus account at app.sturdyhaus.com. It’s a single string you’ll copy and paste.
- In wp-admin, open Punchwell → Settings and locate the License field.
- Paste your key and save / activate it.
Your license is per site, not per seat — you can add unlimited employees on any tier. Each Pro license covers one WordPress install; running Punchwell on another site just takes another license. Activate the key on the site it belongs to.
Updates
The free core updates through WordPress.org like any other plugin — you’ll see Punchwell listed under Dashboard → Updates and Plugins when a new version is available, and you update it with one click.
For Pro, keep an eye on your Sturdyhaus account for new releases and changelog notes; an active license is what keeps you entitled to updates and support. Because Punchwell is GPL and self-hosted, you’re never locked in — even if a license lapses, you keep the plugin and every record you’ve stored.
When you update the base plugin to a version that changes the database, the same safe, additive setup step from first activation runs again automatically on the next wp-admin load. It only ever adds tables and columns — it never removes your data.
Verify the install
After activating (and entering a license, if you have one), do a quick check:
- The Punchwell menu appears in the admin sidebar and the Dashboard loads without errors.
- Punchwell → Structure opens and shows the Organization, Departments, Job Titles, and Locations tabs.
- If you installed the front-end add-on, a Punchwell page is created automatically for the public-facing app.
- Before anyone can clock in, complete the three prerequisites (in order): the person has the employee role, is assigned to a department, and that department has a shift policy. Miss any one and the punch is refused by design — see Attendance & shift setup and Setting up the IP lock.
Troubleshooting
An add-on won’t stay active / shows “requires the base plugin.”
Activate the base Punchwell plugin first, then the add-on. Payroll connectors also need the payroll export add-on active.
The Punchwell menu doesn’t appear after activation.
Confirm the plugin shows as Active under Plugins. If you installed manually, check the folder landed in wp-content/plugins/ with its original folder name unchanged.
A white screen or fatal error after activating.
Confirm you’re on PHP 7.4+ (PHP 8 recommended). The original abandoned plugin fataled on PHP 8 — Punchwell is PHP 8 / MySQL 8 clean, so a fatal almost always points to an unrelated PHP version or a conflict with another plugin.
I’m on Multisite.
Punchwell isn’t designed for WordPress Multisite. Run it on a standard single-site WordPress install.
FAQ
Do I have to manage a server or a cloud account?
No. If you already run a WordPress site, Punchwell installs like any other plugin. “Self-hosted” simply means your employee data lives in your own WordPress database instead of a vendor’s cloud — there’s no separate server to manage and no account to set up.
Does the base plugin really have to be active for add-ons?
Yes. The add-ons build on the base. If the base isn’t active, each add-on deactivates itself automatically. Install and activate the base first, then add the add-ons you want.
Can I start free and upgrade to Pro later?
Yes. Install the free core from WordPress.org now, and when you’re ready for the full feature bundle, install the Pro package and activate your license. Your data stays in place.
Where do I get my license key?
After purchasing, your key is issued through your Sturdyhaus account at app.sturdyhaus.com. Paste it into the License field under Punchwell → Settings.
Is my data sent anywhere during install or activation?
No. Punchwell shares no data with any third party — everything stays in your own WordPress database. The free version makes no outbound calls at all; the only outbound call Pro makes is validating your license key against our own billing server, never your data. (The only external content anywhere in the product is optional YouTube tutorial embeds and Gravatar avatars, which are standard WordPress.)
Will installing on an existing site that has HR data wipe anything?
No. The setup step that runs on first activation is additive — it adds tables and columns and never deletes data. If you’re migrating from the original abandoned plugin specifically, follow the Migration guide, where the order of steps matters.
Next: Attendance & shift setup · Setting up the office-IP clock-in lock · Migrating from the original plugin
Punchwell, by Sturdyhaus. Independent GPL fork. Not affiliated with wpspear, weDevs, or the original author. Product names referenced descriptively only.