How to display the product category as a class in the body?

For CSS customizations it can be important that the respective category is displayed in the body. This works with the help of the following code in functions.php:

add_filter( 'body_class', 'wc_product_cats_css_body_class' );
  
function wc_product_cats_css_body_class( $classes ){
  if ( is_singular( 'product' ) ) {
    $current_product = wc_get_product();
    $custom_terms = get_the_terms( $current_product->get_id(), 'product_cat' );
    if ( $custom_terms ) {
      foreach ( $custom_terms as $custom_term ) {
        $classes[] = 'product_cat_' . $custom_term->slug;
      }
    }
  }
  return $classes;
}
Without cookies
This website does not use cookies or tracking. More information can be found in the privacy policy.