SKLEPINTERNETOWY.BIZPoradniki i wiedza e-commerce
Poradnik›BEZPIECZEŃSTWO›WooCommerce nie działa po aktualizacji PHP? Błędy wtyczek,…
BEZPIECZEŃSTWO

WooCommerce nie działa po aktualizacji PHP? Błędy wtyczek, Fatal Error i problemy z kompatybilnością PHP 7.3–8.5

1 listopada 202613 min czytanianetpoint

WooCommerce nie działa po aktualizacji PHP? Błędy wtyczek i problemy z kompatybilnością PHP 7.3, 7.4, 8.0, 8.1 i 8.2

Po zmianie wersji PHP sklep WooCommerce przestał działać? Pojawia się błąd krytyczny WordPressa, HTTP 500, komunikat „Fatal error”, „Uncaught TypeError” albo dziesiątki ostrzeżeń „PHP Deprecated”? Przyczyną może być niekompatybilna wtyczka, starszy moduł płatności, niestandardowa integracja lub rozwiązanie, którego autor od dawna nie aktualizuje.

Takie sytuacje występują szczególnie podczas przechodzenia ze starszych wersji PHP 7.3 i 7.4 na PHP 8.0, 8.1, 8.2 lub nowsze wydania. Zmiany w języku PHP powodują, że kod działający przez wiele lat może nagle przestać być poprawnie interpretowany przez serwer.

Specjalizuję się w modernizacji istniejących wtyczek WordPress i WooCommerce, dostosowywaniu ich do nowych wersji PHP oraz tworzeniu nowych modułów zastępujących rozwiązania, które nie są już rozwijane. Pomagam właścicielom sklepów zachować potrzebne funkcjonalności bez konieczności długotrwałego korzystania z przestarzałego środowiska serwerowego.

Najczęstsze komunikaty po zmianie wersji PHP w WordPress i WooCommerce

Poniżej znajdują się komunikaty spotykane w starszych instalacjach WordPressa, WooCommerce oraz dodatkowych wtyczkach. Ich angielskie brzmienie odpowiada komunikatom PHP lub zgłoszeniom błędów, natomiast polskie wyjaśnienia opisują ich znaczenie.

Nie każdy z tych komunikatów jednoznacznie dowodzi niekompatybilności wtyczki. Właściwa diagnoza wymaga sprawdzenia kodu, wersji środowiska oraz miejsca wystąpienia błędu.

1. There has been a critical error on this website — krytyczny błąd WordPress

Komunikat angielski:

There has been a critical error on this website.

Komunikat polski:

W witrynie wystąpił błąd krytyczny.

Jest to ogólny komunikat WordPressa informujący, że wystąpił błąd uniemożliwiający prawidłowe wykonanie części aplikacji. Może pojawić się po aktualizacji PHP, jeśli jedna z aktywnych wtyczek korzysta z nieobsługiwanych funkcji lub składni.

Sam komunikat nie identyfikuje problematycznego modułu. Dopiero analiza błędu PHP i jego ścieżki wykonania pozwala określić, czy konieczna jest modyfikacja konkretnej wtyczki, integracji czy innego elementu sklepu.

2. Array and string offset access syntax with curly braces is no longer supported

Komunikat angielski:

PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported

Znaczenie po polsku: Błąd krytyczny — używana przez wtyczkę składnia dostępu do elementów tablic lub znaków w ciągach tekstowych nie jest już obsługiwana.

W PHP 7.4 ten sposób zapisu został oznaczony jako przestarzały, natomiast od PHP 8.0 nie jest już obsługiwany. Problem często dotyczy starszych bibliotek dołączonych do wtyczek WooCommerce, generatorów dokumentów, modułów importujących dane czy dawnych rozszerzeń WordPressa.

W niektórych przypadkach niezgodność znajduje się głęboko w zewnętrznej bibliotece wykorzystywanej przez wtyczkę. Modernizacja wymaga wówczas sprawdzenia nie tylko wskazanej linii, ale również pozostałego kodu i jego zależności.

3. Call to undefined function create_function()

Komunikat angielski:

PHP Fatal error: Uncaught Error: Call to undefined function create_function()

Znaczenie po polsku: Błąd krytyczny — wtyczka próbuje wywołać funkcję create_function(), której nie ma już w używanej wersji PHP.

Funkcja ta została usunięta w PHP 8.0. Występowała w starszych modułach WordPressa, wtyczkach rozszerzających WooCommerce oraz niestandardowym kodzie pisanym dla dawnych wersji PHP.

Takie rozwiązanie można w wielu przypadkach zmodernizować, zachowując jego pierwotne przeznaczenie. Wymaga to jednak analizy sposobu działania funkcji i sprawdzenia, czy jej zamiennik nie zmienia zachowania całego modułu.

4. Call to undefined function each()

Komunikat angielski:

PHP Fatal error: Uncaught Error: Call to undefined function each()

Znaczenie po polsku: Błąd krytyczny — wywołanie usuniętej funkcji each().

Funkcja each() przestała być dostępna w PHP 8.0. Wtyczki korzystające ze starszych metod przetwarzania tablic mogą przestać działać po podwyższeniu wersji PHP. Problem bywa widoczny przy generowaniu raportów, imporcie produktów, przetwarzaniu zamówień lub działaniu niestandardowych integracji.

Dostosowanie takiej wtyczki wymaga modernizacji odpowiednich mechanizmów przetwarzania danych i weryfikacji, czy wyniki działania pozostają zgodne z dotychczasową logiką biznesową.

5. Call to undefined function get_magic_quotes_gpc()

Komunikat angielski:

PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_gpc()

Znaczenie po polsku: Błąd krytyczny — aplikacja wywołuje funkcję get_magic_quotes_gpc(), która została usunięta z PHP 8.0.

Komunikat może występować zarówno w bardzo starym kodzie WordPressa, jak i w dawnych rozszerzeniach wykorzystujących nieaktualne mechanizmy obsługi danych wejściowych.

Jest to również sygnał, że samo usunięcie pojedynczego błędu może nie wystarczyć. Kod wymagający tak starych funkcji powinien zostać przeanalizowany także pod kątem prawidłowej obsługi danych i bezpieczeństwa.

6. Unparenthesized a ? b : c ? d : e is not supported

Komunikat angielski:

Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`

Znaczenie po polsku: Błąd krytyczny — wtyczka wykorzystuje zagnieżdżone operatory warunkowe w składni nieobsługiwanej od PHP 8.0.

Występuje w starszych skryptach i bibliotekach, również tych dołączanych do komercyjnych rozszerzeń WordPressa. Może powodować całkowite zatrzymanie ładowania strony lub panelu administracyjnego.

Podczas modernizacji konieczne jest zachowanie zamierzonej logiki warunków, ponieważ nieprawidłowa zmiana może wpłynąć na działanie funkcjonalności sklepu.

7. implode(): Argument #2 ($array) must be of type ?array, string given

Komunikat angielski:

PHP Fatal error: Uncaught TypeError: implode(): Argument #2 ($array) must be of type ?array, string given

Znaczenie po polsku: Błąd krytyczny — funkcja implode() otrzymała tekst zamiast oczekiwanej tablicy.

Ten konkretny problem był zgłaszany między innymi w rozszerzeniach obsługujących pola zamówień WooCommerce. Może wystąpić po zmianie PHP, ponieważ nowsze wersje języka bardziej rygorystycznie kontrolują typy przekazywanych wartości, a historyczna kolejność argumentów funkcji implode() nie jest już obsługiwana.

W sklepach internetowych takie błędy mogą dotyczyć danych klienta, pól dodatkowych, statusów zamówień lub informacji przekazywanych między modułami.

8. count(): Argument #1 ($value) must be of type Countable|array, null given

Komunikat angielski:

Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given

Znaczenie po polsku: Błąd krytyczny — funkcja count() otrzymała pustą wartość null zamiast tablicy lub obiektu obsługującego zliczanie.

PHP 8.0 zmienił sposób obsługi nieprawidłowych typów przekazywanych do tej funkcji. Kod, który wcześniej mógł generować jedynie ostrzeżenie, zaczyna zatrzymywać wykonywanie skryptu.

Takie problemy mogą ujawniać się w starszych wtyczkach przy przeliczaniu produktów, obsłudze wariantów, rabatów, dodatkowych pól lub danych importowanych z systemów zewnętrznych.

Ostrzeżenia i błędy PHP 8.1 w starszych wtyczkach WordPress i WooCommerce

9. Return type should either be compatible with ArrayAccess

Przykładowy komunikat angielski:

PHP Deprecated: Return type of Forminator_Addon_Container::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

Znaczenie po polsku: Ostrzeżenie o przestarzałym rozwiązaniu — metoda klasy nie deklaruje typu zwracanego w sposób zgodny z wymaganiami interfejsu ArrayAccess.

Od PHP 8.1 tego rodzaju problemy są zgłaszane w starszych implementacjach klas. Komunikat nie musi oznaczać natychmiastowej awarii, ale wskazuje na niezgodność wymagającą uwagi.

Podobne ostrzeżenia występują w bibliotekach wykorzystywanych przez dodatki do WordPressa i WooCommerce. Długoterminowe dostosowanie powinno uwzględniać prawidłowe deklaracje metod, a nie tylko ukrywanie komunikatów.

10. trim(): Passing null to parameter #1 ($string) of type string is deprecated

Komunikat angielski:

PHP Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated

Znaczenie po polsku: Ostrzeżenie — funkcja trim() otrzymała wartość null, chociaż oczekuje ciągu tekstowego.

Ostrzeżenie pojawiło się w PHP 8.1 i często występuje w starszym kodzie obsługującym formularze, dane produktów, pola zamówień oraz ustawienia wtyczek.

Podobne komunikaty mogą dotyczyć również funkcji strtolower(), stripos(), preg_replace() czy rtrim(). Nie zawsze zatrzymują sklep, ale ujawniają miejsca wymagające dostosowania sposobu obsługi danych.

11. Optional parameter declared before required parameter

Komunikat angielski:

PHP Deprecated: Optional parameter $object_id declared before required parameter $taxonomy is implicitly treated as a required parameter

Znaczenie po polsku: Ostrzeżenie — parametr opcjonalny został zadeklarowany przed parametrem wymaganym i jest traktowany jako obowiązkowy.

Zmiany w PHP 8.0 i 8.1 ujawniły problemy w starszych deklaracjach funkcji. Mogą one występować również w starszych wersjach WordPressa, a nie wyłącznie w dodatkowych wtyczkach.

W przypadku niestandardowych integracji istotne jest sprawdzenie wszystkich miejsc wywołania takiej funkcji, aby modernizacja nie wpłynęła na wymianę danych lub przetwarzanie zamówień.

Problemy z niekompatybilnymi wtyczkami po aktualizacji do PHP 8.2

12. Creation of dynamic property is deprecated

Przykładowy rzeczywisty komunikat angielski:

Deprecated: Creation of dynamic property WCJ_Input_Field_Shortcodes::$the_shortcodes is deprecated

Znaczenie po polsku: Ostrzeżenie — kod tworzy dynamiczną właściwość obiektu, co od PHP 8.2 jest mechanizmem przestarzałym.

Jest to jeden z charakterystycznych komunikatów występujących podczas uruchamiania starszych wersji dodatków WooCommerce na PHP 8.2 i nowszych.

Ostrzeżenia mogą dotyczyć klas odpowiedzialnych za płatności, koszyk, produkty, pola dodatkowe, dostawy lub fakturowanie. W określonych konfiguracjach generują bardzo dużą liczbę wpisów w logach serwera.

Profesjonalna modernizacja obejmuje dostosowanie struktury klas i sposobu zarządzania właściwościami obiektów. Samo wyłączenie wyświetlania ostrzeżeń nie usuwa przyczyny niezgodności.

13. Function utf8_encode() is deprecated

Komunikat angielski:

PHP Deprecated: Function utf8_encode() is deprecated

Znaczenie po polsku: Ostrzeżenie — funkcja utf8_encode() została oznaczona jako przestarzała w PHP 8.2.

Wtyczki korzystające ze starszych mechanizmów kodowania znaków mogą wymagać modernizacji. Szczególnie istotne jest to w rozwiązaniach przetwarzających opisy produktów, importy XML i CSV, dokumenty oraz dane przekazywane przez API.

Prace powinny uwzględniać rzeczywiste kodowanie przetwarzanych danych, aby nie spowodować problemów z polskimi znakami, nazwami produktów czy informacjami o zamówieniach.

14. Using ${var} in strings is deprecated, use {$var} instead

Komunikat angielski:

Deprecated: Using ${var} in strings is deprecated, use {$var} instead

Znaczenie po polsku: Ostrzeżenie — sposób umieszczania zmiennych wewnątrz ciągów tekstowych jest przestarzały w PHP 8.2.

Problem bywa spotykany w starszych wtyczkach tworzących komunikaty, szablony wiadomości, dokumenty lub generowane treści.

Nie musi oznaczać całkowitej awarii, ale jest kolejnym sygnałem, że kod wymaga przeglądu i przystosowania do współczesnych wersji PHP.

Czy każda awaria WooCommerce po podwyższeniu PHP oznacza niekompatybilną wtyczkę?

Nie. Błąd HTTP 500, biały ekran, niedziałający panel administracyjny lub problem z realizacją zamówienia może mieć różne przyczyny. Oprócz niekompatybilnego kodu należy brać pod uwagę również wersję WordPressa, rozszerzenia PHP, biblioteki zewnętrzne, konfigurację serwera i wzajemne zależności modułów.

Właśnie dlatego zajmuję się nie tylko samymi wtyczkami, ale również zapleczem technicznym sklepów. Analizuję działanie aplikacji i środowiska serwerowego jako całości, uwzględniając proces składania zamówień, obsługę płatności, synchronizację danych oraz mechanizmy bezpieczeństwa.

Dlaczego nie warto pozostawać przy PHP 7.3, 7.4, 8.0 lub 8.1 tylko z powodu jednej starej wtyczki?

Starsze wersje PHP przez lata zapewniały stabilne działanie wielu sklepów internetowych. Problem pojawia się w momencie zakończenia ich oficjalnego wsparcia.

PHP 7.3, 7.4, 8.0 i 8.1 nie otrzymują już aktualizacji bezpieczeństwa od zespołu PHP. Również PHP 8.2 zbliża się do końca cyklu wsparcia, który przypada na 31 grudnia 2026 roku. Dla WooCommerce zalecane są nowsze, wspierane wersje PHP, przy zachowaniu zgodności całego środowiska.

Jeżeli sklep działa wyłącznie na starej wersji PHP, ponieważ jedna z wtyczek nie obsługuje nowszej, oznacza to techniczne uzależnienie całej aplikacji od nieaktualnego rozwiązania.

Nie warto utrzymywać nieobsługiwanej wersji PHP tylko dlatego, że autor jednej wtyczki porzucił jej rozwój. Taki kompromis może narażać sklep na problemy z bezpieczeństwem, utrudniać aktualizacje WordPressa i WooCommerce oraz powodować kolejne konflikty z nowymi rozszerzeniami.

Podwyższenie wersji PHP powinno być poprzedzone oceną kompatybilności, ale docelowym rozwiązaniem jest usunięcie przyczyny niezgodności, a nie bezterminowe utrzymywanie przestarzałego środowiska.

Autor wtyczki przestał ją rozwijać? Można dostosować istniejący moduł albo stworzyć jego zamiennik

W wielu sklepach WooCommerce działają rozwiązania przygotowane na indywidualne zamówienie kilka lat wcześniej. Mogą to być integracje z hurtowniami, programami magazynowymi, systemami księgowymi, firmami kurierskimi, operatorami płatności lub nietypowe konfiguratory produktów.

Często są to funkcjonalności niezbędne do codziennego prowadzenia działalności, których nie można po prostu usunąć ze sklepu.

Zdarza się, że wykonawca zakończył działalność, autor wtyczki nie oferuje już aktualizacji, a pierwotne rozwiązanie nie jest kompatybilne z nowym PHP albo aktualnym WooCommerce.

Zajmuję się przejmowaniem, analizą i modernizacją takich rozwiązań. W zależności od stanu technicznego modułu i dostępności jego kodu możliwe jest dostosowanie dotychczasowej wtyczki albo przygotowanie zupełnie nowego rozwiązania realizującego tę samą funkcję biznesową.

Modernizacja istniejącej wtyczki WooCommerce

Dostosowuję starsze wtyczki do aktualnych wymagań PHP, WordPressa i WooCommerce. Zakres prac może obejmować zmiany w strukturze kodu, aktualizację bibliotek, zgodność funkcji i metod, prawidłową obsługę danych, poprawki bezpieczeństwa oraz dostosowanie integracji do obecnych interfejsów.

W przypadku sklepów działających produkcyjnie istotna jest również kontrola wpływu zmian na dotychczasowe zamówienia, płatności i inne procesy biznesowe.

Tworzenie nowej wtyczki zastępującej porzucony moduł

Jeżeli oryginalny kod jest zbyt przestarzały, ma poważne problemy bezpieczeństwa albo jego utrzymywanie jest nieuzasadnione technicznie, mogę przygotować nową wtyczkę WordPress lub WooCommerce.

Nowy moduł może odtworzyć potrzebne funkcjonalności, jednocześnie korzystając ze współczesnych rozwiązań programistycznych i aktualnych mechanizmów integracji.

Realizuję również indywidualne wtyczki od podstaw, w tym rozszerzenia checkoutu, integracje REST API, wymianę danych z systemami zewnętrznymi, automatyzację zamówień i niestandardowe funkcje sklepów.

Audyt bezpieczeństwa starszego kodu PHP

Modernizacja nie powinna ograniczać się wyłącznie do usunięcia komunikatu „Fatal error”. Starsza wtyczka może zawierać mechanizmy wymagające sprawdzenia pod kątem walidacji danych wejściowych, uprawnień użytkowników, operacji na bazie danych, dostępu do plików oraz bezpieczeństwa komunikacji z zewnętrznymi systemami.

Przy dostosowywaniu modułów uwzględniam również te zagadnienia. Celem jest utrzymywalne i bezpieczniejsze rozwiązanie, a nie tylko przywrócenie działania pojedynczej funkcji.

Aktualizacja PHP a bezpieczeństwo sklepu internetowego

W październiku 2026 roku opublikowano poprawki PHP dotyczące dwóch krytycznych podatności umożliwiających w określonych warunkach zdalne wykonanie kodu. To przypomnienie, że bieżące aktualizacje PHP są istotnym elementem ochrony sklepów internetowych.

Nieaktualizowana wtyczka nie powinna blokować przejścia na bezpieczniejsze środowisko serwerowe. Dotyczy to szczególnie sklepów przetwarzających dane klientów, obsługujących płatności i wymieniających informacje z zewnętrznymi systemami.

Bezpieczna modernizacja obejmuje zarówno warstwę aplikacyjną, jak i zgodność wykorzystywanych komponentów z aktualnym środowiskiem PHP.

Potrzebujesz dostosowania wtyczki WooCommerce do PHP 8.2, 8.3, 8.4 lub 8.5?

Jeżeli po aktualizacji PHP Twój sklep przestał działać, pojawiają się błędy krytyczne albo nie możesz korzystać z nowszego PHP przez jedną przestarzałą wtyczkę, mogę pomóc w rozwiązaniu problemu.

Zajmuję się naprawą niekompatybilnych modułów, modernizacją starszych integracji, dostosowywaniem wtyczek do aktualnych wersji PHP oraz tworzeniem dedykowanych rozszerzeń WordPress i WooCommerce.

Pracuję zarówno z popularnymi wtyczkami, jak i rozwiązaniami indywidualnymi, których autorzy zakończyli rozwój lub nie zapewniają już wsparcia technicznego.

Prześlij mi komunikat błędu, nazwę problematycznej wtyczki oraz informację, z jakiej wersji PHP na jaką próbujesz przejść. Na tej podstawie możemy ustalić zakres diagnostyki oraz możliwości modernizacji istniejącego rozwiązania lub przygotowania jego zamiennika.

Kontakt: 506 130 673

netPOINT — wsparcie techniczne, integracje i dedykowane wtyczki WordPress oraz WooCommerce

Źródła techniczne

Informacje dotyczące zmian w PHP oraz cyklu wsparcia poszczególnych wersji:

PHP — oficjalny harmonogram wsparcia wersji

PHP 8.0 — zmiany niezgodne ze starszym kodem

PHP 8.1 — przestarzałe funkcjonalności

PHP 8.2 — przestarzałe funkcjonalności

WooCommerce — komunikat bezpieczeństwa dotyczący PHP z października 2026 roku

netpoint

Materiały o e-commerce, sprzedaży i technologii dla sklepów internetowych.

Czytaj dalej

Powiązane materiały