WooCommerce PHP 8.1 Requirement: What Changes in 11.5

WooCommerce Hosting Requirements: What Your Store Needs

The WooCommerce PHP 8.1 requirement now has a date on it: Woo has proposed raising its minimum PHP version to 8.1 starting with WooCommerce 11.5, currently targeted at January 2027. If your store runs PHP 7.4 or 8.0 when that lands, nothing breaks on the day — you simply stop being offered WooCommerce updates, which over a few months is the worse outcome of the two.

Woo published the proposal on 8 September 2026. Their own telemetry puts PHP 7.4 at roughly 7% of tracked stores and PHP 8.0 at roughly 2%, both declining, and they expect the two combined to be near 5% by the release date. That is a small share of stores and a large number of actual shops, and the ones most likely to be on it are the ones least likely to be reading release notes.

What “no forced upgrade” actually means

WooCommerce will not push 11.5 onto a server that cannot run it. Your store keeps working on whatever version it has. The catch is that the version it has stops receiving fixes — including security fixes — for the single piece of software on your site that handles money. “It still works” and “it is still supported” stop being the same sentence.

What the WooCommerce PHP 8.1 requirement actually says

One change: end support for PHP 7.4 and PHP 8.0 in WooCommerce 11.5 and later, making 8.1 the floor. It is a proposal rather than a shipped decision, and the target date can move. Treat it as a deadline anyway — the direction has never reversed, and WooCommerce’s last two PHP bumps both landed.

There is a gap here that confuses people, so it is worth stating plainly. WooCommerce ships two different numbers today. The plugin header on the current 11.1 release still says Requires PHP: 7.4, which is the version below which WordPress refuses to install it. The server recommendations page already asks for PHP 8.3 or greater, tested up to 8.4. The first number is a hard floor; the second is what Woo actually tests against. The proposal moves the floor closer to the recommendation, nothing more.

Your PHP versionTodayAt WooCommerce 11.5What to do
7.4Installs and runs. Past end of life since late 2022 — no security patches from PHP itselfIneligible. You stay on 11.4.x indefinitelyMove now. You are two major versions behind the recommendation and unsupported by the language as well as the plugin
8.0Installs and runs. Past end of life since late 2023IneligibleMove now. The jump from 8.0 to 8.1 is small; the jump you should actually make is to 8.3
8.1 / 8.2SupportedStill eligibleNo deadline pressure. Plan a move to 8.3 at your next convenient window
8.3Matches Woo’s stated recommendationEligibleNothing. This is the target
8.4Listed as tested by WooCommerceEligibleNothing, but keep extensions updated — third-party code is where 8.4 surprises you, not core
Eligibility per WooCommerce’s published proposal; PHP end-of-life dates per the PHP project’s own support schedule.

Check which PHP version your store is really on

Check it in more than one place, because a server can run several PHP versions at once and frequently does. The version serving your web requests and the version your cron jobs and WP-CLI use are separate settings on most hosts, and a migration that only moves one of them produces a store that works until the nightly job runs.

WooCommerce → Status. The System Status report shows the PHP version, the server’s memory limit, the WordPress memory limit and the database version together. This is the screen to screenshot before you change anything.
Tools → Site Health → Info → Server. Same web-facing PHP version, plus the extensions WordPress can see. Useful because it also flags when your version is below what WordPress itself recommends.
The command line, separately. This is the one people skip, and it is where the mismatch hides.
# The PHP your shell and cron jobs use
php -v

# The PHP WP-CLI is running under, plus the config it loaded
wp --info

# The PHP your web requests use, read through WordPress itself
wp eval 'echo PHP_VERSION;'

If php -v and the System Status screen disagree, you have two PHP installs and a support ticket to raise. On cPanel hosts this is usually the MultiPHP manager setting the web version while the shell keeps the system default; on managed hosts it is normally one setting and a non-issue. Our walkthrough on how to check and update PHP for a WordPress website safely covers the actual switching mechanics per host type.

Why waiting is more expensive than moving

The deadline in the proposal is not the real deadline. PHP 7.4 stopped receiving security patches from the PHP project in late 2022, and 8.0 in late 2023. Running either today already means your interpreter is unpatched; the WooCommerce change just removes the last reason you were getting away with it.

There is a second cost that shows up sooner. Extension authors set their own minimums, and they move ahead of Woo rather than behind it. Stores that sit on an old PHP version tend to discover the problem not at the WooCommerce release but three months earlier, when the payment gateway or the tax extension they depend on ships an update they can no longer install. At that point you are doing an emergency PHP upgrade during a trading week instead of a planned one in January.

And the thing most often cited as the reason to wait — “our site is too complicated to upgrade” — is the reason to start earlier, not later. A complicated store takes longer to test. It does not get simpler by November.

The upgrade path that does not break checkout

Backup first, and restore it somewhere

A PHP upgrade is usually reversible with one dropdown, which makes it feel low risk and makes people skip the backup. The scenario you are protecting against is not the version switch — it is a plugin that half-works on the new version and writes bad data for two days before anyone notices. WooCommerce backup: plugin, host snapshot, or service covers picking one you can actually roll back to.
  1. Write down where you are. PHP version for web and CLI, WooCommerce version, and the full active plugin list with each plugin’s own “Requires PHP” value. The plugin list is the work; everything else is a screenshot.
  2. Clone to staging. Not a copy of the theme — a real clone with the database, so you can put test orders through it. If your host cannot give you one, that is a finding about your host, and it belongs in the same conversation as the PHP version.
  3. Turn on logging before you switch. You want deprecations written to a file, not displayed to visitors.
  4. Switch staging straight to 8.3. Do not step through 8.1 and 8.2 separately. You will test the same order flow three times and learn nothing extra — 8.3 is the recommendation, so make that the thing you test.
  5. Walk a complete order lifecycle. Add to cart, apply a coupon, check out with a real gateway in test mode, trigger the confirmation email, refund it partially, export it to whatever you export to. The failures in a PHP upgrade cluster after checkout, not before it.
  6. Read the log, then read it again after a day. Scheduled work — renewals, stock syncs, report imports — only runs on its own schedule, so an hour of clicking will not surface it.
  7. Switch production in your quietest window, with the old version one dropdown away, and watch the error log for the first full day rather than the first ten minutes.

For step three, this is the configuration you want on staging — and specifically not on production:

// wp-config.php on STAGING only, above "That's all, stop editing!"
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );   // writes wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Then read it for the two patterns that matter, rather than scrolling the whole file:

# Fatals first — these are the ones that take a page down
grep -n "PHP Fatal error" wp-content/debug.log

# Then deprecations, grouped by the file that caused them
grep -o "Deprecated:.*in /[^ ]*" wp-content/debug.log | sort | uniq -c | sort -rn | head -30

That second command is the useful one. It turns forty thousand log lines into a ranked list of about a dozen files, and the file path tells you which plugin to update or replace. Enabling WordPress debugging and safely reading error logs goes into the logging setup in more detail, including why WP_DEBUG_DISPLAY must be false on anything public.

What actually breaks when you leave PHP 7.4

Core WordPress and core WooCommerce will be fine. The breakage is in third-party extensions and in whatever a developer added to functions.php in 2019. These are the categories worth grepping for before you switch, in rough order of how often they bite.

Introduced inWhat changedHow it shows up
PHP 8.0create_function() and each() removed outrightFatal error, white screen. Easy to find, impossible to miss
PHP 8.0Many warnings promoted to errors; stricter string-to-number comparisonCode that limped along for years now throws. Often in old payment or shipping add-ons
PHP 8.1Passing null to a non-nullable internal parameter is deprecatedThousands of near-identical deprecation lines from one careless function. Noisy, rarely fatal
PHP 8.2Dynamic properties on classes deprecatedDeprecation notices from object-heavy plugins; becomes a real problem in a later PHP version, not this one
PHP 8.4Implicitly nullable parameter types deprecatedMore deprecation noise. A reason to land on 8.3 first rather than jumping to 8.4 in the same change
Language changes per the PHP migration notes. This is why the log review in step six matters more than the version switch itself.

A plugin with no update in two years and deprecation notices in the log is telling you something about its future, not just its present. Price the replacement now while you have a staging site open. When the cause is not obvious from the log, the normal bisect still works — troubleshooting a WordPress plugin conflict step by step covers doing that without taking a store offline, and a fatal that reaches visitors usually surfaces as a 500 internal server error.

If you genuinely cannot upgrade before 11.5

Sometimes the blocker is real: a bespoke integration whose author is gone, or an ERP connector the business runs on. The honest options are all trade-offs, and the one thing not on the list is doing nothing quietly.

Stay on 11.4.x deliberately, with an end date. Write the date down and tell whoever owns the budget. An unsupported commerce plugin is a risk you are choosing, and choosing it on purpose for one quarter is very different from drifting into it for two years.
Pay to fix the blocker. Getting one custom integration onto PHP 8.1 is usually a few days of developer time. Compare that honestly against a year of running an unpatched store before deciding it is too expensive.
Change host, if the host is the blocker. If your provider still cannot offer 8.3 in 2026, the PHP version is a symptom. WooCommerce hosting requirements: PHP workers and RAM covers what to specify instead.
Do not let a vendor sell you a “PHP compatibility layer.” There is no such thing for a deprecated language feature. What is on offer is either a fork of your plugin or a patched copy of someone else’s, and both are maintenance you have just taken on.

While you have staging open and a tested backup, it is also the cheapest moment to deal with any other deferred infrastructure work — the HPOS migration in particular, since it wants exactly the same staging-and-verify discipline and you are already paying the setup cost.

Frequently asked questions

Is the WooCommerce PHP 8.1 requirement final?

It was published as a proposal, with WooCommerce 11.5 in January 2027 as the target. Dates in proposals move. The direction does not, and WooCommerce’s previous minimum-version increases all shipped, so plan for it rather than waiting for a confirmation post.

What happens to my store if I am still on PHP 7.4 when 11.5 ships?

Nothing visible. Your store keeps running the WooCommerce version it already has, and WordPress will not offer you 11.5 or later. The problem is cumulative rather than immediate: you stop receiving fixes, including security fixes, for your checkout.

Should I upgrade to PHP 8.1 or straight to 8.3?

8.3. It is what WooCommerce’s server recommendations ask for, the testing effort is the same, and landing on 8.1 means repeating the whole exercise within a year. Leave 8.4 for a separate change once your extensions have caught up with it.

How do I find out which of my plugins will break?

Check each plugin’s own “Requires PHP” value first — that catches the ones that will refuse to install. For the rest, there is no substitute for running them: switch a staging clone to 8.3 with debug logging on, exercise a full order, and read the deprecation log grouped by file path.

Will upgrading PHP make my WooCommerce store faster?

Usually somewhat, on the uncached pages that matter most for a store — cart, checkout, account, admin. Do not expect it to rescue a site that is short of memory or missing a persistent object cache, though. Treat the speed as a side benefit and the support window as the reason.

My host says PHP 8.3 is available. Does switching it change my database too?

No, they are separate. PHP is the interpreter; MySQL or MariaDB is the database, with its own version and its own upgrade path. WooCommerce asks for MySQL 8.0 or MariaDB 10.6 as a minimum, so check that number at the same time — but change one thing at a time, not both in one window.

Sources

Leave a Reply to This Post