WooCommerce 11.2.2 – błąd PHP Fatal Error może przerwać aktualizację sklepu
W WooCommerce 11.2.2 zidentyfikowano poważny błąd związany z przetwarzaniem plików tłumaczeń. W określonych konfiguracjach wielojęzycznych podczas aktualizacji sklepu może wystąpić PHP Fatal Error w pliku Translations.php. Problem nie kończy się na samym przerwaniu operacji. W bazie danych może pozostać blokada instalacyjna wc_installing, która powoduje dodatkowe błędy przy kolejnych próbach aktualizacji.
Zgłoszenie zostało opublikowane 5 listopada 2026 roku w oficjalnym repozytorium WooCommerce na GitHubie pod numerem #70716. Autor przedstawił dokładne komunikaty błędów, wskazał przyczynę techniczną i opisał sposób odtworzenia problemu.
Najważniejsza informacja dla właścicieli sklepów: błąd nie dotyczy automatycznie wszystkich instalacji WooCommerce 11.2.2. Występuje w określonych warunkach, przede wszystkim wtedy, gdy sklep korzysta z plików tłumaczeń JSON wygenerowanych za pomocą WP-CLI, których struktura nie odpowiada założeniom kodu WooCommerce.
Skutkiem może być przerwanie aktualizacji, błędy administracyjne oraz konieczność ręcznej diagnostyki plików językowych i stanu instalacji.
Jakie komunikaty błędów pojawiają się w WooCommerce?
Podstawowym objawem jest wyjątek PHP związany z funkcją array_merge(). W zgłoszonym przypadku pojawia się następujący komunikat:
Uncaught Error: array_merge():
Argument #1 must be of type array, null given
/wp-content/plugins/woocommerce/src/Internal/Admin/Translations.php
on line 169
Oznacza to, że WooCommerce próbuje połączyć tablice danych tłumaczeń, ale jeden z przekazanych argumentów nie jest tablicą. Zamiast oczekiwanej struktury PHP otrzymuje wartość null.
Ponieważ funkcja array_merge() wymaga prawidłowych tablic, wykonywanie kodu zostaje przerwane.
Ostrzeżenie Undefined array key „woocommerce”
Przed wystąpieniem błędu krytycznego w logach PHP mogą pojawić się również ostrzeżenia:
PHP Warning: Undefined array key "woocommerce"
in .../Translations.php on line 170
PHP Warning: Undefined array key "woocommerce"
in .../Translations.php on line 171
Komunikaty wskazują, że kod próbuje odczytać element o nazwie woocommerce z tablicy, która go nie zawiera.
To istotny szczegół diagnostyczny. Jeśli administrator widzi jednocześnie ostrzeżenie Undefined array key oraz błąd array_merge() w Translations.php, powinien sprawdzić strukturę plików tłumaczeń WooCommerce.
Drugi problem: Duplicate entry 'wc_installing’
Po przerwaniu aktualizacji mogą pojawić się kolejne błędy:
WordPress database error
Duplicate entry 'wc_installing'
for key 'wp_options.option_name'
W zgłoszeniu opisano również próbę wykonania zapytania:
INSERT INTO wp_options
(option_name, option_value, autoload)
VALUES ('wc_installing', ..., 'no')
WooCommerce próbuje utworzyć blokadę instalacyjną, ale rekord o tej nazwie już istnieje.
W ten sposób pojedynczy błąd związany z tłumaczeniami może wywołać kolejne problemy podczas aktualizacji.
Dlaczego pliki tłumaczeń powodują PHP Fatal Error?
Przyczyną jest niezgodność struktury niektórych plików tłumaczeń JSON ze strukturą oczekiwaną przez mechanizm łączenia tłumaczeń WooCommerce.
WordPress wykorzystuje pliki PO i MO do obsługi tłumaczeń, natomiast tłumaczenia tekstów używanych przez JavaScript mogą być przechowywane także w plikach JSON.
Programiści przygotowujący własne tłumaczenia mogą generować takie pliki za pomocą WP-CLI, wykorzystując polecenie:
wp i18n make-json
W zgłoszonym scenariuszu wykorzystano opcję –no-purge, która pozwala zachować tłumaczenia w źródłowych plikach PO.
Samo używanie WP-CLI do przygotowywania tłumaczeń nie jest błędem. Problem powstaje podczas późniejszego przetwarzania określonej struktury wygenerowanych danych przez WooCommerce.
Różnica pomiędzy strukturą messages a woocommerce
Pliki JSON wygenerowane standardowym mechanizmem WP-CLI mogą zawierać strukturę podobną do poniższej:
{
"source": "...",
"locale_data": {
"messages": {}
}
}
Jest to uproszczony przykład przedstawiający istotne klucze.
Mechanizm łączenia tłumaczeń WooCommerce oczekuje natomiast danych dostępnych pod kluczem:
locale_data['woocommerce']
W standardowym pliku JSON wygenerowanym przez WP-CLI taki element może nie istnieć.
Jeżeli WooCommerce nie sprawdzi obecności odpowiedniego klucza przed przetwarzaniem danych, próba połączenia tablic może zakończyć się błędem krytycznym.
Problem w funkcji combine_user_translation_chunks()
Autor zgłoszenia wskazał funkcję:
Translations::combine_user_translation_chunks()
W analizowanym kodzie występuje operacja:
$combined_translation_data['locale_data']['woocommerce'] =
array_merge(
$combined_translation_data['locale_data']['woocommerce'],
$chunk_data['locale_data']['woocommerce']
);
Problem polega na założeniu, że wymagane elementy tablic istnieją i mają prawidłowy typ.
Jeżeli dane nie zawierają klucza woocommerce, PHP nie otrzymuje odpowiedniej tablicy i operacja kończy się błędem.
Mechanizm powinien w takiej sytuacji zweryfikować strukturę JSON, odpowiednio obsłużyć brakujące dane lub pominąć niezgodny fragment tłumaczenia.
Dlaczego po błędzie pozostaje blokada wc_installing?
Podczas instalowania i aktualizowania WooCommerce wykorzystywana jest specjalna blokada zabezpieczająca przed równoczesnym uruchamianiem operacji instalacyjnych.
Jej zadaniem jest ograniczenie sytuacji, w których dwa procesy próbują jednocześnie modyfikować konfigurację lub strukturę danych sklepu.
Blokada może być zapisywana w tabeli opcji WordPressa pod nazwą:
wc_installing
W prawidłowym przebiegu operacji WooCommerce tworzy blokadę, wykonuje wymagane czynności, a następnie ją zwalnia.
W analizowanym przypadku podczas przetwarzania tłumaczeń występuje nieobsłużony błąd krytyczny PHP. Proces zostaje przerwany, zanim WooCommerce zdoła wykonać standardowe zwolnienie blokady.
W bazie danych pozostaje więc rekord wc_installing.
Czy pozostawiona blokada uniemożliwia aktualizacje na stałe?
Nie zawsze. Jest to istotne rozróżnienie.
W kodzie WooCommerce 11.2.2 istnieje mechanizm umożliwiający przejęcie przeterminowanej blokady instalacyjnej, jeżeli jej znacznik czasu wskazuje, że ma ponad 10 minut.
Dlatego komunikat Duplicate entry 'wc_installing’ nie oznacza automatycznie, że aktualizacje zostały bezpowrotnie zablokowane i jedynym rozwiązaniem jest ręczne usunięcie rekordu z bazy danych.
Jednak nawet po odzyskaniu możliwości przeprowadzenia aktualizacji podstawowy problem może powrócić. Jeżeli w środowisku nadal znajdują się niezgodne pliki JSON, mechanizm przetwarzania tłumaczeń może ponownie wywołać PHP Fatal Error.
W praktyce należy rozróżnić dwa problemy:
- Błąd pierwotny: nieprawidłowa obsługa struktury tłumaczeń JSON w Translations.php.
- Błąd wtórny: pozostawiona blokada wc_installing po przerwaniu procesu instalacyjnego.
Usunięcie samej blokady nie naprawia błędu odpowiedzialnego za przerwanie aktualizacji.
Które wersje WordPressa i WooCommerce są dotknięte problemem?
Autor odtworzył problem w następującym środowisku:
| Komponent | Wersja lub konfiguracja |
|---|---|
| WooCommerce | 11.2.2 |
| WordPress | 7.1.4 |
| PHP | 8.4 |
| WP-CLI | 2.12.0 |
| Język | ru_RU |
| Źródło plików JSON | wp i18n make-json |
Zgłoszenie dotyczy WooCommerce 11.2.2, ale autor wskazał możliwość występowania tego samego błędu również w starszych wydaniach, które wykorzystują identyczny mechanizm przetwarzania tłumaczeń.
Nie potwierdzono jednak pełnego zakresu wersji dotkniętych problemem.
Czy problem dotyczy również polskich sklepów?
Potencjalnie tak, ale nie wynika to z samego używania języka polskiego.
W zgłoszonym środowisku wykorzystywano lokalizację ru_RU. Przyczyną nie jest jednak konkretny język, lecz struktura plików JSON.
Jeżeli polski sklep korzysta z niestandardowo generowanych tłumaczeń, które zawierają analogiczną strukturę danych, może zostać uruchomiona ta sama ścieżka kodu.
Nie ma natomiast podstaw, aby twierdzić, że każdy sklep WooCommerce z polskim pakietem językowym jest podatny na omawiany problem.
Jakie skutki może mieć nieudana aktualizacja WooCommerce?
Przerwanie procesu aktualizacji
Najbardziej bezpośrednim skutkiem jest zatrzymanie procesu aktualizacji WooCommerce przed jego prawidłowym zakończeniem.
W zależności od momentu wystąpienia błędu administrator może otrzymać komunikat o błędzie krytycznym, przerwaniu operacji albo niepowodzeniu instalacji.
Nie należy zakładać, że wszystkie operacje wykonane przed błędem zostaną automatycznie cofnięte.
Problemy z kolejnymi próbami aktualizacji
Pozostawiony rekord wc_installing może powodować komunikaty o zduplikowanej pozycji w tabeli opcji WordPressa.
Nawet jeśli mechanizm blokady zostanie odzyskany, ponowienie aktualizacji bez usunięcia pierwotnej przyczyny może ponownie doprowadzić do błędu PHP.
Ryzyko niedostępności wybranych funkcji administracyjnych
Błąd Fatal Error przerywa wykonywanie bieżącego procesu PHP. Jeżeli wystąpi podczas operacji administracyjnej, może uniemożliwić jej zakończenie.
Nie oznacza to jednak automatycznie, że cały sklep przestanie działać.
W zgłoszeniu #70716 nie przedstawiono dowodów potwierdzających utratę zamówień, uszkodzenie bazy produktów lub całkowitą niedostępność sklepu dla klientów.
W przypadku pojawienia się innych błędów krytycznych WooCommerce warto również sprawdzić przyczyny opisane w artykule WooCommerce Fatal Error: Call to a Member Function get_cart() on Null – naprawa WP-Cron i integracji.
Opisany tam problem dotyczy innego mechanizmu, ale pokazuje, dlaczego przy diagnozowaniu błędów krytycznych ważne jest ustalenie konkretnego miejsca przerwania wykonywania kodu PHP.
Jak sprawdzić, czy sklep ma problem z Translations.php?
1. Sprawdź logi PHP i WooCommerce
Jeżeli podczas aktualizacji wystąpił błąd krytyczny, pierwszym krokiem powinna być analiza logów.
W panelu administracyjnym otwórz:
WooCommerce → Status → Logi.
Sprawdź wpisy dotyczące błędów krytycznych. Jeżeli nie ma odpowiednich informacji, skontroluj logi PHP dostępne w panelu hostingu lub na serwerze.
Poszukaj następujących fragmentów:
Translations.php
array_merge()
Undefined array key "woocommerce"
wc_installing
Szczególnie ważna jest kolejność występowania komunikatów.
Jeżeli najpierw pojawia się błąd array_merge() w Translations.php, a dopiero później Duplicate entry 'wc_installing’, prawdopodobne jest, że problem z blokadą stanowi następstwo przerwanej operacji.
Oficjalna dokumentacja diagnozowania błędów PHP w WooCommerce opisuje sposoby sprawdzania logów i identyfikowania wyjątków przerywających działanie aplikacji.
2. Sprawdź pliki tłumaczeń JSON
Jeżeli sklep korzysta z własnych tłumaczeń generowanych przez WP-CLI, należy zweryfikować ich strukturę.
W szczególności sprawdź, czy pliki zawierają:
"locale_data": {
"messages": ...
}
oraz czy mechanizm WooCommerce oczekuje od nich struktury:
"locale_data": {
"woocommerce": ...
}
Nie należy jednak automatycznie zmieniać wszystkich kluczy messages na woocommerce.
Struktura pliku tłumaczeń powinna odpowiadać formatowi wymaganemu przez dany mechanizm, a nie być modyfikowana bez analizy w celu obejścia jednego błędu.
3. Zweryfikuj sposób generowania tłumaczeń
Jeżeli tłumaczenia przygotowywano przez WP-CLI, sprawdź historię używanych poleceń i lokalizację wygenerowanych plików.
W zgłoszeniu wskazano polecenie o następującej strukturze:
wp i18n make-json /sciezka/do/plikow-po --no-purge
Jest to przykład polecenia, w którym ścieżka powinna odpowiadać rzeczywistemu katalogowi z plikami PO.
Więcej informacji o sposobie działania generatora JSON znajduje się w oficjalnej dokumentacji WP-CLI: wp i18n make-json.
4. Sprawdź stan blokady wc_installing
Administrator posiadający dostęp SSH i WP-CLI może sprawdzić, czy odpowiednia opcja występuje w bazie danych.
Przykładowe polecenie odczytu:
wp option get wc_installing
Jeżeli opcja istnieje, polecenie powinno zwrócić zapisaną wartość. Brak opcji nie jest błędem samym w sobie.
Można również wykonać zapytanie SQL:
SELECT option_name, option_value
FROM wp_options
WHERE option_name = 'wc_installing';
Przykład zakłada standardowy prefiks tabel wp_. Jeżeli instalacja WordPressa wykorzystuje inny prefiks, trzeba odpowiednio dostosować nazwę tabeli.
Samo sprawdzenie obecności wc_installing nie oznacza jeszcze, że blokada jest nieprawidłowa. Rekord może wskazywać na trwający proces instalacyjny.
Jak bezpiecznie usunąć problem i przywrócić możliwość aktualizacji?
Naprawę należy rozpocząć od ustalenia przyczyny pierwotnego błędu PHP, a nie od natychmiastowego usuwania rekordu wc_installing.
Krok 1. Wykonaj kopię zapasową sklepu
Przed zmianą plików tłumaczeń lub danych zapisanych w bazie wykonaj kopię zapasową obejmującą:
- bazę danych WordPressa i WooCommerce;
- katalogi wtyczek i motywów;
- niestandardowe pliki tłumaczeń;
- konfigurację środowiska serwerowego.
W działającym sklepie trzeba również uwzględnić możliwość pojawienia się nowych zamówień pomiędzy wykonaniem kopii a ewentualnym odtwarzaniem danych.
Przywracanie całej bazy danych z wcześniejszego backupu może spowodować utratę zamówień zapisanych po utworzeniu kopii.
Krok 2. Ustal, czy proces aktualizacji nadal działa
Przed ingerencją w blokadę wc_installing sprawdź, czy nie jest aktywna operacja aktualizacyjna uruchomiona przez panel administracyjny, WP-CLI, harmonogram lub inne narzędzie zarządzające.
Nie należy usuwać blokady, jeśli chroni ona rzeczywiście trwającą instalację.
W WooCommerce 11.2.2 mechanizm blokady potrafi przejąć rekord, którego znacznik czasu wskazuje na przeterminowanie o ponad 10 minut. Dlatego warto najpierw ustalić wiek rekordu i zachowanie samego mechanizmu, zamiast automatycznie modyfikować bazę.
Krok 3. Odizoluj problematyczne pliki tłumaczeń
Jeżeli logi jednoznacznie wskazują na niezgodne pliki JSON, należy ustalić, które pliki zostały wygenerowane niestandardowo i wywołują błąd.
Na środowisku testowym można tymczasowo odizolować wyłącznie zidentyfikowane pliki, zachowując ich kopie, a następnie sprawdzić, czy aktualizacja przestaje wywoływać wyjątek w Translations.php.
Nie należy usuwać całego katalogu languages ani wszystkich plików językowych WordPressa.
Nie należy również ingerować w oryginalne pliki WooCommerce bez ustalenia, czy problem wynika z dodatkowych tłumaczeń, czy ze standardowego pakietu.
Krok 4. Sprawdź, czy blokada została prawidłowo zwolniona
Po wyeliminowaniu błędu tłumaczeń sprawdź, czy proces instalacyjny może zakończyć się poprawnie oraz czy rekord wc_installing nie pozostaje aktywny bez uzasadnienia.
Jeżeli blokada nadal powoduje problemy mimo braku aktywnych aktualizacji, jej stan powinien zostać oceniony przez administratora posiadającego dostęp do bazy danych.
Ręczne usunięcie odpowiedniej opcji może być uzasadnione w określonych przypadkach, ale powinno nastąpić dopiero po potwierdzeniu, że blokada jest osierocona i że nie działa żadna operacja, którą ma zabezpieczać.
Nie należy wykonywać masowego czyszczenia tabeli wp_options ani usuwać innych opcji instalacyjnych WooCommerce.
Krok 5. Ponownie przeprowadź aktualizację na środowisku testowym
Po usunięciu przyczyny błędu przeprowadź kontrolowaną aktualizację WooCommerce.
Sprawdź, czy:
- proces aktualizacji kończy się bez PHP Fatal Error;
- nie występują ostrzeżenia Undefined array key „woocommerce”;
- nie pojawiają się nowe komunikaty Duplicate entry 'wc_installing’;
- panel administracyjny działa prawidłowo;
- wersja WooCommerce odpowiada oczekiwanej;
- aktualizacja bazy danych, jeśli była wymagana, została zakończona.
Dopiero po potwierdzeniu poprawnego działania środowiska testowego można rozważyć przeprowadzenie analogicznych czynności w sklepie produkcyjnym.
Czego nie robić podczas naprawy błędu Translations.php?
Przy błędach krytycznych WooCommerce szczególnie niebezpieczne jest wykonywanie przypadkowych zmian bez analizy logów i zależności między poszczególnymi komunikatami.
W opisanym przypadku należy unikać następujących działań:
- Nie usuwaj automatycznie wc_installing. Opcja może zabezpieczać aktywny proces instalacyjny.
- Nie ponawiaj wielokrotnie aktualizacji bez diagnostyki. Jeśli pierwotna przyczyna nadal istnieje, kolejna próba może zakończyć się identycznym błędem.
- Nie wyłączaj globalnie wszystkich tłumaczeń. Problem dotyczy konkretnej struktury danych JSON.
- Nie zmieniaj przypadkowo wersji PHP. Udokumentowany błąd wynika z przetwarzania danych przez WooCommerce, a nie z potwierdzonej niezgodności wersji PHP.
- Nie modyfikuj kodu wtyczki bez testów. Ręczne poprawki mogą zostać nadpisane podczas kolejnej aktualizacji.
- Nie odtwarzaj pochopnie całej bazy danych. W działającym sklepie grozi to utratą nowych zamówień i zmian w stanach magazynowych.
Czy problem jest związany z podatnością bezpieczeństwa PHP?
Nie ma dowodów wskazujących, że zgłoszenie #70716 dotyczy podatności umożliwiającej przejęcie serwera lub zdalne wykonanie kodu.
Jest to błąd obsługi danych tłumaczeń, który prowadzi do przerwania procesu PHP.
Nie należy utożsamiać każdego komunikatu PHP Fatal Error z luką bezpieczeństwa.
Osobną kategorią zagrożeń są rzeczywiste podatności środowiska serwerowego, takie jak opisane w artykule Krytyczne luki w PHP zagrażają sklepom internetowym – jak sprawdzić serwer i zabezpieczyć WooCommerce, Magento oraz PrestaShop?.
W przypadku błędu Translations.php najważniejsza jest natomiast poprawność procesu aktualizacji, obsługi plików językowych i zarządzania blokadą instalacyjną.
Jak powinno działać prawidłowe rozwiązanie problemu?
Według zgłoszenia mechanizm łączenia tłumaczeń WooCommerce powinien bezpiecznie obsługiwać pliki JSON, które nie zawierają klucza locale_data[’woocommerce’].
Możliwe kierunki naprawy obejmują:
- sprawdzanie istnienia wymaganych kluczy przed wykonaniem array_merge();
- weryfikowanie, czy przetwarzane wartości rzeczywiście są tablicami;
- pomijanie nieobsługiwanych fragmentów tłumaczeń bez przerywania całego procesu instalacji;
- odpowiednią obsługę standardowych struktur JSON generowanych przez WP-CLI;
- zapewnienie prawidłowego zwalniania blokad instalacyjnych również w sytuacjach wyjątkowych.
Ostatni punkt ma szczególne znaczenie, ponieważ nawet jeśli problem z tłumaczeniami zostanie wyeliminowany, inne nieobsłużone błędy mogą zakłócić przebieg aktualizacji.
Poprawnie zaprojektowany mechanizm aktualizacyjny powinien możliwie skutecznie ograniczać skutki takich awarii i umożliwiać bezpieczne wznowienie pracy.
Czy istnieje oficjalna poprawka WooCommerce 11.2.2?
Według stanu publicznego zgłoszenia z 6 listopada 2026 roku problem pozostaje otwarty.
Zgłoszenie zostało oznaczone jako błąd dotyczący przetwarzania danych i operacji zaplecza WooCommerce oraz przypisane do dalszej obsługi.
Nie potwierdzono jeszcze opublikowania poprawki ani konkretnej wersji WooCommerce, która usuwa problem związany z combine_user_translation_chunks().
Przed wdrożeniem kolejnej aktualizacji warto sprawdzić historię wydań WooCommerce i zweryfikować, czy zawiera ona zmianę dotyczącą obsługi plików tłumaczeń JSON.
Pełny opis, komunikaty błędów oraz informacje o postępach prac są dostępne w zgłoszeniu WooCommerce #70716 na GitHubie.
Jak zabezpieczyć sklep przed problemami po aktualizacjach WooCommerce?
Aktualizacje WooCommerce mogą wprowadzać zmiany nie tylko w interfejsie sklepu, lecz także w bazie danych, mechanizmach przetwarzania zamówień, integracjach i obsłudze tłumaczeń.
Dlatego szczególnie w sklepach produkcyjnych warto stosować kontrolowany proces aktualizacji.
Wykorzystuj środowisko stagingowe
Kopia testowa pozwala sprawdzić nowe wydanie WooCommerce bez bezpośredniego ryzyka dla klientów i zamówień.
Powinna możliwie wiernie odwzorowywać środowisko produkcyjne, w tym wersję PHP, konfigurację bazy danych, aktywne wtyczki i sposób obsługi tłumaczeń.
W przypadku omawianego problemu szczególnie istotne jest zachowanie tych samych niestandardowych plików językowych.
Zachowuj kompletne logi aktualizacji
Logi PHP i WordPressa pozwalają określić, która operacja zakończyła się niepowodzeniem.
Jeżeli podczas instalacji występuje kilka komunikatów, pierwszy błąd może wskazywać na faktyczną przyczynę, a kolejne stanowić jedynie jego następstwa.
Właśnie tak może wyglądać sekwencja błędów Translations.php i wc_installing.
Sprawdzaj działanie sklepu po aktualizacji
Po każdej istotnej aktualizacji należy zweryfikować najważniejsze funkcje sprzedażowe:
- wyświetlanie produktów i kategorii;
- dodawanie towarów do koszyka;
- naliczanie podatków i kosztów dostawy;
- działanie formularza zamówienia;
- obsługę płatności;
- aktualizowanie statusów zamówień;
- generowanie wiadomości transakcyjnych;
- działanie zadań WP-Cron i integracji zewnętrznych.
W przypadku nieprawidłowości można skorzystać z pomocy technicznej dla sklepów internetowych, obejmującej diagnostykę awarii WooCommerce, błędów po aktualizacjach i problemów z działaniem zaplecza sklepu.
Najczęściej zadawane pytania
Czy WooCommerce 11.2.2 może przestać działać po aktualizacji?
W określonych konfiguracjach aktualizacja może zostać przerwana przez błąd PHP związany z tłumaczeniami JSON. Nie potwierdzono jednak, że problem automatycznie powoduje całkowitą niedostępność sklepu.
Co oznacza array_merge(): Argument #1 must be of type array, null given?
Oznacza, że funkcja PHP otrzymała wartość null w miejscu, w którym oczekiwała tablicy. W analizowanym przypadku problem występuje podczas przetwarzania danych tłumaczeń WooCommerce.
Czy błąd Translations.php oznacza uszkodzenie bazy danych?
Nie. Sam błąd nie jest dowodem uszkodzenia bazy. Może jednak doprowadzić do pozostawienia blokady instalacyjnej oraz przerwania operacji aktualizacyjnych.
Czy należy usunąć wc_installing z wp_options?
Nie automatycznie. Najpierw trzeba sprawdzić, czy nie trwa instalacja lub aktualizacja. WooCommerce 11.2.2 zawiera mechanizm odzyskiwania blokad starszych niż 10 minut. Ręczna ingerencja w bazę powinna być ostatecznością, poprzedzoną analizą i kopią zapasową.
Czy wystarczy ponownie zainstalować WooCommerce?
Niekoniecznie. Jeżeli przyczyną są niezgodne pliki tłumaczeń JSON, ponowna instalacja bez ich sprawdzenia może zakończyć się takim samym błędem.
Czy zmiana PHP 8.4 na PHP 8.3 rozwiąże problem?
Nie ma potwierdzenia, że zmiana wersji PHP usuwa przyczynę błędu. Zgłoszenie wskazuje na nieprawidłową obsługę struktury danych przez WooCommerce, a nie na konkretną podatność lub niezgodność interpretera PHP.
Czy problem występuje tylko przy języku rosyjskim?
Nie wykazano takiego ograniczenia. Zgłoszenie dotyczy środowiska ru_RU, ale przyczyną jest określona struktura plików JSON. Analogiczny problem może potencjalnie wystąpić również w innych lokalizacjach.
Czy standardowe tłumaczenia WordPressa powodują ten błąd?
W zgłoszeniu opisano konkretny scenariusz związany z plikami wygenerowanymi przez WP-CLI. Nie potwierdzono, że wszystkie standardowe pakiety tłumaczeń WooCommerce prowadzą do identycznego błędu.
Podsumowanie: błąd tłumaczeń może przerwać aktualizację WooCommerce
Zgłoszenie #70716 opisuje problem w WooCommerce 11.2.2, w którym nieprawidłowa obsługa plików tłumaczeń JSON może prowadzić do PHP Fatal Error w Translations.php.
Błąd występuje, gdy mechanizm łączenia tłumaczeń oczekuje klucza locale_data[’woocommerce’], ale otrzymuje dane w innej strukturze, wygenerowanej przez WP-CLI.
Przerwanie procesu może pozostawić w bazie danych blokadę wc_installing i powodować dodatkowe komunikaty podczas kolejnych prób aktualizacji.
Nie oznacza to jednak, że każdy sklep WooCommerce 11.2.2 jest zagrożony ani że blokada instalacyjna zawsze wymaga ręcznego usunięcia.
Najważniejsze jest ustalenie pierwotnej przyczyny błędu, sprawdzenie struktury plików tłumaczeń, zweryfikowanie stanu operacji instalacyjnych i przetestowanie rozwiązania przed wdrożeniem go na produkcji.
Do czasu potwierdzenia oficjalnej poprawki szczególną ostrożność powinni zachować administratorzy sklepów wielojęzycznych korzystający z niestandardowo generowanych tłumaczeń JSON.