WooCommerce: Как получить все атрибуты всех товаров в категории

Дмитрий Скородумов  /   20 апреля 2022 г.

WordPress 6.0
WooCommerce 6.4.1.

Проектируя самостоятельно фильтры товаров для WooCommerce, я не нашёл на просторах интернета ответ на вопрос, как получить полный список атрибутов товаров в выбранной категории.

Пришлось поковырять структуры данных в базе и написать запрос, выдающий таксономии (имена атрибутов) и значения термов (значения атрибутов), для товаров из категории с идентификатором CAT_ID:

SELECT atT.taxonomy, atT.term_id
FROM wp_term_relationships tr1
LEFT JOIN wp_wc_product_attributes_lookup atT
 ON  atT.product_or_parent_id = tr1.object_id 
WHERE tr1.term_taxonomy_id = CAT_ID AND atT.taxonomy IS NOT NULL
GROUP BY atT.term_id

Ну а далее пишем функцию для формирования запроса и обработки результата.