Как Woocommerce хранит атрибуты вариаций и как их можно получить для каждой вариации?
13 сент. 2013 г., 01:51:56
Просмотры: 26K
Голосов: 9
Я пытаюсь получить список вариаций товаров из установленного Woocommerce с их атрибутами - что-то вроде этого:
id товара id вариации название цвет размер
5 1234 купальник синий 10
5 1235 купальник синий 12
5 1236 купальник синий 14
5 1237 купальник красный 10
Я могу получить ID вариации, ID товара и название товара следующим образом:
<?php
// Получаем вариации
$args = array( 'post_type' => 'product_variation');
$variationloop = new WP_Query( $args );
while ( $variationloop->have_posts() ) : $variationloop->the_post();
// получаем родителя для каждой вариации
$parent = get_post($post->post_parent);
// проверяем, опубликован ли родительский товар
if ($parent->post_status=="publish")
{
$parentid=$post->post_parent;
echo $parentid; // товар
echo $id; // id вариации
echo $parent->post_title; // название товара
}
?>
Однако я не могу понять, как Woocommerce связывает вариацию с атрибутом, например, с размером. Если я делаю так:
$sizes = get_the_terms($parentid ,'pa_size');
foreach ( $sizes as $size ) {
echo $size->name;
}
то я могу получить все размеры, в которых товар может быть доступен, но не могу найти способ получить размер, связанный только с вариацией 1234.

Victoria
230
Комментарии
Все ответы на вопрос
1
1
Атрибуты хранятся в таблице wp_term_relationships.
Пример:
+--------------+-------------------+-------------------+
| object_id | term_taxonomy_id | term_taxonomy_id |
+--------------+-------------------+-------------------+
| 91 | 48 | 0 |
+--------------+-------------------+-------------------+
Товар с ID 91 имеет атрибут с ID 48

Pablo S G Pacheco
357
20 сент. 2013 г. 23:57:02
Похожие вопросы
3
ответов