¿Cómo almacena Woocommerce los atributos de variación y cómo se pueden recuperar por variación?
13 sept 2013, 01:51:56
Vistas: 26K
Votos: 9
Estoy tratando de extraer una lista de variaciones de productos de una instalación de Woocommerce, con sus atributos - algo como esto:
id producto id variación nombre color talla
5 1234 bañador azul 10
5 1235 bañador azul 12
5 1236 bañador azul 14
5 1237 bañador rojo 10
Puedo obtener el ID de variación, el ID del producto y el nombre del producto así:
<?php
// Obtener las variaciones
$args = array( 'post_type' => 'product_variation');
$variationloop = new WP_Query( $args );
while ( $variationloop->have_posts() ) : $variationloop->the_post();
// obtener el padre de cada variación
$parent = get_post($post->post_parent);
// ¿está el producto padre publicado?
if ($parent->post_status=="publish")
{
$parentid=$post->post_parent;
echo $parentid; // producto
echo $id; // id de variación
echo $parent->post_title; // nombre del producto
}
?>
Lo que no puedo entender, sin embargo, es cómo Woocommerce vincula una variación con un atributo, como el tamaño. Si hago esto:
$sizes = get_the_terms($parentid ,'pa_size');
foreach ( $sizes as $size ) {
echo $size->name;
}
entonces puedo obtener todas las tallas en las que el producto podría estar disponible, pero no puedo encontrar cómo recuperar la talla asociada únicamente con la variación 1234.
Comentarios
Todas las respuestas a la pregunta
1
1
Los atributos se almacenan en wp_term_relationships.
Ejemplo:
+--------------+-------------------+-------------------+
| object_id | term_taxonomy_id | term_taxonomy_id |
+--------------+-------------------+-------------------+
| 91 | 48 | 0 |
+--------------+-------------------+-------------------+
El producto 91 tiene el atributo 48

Pablo S G Pacheco
357
20 sept 2013 23:57:02
Preguntas relacionadas
3
respuestas
2
respuestas