Вы должны получить категории продуктов для продукта, используя get_terms, выбрасывая их в массив и проверяя, содержит ли массив вашу конкретную категорию.
По сути, это будет выглядеть так:
add_action( 'woocommerce_after_shop_loop_item_title', 'output_product_excerpt', 20 );
function output_product_excerpt() {
global $post;
//get the individual products' categories and put them in an array
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) {
$product_categories[] = $term->term_id;
};
//check if the array contains your specific $category_id that you are targeting
if ( is_shop() && in_array( $category_id, $product_categories )) {
echo '<div class="my-excerpt">'.wp_trim_words($post->post_excerpt,10).'</div>';
}
}