Woocommerce: Producto Variable - obtener nombre de variación

16 jul 2019, 12:59:48
Vistas: 37.7K
Votos: 0

Quiero obtener el nombre de la variación de un producto variable en Woocommerce. Por ejemplo, si tengo un producto que está disponible en diferentes tallas: pequeña, mediana y grande. Me gustaría imprimir por ejemplo "grande". Casi lo he conseguido hacer funcionar. El problema es que también obtengo el nombre del producto al mismo tiempo, como: "Nombre del producto - Grande" Aquí está mi código:

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

Espero que alguien pueda ayudar, gracias. :-)

0
Todas las respuestas a la pregunta 5
1

he probado el siguiente código y funciona correctamente para el nombre de la variación

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

¡Muchas gracias! Funciona :-)

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

Utiliza el método get_varation(). Si el atributo es un atributo global, obtendrá correctamente el nombre del término de taxonomía para el atributo, y si no lo es, devolverá el valor almacenado con el producto.

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

Creo que esto debería funcionar bien:

$string = WC_Product_Variation::get_formatted_name();

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

17 oct 2020 16:59:43
0
-1

utiliza esto aquí para obtener el nombre de la variación

$productId = 1; //ID del producto aquí
$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());//aquí obtienes el nombre del producto
}
16 jul 2019 16:52:30
2
-2

Por favor prueba el siguiente código. Mostrará el nombre de la variación del atributo tamaño por ID de variación.

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

Déjame saber si esto funciona para ti.

16 jul 2019 13:44:33
Comentarios

Esto solo funcionará si el atributo es global, y solo devolverá el slug. ucfirst() es un truco para hacer que el slug parezca el nombre del atributo, pero no funcionará correctamente si el valor tiene más de una palabra, o si la etiqueta no es igual que el slug.

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

Gracias @jacob por tu explicación.

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