WooCommerce Add to Cart Button Missing on Product Pages
Find out why a WooCommerce Add to Cart button is missing on a product page, from price and stock settings to variations, theme templates, and scripts.
Last updated:
Reviewed for accuracy by Jesse Nickles
Check what is missing
Open the affected product page in a private browser window, signed out of WP Admin. This guide covers individual product pages; buttons on shop and category grids can behave differently.
| What you see | Check first |
|---|---|
| No purchase button | Product type, price, stock status, and the page template |
| Button disabled | Stock status, required variations, and whether a purchasable option is selected |
| Button visible but unresponsive | JavaScript errors and plugin conflicts |
Do not force a disabled button to appear enabled with CSS or JavaScript before checking whether WooCommerce considers the product purchasable.
Check price, stock, and product type
- In WP Admin, go to Products → All Products and edit the affected product.
- Confirm its status is Published, then check the type at the top of Product data.
- For a Simple product, open General and verify the regular price is filled in. A free product can use
0; an empty price is different. - Open Inventory and check whether the product is in stock or explicitly allows backorders. Do not enable backorders merely to make the button appear.
- Click Update and retest the published product page while signed out.
External/Affiliate products can link to another seller instead of using the normal Add to Cart button. Grouped products also have different purchase controls. A catalog-mode or quote-request extension may intentionally hide buying controls. WooCommerce's product editor settings explain the core product types and purchase fields.
Check variable-product options
For a Variable product, shoppers must select all required attributes before adding a variation to the cart. If the button remains disabled or no valid option is available:
- Edit the product and open Product data → Attributes. Confirm the intended options are configured for variations.
- Open Variations and make sure the needed combinations exist, are enabled, have prices, and are in stock or allow backorders.
- Save the changes, then select a valid combination on the product page and test the button again.
A disabled button before a valid selection is not necessarily a theme bug. If it stays disabled after choosing an available, priced variation, investigate the product's scripts and customizations. See WooCommerce's variable product documentation.
Check product templates and theme changes
If a purchasable product has no button, inspect how the theme renders the product page. Classic WooCommerce layouts use PHP templates and hooks; a theme, page builder, custom CSS, or extension may hide or remove the purchase form. If WooCommerce → Status → System status → Templates reports outdated overrides, follow our outdated WooCommerce templates guide rather than deleting files blindly.
Block themes use a Single Product template that can contain an Add to Cart + Options (Beta) block. Check the assigned product template in the Site Editor for the appropriate purchase controls; editing PHP overrides is not the same as editing a block template.
HoverCraft uses a classic WooCommerce product layout and styles its quantity, variation, and Add to Cart controls. Its WooCommerce Product Pages documentation explains the expected disabled state when a selection is incomplete or unavailable. WooCommerce still determines whether the product can be purchased.
Test scripts and isolate conflicts
If you recently changed the product or theme, clear relevant browser, page, CDN, and CSS/JavaScript optimization caches, then reload. If the controls are present but still unresponsive, open the browser's developer tools, select Console, and repeat the failed action. Note errors related to variation scripts, missing assets, or plugins. WooCommerce's JavaScript troubleshooting guide explains the checks.
For a possible theme or plugin conflict, back up the store and test on staging. Do not switch themes or disable checkout-related extensions during live sales. Follow WooCommerce's official conflict-testing procedure:
- Test the same product with a default WordPress theme or Storefront. If its purchase controls return, investigate the original theme or its customizations.
- If the issue persists, temporarily deactivate unrelated plugins on staging while keeping WooCommerce and any extension needed to reproduce the issue active. Restore plugins one at a time to identify a conflict.
- Repeat the test on desktop and mobile in a signed-out window. Confirm the product actually enters the cart and its quantity is correct.