How to Hide or Show Out-of-Stock Products in WooCommerce (Per-Product Control)

Many WooCommerce store owners want to hide out-of-stock products in WooCommerce while still being able to show specific out-of-stock items when needed.

Unfortunately, WooCommerce only provides a global hide out-of-stock setting. Once enabled, all out-of-stock products disappear from the shop and search results — with no way to control visibility per product.

If you’ve ever wished you could choose which out-of-stock products stay visible and which ones don’t, you’re not alone.

This article explains:

  • Why WooCommerce’s default behavior is limiting
  • When hiding out-of-stock products actually hurts your store
  • How to manage out-of-stock product visibility in WooCommerce per product

The problem with WooCommerce’s “Hide out-of-stock items” setting

WooCommerce gives you a single checkbox:

Hide out-of-stock items from the catalog


When enabled, this setting:

  • Hides all out-of-stock products from shop pages
  • Removes them from search results
  • Applies globally across the entire store

There is no per-product option.


Common problems store owners run into

❌ Important products disappear completely

Some products go out of stock temporarily:

  • Seasonal items
  • Popular bestsellers
  • Products awaiting restock

When these products vanish from the catalog, customers may think:

  • The product was discontinued
  • The store no longer carries it
  • They should buy elsewhere

❌ Customers can’t find products they already know

If a customer searches for a product name and it’s out of stock:

  • It won’t appear in WooCommerce search
  • It won’t appear in category listings
  • It becomes difficult to reach, even if the product page still exists

This is a visibility problem, not a stock problem.


❌ No clean workaround without custom code

To work around this limitation, many store owners try:

  • Custom PHP snippets
  • Theme modifications
  • Manually changing product visibility every time stock changes

These approaches are:

  • Hard to manage as the catalog grows
  • Time-consuming
  • Error-prone

When showing out-of-stock products actually makes sense

Hiding everything may look tidy, but there are many cases where showing an out-of-stock product is the better choice:

  • Customers want to bookmark or inquire
  • Products are restocked frequently
  • You want to keep SEO value from existing product pages
  • You want to display alternatives or related products
  • You prefer transparency instead of removing items completely

The real issue isn’t hiding out-of-stock products —
it’s not being able to choose which ones stay visible.


Can WooCommerce hide out-of-stock products per product?

By default, WooCommerce cannot hide or show out-of-stock products per product.

The global setting applies to all products equally.
There is no built-in way to control:

  • Which out-of-stock products appear in shop pages
  • Which appear in search results
  • Which remain completely hidden

This limitation is why many store owners search for a WooCommerce out-of-stock visibility solution.


A focused solution: per-product visibility for out-of-stock items

To solve this specific gap, I built a small utility plugin called:

Hide or Show Out-of-Stock Products for WooCommerce

The idea is simple:

Disable WooCommerce’s global “hide out-of-stock”—
Control the per-product visibility for exceptions.


What the plugin does

Forces WooCommerce’s global “Hide out of stock items” setting off so per-product control applies.

It allows you to:

  • Control out-of-stock product visibility per product
  • Choose whether an out-of-stock item appears in:
    • Shop and search results
    • Shop only
    • Search only
    • Nowhere (fully hidden)
  • Bulk manage out-of-stock products from one admin screen
  • Use WooCommerce’s native product visibility system

There are:

  • No custom product types
  • No performance overhead
  • No changes to how stock management works

Who this plugin is for

This plugin is useful if you:

  • Want per-product control without writing code
  • Manage products that frequently go out of stock
  • Care about both user experience and SEO

It is not designed to:

  • Replace inventory management
  • Add waitlists or backorders
  • Modify stock calculation logic

Its purpose is focused: visibility control only.


Why this approach works better

  • Disables the global hide setting so out-of-stock control is intentional and centralized
  • Still relies on WooCommerce’s built-in product_visibility terms (no hacks)
  • Keeps behavior predictable and easy to revert or adjust per product

You stay in control of:

  • Which out-of-stock products remain visible
  • Which are hidden from the catalog and search

Download the plugin

The plugin is available for free on WordPress.org:

👉 Download: Hide or Show Out-of-Stock Products for WooCommerce
https://wordpress.org/plugins/out-of-stock-display-manager-for-woocommerce/

If you’ve been looking for a way to hide or show out-of-stock products in WooCommerce per product, this plugin was built specifically for that purpose.


Final thoughts

WooCommerce is flexible, but some limitations only become obvious in real stores.

Per-product out-of-stock visibility is one of those gaps.

If this article helped you understand the limitation — or saved you from writing custom code — then the solution has already done its job.

Comments

Leave a Reply

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