Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Increase PHP max_input_vars for WooCommerce (and Fix Unsaved Variations)

Learn how to check and increase PHP max_input_vars for WooCommerce, choose a sensible value, verify the active configuration, and fix truncated forms or 503 errors.
Length9 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If WooCommerce product variations, tax rates, or other large admin forms stop saving, check the active PHP limit first. In WordPress, go to WooCommerce > Status and read Server environment > max_input_vars. PHP’s documented default is 1,000 variables (PHP Group, 2026), while WooCommerce uses 3,000 as an example for larger forms—not as a universal requirement.

Raise the limit in the configuration used by the active PHP handler, reload that handler when necessary, then confirm the new effective value in WooCommerce Status. If the value will not change, or the request returns a 503 error, the host may control the setting or another security limit may be blocking the request.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What max_input_vars controls

max_input_vars is a PHP request limit. It caps how many input variables PHP accepts from one request, including fields submitted by an HTML form. PHP lists the directive as INI_PERDIR, with a documented default of 1,000 variables (PHP Group, 2026).

WooCommerce’s administration screens can submit hundreds or thousands of fields at once. A variable can be a product setting, a variation field, a tax-rate field, or another named value in the request. When a form exceeds the active limit, PHP can discard the excess variables. The page may appear to submit normally while the saved product or settings are incomplete.

This is why the symptom is often selective: basic products may save, while a product with many variations does not; a small tax table may work, while a larger import or rate form loses rows. The browser is not the authority for the effective limit—the server-side value shown by WooCommerce is.

Check the effective value in WooCommerce first

  1. Sign in to the WordPress administrator.
  2. Open WooCommerce > Status.
  3. In the Server environment section, locate max_input_vars.
  4. Write down the value before changing anything, along with the exact form that fails.

Record whether the failure affects one product, all products with variations, tax rates, or another settings screen. This gives you a before-and-after test and helps distinguish an input-variable limit from a product, permission, database, or security problem.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose a practical target value

There is no single WooCommerce value that fits every store. The correct setting is high enough for the largest form you actually submit, with headroom for additional variations or fields. WooCommerce documentation shows 3,000 as an example configuration; treat that figure as guidance for a large form, not a promise that every store needs exactly 3,000.

Use the largest real form as your baseline

Start with the screen that fails. A product with many variations generally submits substantially more fields than a simple product. If the current value is 1,000 and the form is truncated, increasing it to 3,000 provides a useful test because it follows WooCommerce’s documented example. If the form still fails, increase only after checking the actual request size and the other limits described below.

Leave reasonable headroom

Do not copy an extremely large number just because it removes the immediate error. A higher limit permits larger requests and should be chosen with the capacity and policies of the host in mind. Add enough margin for planned catalog growth, then verify that the form saves every field. If you routinely manage unusually large catalogs, ask the host what request-size and security limits apply before selecting a much higher value.

Method 1: change php.ini

php.ini is the primary server-level method when you control the PHP configuration. Add or edit the directive in the configuration file used by the PHP handler serving WordPress:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
; php.ini
max_input_vars = 3000

The number above is WooCommerce’s example. Replace it with the value appropriate for your largest form. Save the file, then reload or restart the relevant PHP service if the server stack requires it. A file edit alone does not prove that the running PHP process has adopted the change.

Confirm that you edited the active configuration

Servers can have separate PHP installations, versions, handlers, or pools. A command-line PHP configuration may not be the one used by the web server. After the reload, return to WooCommerce > Status and check Server environment > max_input_vars again. Continue only when that screen displays the intended value.

Method 2: use an .htaccess override where permitted

On hosts that allow per-directory PHP overrides, add this line to the site’s applicable .htaccess file:

php_value max_input_vars 3000

WooCommerce documents this approach for situations such as shared hosting. It works only when the web server and PHP handler permit php_value directives. Some PHP configurations, including common PHP-FPM arrangements, do not read this directive from .htaccess; others may reject it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Watch for a broken-site response

If adding the line causes an immediate server error, remove it or restore the previous file and contact the host. Do not leave a configuration directive in place when the active handler does not support it. Ask support which per-directory mechanism, if any, is allowed for the PHP version serving the site.

Configuration methods compared

Method Access required Will it work? Reload usually needed? How to verify
php.ini Server, virtual-server, or hosting-panel access Works when it is the active PHP configuration Often; reload the relevant PHP service or apply the host-panel change WooCommerce > Status > Server environment
.htaccess with php_value File access plus a host that permits overrides Only where the web server/PHP handler supports per-directory overrides Usually not a separate service restart, but the server must accept the directive WooCommerce > Status; also check for server errors
Hosting control panel Permission to edit the site’s PHP options Depends on the panel and host policy Handled by the panel or host WooCommerce > Status after applying the change
Hosting support request No server-level access needed Best option when the value is centrally enforced Performed by the host when required Ask support to confirm, then verify in WooCommerce

Apply and test the change safely

  1. Reproduce the problem. Note the product, variation set, tax-rate screen, or settings form that fails and identify which values disappear after saving.
  2. Capture the current limit. Read max_input_vars in WooCommerce > Status > Server environment.
  3. Estimate the form’s demand. Consider every submitted field, including the fields repeated for each variation or rate row. Use the failing form—not a smaller test product—as the baseline.
  4. Select a measured target. Use WooCommerce’s 3,000 example as a reasonable diagnostic increase for a large form, or choose another value that provides headroom without blindly setting an extreme limit.
  5. Change the active configuration. Edit php.ini, use an approved hosting-panel control, or add the .htaccess directive only when the host permits it.
  6. Reload the active PHP handler. Follow the host’s procedure for the PHP service serving the website. On managed hosting, ask the provider to apply or reload the setting.
  7. Verify the effective value. Reopen WooCommerce Status and confirm that the displayed value changed. If it did not, the request is still using a different configuration or a centrally enforced policy.
  8. Retry the exact save. Save the same product or form and check every variation, rate, or setting that previously disappeared.
  9. Check the result over a second save. Reopen the item, confirm the values persisted, and save again only after verifying the first result.

Why the value may not change

The wrong PHP configuration was edited

The web server may use a different PHP version or handler from the one you edited. This is common when command-line PHP and web PHP are configured separately, or when a site has multiple pools. The decisive test is the value reported by WooCommerce Status after the change. If it remains at the old number, identify the active handler with the host rather than repeatedly editing unrelated files.

The host enforces a central policy

Shared and managed servers can prevent customers from overriding request limits. A local php.ini or .htaccess edit may be ignored, rejected, or overwritten. Ask hosting support to raise max_input_vars for the PHP environment serving the site and to tell you whether a per-directory override is allowed.

The PHP service was not reloaded

Some stacks read configuration only when the PHP process starts or reloads. If the file contains the new value but WooCommerce still reports the old one, follow the provider’s reload procedure. Verify again in WooCommerce before testing the form.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Other limits that can produce similar failures

Suhosin request limits

WooCommerce identifies suhosin.post.max_vars and related request or post limits as possible constraints on older or specialized PHP installations. Raising max_input_vars alone will not help if Suhosin imposes a lower ceiling. Ask the host whether Suhosin is installed and whether its POST limits need to be reviewed.

mod_security rules

WooCommerce warns that mod_security can block an otherwise valid submission. A blocked request may produce a 503 response rather than a quietly truncated form. Rule changes normally require the hosting provider. Give support the time of the failed request, the affected administrator URL, and the fact that the failure occurs while saving a large WooCommerce form.

PHP version and handler differences

WooCommerce notes that the host controls PHP at the server level and recommends using a current supported PHP version. A PHP-version change is separate from changing max_input_vars, but it can alter which configuration file or handler is active. If the displayed value changes unexpectedly after a PHP upgrade, recheck the WooCommerce Status screen and ask the host which configuration now applies.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Diagnose truncation versus a blocked request

Observed behavior Likely direction Next action
The page saves, but later variation or rate fields are missing Input variables may have been truncated Check max_input_vars, raise it through an approved method, reload, and verify the exact form again
WooCommerce Status still shows the old value after editing a file The file is not active or the host overrides it Confirm the PHP handler and ask hosting support to apply the setting
The submission returns HTTP 503 A security module such as mod_security may be blocking the request, or an invalid override may have broken the server response Review the last configuration edit, then have the host inspect security rules and server logs
A small form saves but a large variation or rate form fails The request size is near or above a server limit Measure against the largest failing form and review related POST limits, not just the visible browser error

When to contact your hosting provider

Escalate instead of making repeated edits when any of these conditions apply:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • You cannot access the active php.ini or PHP settings in the hosting panel.
  • WooCommerce Status does not display the new value after a reload.
  • The host’s PHP handler does not support php_value in .htaccess.
  • The change produces a 503 or another server-level error.
  • Suhosin, mod_security, or another centrally managed request limit may be involved.
  • You need a substantially higher limit for a growing catalog and want to understand host capacity or policy first.

Tell support the current and desired max_input_vars values, the exact WooCommerce screen that fails, whether the request is truncated or returns 503, and the time of a recent test. Ask them to confirm which PHP handler serves the site and whether any Suhosin or mod_security rule limits the request.

Frequently overlooked details

Do not infer success from the browser

A normal-looking admin response does not establish that every submitted field reached PHP. Reopen the product or settings page and inspect the values that were previously lost. WooCommerce Status is the correct place to confirm the server’s effective directive.

Do not treat 3,000 as a mandatory WooCommerce setting

3,000 is WooCommerce’s published example for the configuration line. Your store may need less or more depending on the largest form and the number of repeated fields. Set the smallest value that reliably handles the workload with sensible growth headroom.

Do not change unrelated limits first

PHP memory, upload size, execution time, and database limits solve different classes of failures. Review them only when the observed symptom points to them. For missing fields in a large submitted form, start with max_input_vars and then investigate Suhosin or mod_security if the evidence indicates another ceiling.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Final verification checklist

  • Before: The failing form and its missing values are documented.
  • Baseline: The current value is recorded from WooCommerce > Status > Server environment > max_input_vars.
  • Change: The directive was edited in the configuration actually used by the web PHP handler, or the host applied it.
  • Reload: The relevant PHP service or hosting control-panel change was completed when required.
  • After: WooCommerce Status displays the intended effective value.
  • Functional test: The original product, variation, tax-rate, or settings form saves and retains every field.
  • Escalation: If the value is unchanged or a 503 persists, the host is checking handler policy, Suhosin, mod_security, and related request limits.

For stores that cannot edit server settings themselves, managed WooCommerce hosting that permits PHP-limit changes—or a direct request to the current host—is the practical route. The important outcome is not a particular number; it is a verified effective limit that accommodates the largest form your store actually submits.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.