2026.08.24 – version 2.3.22
* Fix: Empty wishlists were being created for requests that could not add anything. On a variable product, following the add-to-wishlist link without choosing options created the list first and only then discovered there was nothing to put in it, leaving it behind – so search engine crawlers, which follow that link, produced one empty temporary list per visit. One store accumulated 11,000 of them. The product is now resolved and checked before any list is created, so a request that cannot add anything leaves nothing behind. Existing empty lists are not removed by this update; they can be deleted safely.
* Fix: Choosing a variation through the add-to-wishlist link failed with “Please choose product options” even when the options were named in the URL. The variation lookup read only posted data, while the link is a normal link and carries its attributes in the query string. It now reads both, matching the validation immediately after it, which always did.
2026.08.22 – version 2.3.21
* Fix: On a variable product, clicking “Add to wishlist” before selecting a variation threw a JavaScript error (TypeError: $form.find is not a function) rather than doing nothing. The disabled-state guard returned false, which stops the click bubbling past the body element but not the second click handler delegated on that same element; that handler then ran before the add-to-cart form had been resolved. Themes that keep the control hidden until a variation is chosen never exposed this – it surfaces on layouts that render the control visible from page load, such as Divi Theme Builder product templates.
* Fix: On a variable product the add-to-wishlist control gave no sign it was inactive until a variation was chosen – it kept full opacity and a pointer cursor, so clicking it appeared to do nothing. It now dims and shows a not-allowed cursor, matching WooCommerce’s own disabled add-to-cart button. Only the link version of the control was affected; the button version already inherited this from WooCommerce.
* Tweak: Bumped the asset cache-busting version, which had been left at 2.3.9. Front-end script and style changes since then could be served stale from browser and page caches.