That orange “your theme contains outdated copies of some WooCommerce template files” banner is WooCommerce telling you your theme photocopied some of its pages years ago, and the originals have since been revised. The copies still run — until a WooCommerce update changes something the old copy doesn’t know about, and usually that something is on the checkout. Do this on staging, the same copy you’d use to update WooCommerce safely. You’ll need file access and about an hour of quiet.
Read the system status report
Go to WooCommerce → Status → System Status and scroll to the Templates section at the bottom. It lists every template your theme overrides and flags the ones whose version number lags the plugin’s copy. Note the flagged ones — that’s your worklist. One wrinkle worth knowing: the flag compares version headers, not contents, so a template can be flagged even when nothing meaningful changed. The diff in step three settles it either way.
List every override your theme carries
The status report shows the same thing, but seeing it on disk keeps you honest:
find wp-content/themes/YOUR-THEME/woocommerce -name "*.php"
Each file here shadows the matching file in
wp-content/plugins/woocommerce/templates/. Every one is a small promise
somebody made to maintain a fork forever — this hour is that promise coming
due.
Diff each one against the current template
For each flagged file, compare your copy to the plugin’s current version:
diff -u wp-content/themes/YOUR-THEME/woocommerce/checkout/form-checkout.php \
wp-content/plugins/woocommerce/templates/checkout/form-checkout.php
Read the diff for two things: what your theme changed on purpose (the customization), and what WooCommerce changed since (new hooks, new escaping, new markup). Jot the intentional changes down — a wrapper div, a reworded string, a removed block. That short list is what you’re actually preserving.
Port your customizations forward
Work in the safe direction: copy the fresh template over your override, then re-apply your noted changes to it.
cp wp-content/plugins/woocommerce/templates/checkout/form-checkout.php \
wp-content/themes/YOUR-THEME/woocommerce/checkout/form-checkout.php
Then edit the new copy and re-add each customization from your list. This
beats patching the old file toward the new one, because you inherit every
fix you didn’t know about. Keep the @version header the new file ships
with — that’s what clears the warning. If your theme has an update
available, check its changelog first; a good theme author may have done
this step for you.
Retire overrides that no longer earn their keep
Any override whose diff showed only the version header — or a change now achievable with a hook or a CSS rule — should just be deleted. Every template you stop carrying is one you never diff again. WooCommerce’s own guidance has shifted toward hooks and blocks over template copies for exactly this reason: overrides age like milk, hooks age like cast iron.
Verify the warning is gone and the pages match
Reload WooCommerce → Status — the Templates section should show your remaining overrides with no outdated flags. Then look at the pages themselves: shop, product, cart, checkout, and a completed test order. You’re checking that your customizations survived the port and nothing shifted visually. Clean report, familiar pages, successful test order: ship it to live the same way you’d ship any update, and enjoy a status page with one less banner on it.