Woocommerce: Prodotto Variabile - ottenere il nome della variazione

16 lug 2019, 12:59:48
Visualizzazioni: 37.7K
Voti: 0

Voglio ottenere il nome della variazione di un prodotto variabile in WooCommerce. Per esempio, se ho un prodotto disponibile in diverse taglie: piccola, media e grande, vorrei stampare solo "grande". Sono quasi riuscito a farlo funzionare. Il problema è che ottengo anche il nome del prodotto contemporaneamente, tipo: "Nome prodotto - Grande" Ecco il mio codice:

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

Per ottenere solo il nome della variazione, puoi utilizzare uno di questi metodi:

// Metodo 1: Utilizzando get_attribute $variation_value = $product_variation->get_attribute('nome-attributo'); // Metodo 2: Utilizzando le variazioni disponibili $variation_data = $product_variation->get_variation_attributes(); $variation_value = reset($variation_data); // Prende il primo valore della variazione

Spero che qualcuno possa aiutare, grazie. :-)

0
Tutte le risposte alla domanda 5
1

ho testato il codice qui sotto e funziona correttamente per il nome della variazione

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

Grazie mille! Funziona :-)

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

Utilizza il metodo get_varation(). Se l'attributo è un attributo globale, otterrà correttamente il nome dal termine della tassonomia per l'attributo, e se non lo è restituirà il valore memorizzato con il prodotto.

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

Credo che questo dovrebbe funzionare correttamente:

$string = WC_Product_Variation::get_formatted_name();

rif: https://woocommerce.wp-a2z.org/oik_api/wc_product_variationget_formatted_name/

17 ott 2020 16:59:43
0
-1

usa questo qui per ottenere il nome della variazione

$productId = 1; // ID del prodotto qui
$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()); // qui ottieni il nome del prodotto
}
16 lug 2019 16:52:30
2
-2

Prova il codice qui sotto. Ti permetterà di ottenere il nome della variazione dell'attributo "size" in base all'ID della variazione.

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

Fammi sapere se funziona per te.

16 lug 2019 13:44:33
Commenti

Questo funzionerà solo se l'attributo è globale e restituirà solo lo slug. ucfirst() è un trucco per far sembrare lo slug come il nome dell'attributo, ma non funzionerà correttamente se il valore è composto da più parole o se l'etichetta non è la stessa dello slug.

Jacob Peattie Jacob Peattie
16 lug 2019 14:03:26

Grazie @jacob per la tua spiegazione.

Chetan Vaghela Chetan Vaghela
16 lug 2019 14:21:25