Home » WooCommerce: Show Category For Each Product @ Shop Page

WooCommerce: Show Category For Each Product @ Shop Page

by Tutor Aspire

A client of mine has a category called “Brand”. Each product is assigned to a specific Brand subcategory e.g. Nike, Adidas, etc. The goal of this task was to show the “Brand” subcategories in the shop/category/loop pages as a way to help the user identify the brand name.

The same can be applied to showing ALL categories, so the user knows exactly to what section of the shop the product belong to. Great, let’s see how it’s done!

WooCommerce Show Product SubCategories
WooCommerce Show Product SubCategories

PHP Snippet 1: Show Category Name/s @ WooCommerce Shop Items

/**
 * @snippet       WooCommerce Show Product Categories
 * @how-to        Get tutoraspire.com FREE
 * @author        Tutor Aspire
 * @compatible    WooCommerce 5.1
 * @donate $9     https://www.tutoraspire.com
 */

add_action( 'woocommerce_after_shop_loop_item_title', 'tutoraspire_show_all_subcats', 2 );

function tutoraspire_show_all_subcats() {
   global $product;
   $cats = get_the_terms( $product->get_id(), 'product_cat' );
   if ( empty( $cats ) ) return;
   echo join( ', ', wp_list_pluck( $cats, 'name' ) );
}

PHP Snippet 2: Show Subcategory Name/s @ WooCommerce Shop Items

/**
 * @snippet       WooCommerce Show Product Subcategories
 * @how-to        Get tutoraspire.com FREE
 * @author        Tutor Aspire
 * @compatible    WooCommerce 5.1
 * @donate $9     https://www.tutoraspire.com
 */

add_action( 'woocommerce_after_shop_loop_item_title', 'tutoraspire_show_all_subcats', 2 );

function tutoraspire_show_all_subcats() {
   global $product;
   $cats = get_the_terms( $product->get_id(), 'product_cat' );
   if ( empty( $cats ) ) return;
   foreach ( $cats as $term ) {
      // If parent cat ID = 116 echo subcat name...
      if ( $term->parent == 116 ) {
         echo $term->name;
      }
   }
}

You may also like