Fixing WooCommerce Products with Broken Update Buttons

One of my clients recently had trouble updating the products in their WooCommerce store. They weren’t able to save any of the changes they were making.

The Update/Publish button on almost all of their products was unresponsive. You could click on it until your mouse broke and nothing would work.

This was happening for all product types: simple, variable, etc.

I tried disabling plugins and doing all of the basic things people tell you to attempt when a plugin is broken. Nothing worked.

It’s Not Your Fault

It turns out the reason the Update/Publish button becomes inactive is due to a form validation issue with WooCommerce. A JavaScript error having to do with the Download limit and Download expiry fields is preventing form validation from being completed on the product.

You might say to yourself, like I did, that your product doesn’t use those fields. Well, if you change your product’s data type to Simple product and click on the Downloadable checkbox you’ll see the following:

WooCommerce Downloadable Product Fields

The Solution

The way to fix the broken form validation is to delete the “-1” values that have been assigned to Download limit and Download expiry. After you clear out those values, make sure the Downloadable checkbox is still checked and then save the product.

Follow those steps even if your product’s data type is not supposed to be Simple product. Your settings for other types (like variable product) will still be saved through this process and none of your data will be lost.

After your product saves just uncheck the Downloadable box, set the Product Data type to whatever it was before and save again. From now on the product’s saving problem has been fixed.

Rinse and repeat for all of your other WooCommerce products with broken buttons and you’ll be good to go.

How Does This Happen?

WooCommerce is a complicated beast of a plugin and I was never able to figure out why this problem came about. The best guess I could come up with was a version rollback I had to execute as a result of some unrelated problems after upgrading to version 3.0.