Displaying categories and subcategories without link

This is mostly a PHP question and it is related to WooCommerce. Either of which conditions makes it dangerously close to off-topic. However, I am going to give the benefit of the doubt and assume that the problem is due to a misunderstanding of the WordPress function wp_get_post_terms(). 😉

wp_get_post_terms() returns all of the terms as an array of term object. By using array_shift() the way you are you are truncating that list down to one. Remove array_shift() and create a loop.

$product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
// var_dump($product_cats); // debug
if ( $product_cats && ! is_wp_error ( $product_cats ) ){
  while (!empty($product_cats)) {
    $single_cat = array_shift( $product_cats ); ?>
    <h2 itemprop="name" class="product_category_title"><span><?php echo $single_cat->name; ?></span></h2><?php
  }
}