Skip to content

Blog

How to test a WordPress plugin for PHP 8.2–8.5 compatibility

A practical guide to testing WordPress plugins across PHP 8.2, 8.3, 8.4, and 8.5 — not just running a linter on your laptop.

Folt Team3 min read

PHP upgrades are where “works on my machine” dies quietly. Your local stack is on 8.4, but a meaningful slice of WordPress sites still run PHP 8.2 on budget hosting.

Why test all four versions

Type errors, callback validation, and deprecation warnings behave differently across minor PHP releases. A plugin that activates cleanly on 8.4 can fatal on 8.2 when a third-party plugin passes an invalid callback into array_map().

Testing one version tells you nothing about the long tail.

What a real matrix looks like

A serious compatibility run crosses:

  • PHP 8.2, 8.3, 8.4, and 8.5
  • The current and previous supported WordPress releases
  • Popular themes and plugins that change hook order and asset loading

That is hundreds of combinations — not something you reproduce by SSH-ing into a single VM.

Run execution, not just static analysis

PHP compatibility checkers find syntax-level issues. They do not activate your plugin inside WordPress, load WooCommerce checkout, or crawl wp-admin with Elementor active.

Runtime testing catches the fatals users actually hit.

Ship with a diffable report

The goal is not a green checkbox on your laptop. It is a pass/fail matrix you can attach to a release, diff release-over-release, and prioritize by blast radius.

Folt expands one scan into the environment runs you select and returns runtime evidence for failing combinations. The current full matrix uses 216 runs; Free includes 100 runs per month, so start with focused coverage or review plans for broader release testing.

Use the PHP 8.2 compatibility test plan to turn those choices into a release gate, then compare the output with the sample report.