Disable if there are no children – Woocommerce

Try below code

<?php
  $terms = get_the_terms($post->ID, 'product_cat');
  foreach ($terms as $term) {
    $category_name = $term->name;
    $parent_category_id = $term->term_id;

    $categories = get_categories(array('parent' => $category_id));
    $children = get_terms('product_cat', array(
        'parent' => $parent_category_id,
        'hide_empty' => true
    ));
    if (!empty($children)) {
        echo ' <div class="list-group products box">
                                  <h4>Product Range</h4>';
        foreach ($children as $subcat) {
            ?>
            <a href="https://wordpress.stackexchange.com/questions/317473/<?php echo get_term_link($subcat->slug,"product_cat'); ?>" class="list-group-item"><?php echo $subcat->name; ?></a>
            <?php
        }
        echo "</div>";
    }
  }
 ?>

Hope this helps