Cum stochează Woocommerce atributele variațiilor și cum pot fi acestea extrase per variație?
13 sept. 2013, 01:51:56
Vizualizări: 26K
Voturi: 9
Încerc să extrag o listă de variații ale produselor dintr-o instalare Woocommerce, împreună cu atributele lor - ceva de genul:
id produs id variatie nume culoare marime
5 1234 costum baie albastru 10
5 1235 costum baie albastru 12
5 1236 costum baie albastru 14
5 1237 costum baie rosu 10
Pot obține ID-ul variației și ID-ul produsului, precum și numele produsului astfel:
<?php
// Obține variațiile
$args = array( 'post_type' => 'product_variation');
$variationloop = new WP_Query( $args );
while ( $variationloop->have_posts() ) : $variationloop->the_post();
// obține părintele fiecărei variații
$parent = get_post($post->post_parent);
// este produsul părinte publicat?
if ($parent->post_status=="publish")
{
$parentid=$post->post_parent;
echo $parentid; // produs
echo $id; // id variație
echo $parent->post_title; // numele produsului
}
?>
Ceea ce nu reușesc să înțeleg este cum face Woocommerce legătura între o variație și un atribut, cum ar fi mărimea. Dacă fac următorul lucru:
$sizes = get_the_terms($parentid ,'pa_size');
foreach ( $sizes as $size ) {
echo $size->name;
}
pot obține toate mărimile în care ar putea fi disponibil acel produs, dar nu găsesc cum să extrag mărimea asociată doar cu variația 1234.
Comentarii
Toate răspunsurile la întrebare
1
1
Atributele sunt stocate în tabelul wp_term_relationships.
Exemplu:
+--------------+-------------------+-------------------+
| object_id | term_taxonomy_id | term_taxonomy_id |
+--------------+-------------------+-------------------+
| 91 | 48 | 0 |
+--------------+-------------------+-------------------+
Produsul cu ID-ul 91 are atributul cu ID-ul 48

Pablo S G Pacheco
357
20 sept. 2013 23:57:02
Întrebări similare
3
răspunsuri
2
răspunsuri