This solution is purely configuration based, highly recommended to use. Use solution 2 only if this is not working for some reason. Step 1: Open up the Frontend search settings -> Custom fields panel
Step 2: Make a hidden filter, on the _stock_status custom field, with the value of “instock”:
After saving the options, the filter should be working.
I suggest using this solution if the first one is not working.
What is this, and where do I put this custom code?
add_filter( 'asp_pagepost_results', 'asp_stock_status_filter', 10, 1 );function asp_stock_status_filter( $pageposts ) {foreach ($pageposts as $k=>$v) {// Get the stock status$stock_status = get_post_meta( $v->id, '_stock_status', true);if ( empty($stock_status) || $stock_status == "instock" )continue;unset($pageposts[$k]);}return $pageposts;}