Связаться
  • WordPress
  • Импорт и экспорт
  • v1.0.0

PHP Upgrade Check для WooCommerce — что сломается после перехода на PHP 8.3, 8.4 или 8.5

Перед тем как хостинг переключит магазин на PHP 8.3, 8.4 или 8.5, плагин читает код всех плагинов и тем и показывает, что сломается: плагин, файл, строку и как исправить. Вердикт считает только то, что изменится между вашим PHP и целевым. Ничего не выполняется и не меняется. Free — проверка, отчёт, находки, CSV, «Здоровье сайта», WP-CLI. Pro — журнал ошибок во время работы сайта, проверка после обновлений, еженедельный отчёт.

Скачать Free
Pro · лицензия на год Чем больше сайтов, тем дешевле каждый
Совместимость
WordPress 6.2+ · PHP 7.2+ (проверено на PHP 7.4 и 8.3) · WooCommerce не обязателен (проверено с 9.9.5 и 11.2.1) · HPOS · мультисайт · отчёты для PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 и 8.5
Лицензия
один сайт, годовая
Триал
7 дней, без карты, один на сайт
Обновлено
октябрь 2026
Или все 173 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Проверка активных плагинов, темы (дочерней и родительской), must-use плагинов и drop-in; по желанию — и неактивных ✔ ✔
Отчёт для PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 и 8.5 — версия переключается без новой проверки ✔ ✔
Вердикт на каждый плагин и тему: «Сломается», «Закодировано — спросите разработчика», «Работает иначе», «Предупреждения об устаревшем», «Готово» ✔ ✔
В вердикт идёт только то, что изменится между текущим PHP сайта и целевым; код, который не работает уже сейчас, виден в находках с пометкой ✔ ✔
Каждая находка: файл и строка, сам код, что изменилось и с какой версии PHP, как исправить, ссылка на php.net ✔ ✔
Код под проверкой версии PHP, function_exists(), extension_loaded() или defined() и собственные замены функций в плагине помечаются «защищено» и вердикт не портят ✔ ✔
Подсказка «Сначала обновите до X», когда новая версия плагина сама поддерживает целевой PHP; пометки «расширение WooCommerce» и «Нужен PHP» ✔ ✔
Обзор сервера: версия PHP и до какого времени она получает исправления безопасности (php.net), более новый патч-релиз ветки, совместимость WordPress с целевым PHP, PHP для WooCommerce, ionCube Loader ✔ ✔
Закодированные файлы (ionCube, SourceGuardian, Zend Guard) — отдельным вердиктом ✔ ✔
Только читает файлы токенайзером PHP: ничего не выполняет и не меняет; проверка короткими шагами, прерванную можно продолжить ✔ ✔
«Проверить снова» для одного плагина или темы ✔ ✔
CSV всех находок: запятая или точка с запятой, для Excel и Google Таблиц ✔ ✔
Тест в «Здоровье сайта» и WP-CLI: wp catcode-php-check scan, report, export ✔ ✔
Мультисайт: отчёт охватывает плагины и темы всей сети ✔ ✔
Интерфейс: English, українська, русский ✔ ✔
Журнал работы: предупреждения об устаревшем и фатальные ошибки PHP во время работы сайта, с плагином или темой, файлом и строкой — ✔
Проверка плагина или темы сразу после того, как WordPress их обновил — ✔
Еженедельная проверка в фоне с результатом на почту — ✔

Как это выглядит

Обзор PHP Upgrade Check: сервер на PHP 8.3, отчёт для PHP 8.5 с вердиктом на каждый плагин
Обзор на русском на тестовом магазине: WordPress 7.1.3, WooCommerce 11.2.1, 76 плагинов, PHP 8.3.36. Цель — PHP 8.5: «Сломается» — 0, «Предупреждения об устаревшем» — 23, «Готово» — 25. В строке All-in-One WP Migration видно «Часть кода уже не работает на PHP 8.3» — это код, который в вердикт не идёт, у Contact Form 7 — «Сначала обновите до 6.2.3».
Отчёт для старого магазина на PHP 7.4: два плагина сломаются на PHP 8.3
Старый тестовый магазин: WordPress 6.8.3 и WooCommerce 9.9.5 на PHP 7.4.33, цель — PHP 8.3 (админка на английском). NextGEN Gallery 1.9.13 и WordPress Database Backup 2.2.4 — «Сломается» с подсказкой сначала обновиться до 4.5.4 и 2.5.3, Google XML Sitemaps 3.4.1 — «Работает иначе», PHP 7.4 отмечен красным: исправлений безопасности нет с ноября 2022 года.
Находки: файл, строка, код и исправление для каждого места
Вкладка «Находки»: уровень и версия PHP, с которой это изменилось, что не так и как исправить, ссылка на php.net, плагин, файл, строка и сам код. Эти строки уже не работают на PHP 8.3.36 сайта, поэтому подписаны «в вердикте не учитывается».

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Для студий — ключи на 5, 25 сайтов или без ограничений.

Технические требования

  • WordPress 6.2+ · PHP 7.2+ (работа проверена на PHP 7.4 и 8.3, синтаксис кода — на 7.2 и 8.5) · стандартное расширение PHP tokenizer, которое в PHP включено по умолчанию.
  • WooCommerce — не обязателен: плагин проверяет любой сайт на WordPress, а с WooCommerce ещё и помечает его расширения и показывает, какой PHP нужен самому WooCommerce. Проверено с WooCommerce 11.2.1 и 9.9.5; совместимость с HPOS объявлена.
  • Мультисайт — активация для сети; отчёт охватывает плагины и темы всей сети, экран видят только суперадминистраторы.
  • Отчёты — для PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 и 8.5.
  • Языки интерфейса: English, українська, русский.

История версий

v1.0.0 Текущая октябрь 2026

Проверка плагинов, тем, must-use плагинов и drop-in на изменения PHP 7.0–8.5, отчёт для PHP 7.4–8.5 с вердиктом на каждый плагин и тему (считается только то, что изменится между текущим и…

Вместе с PHP Upgrade Check для WooCommerce покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» PHP Upgrade Check Nova Poshta Premium Mono Acquiring Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 173 модулей в All Access за 4 990 ₴.
2 490 ₴ / год вместо 4 160 ₴ поштучно
Купить набор →

Полное описание модуля

PHP Upgrade Check для WooCommerce проверяет плагины и темы магазина перед переходом на более новую версию PHP и показывает, что именно сломается: плагин, файл, строку, сам код и как его исправить. Вы выбираете версию, на которую переходите, — 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 или 8.5, — а плагин сверяет код со всем, что PHP убрал или изменил с 7.0 по 8.5. Проверка работает на том PHP, что стоит сейчас (от 7.2), поэтому результат виден до того, как хостинг что-то переключит.

Хостинги переводят сайты со старых версий PHP: PHP 7.4 не получает исправлений безопасности с ноября 2022 года, PHP 8.1 — с конца 2025-го, а PHP 8.2 перестанет их получать 31 декабря 2026 года. Для магазина на WooCommerce вопрос всегда один: будет ли работать оформление заказа после переключения. Достаточно одного старого плагина с удалённой функцией — и вместо страницы покупатель увидит фатальную ошибку.

Как считается вердикт. В вердикт идёт только то, что изменится между версией PHP, на которой сайт работает сегодня, и целевой. Код, который падал бы уже на текущем PHP, — например, функции mysql_*, убранные в PHP 7.0, на сервере с PHP 8.3, — либо никогда не выполняется, либо уже сломан, и переход на новую версию его не изменит. Такие находки видны во вкладке «Находки» с пометкой «в вердикте не учитывается», но плагин из-за них не получает «Сломается». Закодированные файлы и заголовок Requires PHP, превышающий целевую версию, учитываются всегда.

Чего плагин не обещает. Проверка читает код и не видит того, что происходит только во время работы: null, переданный в функцию PHP, свойство, созданное на лету, данные из базы. «Готово» значит, что для выбранной версии PHP в коде ничего не найдено, а не гарантию. После переключения проверьте магазин — прежде всего оформление заказа — и держите резервную копию, которую можно восстановить.

Магазин на OpenCart? Для OpenCart 4, 3 и 2.3 есть отдельный модуль — PHP Upgrade Check для OpenCart.

Что увидит покупатель

Ничего. Плагин работает только в админке: страницы магазина не меняет и на витрине ничего не показывает. Проверка идёт короткими шагами по несколько секунд во вкладке администратора, а сайт в это время работает как обычно.

Журнал работы в Pro собирает сообщения PHP во время обычных запросов сайта, но посетителям их не показывает и не меняет того, как PHP и другие плагины (например, Query Monitor) обрабатывают ошибки: каждое сообщение передаётся дальше, как и без плагина. За один запрос записывается не больше 50 разных сообщений, в журнале — до 2 000 строк за последние 60 дней.

Что получает админ

  • Обзор сервера — версия PHP и до какого времени она получает исправления безопасности (данные php.net), есть ли более новый патч-релиз вашей ветки (с пометкой, что дистрибутивы Linux иногда переносят исправления без смены номера), поддерживает ли ваша версия WordPress целевой PHP, какой PHP нужен WooCommerce, стоит ли ionCube Loader и какие расширения PHP исчезнут в новой версии.
  • Отчёт для выбранной версии PHP — счётчики «Сломается», «Закодировано — спросите разработчика», «Работает иначе», «Предупреждения об устаревшем», «Готово» и строка на каждый плагин и тему, must-use плагины и drop-in. Целевая версия переключается без новой проверки.
  • Что делать — в строке плагина: «Сначала обновите до 6.2.3, затем проверьте снова», если новая версия плагина сама поддерживает целевой PHP; «Часть кода уже не работает на PHP 8.3 — этот код либо никогда не вызывается, либо уже сломан»; пометки «расширение WooCommerce» и «Нужен PHP 7.4» из заголовка плагина.
  • «Проверить снова» для одного плагина или темы — после обновления не нужно проверять весь сайт.
  • «Сломается» — код, который перестанет работать на целевом PHP: файл не загрузится из-за синтаксиса, которого PHP больше не понимает, или вызов закончится фатальной ошибкой. Сюда же — плагин, у которого в заголовке Requires PHP выше целевой версии.
  • «Работает иначе» — код выполнится, но поведёт себя не так, как раньше: например, конструктор в стиле PHP 4, который с PHP 8.0 больше не вызывается при создании объекта.
  • «Предупреждения об устаревшем» — плагин работает, но PHP выдаёт предупреждения: они засоряют журнал ошибок и в следующих версиях станут ошибками.
  • Находки — для каждой: уровень и версия PHP, с которой это изменилось, что именно не так и как исправить, ссылка на php.net, плагин, файл, строка и сам код. Фильтр по плагину и уровню.
  • Защищённый код — строки внутри проверки версии PHP, function_exists(), extension_loaded() или defined(), а также собственные замены удалённых функций в том же плагине помечаются «защищено» и в вердикт не идут. Их видно, если выбрать в фильтре.
  • CSV — все находки одним файлом для разработчика, поддержки хостинга или автора плагина: запятая или точка с запятой, с BOM и защитой от формул, открывается в Excel и Google Таблицах.
  • WP-CLI: wp catcode-php-check scan, wp catcode-php-check report --target=8.4 --format=json, wp catcode-php-check export report.csv.
  • «Здоровье сайта» — тест, который говорит, сколько активных плагинов и тем сломается на целевом PHP. Он критический, когда текущий PHP уже не получает исправлений безопасности, и рекомендательный — когда ещё получает.
  • Pro: журнал работы — предупреждения об устаревшем и фатальные ошибки PHP во время работы сайта, сгруппированные по плагину и теме, с файлом, строкой, количеством повторов, датой и версией PHP. Включите его перед переключением PHP и посмотрите после: он ловит то, чего не видно в коде.
  • Pro: проверка после обновлений — плагин или тему, которые обновил WordPress, плагин проверяет снова в фоне, и отчёт показывает их новый вердикт.
  • Pro: еженедельный отчёт — проверка в фоне раз в неделю и письмо с результатом на указанный адрес или администратору сайта.

Как это работает — шаг за шагом

  1. Инструменты → PHP Upgrade Check. Плагин сразу показывает, на каком PHP работает сайт и до какого времени эта версия получает исправления безопасности.
  2. В «Переходим на PHP» оставляете рекомендованную версию (для сайтов на PHP старше 8.3 — 8.3, дальше — следующая ветка) или выбираете свою и нажимаете «Запустить проверку».
  3. Плагин составляет список кода: активные плагины, тема (дочерняя и родительская), must-use плагины, drop-in; по желанию — неактивные. Папки tests пропускаются, потому что на рабочем сайте не выполняются.
  4. Каждый PHP-файл читается токенайзером PHP и сверяется с правилами: удалённые функции, расширения и константы, синтаксис, который больше не загружается, изменённое поведение, устаревшее в PHP 8.0–8.5. Ничего не выполняется. Проверка идёт шагами по несколько секунд; закрыли вкладку — «Продолжить проверку» досчитает с того же места.
  5. Отчёт: вердикт на каждый плагин и тему, «Подробнее» — находки с исправлениями, CSV для разработчика. Другая целевая версия — в том же отчёте, без новой проверки.
  6. Дальше — по подсказке на экране плагина: полная резервная копия, обновление плагинов и проверка снова, вопрос авторам того, что «Сломается» или «Закодировано», пробное переключение на копии сайта, потом — в панели хостинга в спокойное время и сразу проверка главной, товара, корзины и оформления заказа. Если что-то сломалось, PHP возвращается в панели обратно — файлы и база остаются как были.

Тестовый магазин с 76 плагинами (вместе с неактивными), темами, must-use плагинами и drop-in — 40 731 файл — плагин проверил за 53 секунды двенадцатью шагами, память — до 94 МБ, ни один запрос не упёрся в max_execution_time 30 секунд. При жёстком memory_limit 128M два файла по ~1 МБ, которые не поместились бы в память, плагин пропустил и назвал в отчёте. Файлы больше 3 МБ тоже пропускаются с пометкой.

Что под капотом

  • Токенайзер PHP (token_get_all()) вместо выполнения кода: файлы только читаются, ничего не подключается, код не покидает сервер.
  • Правила для изменений PHP 7.0–8.5: синтаксис, который не загружается (фигурные скобки для элемента строки, вложенный тернарный оператор без скобок, (real) и (unset), =& new, классы с новыми зарезервированными именами), удалённые функции (each(), create_function(), get_magic_quotes_gpc(), money_format(), семейство ereg и другие), удалённые расширения (mysql, mcrypt, xmlrpc, imap, pspell, oci8), вызовы, ставшие фатальными (implode() с массивом первым, parse_str() без результата, mktime() без аргументов), изменённое поведение (конструкторы в стиле PHP 4, is_resource() на ресурсах, ставших объектами, assert() с кодом в строке), устаревшее до PHP 8.5 (неявно nullable параметры, типы возврата для 188 встроенных классов и интерфейсов, utf8_encode(), strftime(), FILTER_SANITIZE_STRING, E_STRICT, curl_close(), imagedestroy() и другое).
  • Сверка с самим PHP: на 40 768 файлах 70 плагинов проверка нашла все 557 предупреждений об устаревшем, которые PHP 8.5 выдаёт при компиляции, а файлы, которые не компилируются на PHP 8.5, совпали с файлами, где она нашла незагружаемый синтаксис (10 из 10). Находки одинаковые, на каком бы PHP — 7.4, 8.3 или 8.5 — проверка ни работала.
  • Защищённый код — проверка версии PHP, function_exists(), extension_loaded() или defined() вокруг кода или перед &&, || и ?, а также собственные замены удалённых функций в плагине распознаются, чтобы не пугать кодом, написанным под обе версии.
  • Шаги с блокировкой: проверка идёт шагами по одному — вторая вкладка, WP-Cron и WP-CLI не читают одни и те же файлы одновременно; предохранитель памяти пропускает слишком большие файлы и называет их в отчёте; папка без прав чтения не обрывает проверку — отчёт говорит, сколько файлов не удалось прочитать.
  • Данные php.net о ветках PHP кешируются на 12 часов; если запрос выключен, плагин берёт встроенный список. Таблица совместимости WordPress и PHP встроена в плагин.
  • Свои таблицы для находок и журнала работы; удаление плагина убирает таблицы, настройки и задания крона, на мультисайте — на всех сайтах.

Как установить

  1. Плагины → Добавить новый → Загрузить плагин: выберите catcode-php-upgrade-check-for-woocommerce-free-1.0.0.zip и активируйте.
  2. Инструменты → PHP Upgrade Check → выберите версию в «Переходим на PHP» → «Запустить проверку».
  3. Посмотрите отчёт, «Подробнее» с исправлениями и, если нужно, скачайте CSV для разработчика.
  4. Для Pro: загрузите Pro-сборку плагина поверх бесплатной (WordPress предложит заменить установленную версию) и вставьте лицензионный ключ из письма на вкладке «Настройки» — или нажмите там «Попробовать Pro 7 дней».

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Плагин что-то меняет на сайте?

Нет. Проверка только читает PHP-файлы токенайзером PHP: ничего не выполняет, не подключает, не правит и не переключает версию PHP. Результаты пишет в собственные таблицы. Журнал работы в Pro только записывает сообщения PHP и передаёт каждое дальше, как и без плагина.

Нужен ли WooCommerce?

Нет. Плагин проверяет любой сайт на WordPress. Если WooCommerce активен, отчёт ещё и помечает расширения WooCommerce и показывает, какой PHP нужен самому WooCommerce.

Мой сайт на PHP 7.2 или 7.4. Можно проверить его под PHP 8.3?

Да, именно для этого он и сделан: проверка работает на том PHP, что стоит сейчас (от 7.2), а отчёт строится для версии, которую вы выбираете.

В плагине найден each(), а вердикт не «Сломается». Почему?

Вердикт считает только то, что изменится между PHP, на котором сайт работает сегодня, и целевой версией. each() убрали в PHP 8.0: на сайте с PHP 8.3 такой код либо никогда не вызывается, либо уже сломан, и переход на 8.4 ничего в нём не изменит. Эти находки остаются во вкладке «Находки» с пометкой «в вердикте не учитывается», а в строке плагина видно «Часть кода уже не работает на PHP 8.3». На сайте с PHP 7.4 тот же each() в отчёте для 8.3 даст «Сломается».

Плагин с вердиктом «Готово» точно будет работать?

Гарантию не даст ни одна проверка кода. «Готово» значит, что для выбранной версии PHP в коде ничего не найдено. Часть изменений проявляется только во время работы (null в функции PHP, свойство, созданное на лету) — для этого в Pro есть журнал работы. После переключения проверьте магазин, прежде всего оформление заказа, и держите резервную копию, которую можно восстановить.

А закодированные плагины (ionCube)?

Закодированные файлы прочитать невозможно. Они работают только на тех версиях PHP, которые поддерживают их кодировщик и лоадер на сервере, поэтому отчёт помечает такой плагин «Закодировано — спросите разработчика» и показывает, стоит ли ionCube Loader.

Как это работает на мультисайте?

Плагин активируется для сети, а отчёт на любом сайте охватывает плагины и темы, которыми пользуется вся сеть, ведь PHP у неё один. Экран видят только суперадминистраторы. Для лицензии каждый подсайт мультисайта — отдельный сайт: ключ активируется на адресе того сайта сети, где его вставили.

Нагрузит ли проверка сервер?

Проверка идёт в админке короткими шагами по несколько секунд. Тестовый магазин с 76 плагинами — 40 731 файл — проверен за 53 секунды, память — до 94 МБ, ни один шаг не упёрся в max_execution_time 30 с. Файл, который не поместится в memory_limit, плагин пропускает и называет в отчёте.

Что плагин отправляет наружу?

Бесплатная версия дважды в день спрашивает php.net, какой релиз последний в каждой ветке PHP и до какого времени ветка получает исправления безопасности. О вашем сайте ничего не отправляется; запрос выключается в настройках, тогда плагин берёт встроенный список. Pro проверяет лицензионный ключ и адрес сайта на сервере лицензий catcode.com.ua.

Что если я не хочу платить за Pro?

Проверка, отчёт для каждой версии PHP, находки с исправлениями, CSV, «Здоровье сайта» и WP-CLI остаются бесплатными без ограничения по времени и количеству плагинов.

Что останется после удаления плагина?

Ничего: его таблицы, настройки и задания крона удаляются, на мультисайте — на всех сайтах. Если на сайте стоит вторая копия плагина в другой папке, её данные не трогаются.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль