Зв'язатись
  • 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. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль