Aktualizacja PHP w WordPressie to nie to samo co aktualizacja WordPressa. Wersję interpretera zmienia hosting albo administrator serwera — WordPress jedynie zgłasza, że pracuje na zbyt starej gałęzi. W tym artykule rozdzielamy oba tematy: pokazujemy, gdzie faktycznie ustawia się PHP, jak sprawdzić obecną wersję i jak przygotować zmianę tak, żeby nie wyłączyć sklepu na kilka godzin. Część organizacyjną (kolejność działań, kopie, staging) łączymy z listą typowych błędów, które widzimy najczęściej przy migracjach z PHP 7.4. Jeśli wolisz oddać to komuś, zobacz, co obejmuje opieka WordPress Białystok: zakres i ceny.
WordPress nie ma dostępu do wersji interpretera PHP na serwerze i nie może jej zmienić. Gdy w Narzędzia → Kondycja witryny pojawia się komunikat „Twoja witryna działa na nieaktualnej wersji PHP”, to nie jest błąd WordPressa, a wyłącznie sygnał: gałąź ustawiona dla Twojego konta kończy wsparcie. Samą zmianę wykonuje hosting albo osoba administrująca serwerem.
W praktyce wersję PHP ustawia się w jednym z pięciu miejsc:
Aktualizacja WordPressa (rdzeń, wtyczki, motyw) to zupełnie inny proces. Możesz mieć WordPressa 6.7 na PHP 7.4 i strona będzie działać — do dnia, w którym hosting wyłączy starą gałąź. Przy hostingu współdzielonym za aktualizacje PHP odpowiada dostawca: ustawia wersję domyślną i wysyła komunikat o wyłączeniu starej, zwykle 30–90 dni wcześniej. Twój zakres to wybór wersji z listy i sprawdzenie, czy sklep nadal działa. Na VPS-ie lub serwerze dedykowanym odpowiedzialność przechodzi na Ciebie albo na firmę administrującą serwerem — razem z aktualizacją pakietów, konfiguracji i restartem usług. Jeśli nie chcesz tego pilnować we własnym zakresie, zobacz, co obejmuje opieka WordPress Białystok i ile kosztuje.
Konsekwencja pominięcia tematu jest jedna i twarda: gałąź po zakończeniu wsparcia nie dostaje łatek bezpieczeństwa, a publicznie znane luki w PHP są skanowane i wykorzystywane automatycznie.
Punktem startowym jest oficjalny cykl życia PHP. Poniżej stan na moment publikacji — daty się zmieniają, więc przed decyzją zweryfikuj je na php.net (php.net/supported-versions.php) i sprawdź, co domyślnie oferuje Twój hosting.
Rekomendacja praktyczna: celuj w jedną z gałęzi w aktywnym wsparciu, ale nie w najświeższą premierę. Nowa wersja PHP pojawia się w produkcji u dostawców zwykle kilka miesięcy po wydaniu, a wtyczki nadrabiają zgodność jeszcze później. Bezpieczniejszy ruch to wybór o jedną–dwie wersje wstecz od najnowszej, po audycie wtyczek. Nie przeskakuj z PHP 7.4 od razu na 8.4 na produkcji — to niepotrzebne ryzyko, bo dwie duże zmiany łamiące zgodność nakładają się na siebie.
Po stronie platformy: WordPress 6.x wspiera PHP od 7.2.24, ale sam zespół rekomenduje 7.4 lub nowszą gałąź, a bieżące wydania są testowane na PHP 8.x — aktualne wymagania znajdziesz na wordpress.org/about/requirements. WooCommerce ma własne, nieco węższe wymagania, opisane w dokumentacji WooCommerce. PrestaShop rozdziela gałęzie: 1.7 obsługuje PHP 7.x, a linia 8.x wymaga PHP 8 — dokładne zakresy dla konkretnej wersji sprawdź w dokumentacji dla deweloperów PrestaShop. Zawsze porównaj trzy rzeczy: wymagania platformy, wymagania wtyczek/modułów i to, co realnie udostępnia hosting. Jeśli któraś wtyczka deklaruje „Requires PHP: 7.4”, przy PHP 8.3 nadal musi być przetestowana — deklaracja to minimum, nie gwarancja.
| Wersja PHP | Status | Wsparcie bezpieczeństwa do | Rekomendacja |
|---|---|---|---|
| 7.4 | po EOL | 28.11.2022 | migruj jak najszybciej — brak łatek |
| 8.0 | po EOL | 26.11.2023 | migruj jak najszybciej — brak łatek |
| 8.1 | tylko poprawki bezpieczeństwa | 31.12.2025 | nie zaczynaj na tym nowych wdrożeń |
| 8.2 | tylko poprawki bezpieczeństwa | 31.12.2026 | dobry kompromis, szerokie wsparcie wtyczek |
| 8.3 | aktywne wsparcie | 31.12.2027 | sensowny cel po czystym audycie |
| 8.4 | aktywne wsparcie | 31.12.2028 | najnowsza gałąź — przetestuj na staging przed produkcją |
Audyt ma odpowiedzieć na jedno pytanie: co się zepsuje, gdy zmienimy wersję PHP. Trzy najczęstsze źródła awarii to porzucone wtyczki, stary motyw i własny kod w child theme.
Wtyczki. W pliku głównym i w readme.txt szukaj nagłówka „Requires PHP” oraz pola „Tested up to”. Uwaga: „Tested up to” dotyczy WordPressa, nie PHP — wtyczka zgodna z WP 6.7 może jednocześnie wywalać fatal error na PHP 8. Listę aktywnych wtyczek z wersjami wyciągniesz przez WP-CLI: wp plugin list --status=active --fields=name,version,update. Weryfikacja po stronie hostingu to jedno polecenie: wp --info pokaże wersję PHP, na której pracuje CLI (może różnić się od tej używanej przez php-fpm).
Porzucone wtyczki. Brak aktualizacji dłużej niż 12 miesięcy to nasza najczęstsza przyczyna awarii przy przejściu na PHP 8.x. Typowe wywołania: create_function() (usunięte w PHP 8.0), each(), money_format(), składnia indeksu stringu w nawiasach klamrowych $t{0}, przekazywanie null do parametrów nie-nullowalnych (deprecated w 8.1) oraz dynamiczne właściwości klas (deprecated w 8.2).
Własny kod. functions.php w child theme, snippety wklejone z tutoriali i kod pisany pod PHP 7.x to zwykle najtrudniejszy element, bo nikt go nie aktualizuje automatycznie.
Narzędzia. PHP Compatibility Checker przeanalizuje wtyczki i motyw pod wybrany zakres wersji. Query Monitor pokaże błędy PHP, wolne zapytania i hooki na staging. Do tego WP_DEBUG i WP_DEBUG_LOG w wp-config.php oraz log błędów php-fpm. Wynik audytu zapisz jako listę: do naprawy, do wymiany, zostaje bez zmian. Jeśli połowa wtyczek wypada z listy, policz koszt wymiany — punkt odniesienia masz w zestawieniu ile kosztuje sklep internetowy WordPress.
Zanim ruszy jakakolwiek zmiana wersji PHP, na serwerze musi istnieć punkt powrotu. Backup robimy w dwóch częściach: pliki i baza danych. Przez SSH wygląda to tak: wp db export kopia-2026-01-15.sql oraz tar -czf pliki.tar.gz public_html. Kopia musi trafić poza serwer — na dysk lokalny, do Backblaze B2, S3 albo na Google Drive. Backup trzymany na tym samym hostingu nie ratuje, gdy padnie konfiguracja PHP-FPM albo nadpiszesz .htaccess i strona przestanie odpowiadać.
Środowisko testowe stawiasz na trzy sposoby:
wp-content/uploads proces potrafi trwać godzinami i urywać się w połowie.wp db export, import na staging, podmiana adresów przez wp search-replace 'https://twojadomena.pl' 'https://staging.twojadomena.pl', potem wp cache flush i czyszczenie cache obiektowego.Trzy rzeczy, które są pomijane najczęściej:
wp cron event list, a następnie DISABLE_WP_CRON w wp-config.php — sklonowana baza potrafi przy pierwszym wejściu odpalić masowo zaległe zadania i wystrzelić serię maili.Zapisz stan wyjściowy, do którego wracasz: wersję PHP (php -v), listę rozszerzeń (php -m oraz wynik phpinfo()), wersję MySQL/MariaDB (SELECT VERSION();) i konfigurację OPcache (memory_consumption, max_accelerated_files). Bez tego punktu powrotu przy błędzie 500 zostaje zgadywanie. Jeśli nie chcesz robić tego samodzielnie, opieka WordPress Białystok: co obejmuje i ile kosztuje opisuje, co wchodzi w taki pakiet.
| Co zapisać przed zmianą | Jak sprawdzić | Po co |
|---|---|---|
| Wersja PHP | php -v, Site Health w WordPressie | Punkt powrotu, jeśli coś przestanie działać |
| Lista rozszerzeń | php -m, phpinfo() | Wykrycie brakującego rozszerzenia po zmianie wersji |
| Wersja bazy danych | SELECT VERSION(); | Zgodność z wymaganiami nowego PHP |
| Konfiguracja OPcache | phpinfo(), php -i | Wydajność i wyjaśnienie różnic w czasie odpowiedzi |
Sposób zmiany zależy od tego, jak zarządzasz serwerem. Poniżej cztery realne scenariusze.
Wariant 1: panel hostingu. Najczęstszy przypadek w małych i średnich firmach. W DirectAdmin szukaj sekcji Extra Features → Select PHP Version, w cPanel — Software → MultiPHP Manager, a limity ustawisz w MultiPHP INI Editor. Większość polskich hostingów ma własny panel z zakładką „PHP” przy domenie. Uwaga: ustawienie zwykle dotyczy konkretnej domeny lub katalogu, nie całego konta — po zmianie potwierdź w Narzędzia → Site Health albo w pliku z phpinfo(), że działa właściwa wersja.
Wariant 2: WP-CLI na stagingu. Kolejność ma znaczenie: najpierw wp plugin update --all i wp core update (plus wp core update-db) na starej wersji PHP, potem testy, dopiero na końcu zmiana PHP. Wyjątek: jeśli któraś wtyczka wymaga już nowszej gałęzi, aktualizacja na starym PHP się nie wykona — wtedy zmieniasz PHP na stagingu i szukasz konfliktów.
Wariant 3: pliki konfiguracyjne. W .htaccess działa AddHandler application/x-httpd-php83 .php (składnia bywa różna, czasem AddType), w Apache — SetHandler proxy:unix:/run/php/php8.3-fpm.sock, w php-fpm pool w /etc/php/8.3/fpm/pool.d/, na LiteSpeed — LSAPI. Główne ryzyko: hosting przy własnej aktualizacji potrafi nadpisać .htaccess. Trzymaj kopię i sprawdzaj plik po każdej zmianie po stronie dostawcy.
Wariant 4: Docker. Dla firm z własnym środowiskiem deweloperskim — obraz php:8.3-fpm w docker-compose razem z bazą, wersja zapisana w repozytorium, więc cały zespół pracuje na tym samym.
Zasada wdrożenia jest jedna: staging → testy → produkcja w oknie o niskim ruchu (np. 2:00–4:00), z zapisaną godziną zmiany i osobą, która ją wykonała.
| Wariant | Dla kogo | Gdzie się zmienia | Główne ryzyko |
|---|---|---|---|
| Panel hostingu | MŚP bez administratora serwera | DirectAdmin: Select PHP Version, cPanel: MultiPHP Manager | Zmiana dotyczy tylko jednej domeny lub katalogu |
| WP-CLI na stagingu | Sklepy z dostępem SSH i stagingiem | Terminal, polecenia wp | Zła kolejność: PHP zmienione przed aktualizacją wtyczek |
| Pliki konfiguracyjne | VPS i serwery dedykowane | .htaccess, php-fpm, LiteSpeed | Nadpisanie pliku przy aktualizacji po stronie hostingu |
| Docker | Firmy z własnym środowiskiem deweloperskim | docker-compose.yml | Rozjazd wersji między lokalnym obrazem a produkcją |
„Strona się otwiera” to nie test. Pierwsze pół godziny po zmianie PHP to konkretna lista punktów, wykonywana na produkcji zaraz po wdrożeniu.
Front i panel: zaloguj się do /wp-admin, zapisz wpis, wgraj plik do biblioteki mediów (najlepiej plik JPEG i PDF), zapisz ustawienia w Ustawienia → Bezpośrednie odnośniki, wyślij formularz kontaktowy i sprawdź, czy mail doszedł.
Ścieżka zakupowa: dodaj produkt do koszyka, przejdź checkout, wykonaj jedną transakcję testową przez bramkę w trybie produkcyjnym na kwotę 1 zł i zwróć ją — to jedyny sposób, żeby sprawdzić, czy webhook bramki zwraca poprawny status. Osobno przetestuj wybór paczkomatu InPost oraz kuriera DPD i DHL: mapy działają na JavaScript, więc problem widać od razu.
Integracje: ERP i magazyn (czy stan schodzi po zmianie statusu zamówienia), feedy Ceneo i Google Merchant, płatności cykliczne, REST API — curl https://twojadomena.pl/wp-json/wp/v2/posts, webhooki do systemów zewnętrznych.
Diagnostyka: w wp-config.php ustaw WP_DEBUG i WP_DEBUG_LOG na true, a WP_DEBUG_DISPLAY na false. Sprawdź wp-content/debug.log, error_log PHP oraz log serwera (Apache, Nginx, LiteSpeed). Po testach wyłącz debugowanie — publiczne komunikaty błędów to wyciek informacji o serwerze.
Wydajność: zmierz TTFB przed i po zmianie: curl -o /dev/null -s -w '%{time_starttransfer}\n' https://twojadomena.pl — raz z wyłączonym cache, raz z włączonym. Bez rozdzielenia tych dwóch pomiarów przypiszesz efekt cache do zmiany PHP. Kontekst metryk wydajności opisuje dokumentacja Core Web Vitals. Przy sklepie prowadzonym przez kilka osób warto wcześniej ustalić, kto odpowiada za testy — organizacja pracy przy sklepie internetowym to temat równie praktyczny jak sama migracja.
| Obszar | Co sprawdzić | Czym |
|---|---|---|
| Panel WordPress | Logowanie, zapis wpisu, upload mediów, zapis ustawień | Przeglądarka, konto administratora |
| Koszyk i płatności | Dodanie do koszyka, checkout, transakcja 1 zł i zwrot | Bramka w trybie produkcyjnym lub sandbox |
| Dostawy | Mapa paczkomatów InPost, kurier DPD, DHL | Ręczne złożenie zamówienia testowego |
| Crony i API | Zadania w tle, REST API, webhooki | wp cron event list, curl na /wp-json/ |
| Diagnostyka | Błędy PHP, logi serwera, wyciek komunikatów | WP_DEBUG_LOG, error_log, log hostingu |
| Wydajność | TTFB z cache i bez cache | curl -w '%{time_starttransfer}' |
Po przełączeniu PHP na 8.1, 8.2 albo 8.3 rzadko pada cały sklep — zwykle pada jedna wtyczka. Dlatego pierwszy ruch to nie czytanie kodu, a ustalenie, co dokładnie się wywala.
Fatal error z treścią „Call to undefined function” albo „Call to a member function on null” oznacza kod napisany pod PHP 7.x. Włącz w wp-config.php stałe WP_DEBUG na true, WP_DEBUG_LOG na true, a WP_DEBUG_DISPLAY na false — wtedy ślad leci do wp-content/debug.log, a nie na ekran klienta. W logu szukasz pełnej ścieżki pliku: nazwa katalogu zaraz pod wp-content/plugins/ to winowajca. Drugi sposób na sklep z 30 wtyczkami: zmień nazwę katalogu wp-content/plugins na plugins_off (WordPress zdjąć wszystkie moduły naraz), a potem przywracaj je partiami po 5–8 i sprawdzaj, czy błąd wraca.
error_log na poziomie hostingu (log WordPressa bywa pusty, jeśli błąd łapie FPM), sprawdź memory_limit (256M to dziś minimum przy Elementorze i WooCommerce) oraz max_execution_time. Część białych ekranów to nie błąd PHP, a stary handler w panelu hostingu./wp-json/ zwraca 500, a edytor nie chce się załadować, to prawie zawsze stara wtyczka na PHP 8.x. Nazwę widać w logu; wyłącz ją i sprawdź, czy endpoint wraca.| Objaw | Najczęstsza przyczyna | Pierwszy ruch |
|---|---|---|
| Fatal error: undefined function / member function on null | Wtyczka lub motyw na funkcjach usuniętych w PHP 8 | WP_DEBUG_LOG, odczytaj ścieżkę z debug.log, zdjęcie całego katalogu plugins i włączanie partiami |
| Biały ekran, HTTP 500 bez treści | Wyczerpany memory_limit, błąd handlera PHP, pusty log WordPressa | error_log hostingu, memory_limit do 256M, display_errors=Off i log_errors=On |
| Setki Deprecated / Warning | Kod na przestarzałych funkcjach, właściwości dynamiczne | Zbierz unikalne komunikaty, sprawdź czy dotyczą ścieżki koszyk–płatność–zamówienie |
| REST API 500, edytor bloku nie startuje | Stara wtyczka psuje endpoint /wp-json/ | Test /wp-json/, wyłączenie wtyczki wskazanej w logu, ponowny test edytora |
| Koszyk lub płatność liczą źle, bez błędu w logu | Cicha zmiana zachowania funkcji między gałęziami PHP | Testowe zamówienie od zera plus log bramki płatniczej i PHP z tego samego okna czasowego |
Największy zysk z nowszej gałęzi PHP nie siedzi w samych pętlach, tylko w OPcache. Skompilowany kod leży w pamięci zamiast być kompilowany przy każdym żądaniu: opcache.enable=1, opcache.memory_consumption=256, opcache.max_accelerated_files=20000. Uwaga na pułapkę — jeśli max_accelerated_files zostanie za nisko, cache się przesypuje i strona bywa wolniejsza niż przed migracją. JIT (opcache.jit=1255) pomaga w kodzie liczącym, ale sklep najczęściej czeka na MySQL. Przy 40 zapytaniach do bazy na kategorię różnica między PHP 7.4 a 8.2 w TTFB bywa w granicach szumu — dlatego najpierw sprawdź log wolnych zapytań, dopiero potem chwal się benchmarkiem.
Bezpieczeństwo to nie straszak, a kwestia harmonogramu: PHP 7.4 nie dostaje poprawek bezpieczeństwa od końca 2022 roku, więc podatność znaleziona w interpreterze zostaje otwarta na zawsze. Do tego konfiguracja: expose_php=Off (nie zdradzaj wersji w nagłówkach), display_errors=Off, log_errors=On.
SEO odczujesz tylko wtedy, gdy migracja była nieudana — błędy 500 i wolne odpowiedzi serwera trafiają do robotów jak każdy inny request. Po zmianie wejdź w Search Console: raport „Indeksowanie stron” (sekcja Błędy serwera 5xx) oraz statystyki pobierania. Efekt oceniaj po 2–4 tygodniach, nie po dwóch dniach. O tym, jak przekłada się to na budżet wdrożenia i utrzymania, piszemy w tekście o tym, ile kosztuje sklep internetowy WordPress, a jeśli chcesz mieć to pilnowane po starcie — sprawdź zakres stałej opieki WordPress i SLA. Szybkość ładowania jako sygnał jakości opisuje też dokumentacja Google o Core Web Vitals.
| Obszar | Co realnie się zmienia | Czym to zmierzyć |
|---|---|---|
| Wydajność | Lepszy OPcache, niżej koszt operacji na stringach i tablicach, JIT dla zadań CPU | TTFB i czas zapytań (Query Monitor, slow query log), nie sam wynik Lighthouse |
| Bezpieczeństwo | Łatki dla aktywnej gałęzi; gałąź po EOL nie dostaje ich wcale | phpinfo() vs harmonogram wsparcia PHP, expose_php=Off, display_errors=Off |
| SEO | Mniej 5xx i stabilny czas odpowiedzi = spokojniejsze indeksowanie | GSC: raport stron, błędy 5xx, statystyki pobierania, ocena po 2–4 tygodniach |
Traktowanie aktualizacji WordPressa jako aktualizacji PHP. Klikasz "Aktualizuj" w kokpicie, wersja PHP się nie zmienia i pojawia się wrażenie, że coś nie działa.
Jak wykryć: Porównaj wersję z Narzędzia → Zdrowie witryny (zakładka Informacje → Serwer) przed i po aktualizacji rdzenia. Jeśli liczba jest ta sama, PHP nie zostało ruszone.
Jak naprawić: Zmień wersję tam, gdzie faktycznie jest ustawiona: w panelu hostingu (cPanel, DirectAdmin, CloudPanel), w .htaccess, w konfiguracji LiteSpeed/nginx-php-fpm albo w obrazie Docker. WordPress nie ma do tego dostępu.
Przełączanie wersji PHP bezpośrednio na produkcji, bez kopii i bez środowiska testowego.
Jak wykryć: Zadaj sobie pytanie: czy mam klon strony na subdomenie i backup z ostatnich 24 godzin poza serwerem? Jeśli nie — nie masz planu powrotu.
Jak naprawić: Najpierw staging, potem produkcja. Kopia musi zawierać pliki i bazę i leżeć poza serwerem, na którym stoi strona.
Trzymanie PHP 7.4 "bo działa i nie chcę ryzykować".
Jak wykryć: Zdrowie witryny pokazuje ostrzeżenie o przestarzałej wersji PHP, a w panelu hostingu widzisz 7.4 lub starszą.
Jak naprawić: Zrób audyt wtyczek i motywu, wypisz moduły do naprawy, a potem zaplanuj migrację na wersję w aktywnym wsparciu. Odkładanie tego zwiększa ryzyko, nie zmniejsza.
Założenie, że hosting sam zaktualizuje PHP w wygodnym dla Ciebie momencie.
Jak wykryć: Brak jakiejkolwiek informacji od dostawcy o polityce wersji PHP, brak zapisanej daty migracji.
Jak naprawić: Napisz do supportu i zapytaj wprost: jakie wersje PHP są dostępne, do kiedy wspieracie obecną i czy planujecie wymuszoną migrację. Poproś o odpowiedź na piśmie.
Pomijanie wtyczek porzuconych, które nie były aktualizowane od ponad roku.
Jak wykryć: Sprawdź datę ostatniej aktualizacji wtyczki w repozytorium i na liście wtyczek. Brak wydania od 12 miesięcy to czerwona flaga.
Jak naprawić: Wypisz takie wtyczki i zaplanuj wymianę lub zastąpienie funkcji własnym, prostym kodem. To najczęstsze źródło błędów krytycznych przy przejściu na PHP 8.x.
Backup trzymany na tym samym hostingu, na którym stoi strona.
Jak wykryć: Sprawdź w panelu, gdzie fizycznie leżą pliki kopii. Jeśli na tym samym serwerze lub tym samym koncie — kopia nie chroni przed błędem konfiguracji.
Jak naprawić: Pobierz kopię na dysk lokalny, do chmury albo na inny hosting. Dopiero wtedy zmieniaj cokolwiek w konfiguracji PHP.
Aktualizacja PHP w WordPressie to zadanie hostingu lub administratora serwera, nie samego WordPressa — dlatego tak często bywa pomijana. Kolejność, która się sprawdza, jest zawsze taka sama: audyt wtyczek i własnego kodu, pełna kopia poza serwerem, staging zgodny wersją z produkcją, testy, dopiero potem zmiana na produkcji i obserwacja logów. Największe ryzyko nie leży w samej nowej wersji PHP, tylko w porzuconych wtyczkach i kodzie pisanym pod PHP 7.x. Im wcześniej zrobisz listę modułów do naprawy, tym mniej nerwów, gdy hosting ogłosi wymuszoną migrację.
Nie. WordPress nie ma uprawnień do zmiany wersji interpretera na serwerze — może tylko pokazać ostrzeżenie, że pracuje na przestarzałej gałęzi. Wersję PHP ustawia hosting w panelu (cPanel, DirectAdmin, CloudPanel), wpis w .htaccess, konfiguracja LiteSpeed lub nginx-php-fpm, a na Dockerze — obraz kontenera. Jeśli nie masz dostępu do żadnego z tych miejsc, musisz napisać do dostawcy hostingu.
Najszybciej w WordPressie: Narzędzia → Zdrowie witryny → Informacje → Serwer. Alternatywnie panel hostingu, plik phpinfo() na stagingu albo polecenie php -m przez SSH. Warto zapisać wynik razem z datą — przy rozmowie z hostingiem lub wykonawcą to najprostszy dowód stanu wyjściowego.
Tak, jeśli wtyczka, motyw lub własny kod odwołują się do zachowań usuniętych w PHP 8.x — np. dynamicznych właściwości albo niejawnych konwersji. Dlatego zmiana wersji PHP to projekt, a nie kliknięcie jednego przycisku: audyt, kopia poza serwerem, staging, testy, dopiero potem produkcja.
Celuj w wersję w fazie aktywnego wsparcia, ale nie w świeżo wydaną gałąź — najpierw sprawdź deklarowane wsparcie w dokumentacji platformy i wtyczek. Dla WooCommerce punktem wyjścia są wymagania opisane w dokumentacji WooCommerce, dla PrestaShop — w dokumentacji deweloperskiej PrestaShop. Każde nowe wydanie platformy podnosi te wymagania, więc traktuj to jako punkt startowy, nie stałą odpowiedź.
Na hostingu współdzielonym robi to dostawca — Ty wybierasz tylko wersję z dostępnej listy i nie masz wpływu na daty. Na VPS-ie z własną administracją odpowiadasz Ty albo Twój administrator: to Ty decydujesz o konfiguracji puli PHP-FPM, rozszerzeniach i OPcache. W praktyce większość awarii przy migracji wynika z tego, że nikt nie ustalił, kto jest po której stronie.
Tak i coraz częściej to robią. Po zakończeniu wsparcia danej gałęzi nie dostajesz już łatek bezpieczeństwa, więc dostawcy masowo migrują konta na nowszą wersję, żeby nie trzymać podatnego interpretera. Jeśli nie przygotujesz strony wcześniej, zmiana przyjdzie w terminie narzuconym przez hosting — razem z błędami, których nie zdążysz naprawić.
To zależy od liczby wtyczek i ilości własnego kodu. Prostą stronę z kilkoma popularnymi wtyczkami da się sprawdzić w ciągu jednego dnia pracy. Sklep z kilkudziesięcioma rozszerzeniami i modyfikacjami w motywie to zwykle kilka dni, licząc audyt, poprawki i testy na stagingu. Terminu nie da się uczciwie podać bez wcześniejszego audytu.
Jeśli chcesz wiedzieć, ile pracy wymaga Twoja instalacja, zacznijmy od audytu — bez zobowiązań. Opisz, na jakiej wersji PHP stoi strona i ile masz wtyczek, a wrócimy z konkretami.