Varianty nebo nabídky se neukládají: zvyšte max_input_vars
Upravujete produkt s mnoha variantami nebo rozsáhlé menu ve WordPressu a kliknete na Aktualizovat. Nezobrazí se žádná chybová hláška, ale po znovunačtení část Vašich změn chybí: poslední varianty mají svou starou cenu, nebo na konci menu chybí položky. Příčinou je pak téměř vždy nastavení PHP max_input_vars.
Co je max_input_vars?
Při ukládání odešle Váš prohlížeč všechna pole formuláře na server najednou. U variabilního produktu je to pro každou variantu mnoho polí: cena, skladové zásoby, SKU, hmotnost a další. U rozsáhlého menu obsahuje každá položka menu určitý počet polí. PHP přijme na jeden požadavek jen určitý počet polí: to je max_input_vars. Samotné PHP má ve výchozím nastavení hodnotu 1000. Pokud přijde více polí, PHP zbytek bez upozornění vynechá. WordPress a WooCommerce pak uloží pouze to, co skutečně dorazilo.
WooCommerce zobrazuje ve správě 15 variant na stránku, aby tomu předešel. Při velkém množství atributů a polí můžete limit přesto dosáhnout.
Zobrazení aktuální hodnoty
- Ve WooCommerce: WooCommerce > Status, u položky PHP Max Input Vars.
- V DirectAdminu: Select PHP version, záložka Options, u
max_input_vars.
Zvýšení max_input_vars u WebOké
- Přihlaste se do DirectAdminu: v Můj WebOké přejděte na Moje produkty a u Vašeho hostingového balíčku klikněte na DirectAdmin.
- V sekci Extra Features klikněte na Select PHP version.
- Zkontrolujte, že je vybraná verze, kterou Váš web používá. Možnosti nastavujete pro každou verzi PHP zvlášť.
- Přejděte na záložku Options, klikněte na hodnotu u
max_input_varsa zvolte vyšší hodnotu, například3000nebo5000. - Změna se uloží okamžitě a platí pro všechny weby ve Vašem balíčku s danou verzí PHP.
Pokud je verze PHP nastavena na native, nelze v Options nic upravit. Nejprve tedy zvolte pevnou verzi. Vysvětlení se screenshoty najdete v Možnosti PHP: upload_max_filesize, memory_limit a max_execution_time a v Změna verze PHP a nastavení PHP (a co dělat při chybách po upgradu).
Nechcete to hledat sami? AI asistent v Můj WebOké může upravit max_input_vars pro verzi PHP, kterou Váš balíček používá. Nejprve uvidíte, co se změní, a sami to schválíte.
Ověření, že to funguje
- Zkontrolujte u WooCommerce > Status, zda je uvedená nová hodnota.
- Je tam stále stará hodnota? Zkontrolujte, zda se ve Vašem souboru
.htaccessnenachází starý řádekphp_value max_input_vars, nebo zda není v PHP Settings v DirectAdminu nastavena vlastní hodnota pro Vaši doménu. Ty mají přednost. Viz PHP Settings v DirectAdminu nebo Select PHP version: jaký je rozdíl? - Upravte produkt nebo menu znovu, uložte a po znovunačtení zkontrolujte, zda je vše zachováno. Co se již ztratilo, musíte vyplnit znovu.
Další čtení
- PHP manuál: max_input_vars (Anglicky)
