Warianty lub menu nie są zapisywane: zwiększenie max_input_vars
Edytują Państwo produkt z wieloma wariacjami lub duże menu w WordPressie i klikają Państwo Aktualizuj. Nie pojawia się żaden komunikat o błędzie, ale po ponownym załadowaniu części zmian brakuje: ostatnie wariacje mają starą cenę, a na dole menu brakuje pozycji. W takim przypadku przyczyną jest niemal zawsze ustawienie PHP max_input_vars.
Czym jest max_input_vars?
Podczas zapisywania przeglądarka wysyła wszystkie pola formularza do serwera jednocześnie. W przypadku produktu z wariacjami jest to wiele pól na każdą wariację: cena, stan magazynowy, SKU, waga i inne. W przypadku dużego menu każda pozycja menu zawiera pewną liczbę pól. PHP przyjmuje w jednym żądaniu tylko określoną liczbę pól: to właśnie max_input_vars. Domyślna wartość w PHP to 1000. Jeśli pól jest więcej, PHP pomija resztę bez żadnego komunikatu. WordPress i WooCommerce zapisują wtedy tylko to, co faktycznie dotarło.
WooCommerce wyświetla w panelu administracyjnym 15 wariacji na stronę, aby to ograniczyć. Przy dużej liczbie atrybutów i pól mimo to można osiągnąć ten limit.
Sprawdzanie bieżącej wartości
- W WooCommerce: WooCommerce > Status, przy PHP Max Input Vars.
- W DirectAdmin: Select PHP version, zakładka Options, przy
max_input_vars.
Zwiększanie max_input_vars w WebOké
- Proszę zalogować się do DirectAdmin: w Moje WebOké proszę przejść do Moje Produkty i kliknąć przy swoim pakiecie hostingowym na DirectAdmin.
- Proszę kliknąć w sekcji Extra Programy na Select PHP version.
- Proszę sprawdzić, czy wybrana jest wersja, której używa Państwa strona. Opcje ustawia się osobno dla każdej wersji PHP.
- Proszę przejść do zakładki Options, kliknąć na wartość przy
max_input_varsi wybrać wyższą wartość, na przykład3000lub5000. - Zmiana zostaje zapisana od razu i obowiązuje dla wszystkich stron w Państwa pakiecie korzystających z tej wersji PHP.
Jeśli wersja PHP jest ustawiona na native, nie można nic zmienić w sekcji Options. Proszę w takim przypadku najpierw wybrać konkretną wersję. Wyjaśnienie ze zrzutami ekranu znajduje się w artykule Opcje PHP: upload_max_filesize, memory_limit i max_execution_time oraz w Zmiana wersji PHP i ustawień PHP (i co zrobić w przypadku błędów po aktualizacji).
Wolą Państwo nie szukać tego samodzielnie? Asystent AI w Moje WebOké może dostosować max_input_vars dla wersji PHP, z której korzysta Państwa pakiet. Najpierw zobaczą Państwo, co się zmieni, i sami to Państwo zatwierdzą.
Sprawdzanie, czy to działa
- Proszę sprawdzić w WooCommerce > Status, czy widoczna jest nowa wartość.
- Nadal widoczna jest stara wartość? Proszę sprawdzić, czy w pliku
.htaccessznajduje się stara regułaphp_value max_input_varslub czy w PHP Instellingen w DirectAdmin ustawiona jest osobna wartość dla Państwa domeny. Mają one pierwszeństwo. Proszę zobaczyć PHP Instellingen w DirectAdmin czy Select PHP version: jaka jest różnica? - Proszę ponownie edytować produkt lub menu, zapisać i po ponownym załadowaniu sprawdzić, czy wszystko zostało zachowane. To, co już zostało utracone, trzeba uzupełnić ponownie.
Więcej informacji
- Dokumentacja PHP: max_input_vars (w języku angielskim)
