“This plugin does not work with your version of PHP”: what it means and the safe fix
Short answer
WordPress shows this when a plugin, or a new version of it, needs a newer PHP version than your site runs: its “Requires PHP” line names a minimum, and your server is below it. WordPress then won’t activate the plugin, won’t install that update, and skips it in automatic updates, so the plugin stays on its old version, without the fixes that come later. The lasting fix is a newer PHP version for your site. That changes PHP for every plugin and your theme at once, so check them all for the new version first, then switch.
Where WordPress shows it
The same check shows up in several places, with slightly different words (WordPress 7.1.2 source):
| Where | What WordPress says |
|---|---|
| Plugins, under the plugin | “This plugin does not work with your version of PHP.” |
| Plugins, the update line | “There is a new version of … available, but it does not work with your version of PHP.” |
| Dashboard → Updates | “This update does not work with your version of PHP.” |
| When you activate it | “Current PHP version (…) does not meet minimum requirements for …. The plugin requires PHP ….” |
| Appearance → Themes | “This theme does not work with your version of PHP.” |
For administrators, each comes with a link to WordPress’s page about updating PHP.
What it means
Plugin developers write the oldest PHP version their code needs in the plugin’s header. WordPress’s plugin handbook defines the line: “Requires PHP: The minimum required PHP version.” (developer.wordpress.org) WordPress compares it with the version your server runs. When the plugin, or its new version, asks for more, you get the message.
Nothing is broken yet: the plugin is either not active, or still running its older version. The message is WordPress stopping something that would not run.
What WordPress blocks, and why waiting is risky
- Activation. WordPress refuses to activate the plugin and shows the error with the version it requires.
- The update. On Dashboard → Updates the plugin has no box to tick, and an update started another way stops with “The PHP version on your server is …, however the new plugin version requires …” (WordPress 7.1.2 source).
- Automatic updates. WordPress skips a plugin or theme update whose PHP requirement your server doesn’t meet (WordPress 7.1.2 source), even with auto-updates turned on.
So the plugin stays on the last version that supports your PHP. Every fix its developer publishes afterwards, security fixes included, passes your site by. The longer the site stays on its PHP version, the more plugins end up in that position.
The fix: a newer PHP version, checked first
PHP runs for the whole site. Moving to a newer version for one plugin moves every other plugin and your theme with it, and some of them may not be ready. Check them before you switch:
- Find your PHP version: Tools → Site Health → Info → Server, as shown in checking and changing your PHP version.
- Choose the target: at least the version the plugin requires, ideally the newest your host offers. PHP 8.3 or later gets security fixes until the end of 2027 or later (which version to choose).
- Check every plugin and your theme for that version with a check that reads their code.
- Update or fix what will break, then switch in your hosting panel.
- Update the plugin that started it all: the message is gone.
CompatNav, a free plugin on wordpress.org, does step 3 on your own server: you choose the PHP version you’re moving to (8.0 to 8.5), and it reports only what changes between the version your site runs today and that one, each finding labelled “Will break” or “Deprecation notice”. No code, file names or results leave your server. Getting started shows the first scan.

Why WordPress can’t warn you the other way round
Plugins state the oldest PHP version they need, never the newest they work with: the header has no such line. So when your PHP version is too new for a plugin, WordPress has nothing to compare and shows no message; the first sign is an error after the switch. Checking a plugin’s PHP compatibility explains how to find out beforehand.
Key takeaways
- The plugin, or its update, needs a newer PHP version than your server runs.
- WordPress blocks its activation, the update and automatic updates: the plugin stays on its old version.
- Themes get the same message: “This theme does not work with your version of PHP.”
- The fix is a newer PHP version for the whole site, not an older copy of the plugin.
- Every plugin and your theme move with PHP: check them for the new version before you switch.
Frequently asked questions
Can I install the plugin anyway?
Not through WordPress: it refuses to activate the plugin, or to install the update, while your PHP version is below the one the plugin requires. Keeping an older version of the plugin means going without its later fixes, including security fixes.
Which PHP version does the plugin need?
Its page on wordpress.org shows it under “PHP version”, and the error WordPress shows when you try to activate it ends with the version the plugin requires. Choose the newest PHP version your host offers that is at least that one.
Will a newer PHP version break my other plugins?
It can, and WordPress won’t warn you beforehand: plugins only state a minimum PHP version, never a maximum. That’s why you check every plugin and your theme for the new version before switching.
Check your own site before you upgrade
CompatNav is a free WordPress plugin. It reads the code of your plugins and themes on your own server and tells you, in plain words, what will break and what will only show notices on the PHP version you choose. It never changes your code. It can’t see problems that only appear while code runs with real data, so a quick check of your site after the upgrade still matters.
Sources
- WordPress 7.1.2 source: the Plugins screen (class-wp-plugins-list-table.php)
- WordPress 7.1.2 source: automatic updates (class-wp-automatic-updater.php)
- developer.wordpress.org: Header Requirements
About the code examples: each output is the real output of the code shown, run with the official PHP builds, without a php.ini, with all errors reported and displayed. Only the file path was replaced by a neutral server path.