1
votes

I've create a taxonomy called "couchages" for product with value : 1 couchage, 2 couchages, 3 couchages,…

I would like to print the value of this taxonomy, for each product on the archive page, like this:

  • Image1,product1, price1, taxonomy value of the product 1
  • Image2,product2, price2, taxonomy value of the product 2

I would like to use a function (in my function.php) to insert this value (taxonomy).

function display_taxonomy_product_archives() {
    echo "VALUE OF THE COUCHAGE TAXONOMY";
}
add_action( 'woocommerce_after_shop_loop_item_title', 'display_taxonomy_product_archives', 25 );

Some help will be appreciated.

1

1 Answers

0
votes

In the code below set your custom taxonomy to display the term names on archives pages for each product.

1) Before "add to cart" / "View more" button:

add_action( 'woocommerce_after_shop_loop_item_title', 'display_taxonomy_product_archives', 25 );
function display_taxonomy_product_archives() {
    global $product;

    // HERE below define your custom taxonomy
    $taxonomy = 'product_cat';

    $terms = wp_get_post_terms( $product->get_id(), $taxonomy, ['fields' => 'names']);

    if( ! empty($terms) ) {
        // Display the term names 
        echo '<p class="' . $taxonomy . '">' . implode(', ', $terms) . '</p>';
    }
}

2) After "add to cart" / "View more" button:

add_action( 'woocommerce_after_shop_loop_item', 'display_taxonomy_product_archives', 30 );
function display_taxonomy_product_archives() {
    global $product;

    // HERE below define your custom taxonomy
    $taxonomy = 'product_cat';

    $terms = wp_get_post_terms( $product->get_id(), $taxonomy, ['fields' => 'names']);

    if( ! empty($terms) ) {
        // Display the term names 
        echo '<p class="' . $taxonomy . '" style="margin:10px 0 0">' . implode(', ', $terms) . '</p>';
    }
}

Code goes in functions.php file of your active child theme (or active theme). Tested and works.

Documented Wordpress wp_get_post_terms() function…