renato
Estoy usando muchos atributos de productos en mis productos en Woocommerce y estoy recorriendo todas las variaciones en una tabla que se puede mostrar con un código abreviado en una página de producto.
Para esta tabla, necesito todos los atributos del producto en el encabezado de la tabla (esto es antes de recorrer las variaciones) y obtengo los atributos usando:
$attributes = $product->get_variation_attributes();
foreach ($attributes as $key => $value) {
echo '<td>'.&key.'</td>';
}
Esto no es muy elegante, ¿verdad?
Así que esto también funciona:
$attributes = $product->get_attributes();
foreach ($attributes as $attribute) {
echo '<td>'$attribute['name']'</td>';
}
En ambos casos obtengo el slug del atributo del producto. En cambio, necesito obtener el nombre de la etiqueta, ya que hay una traducción de Polylang para cada nombre (términos también).
¿Cómo puedo obtener el nombre de la etiqueta del atributo del producto en lugar del slug de taxonomía?
LoicTheAztec
Usarás wc_attribute_label()
función dedicada de Woocommerce:
foreach ($product->get_variation_attributes() as $taxonomy => $term_names ) {
// Get the attribute label
$attribute_label_name = wc_attribute_label($taxonomy);
// Display attribute labe name
echo '<td>'.$attribute_label_name.'</td>';
}
O:
foreach ($product->get_attributes() as $taxonomy => $attribute_obj ) {
// Get the attribute label
$attribute_label_name = wc_attribute_label($taxonomy);
// Display attribute labe name
echo '<td>'.$attribute_label_name.'</td>';
}
Pruebe y “var_dump” el objeto “$attributes”. Puede que eso le dé una idea de qué atributo del objeto “$attributes” debe usarse en el ciclo.
– zipkundan
31 de octubre de 2018 a las 9:43
Gracias. Útil para mí para entender más de lo que está pasando aquí. Desafortunadamente, no hay un nombre para ingresar dentro de las matrices, solo la babosa. Lo probé para ambos bloques de código. Las matrices que obtengo cuando uso el segundo método contienen identificación, posición, variación … pero aún no tienen un nombre real.
– Renato
31 oct 2018 a las 10:20