Product table search box
Search box above the table
By default, WooCommerce Product Tables are displayed with a search box above the table (top-right). This allows your users to instantly filter the table to products with a specific keyword or search term. The search is instant and uses AJAX.
In this example, the user has typed the term "t-shirt" in the search box, which has filtered the table to the 4 products which match that term:
How does the search work?
The logic of the search box works differently depending on whether or not you are using the lazy load option:
- Lazy load disabled (the default) The search looks at the data in all the columns of the table. Depending on your columns, users can search by price, stock, etc.
- Lazy load enabled The search looks at the product name, the full description, and the SKU field - regardless of whether these are present as columns in the table.
The search is exact match, so it looks for results that match the keyword that the customer has entered. It is not case sensitive.
If you require more advanced search logic, or would like to control what information is searchable, then you can use the SearchWP plugin to power the search box.
Search term option
You can choose to filter the products in the table when it is first displayed. To do this, add the
search_term option to your shortcode. E.g.
There are a couple of notes and caveats with this option:
- When using lazy load, the
search_termoption will only search the product name and description - the other columns will not be searched.
- The search is case insensitive.
- As with the main WordPress search, the search is done by keyword, not individual words. So if you use
search_term="product1", then it will match products with the name "product1", "product12", "Product12 - Large", etc.
Can I load a pre-filtered table and then allow customers to expand the selection to view all products?
Some people like to use the
search_term option to create a pre-filtered table, while giving their customers the option to remove the search term and view a wider selection of products that don't match this keyword.
This is possible if you are using the lazy load option in WooCommerce Product Table. Use the search term option to filter the table by a specific keyword, as described above. Your users can then delete the keyword from the search box. The table will re-load with all possible products, including those that don't match that keyword.
Please note that this will not work if lazy load is disabled.
How to hide or move the search box
WooCommerce Product Table also contains options which you can use to hide or reposition the search box.
How to add a standalone product search box
WooCommerce Product Table only adds a search box above the product table. This means that customers can only search the table after the products have already loaded.
If you prefer, then you can use the Product Search that comes with WooCommerce itself and display the results in a table. This is how to do it:
- On the WooCommerce Product Table settings page, tick the 'Shop integration' option called 'Product search results'. This will enable the table view on your product search results pages.
- Add the 'Product Search' widget or Gutenberg block anywhere on your site, e.g. the homepage or a sidebar.
Customers will enter a keyword in the search box, and the results will appear in the product table layout.