Woocommerce: Produs Variabil - obține numele variației

16 iul. 2019, 12:59:48
Vizualizări: 37.7K
Voturi: 0

Vreau să obțin numele variației unui produs variabil în Woocommerce. Dacă, de exemplu, am un produs disponibil în diferite mărimi: mic, mediu și mare. Aș dori să afișez de exemplu "mare". Am reușit aproape să-l fac să funcționeze. Problema este că obțin și numele produsului în același timp, de genul: "Numele produsului - Mare" Iată codul meu:

$product_variation = wc_get_product($variation['variation_id']); $product_variation->get_name()

Sper că mă poate ajuta cineva, mulțumesc. :-)

0
Toate răspunsurile la întrebare 5
1

am testat codul de mai jos și funcționează corect pentru numele variației

$variationId = 39;
$variation = new WC_Product_Variation($variationId);
$variationName = implode(" / ", $variation->get_variation_attributes());
echo $variationName;
17 iul. 2019 17:54:04
Comentarii

Mulțumesc mult! Funcționează :-)

Oscar S. Oscar S.
17 iul. 2019 19:14:48
0

Folosește metoda get_varation(). Dacă atributul este un atribut global, va prelua corect numele din termenul de taxonomie pentru atribut, iar dacă nu este, va returna valoarea stocată împreună cu produsul.

$product_variation = wc_get_product( $variation['variation_id'] ); 
echo $product_variation->get_attribute( 'size' );
16 iul. 2019 14:01:18
0

Cred că ar trebui să funcționeze corect:

$string = WC_Product_Variation::get_formatted_name();

referință: https://woocommerce.wp-a2z.org/oik_api/wc_product_variationget_formatted_name/

17 oct. 2020 16:59:43
0
-1

folosește acest cod pentru a obține numele variației

$productId = 1; //ID-ul produsului aici
$handle = new WC_Product_Variable($productId);
$variationData = $handle->get_children();
foreach ($variationData as $value) {
    $variation_id = $value;
    $single_variation = new WC_Product_Variation($value);
    $var_slug = $single_variation->slug;
    echo "<br/>".$name = implode(" / ", $single_variation->get_variation_attributes());//aici obții numele produsului
}
16 iul. 2019 16:52:30
2
-2

Vă rugăm să încercați codul de mai jos. Acesta va afișa numele variației atributului "size" pe baza ID-ului de variație.

$variation = wc_get_product($variation['variation_id']);
$variation_attributes = $variation->get_variation_attributes();
$variation_name = ucfirst($variation_attributes['attribute_pa_size']);
echo $variation_name;

Anunțați-mă dacă acest cod funcționează pentru dumneavoastră.

16 iul. 2019 13:44:33
Comentarii

Aceasta va funcționa doar dacă atributul este global și va returna doar slug-ul. ucfirst() este o soluție improvizată pentru a face slug-ul să arate ca numele atributului, dar nu va funcționa corect dacă valoarea conține mai multe cuvinte sau dacă eticheta nu este aceeași cu slug-ul.

Jacob Peattie Jacob Peattie
16 iul. 2019 14:03:26

Mulțumesc @jacob pentru explicație.

Chetan Vaghela Chetan Vaghela
16 iul. 2019 14:21:25