Description

This plugin will lint theme and plugin code inside your WordPress file system and give you back a report of compatibility issues for you to fix. Compatibility issues are categorized into errors and warnings and will list the file and line number of the offending code, as well as the info about why that line of code is incompatible with the chosen version of PHP. The plugin will also suggest updates to themes and plugins, as a new version may offer compatible code.

Please note that linting code is not perfect. This plugin cannot detect unused code-paths that might be used for backwards compatibility, and thus might show false positives. We maintain a whitelist of plugins that can cause false positives. We are continuously working to ensure the checker provides the most accurate results possible.

This plugin relies on WP-Cron to scan files in the background. The scan will get stuck if the site’s WP-Cron isn’t running correctly. Please see the FAQ for more information.

Update to PHP 7.3

Use this plugin to check your site for compatibility up to PHP 7.3!

As of July 2019, 20.1% of WordPress websites run a PHP version older than PHP 5.6.

The plugin was created by WP Engine to help the WordPress community increase adoption of modern PHP versions. We welcome contributors to this plugin, and are excited to see how developers and other WordPress hosts use this plugin.

We maintain a whitelist of plugins that cause false positives. If your plugin shows up as incompatible but you think that is wrong, please open a GitHub issue on the project, or email wordpress@wpengine.com with info about your plugin and why you know it is compatible (you have automated tests, the failure is on backwards compatibility code paths, etc).

Some servers have timeouts to prevent long running queries, this is commonly 60 seconds. This can prevent the checker from being able to process large themes or plugins. You should check with your host to see if this timeout can be temporarily removed. The best way around this timeout issue is to run this plugin on a local copy of your site, or you can use the WP-CLI command.

You can use the filter wpephpcompat_scan_timeout to customize the scan timeout. See this for an example.

Définir le délai d’attente à 0 désactive le cron/délai d’attente.

L’analyse est bloquée, que puis-je faire ?

The PHP Compatibility Checker relies on WP-Cron to process plugins/themes in batches, this is necessary to avoid server timeouts. The scan will get stuck if your site’s WP-Cron isn’t functioning. You can look into this using WP Crontrol. The cron is called wpephpcompat_start_test_cron. This could also be an issue if your site is using basic authentication.

You can also use the WP-CLI command or disable the timeout to avoid using WP-Cron.

Yes! WP Engine has a public GitHub repo where you can contribute back to this plugin. Please open an issue on the Plugin GitHub. We actively develop this plugin, and are always happy to receive pull requests.

Hi,
The idea is fantastic.
However it did not work at all on my site. I am using an external cron to call WP-CRON and even though it wp-cron was called every 5 minutes, everything was crazy slow. After half a day this had only checked 19 plugins and still no result.
I had to manually add the cron call for anything to happen.
Needs a bit more work: keep it up!

I waited more than 1 hr. to get the result:
"The plugin/theme was skipped as it was too large to scan before the server killed the process."
for ALL the plugin I have. There must be an option to probe the system before the check starts!

There are about 30 plugins on my side and most of them weren't checkt because they are 'lo large'. So the only way to proof compability is to install a second server and test all in a sandbox. The Plugin is just a waste of Time.

"The plugin/theme was skipped as it was too large to scan before the server killed the process."
- for e.g. Duplicator, JetPack, WooCommerce.
Also no 7.3 support. The recommendation for WP is 7.3, and this tool is still mentioned on "WP Support / Update PHP" page, even though it can't analyse 7.3.