1

I am running a woocommerce shop and I have products which are in multiple categories. I would like to show the category images on the single product pages. And also on the product overview page.

I only found how I can show the category image on the product category page:

<?php 
if (is_product_category()){
global $wp_query;
// get the query object
$cat = $wp_query->get_queried_object();
// get the thumbnail id user the term_id
$thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
// get the image URL
$image = wp_get_attachment_url( $thumbnail_id );
// print the IMG HTML
echo '<img src="'.$image.'" alt="" width="30" height="30" />';
}?>
1
  • Anyone with some tips?
    – Yasp0
    Apr 5 '13 at 14:49
1

I had the same problem and I came up with this solution, hope it helps.

<?php
    $terms = get_the_terms( $post->ID, 'product_cat' );
    foreach ( $terms as $term ){
        $category_name = $term->name;
        $category_thumbnail = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true);
        $image = wp_get_attachment_url($category_thumbnail);
        echo '<img src="'.$image.'">';
    }
?>
0

I think you should try this

if ( is_product_category( array( 'cat-1', 'cat-2' ) ) ){
            global $wp_query;
            $cat = $wp_query->get_queried_object();
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
            $image = wp_get_attachment_url( $thumbnail_id );
            if ( $image ) {
                echo '<img src="' . $image . '" alt="" />';
            }
        }

This shows the images of only cat-1 and cat-2 category.

0

Worked brilliantly!!

<?php
    $terms = get_the_terms( $post->ID, 'product_cat' );
    foreach ( $terms as $term ){
        $category_name = $term->name;
        $category_thumbnail = get_woocommerce_term_meta($term->term_id, 'thumbnail_id', true);
        $image = wp_get_attachment_url($category_thumbnail);
        echo '<img src="'.$image.'">';
    }
?>

Not the answer you're looking for? Browse other questions tagged or ask your own question.