I thought I’d seen every way a checkout could break, and then the 10.5 release cycle came along. Variable products across thousands of stores stopped working, leaving merchants with a dead button and no sales. If your product pages are showing a disabled “Add to Cart” button, the WooCommerce 10.5.2 update is the fix.
We looked at the initial break in version 10.5.1 already, and that fix turned out not to be surgical enough. This dot release is a full retreat. It reverts the logic that tried to be clever about script loading states.
What the WooCommerce 10.5.2 update changes
WooCommerce 10.5 added a guard meant to stop shoppers clicking “Add to Cart” before the variation scripts had initialized. The button shipped disabled and only switched on once the wc-add-to-cart-variation script reported for duty. On any store that dequeued the standard scripts, or handled product options with its own front-end logic, that guard turned into a race condition.
So if your theme or a third-party plugin changed how add-to-cart-variation.js loads, the button stayed disabled forever. WooCommerce 10.5.2 reverts pull request #63262 and restores the older, more permissive behavior.
What actually regressed
The bug came from assuming everyone runs the default stack. If you rebuilt your product page to load scripts selectively, you probably got hit. The logic behind it looked roughly like this:
// The logic that caused the bug (Simplified Concept)
jQuery( '.variations_form' ).on( 'check_variations', function() {
// If this event never fired because of a custom script conflict,
// the button remained in a 'disabled' state.
$( '.single_add_to_cart_button' ).removeClass( 'disabled' );
});
With those changes reverted, the button keeps working even when your variation scripts are customized or load late. Test it before you push to production anyway; there are decent testing tools for exactly this.
Updating safely with WP-CLI
If you manage more than a couple of sites, don’t click Update in the dashboard and hope. Run the update through WP-CLI and clear your transients right after, so stale variation data doesn’t send you chasing a bug that is already gone.
# Update WooCommerce to the latest stable version
wp plugin update woocommerce --version=10.5.2
# Clear WooCommerce Transients to ensure variation logic is fresh
wp eval 'wc_delete_product_transients();'
# Flush object cache if you are using Redis or Memcached
wp cache flush
If this WooCommerce 10.5.2 update is eating your dev hours, I can take it off your plate. I have been wrestling with WordPress since the 4.x days.
What to check after updating
Disabling a button to safeguard the UI backfires fast in an ecosystem as modular as WordPress. If you have modified your variable.php template, or you run a variation swatches plugin, open a product page as soon as the update lands. The full release notes are on the WooCommerce developer blog, and the changes are tagged in the official GitHub repository.