First of all you need the term id of hydro term, you can retrive it using get_term_by
$hydro = get_term_by('slug', 'hydro', 'product_cat');
After that, you can use the term id as 'parent'
argument for get_terms
$hydro_children = get_terms( 'product_cat', array( 'parent' => $hydro->term_id ) );
Now you can display a list of this children:
if ( ! empty($hydro_children) ) {
echo '<ul>';
foreach( $hydro_children as $hydro_child ) {
echo '<li><a href="' . get_term_link($hydro_child, 'product_cat') . '">';
echo $hydro_child->name . '</a></li>';
}
echo '</ul>';
}
And/or run a post query for posts with $hydro_children
terms attached, and if you want you can skip posts having only children of $hydro_children
terms (grand children of ‘hydro’) thanks to 'include_children'
argument of tax query:
$args = array(
'post_type' => 'product', // I guess
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => wp_list_pluck($hydro_children, 'term_id'),
'include_children' => false
)
)
);
$query = new WP_Query( $args );