Sign inBlogSupportContact
WooCommerce

Filter WooCommerce products by anything, from the admin

Out of stock, no featured image, priced above $100, zero sales in 90 days. Find them. Act on them. From the navigator or inside a macro.

5 min read May 2026 filter product

You have 800 products. You need 12 of them.

Which products have no featured image? Which are priced above $100 but haven't sold in three months? Which are out of stock in the "Electronics" category? The WordPress Products admin list lets you filter by one attribute at a time, at most. Combining criteria means exporting to CSV and filtering in Excel.

For an automation workflow — "email every out-of-stock supplier", "discount slow-moving inventory", "hide products without images" — you need a programmatic way to query products. That usually means writing a custom WP_Query.

What most people do instead

Export to CSV, filter in ExcelManual, one-time, can't plug into any automation. By the time you filter, stock levels changed.
Write a custom WP_QueryRequires PHP skills and developer access. One-off scripts get lost. Not something a shop manager can run.
Install a "product management" pluginHeavyweight UI bolted onto WooCommerce. Another subscription, another admin page.

A better way: one command, many filters

Open the TrueCommander navigator. Type filter product with whatever criteria you need. Combine filters — price, stock, category, image status, sales performance — and the command returns matching products with their details.

TrueCommander
Filter product
14 products match
14
Matches
$4,230
Tied value
3
Filters used
Logitech MX Master 3out of stock
Anker PowerCore 20000out of stock
Sony WH-1000XM5out of stock

Real power comes inside macros. Filter products, then loop over each match — email the supplier, apply a discount, update stock status, generate a PDF report. The filter command is the data-fetching half; macros are the action half.

How it works

The command builds a WP_Query with WooCommerce meta queries based on your parameters, then returns matching products with full details (title, SKU, price, stock, featured image, category, sales count). Default limit is 200 products. Pass -limit=-1 for unbounded results.

1
Pick your filtersPrice range, stock level, category, tag, image status, sales count, last modified
2
Combine as many as you needFilters AND together. "Out of stock AND in Electronics AND priced over $50" narrows fast.
3
Pipe results into a macroEach matching product becomes a chain result the next step can iterate over with for_each.
ParameterValue
-price_min / -price_maxPrice range (e.g., -price_min=100 -price_max=500)
-stockin, out, backorder, or a specific quantity threshold
-categoryCategory slug (e.g., -category=electronics)
-no_imagetrue to find products missing featured images
-sales_min / -sales_maxSales count threshold
-limitDefault 200. Use -1 for unlimited.
Can be used in

Real example

Monday morning: you want a report of every product that's been out of stock for 7+ days. You open the navigator and run filter product -stock=out. The result is 23 products.

You chain this into a macro: Filter out-of-stock products → For each, look up supplier contact → Generate a PDF restock request → Email it to the supplier. Every Monday at 9am, the Cron Schedules module runs the macro. Twenty-three emails go out with zero manual work.

Later you add another macro: Filter products with zero sales in 60 days → For each, apply a 20% discount tag. Slow-moving inventory starts clearing itself.

Goes further with TrueCommander

Ready?

Query your catalog like a database.

This is one of 91 commands. All included with every license.

Cookies. The short version.

Essential cookies keep the cart and theme working. Analytics only fire if you say yes. Read our policy.