Search code examples
phpwordpresswoocommerceproductcustom-taxonomy

Get the Product tags for the current product only in WooCommerce


How can I display only the product tags for the current single product page and not all the products tags?

I've found questions about most popular tags but not for that.


Solution

  • You can use the function wp_get_post_terms() function for WooCommerce 'product_tag' custom taxonomy and a defined product id this way:

    $output = array();
    
    // get an array of the WP_Term objects for a defined product ID
    $terms = wp_get_post_terms( get_the_id(), 'product_tag' );
    
    // Loop through each product tag for the current product
    if( count($terms) > 0 ){
        foreach($terms as $term){
            $term_id = $term->term_id; // Product tag Id
            $term_name = $term->name; // Product tag Name
            $term_slug = $term->slug; // Product tag slug
            $term_link = get_term_link( $term, 'product_tag' ); // Product tag link
    
            // Set the product tag names in an array
            $output[] = '<a href="'.$term_link.'">'.$term_name.'</a>';
        }
        // Set the array in a coma separated string of product tags for example
        $output = implode( ', ', $output );
    
        // Display the coma separated string of the product tags
        echo $output;
    }
    

    Tested and works.

    You can replace get_the_id() by a dynamic product Id variable too.