Les variations ou les menus ne sont pas enregistrés : augmenter max_input_vars
Vous modifiez un produit comportant de nombreuses variations, ou un grand menu dans WordPress, et vous cliquez sur Mettre à jour. Vous ne voyez aucun message d'erreur, mais après le rechargement, une partie de vos modifications a disparu : les dernières variations ont conservé leur ancien prix, ou des éléments manquent en bas du menu. La cause est alors presque toujours le paramètre PHP max_input_vars.
Qu'est-ce que max_input_vars ?
Lors de l'enregistrement, votre navigateur envoie tous les champs du formulaire en une seule fois au serveur. Pour un produit variable, cela représente de nombreux champs par variation : prix, stock, SKU, poids et plus encore. Pour un grand menu, chaque élément de menu compte un certain nombre de champs. PHP n'accepte qu'un nombre défini de champs par requête : c'est max_input_vars. PHP lui-même a par défaut une valeur de 1000. Si davantage de champs arrivent, PHP ignore le reste sans avertissement. WordPress et WooCommerce n'enregistrent alors que ce qui a bien été reçu.
WooCommerce affiche dans l'administration 15 variations par page pour limiter ce phénomène. Avec de nombreux attributs et champs, vous pouvez tout de même atteindre la limite.
Consulter votre valeur actuelle
- Dans WooCommerce : WooCommerce > Statut, à la ligne PHP Max Input Vars.
- Dans DirectAdmin : Select PHP version, onglet Options, à la ligne
max_input_vars.
Augmenter max_input_vars chez WebOké
- Connectez-vous à DirectAdmin : dans Mon WebOké, allez dans Mes Produits et cliquez sur DirectAdmin au niveau de votre forfait d'hébergement.
- Cliquez sous Programmes Supplémentaires sur Select PHP version.
- Vérifiez que la version sélectionnée est bien celle utilisée par votre site. Les options se définissent par version de PHP.
- Allez dans l'onglet Options, cliquez sur la valeur en face de
max_input_varset choisissez une valeur plus élevée, par exemple3000ou5000. - La modification est enregistrée immédiatement et s'applique à tous les sites de votre forfait utilisant cette version de PHP.
Si la version de PHP est réglée sur native, vous ne pouvez rien modifier dans Options. Choisissez alors d'abord une version fixe. Des explications avec captures d'écran se trouvent dans Options PHP : upload_max_filesize, memory_limit et max_execution_time et dans Modifier la version de PHP et les paramètres PHP (et que faire en cas d'erreurs après une mise à niveau).
Vous préférez ne pas chercher vous-même ? L'assistant IA de Mon WebOké peut adapter max_input_vars pour vous, pour la version de PHP utilisée par votre forfait. Vous voyez d'abord ce qui va changer et vous validez vous-même.
Vérifier que cela fonctionne
- Consultez WooCommerce > Statut pour voir si la nouvelle valeur est bien affichée.
- L'ancienne valeur s'affiche encore ? Vérifiez si votre fichier
.htaccesscontient une ancienne lignephp_value max_input_vars, ou si une valeur propre à votre domaine a été définie dans les Paramètres PHP de DirectAdmin. Celles-ci sont prioritaires. Consultez Paramètres PHP dans DirectAdmin ou Select PHP version : quelle est la différence ? - Modifiez à nouveau le produit ou le menu, enregistrez et vérifiez après le rechargement que tout a bien été conservé. Ce qui a déjà été perdu doit être saisi de nouveau.
Pour aller plus loin
- Manuel PHP : max_input_vars (en anglais)
