Сортировать термины атрибутов товаров с помощью функции WooCommerce wc_get_product_terms - PullRequest
1 голос
/ 07 апреля 2019

У меня есть сайт электронной коммерции на платформе WooCommerce. Я использую варианты продуктов, чтобы мои клиенты могли выбрать конкретную конфигурацию для своего продукта.

Я использую следующий код для перечисления имен терминов определенного атрибута продукта:

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

И это прекрасно работает.

Однако при изменении порядка сортировки по умолчанию с «Пользовательского заказа» на «Термин ID» , я ничего не получаю (имена терминов не отображаются).

Я провел некоторое исследование, и кажется, что wc_get_product_terms не будет работать с сортировкой.
Как я могу сделать так, чтобы эти термины сортировались по идентификатору термина?

Любой трек на этом будет оценен.

1 Ответ

0 голосов
/ 08 апреля 2019

Функция wc_get_product_terms() использует _wc_get_cached_product_terms() , которые устанавливают приоритет сохраненных кэшированных данных по сравнению с использованием WordPress wp_get_post_terms(), включенного в него.
Вот почему вы ничего не можете отсортировать.

Таким образом, вместо этого вы должны использовать напрямую wp_get_post_terms(), что позволяет сортировать как:

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

Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...