Before showing the filter hooks, first, if we saw the product default tabs in the code, we can see the tabs array items like this:
$tabs['description'] = array(
'title' => __( 'Description', 'woocommerce' ),
'priority' => 10,
'callback' => 'woocommerce_product_description_tab',
);
$tabs['additional_information'] = array(
'title' => __( 'Additional information', 'woocommerce' ),
'priority' => 20,
'callback' => 'woocommerce_product_additional_information_tab',
);
$tabs['reviews'] = array(
/* translators: %s: reviews count */
'title' => sprintf( __( 'Reviews (%d)', 'woocommerce' ), $product->get_review_count() ),
'priority' => 30,
'callback' => 'comments_template',
);
In the above tabs array, we can see the callback functions loading the content of those tabs, including the content panel titles. So, to remove content panel titles, we need to inspect the callback function code, which is loading the template file from WooCommerce template directory(wc_get_template( ‘single-product/tabs/description.php’ );). There is a filter option on those template files, and we can utilize this filter option to remove the heading like the one below:
To remove Description content panel heading, use this:
add_filter( 'woocommerce_product_description_heading', '__return_null' );
To remove Additional information content panel heading, use this:
add_filter( 'woocommerce_product_additional_information_heading', '__return_null' );
We can not remove the Reviews content panel heading because it has no filter option to filter the content panel heading
We can remove review content panel heading using this :
add_action('admin_footer', 'reviews_content_panel_heading_remove');
function reviews_content_panel_heading_remove() {
echo '<style>
h2.woocommerce-Reviews-title {display:none;}
</style>';
}