WordPress HR Plugin PHP 8 Error? Here’s the Fix

You updated PHP (or your host did it for you), and now your WordPress HR plugin won’t behave. Maybe the whole screen went white. Maybe “add employee” spins forever, punch-out stopped working, or saving a profile or department just hangs. If you’re staring at a WordPress HR plugin PHP 8 error, take a breath — this is a known, fixable situation, and the most important thing to know is this: your data is almost certainly fine. This is a code-compatibility problem, not data loss.

Here’s what’s happening and how to get out of it calmly.

Why a PHP update breaks an old HR plugin

The original “WP Human Resource Management” plugin (slug hrm) was written for PHP 5.6, years ago. Its last release shipped around 2019, and it was removed from the WordPress.org plugin directory in 2025. Nobody’s been maintaining it. PHP has moved on to version 8, which is stricter about the kinds of loose code that were normal in the PHP 5 era — so old type handling and date logic that used to “work” now throw fatal errors instead of quietly limping along.

That’s why the symptoms cluster the way they do: a white screen (a fatal error with display turned off), a spinner that never resolves, punch-out that stops, saves that hang. They’re all the same root cause — PHP 8 refusing code written for an older engine. It isn’t your server misbehaving, and it isn’t your records being wiped.

First: recover access, without making it worse

Before changing anything, slow down and protect what you have.

  1. Take a backup now — both files and the database. Whatever you do next, you want a restore point. If your host offers one-click backups, use it; otherwise your backup plugin or a manual database export works.
  2. Get back into wp-admin. Two safe ways:
    • Temporarily roll PHP back to 7.4 in your hosting control panel (most hosts expose a PHP-version selector). This usually gets the site loading again so you can plan, without committing to anything.
    • Or deactivate the plugin from outside WordPress — rename its folder in wp-content/plugins/ via your host’s file manager or SFTP (for example, hrm to hrm-off). WordPress will deactivate it and let you log in. Nothing is deleted; you’re just switching it off.
  3. Confirm the culprit. Turning on WP_DEBUG in wp-config.php will show the actual fatal error and point at the plugin file throwing it, so you’re diagnosing from facts rather than guesses.

Rolling PHP back or disabling the plugin buys you breathing room — but neither is the fix. Staying on PHP 7.4 forever isn’t safe or sustainable (it’s end-of-life), and leaving the plugin off means no time clock. You need the plugin to run on PHP 8.

The real fix: move to a maintained version that’s PHP 8 clean

Here’s the part that changes the situation. The original plugin won’t get a compatibility update — the vendor is gone and the old update servers are offline, so waiting for a patch isn’t an option. But because it’s GPL-licensed, it could be picked up and maintained by someone else, and it was.

Punchwell is an independent, maintained fork of that same plugin. It’s built on the identical data model — employees are still WordPress users, the same wp_hrm_* tables — but the code has been modernized to run cleanly on PHP 8, WordPress 7, and MySQL 8. The dead libraries the old fatals came from were replaced. So the move isn’t a rebuild; it’s a migration onto a version that doesn’t throw the error in the first place.

The calmest path through it is laid out on the Punchwell migration guide, but the shape of it is:

  • Your data carries over. Same schema lineage means your existing employees, attendance, and leave records come across — this is a migration, not a fresh start.
  • The upgrade reconciles the database for you. On first load it runs an idempotent schema check that adds new tables and columns and never deletes your data, then two documented SQL scripts copy legacy fields into their modern homes. Order matters (let the schema step run first), which the guide spells out.
  • It’s reversible if you back up first. Because you took that backup, rollback is simply restoring it and reactivating the original — so there’s no one-way door here.
  • A few things you re-enter by hand: payroll/salary settings (a different model — you regenerate them), leave-type yearly entitlements (the names survive), and your office IP addresses (you re-confirm them). Everything else moves with the data.
  • Budget roughly 30–60 minutes, and do it on staging first if you can, so the live site is never the guinea pig.

While you’re here: the security angle

There’s a second reason not to just limp along on the old version. It was pulled from WordPress.org citing a security issue, and it carries publicly disclosed vulnerabilities that were never patched in the original. The maintained fork addresses that class of problem — the vulnerable endpoints are capability-gated (WordPress’s own permission checks), and the old “call-home” networking code was removed and verified. It’s not a claim that anything is unhackable; it’s that the known, unmaintained holes have been closed rather than left open. If your HR data is sitting in the abandoned plugin, the security overview is worth five minutes — it explains what was fixed and what to check on your own install.

Frequently asked questions

Will fixing the PHP 8 error make me lose my employee data?

No. The crash is a code-compatibility issue, not data corruption — your records are still in the database. Take a backup, recover access, then migrate to the maintained, PHP 8-clean version. Because it shares the same schema, your employees, attendance, and leave records carry over.

Can I just downgrade PHP and leave it?

You can temporarily, to regain access, but it’s not a real fix. PHP 7.4 is end-of-life, and the original plugin won’t be updated for PHP 8 because it’s abandoned. The durable answer is to run a maintained version that works on current PHP.

Why won’t the original plugin get an update?

It was removed from WordPress.org in 2025, last shipped code around 2019, and its vendor and update servers are gone. No official patch is coming. A maintained GPL fork is the path forward — same lineage, kept current.

The bottom line

A PHP 8 error in an old WordPress HR plugin looks alarming, but it’s a compatibility break, not a catastrophe. Recover access, back up, and move to a maintained version that runs on PHP 8 — your data comes with you. When you’re ready to make the move without drama, the migration guide walks it step by step.


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, the original author, or any other prior maintainer. “WP Human Resource Management” is referenced descriptively (nominative fair use) solely to identify the software lineage and help affected users find a maintained alternative. All trademarks belong to their respective owners.


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.