Plugin Removed From WordPress.org: Is My Data Safe?

You went to update a plugin and the listing was gone — “This plugin has been closed” — or you read that something you depend on was removed from the WordPress.org directory. The first, very reasonable question is: if a plugin is removed from WordPress.org, is my data safe?

Short answer: your data isn’t going anywhere on its own. A plugin being removed from WordPress.org does not reach into your site and delete anything. Your database rows, your settings, your uploads — all of it stays exactly where it is. The plugin keeps running.

The longer, more honest answer is that “safe” has two meanings, and only one of them is fine.

  • Your data is intact — it’s still in your WordPress database, untouched.
  • Your data may no longer be protected — because the code holding it is now frozen, unmaintained, and will receive no further security fixes.

That second part is the real problem, and it’s worth understanding clearly before you decide what to do.

What “removed from WordPress.org” actually means

When a plugin is closed or removed from the WordPress.org directory, a few specific things happen — and a few things don’t.

What happens:

  • The listing disappears or shows a “closed” notice. New users can’t find or install it.
  • Updates stop. This is the big one. WordPress delivers plugin updates through the directory. If the plugin is gone, your dashboard will never offer another version — including security patches.
  • The reason often isn’t shown publicly. WordPress.org closes plugins for guideline violations, abandonment, or — most relevant here — a security issue. The directory frequently doesn’t disclose which, or the details, to avoid handing attackers a roadmap while sites are still exposed.

What does not happen:

  • Your installed copy is not deleted or disabled. It keeps running on the version you have.
  • Your data is not removed. Tables, options, and content stay in your database.
  • WordPress does not auto-replace it with anything.

So the immediate risk isn’t data loss. It’s standing security exposure: you’re now running code that no one is fixing, and if a vulnerability is known (or gets discovered), there will be no patch coming through your dashboard. On a plugin that handles employee records, attendance, or payroll data, that’s not a risk you want to sit on indefinitely.

This is exactly what happened to the original “WP Human Resource Management” plugin (slug hrm), which was removed from the WordPress.org directory on July 1, 2025, marked as closed for a security issue. Its last release shipped around 2019. If you’re running it, the rest of this guide is written with you in mind — but the steps apply to any removed plugin.

Step 1: Check whether you’re actually affected

Don’t panic-delete anything yet. First, confirm what you’re running.

  1. In your WordPress admin, go to Plugins → Installed Plugins.
  2. Find the plugin and note its version number (shown under the plugin name).
  3. If the plugin’s “View details” link or update notice is broken or missing, that’s a strong sign the directory listing is gone.

To double-check the directory status, visit the plugin’s WordPress.org page directly (for example, wordpress.org/plugins/<slug>/). A removed plugin shows a banner like “This plugin has been closed as of [date].” Sometimes a reason is given; often it isn’t.

If the page is closed and your dashboard isn’t offering updates, treat the plugin as frozen from this point forward. Whatever version you have is the last version you’ll ever get from the directory.

A note specific to the abandoned hrm plugin: beyond the directory removal, that codebase was written in the PHP 5.6 era and fatals on PHP 8. The common symptoms are a white screen after a PHP or WordPress update, the “add employee” form hanging on the spinner, punch-out silently failing, and profile or department saves that never complete. If you’ve seen any of those, you’re running unmaintained code on an environment it was never built for.

Step 2: Understand your real exposure

Whether you need to act today or this month depends on what the plugin does and what it touches.

  • Does it handle sensitive data? HR plugins hold employee names, contact details, attendance, leave, and sometimes pay information. That raises the stakes.
  • Was it removed for a security issue specifically? If so, assume a vulnerability exists in the version you’re running, even if the details aren’t public.
  • Is it network-facing or privilege-related? Plugins with login-gated AJAX actions, file uploads, or role assignment are higher-risk if unpatched.

If you want a structured walk-through of the specific vulnerabilities tied to the original hrm plugin and how a maintained fork addresses them, see our security overview. It documents the publicly disclosed CVEs (privilege escalation, arbitrary user deletion, and a leave access-control flaw) honestly — what they are, which versions they affected, and the difference between “logged” and “fixed.”

The takeaway: an unmaintained plugin doesn’t get more secure over time. It only accumulates exposure as new techniques are found and the surrounding platform moves on.

Step 3: Don’t just delete it — migrate the data first

Here’s the mistake to avoid. The instinct, once you learn a plugin was removed, is to deactivate and delete it. Don’t do that yet — deleting a plugin can also run its uninstall routine, and depending on the plugin that may drop its database tables and options. That would turn “my data is intact” into “my data is gone.”

Instead, migrate your data off the dead plugin in a controlled way:

  1. Back up first. A full database backup (and a file backup if the plugin stores uploads) is non-negotiable. This is what makes the whole process reversible.
  2. Stage it. If you can, do the migration on a staging copy of your site before touching production. Live HR data is not the place to learn the steps.
  3. Move to a maintained successor that uses the same data model, so your records carry over instead of being re-keyed by hand.
  4. Verify the migrated data matches before you retire the old plugin.
  5. Only then remove the old, frozen plugin — once you’ve confirmed everything came across.

The reason a same-lineage successor matters: if the new tool stores data differently, “migration” turns into a manual rebuild — re-entering every employee, every leave balance, every shift. If it shares the original’s schema, the records can move in place.

How this works for the original WP Human Resource Management plugin

Because Punchwell is a maintained, security-hardened fork of that exact plugin, it shares the same data model: employees are still WordPress users, and the same wp_hrm_* tables hold attendance and leave. That makes the move a migration, not a rebuild.

In practice:

  • On first load in wp-admin, the fork runs an idempotent schema reconcile that adds any new tables or columns and never deletes existing data, and migrates the legacy role name forward.
  • Two documented SQL files handle the one-time work the schema step can’t: a migration script that copies legacy columns into their current names and normalizes old 0000-00-00 timestamps, and a read-only verification pack that confirms every row came across with zero orphans.
  • The whole thing is reversible if you back up first — you keep the original until you’ve verified the new install, and roll back by restoring your backup.
  • A few things can’t be auto-migrated and are re-entered by hand: payroll and salary settings (a different model), leave-type yearly entitlements (the type names survive), and office IP allowlists.

The full step-by-step, including the exact order to run things in (let the schema step finish before the migration SQL, or leave and work-experience records appear blank), is in the migration guide. Budget roughly 30–60 minutes and do it on staging first.

Punchwell is also PHP 8 / WordPress 7 / MySQL 8 clean, so the white-screen-after-update problem that plagues the abandoned original goes away — and because it’s self-hosted with no data call-home, your employee data continues to live in your own WordPress database, not a vendor’s cloud.

A quick reality check on “is my data safe”

To bring it back to the question that probably brought you here:

  • Is your data still there? Yes. A removal doesn’t touch your database.
  • Is your data secure? Not anymore — not if it’s held by a plugin that won’t get another patch. The exposure is real and it’s standing.
  • Will deleting the plugin lose your data? It can, if uninstall drops the tables. Migrate and verify first.
  • Can you move without re-entering everything? Only if the successor shares the same data model. For the hrm plugin specifically, that path exists.

A removed plugin isn’t an emergency in the “your records just vanished” sense. It’s a quiet, accumulating risk in the “no one is fixing this anymore” sense — and the fix is straightforward: back up, migrate to something maintained, verify, then retire the old code.


If you’re on the original WP Human Resource Management plugin and want to get off the frozen version safely, the calm next step is the migration guide — your employees, attendance, and leave records carry over. If you’d first like to understand exactly what you’re exposed to, start with the security overview.


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. “WP Human Resource Management” is referenced descriptively only (nominative fair use), to help affected users find a maintained alternative.


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.