Professional Documents
Culture Documents
Make sure your plugins and themes are compatible with newer PHP versions.
== Description ==
The WP Engine PHP Compatibility Checker can be used by any WordPress website on any
web host to check PHP version compatibility.
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.
**This plugin does not execute your theme and plugin code, as such this plugin
cannot detect runtime compatibility issues.**
**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]
(https://github.com/wpengine/phpcompat/wiki/Results) 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]
(https://wordpress.org/plugins/php-compatibility-checker/faq/) for more
information.**
= Disclaimer =
*While this plugin is written to detect as many problems as accurately as possible,
100% reliable detection is very difficult to ensure. It is best practice to run
comprehensive tests before you migrate to a new PHP version.*
The plugin was created by WP Engine to help the WordPress community increase
adoption of modern PHP versions. We [welcome contributors]
(https://github.com/wpengine/phpcompat) to this plugin, and are excited to see how
developers and other WordPress hosts use this plugin.
*Note: If you have WordPress 2.7 or above you can simply go to 'Plugins' > 'Add
New' in the WordPress admin and search for "PHP Compatibility Checker" and install
it from there.*
To manually install:
1. Upload `phpcompat` to the `/wpengine-wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
You will find the plugin options in the WP Admin `Tools => PHP Compatibility` menu.
Once you click `run` it will take a few minutes to conduct the test. Feel free to
navigate away from the page and check back later.
== Other Notes ==
`
<version>
PHP version to test.
[--scan=<scan>]
Whether to scan only active plugins and themes or all of them.
default: active
options:
- active
- all
`
Example: `wp phpcompat 7.2 --scan=active`
Yes, this plugin can be used any ANY WordPress website on ANY host.
Yes, this plugin does extend WP-CLI and provide commands. See the [Other Notes]
(https://wordpress.org/plugins/php-compatibility-checker/other_notes/) tab for
details.
Yes! While you cannot use this WordPress plugin to test your non-WordPress
projects, you can use the [Open Source PHPCompatibility Library]
(https://github.com/wimg/PHPCompatibility) that this plugin is built on.
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](https://make.wordpress.org/core/handbook/tutorials/installing-a-local-
server/) of your site, or you can use the WP-CLI command.
Yes! WP Engine has a public GitHub repo where you can contribute back to this
plugin. Please open an issue on the [Plugin GitHub]
(https://github.com/wpengine/phpcompat). We actively develop this plugin, and are
always happy to receive pull requests.
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.
== Screenshots ==
== Changelog ==
= 1.4.6 =
- Switched to new PHPCompatibilityWP library to help prevent false positives.
= 1.4.5 =
- Use plugin version number to enqueue scripts and styles.
= 1.4.4 =
- PHP 5.2 Support & PHP 7.1 and 7.2 Lints.
- Updated call to action sidebar depending on platform.
= 1.4.3 =
- Fixed Composer issue.
= 1.4.1 =
- Updated PHP_CodeSniffer to fix a security advisory.
- Whitelisted a number of plugins.
= 1.4.0 =
- Updated UX for viewing PHP errors to be more intuitive and require less
scrolling.
- Added links for non-technical users who need assistance from developers to fix
PHP errors or to test their site in PHP 7 enabled hosting environments.
= 1.3.2 =
- Added a "Clean up" button and uninstall.php.
- Added phpcompat_phpversions filter.
= 1.3.1 =
- Whitelisted a number of plugins.
= 1.3.0 =
- Updated the PHPCompatibility library to latest version. Should fix many false
positives.
- Changed language and added help text to Admin UI.
= 1.2.4 =
- Fixed Composer issue.
= 1.2.3 =
- Updated the PHPCompatibility library to latest version.
- Whitelisted TablePress.
= 1.2.2 =
- Whitelisted UpdraftPlus and Max Mega Menu.
= 1.2.1 =
- Updated the PHPCompatibility library to latest version
= 1.2.0 =
- Updated the PHPCompatibility library to latest version
- Added support for PHP 5.6
= 1.1.2 =
- Fixed issue with WordPress notices breaking the plugin header.
- Changed the way we send and parse JSON.
- You can now restart an in progress scan.
- Updated download.js to v4.2 for better Safari compatibility.
= 1.1.1 =
- Fixed bug with active job display.
- Updated progress bar calculation.
= 1.1.0 =
- Test results now persist page reloads.
- Failed tests will show an overview of the results.
- The scan timeout is now configurable using a filter. See the FAQ for more
details.
= 1.0.3 =
- Fixed a bug in the WP-CLI command
- Added a handful of PHP 7 compatible plugins to the whitelist
= 1.0.2 =
- Added additional role protections
- Changed the UI colors to better understand output at a glance
- Exclude checking node_modules and tmp directories
- Added support for child theme's parent theme
= 1.0.1 =
- Updated compatibility library with a few bugfixes
- Added skip logic to prevent checker from hanging
= 1.0.0 =
- Major update to add PHP 7 checking support
- Improved the UX of the progress bar
- Fixed bug with the way the plugin menu was registered
= 0.1.0 =
- Initial version
- PHP 5.5, 5.4, and 5.3 Support
- Basic WP-CLI Commands
== Upgrade Notice ==
= 1.4.6 =
- Switched to new PHPCompatibilityWP library to help prevent false positives.