As variações ou os menus não são guardados: aumentar o max_input_vars
Está a editar um produto com muitas variações, ou um menu grande no WordPress, e clica em Atualizar. Não vê nenhuma mensagem de erro, mas depois de recarregar a página falta parte das suas alterações: as últimas variações têm o preço antigo, ou faltam itens na parte inferior do menu. Nesse caso, a causa é quase sempre a definição de PHP max_input_vars.
O que é max_input_vars?
Ao guardar, o seu navegador envia todos os campos do formulário de uma só vez para o servidor. Num produto variável, há muitos campos por variação: preço, stock, SKU, peso e mais. Num menu grande, cada item de menu conta um conjunto de campos. O PHP aceita apenas um determinado número de campos por pedido: é isso que é o max_input_vars. O PHP tem, por predefinição, o valor 1000. Se chegarem mais campos, o PHP descarta o resto sem qualquer aviso. O WordPress e o WooCommerce guardam então apenas o que foi recebido.
O WooCommerce mostra na área de administração 15 variações por página para limitar este problema. Com muitos atributos e campos, ainda assim pode atingir o limite.
Consultar o valor atual
- No WooCommerce: WooCommerce > Status, em PHP Max Input Vars.
- No DirectAdmin: Select PHP version, separador Options, em
max_input_vars.
Aumentar o max_input_vars na WebOké
- Inicie sessão no DirectAdmin: vá em O meu WebOké a Os meus Produtos e clique, junto ao seu pacote de alojamento, em DirectAdmin.
- Clique em Select PHP version, em Extra Programas.
- Verifique se está selecionada a versão que o seu site utiliza. As opções configuram-se por versão de PHP.
- Vá ao separador Options, clique no valor junto a
max_input_varse escolha um valor mais elevado, por exemplo3000ou5000. - A alteração é guardada de imediato e aplica-se a todos os sites do seu pacote que utilizem essa versão de PHP.
Se a versão de PHP estiver definida como native, não poderá alterar nada em Options. Nesse caso, escolha primeiro uma versão fixa. Encontra uma explicação com capturas de ecrã em Opções de PHP: upload_max_filesize, memory_limit e max_execution_time e em Alterar a versão de PHP e as definições de PHP (e o que fazer em caso de erros após uma atualização).
Prefere não procurar isto sozinho? O assistente de IA em O meu WebOké pode ajustar o max_input_vars para a versão de PHP que o seu pacote utiliza. Vê primeiro o que vai mudar e aprova a alteração você mesmo.
Verificar se está a funcionar
- Verifique em WooCommerce > Status se o novo valor está definido.
- O valor antigo continua lá? Verifique se no seu
.htaccessexiste uma regra antigaphp_value max_input_vars, ou se, em PHP Settings no DirectAdmin, foi definido um valor próprio para o seu domínio. Esses têm prioridade. Consulte PHP Settings no DirectAdmin ou Select PHP version: qual é a diferença? - Edite novamente o produto ou o menu, guarde e verifique, depois de recarregar a página, se tudo foi mantido. O que já se perdeu terá de voltar a preencher.
Saber mais
- Manual do PHP: max_input_vars (inglês)
Quer saber mais? Siga o curso gratuito Uma loja online com WooCommerce, lição 3.2 Produtos variáveis e atributos.
