How to Filter WooCommerce Product Search Results by Post Statuses

The woocommerce_search_products_post_statuses hook in WooCommerce allows you to filter the post statuses that are searched when performing a product search. This can be useful if you want to limit the search to specific post statuses, or if you want to include custom post statuses in the search.

To use the woocommerce_search_products_post_statuses hook, you’ll need to add a filter to your functions.php file or a custom plugin. Here’s an example:

add_filter( 'woocommerce_search_products_post_statuses', 'wp_daily_product_search_statuses' );
function wp_daily_product_search_statuses( $post_statuses ) {
	// Add custom post status to search
	$post_statuses[] = 'my_custom_post_status';
	// Remove 'draft' post status from search
	if ( ( $key = array_search( 'draft', $post_statuses ) ) !== false ) {
		unset( $post_statuses[$key] );
	return $post_statuses;

In the example above, we’re adding a custom post status called ‘my_custom_post_status’ to the list of post statuses that are searched when performing a product search. We’re also removing the ‘draft’ post status from the search results.

You can add or remove as many post statuses as you like, depending on your specific needs. It’s worth noting that the order of the post statuses in the array determines the order in which they are searched. So, if you want to prioritize certain post statuses over others, you can arrange them accordingly.

In summary, the woocommerce_search_products_post_statuses hook is a powerful tool that allows you to customize the post statuses that are included in a product search. By adding or removing post statuses, you can fine-tune the search results to better meet your needs.

Leave a Comment

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