Sort product attribute terms using WooCommerce wc_get_product_terms function

General Tech Bugs & Fixes 2 years ago

0 2 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (2)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

I have an eCommerce website powered by WooCommerce. I'm using product variations to allow my customers to choose a specific configuration for their product.

I'm using the following code to list the terms names of a specific product attribute:

$available_pa_colors = wc_get_product_terms( $product->get_id(), 'pa_colors' );    

And it works great.

However when changing the default sort order from "Custom ordering" to "Term ID", I get nothing (no term names show up).

I did some research and it seems that wc_get_product_terms won't work with sorting.
How I can make this terms to get sorted by Term ID?

Any track on this will be appreciated.

profilepic.png
manpreet 2 years ago

The function wc_get_product_terms() uses _wc_get_cached_product_terms() which prioritize stored cached data against the use of WordPress wp_get_post_terms() included in it. 
That's why you can't sort anything.

So instead you should use directly wp_get_post_terms() which allows sorting like:

$available_pa_colors = wp_get_post_terms( $product->get_id(), 'pa_colors', array(
    'orderby' => 'term_id', 'order' => 'ASC', 'fields' => 'names'
) );

Tested and works.


0 views   0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.