By default, Relevanssi doesn’t un-include search results that are draft, pending, private, etc. This is problematic since you may not want products to be available via search.
This solution takes a product variation’s parent post status into account. If the variation’s parent in question is anything but ‘publish’ it de-indexes the product variation.
Add it to your functions.php and rebuild your index.
add_filter( 'relevanssi_do_not_index', 'relevanssi_search_do_not_index', 10, 2 );
function relevanssi_search_do_not_index( $exclude, $post_id ) {
// get post
$post = get_post( $post_id );
// exclude if post is variation and it's parent post status is not publish OR posts status is not publish
if( ( $post->post_type == 'product_variation' && get_post_status( $post->post_parent ) != 'publish' ) || $post->post_status != 'publish' ) {
$exclude = true;
}
return $exclude;
}

Leave a Reply