Пример переопределения.

Изначально мы имеем:

<h2 class="woocommerce-loop-product__title">' . get_the_title(). '</h2>

А надо получить:

<a href="' . get_permalink($product_ID) . '">
<h2 class="woocommerce-loop-product__title">' . get_the_title(). '</h2>
</a>

Добавляем в функции темы:

/**
 * Переопределяем функцию, т.к. нет из нее фильтра
 */
if ( ! function_exists( 'woocommerce_template_loop_product_title' ) ) {
  /**
   * Show the product title in the product loop.
   */
  function woocommerce_template_loop_product_title() {
    echo 
'<a href="' . get_permalink($product_ID) . '">
<h2 class="woocommerce-loop-product__title">' . get_the_title(). '</h2>
</a>' ;
  }
}

Следим за синтаксисом.