código poeta
Creé un producto variable usando el complemento de woocommerce. En la variable producto he creado un atributo personalizado “Duración de la licencia“con valores”3 meses | 6 meses | 1 año | Toda la vida“.
Ahora quiero mostrar este atributo en una plantilla de producto individual personalizada.
He intentado siguientes soluciones
1.
$licenseDurations = get_the_terms( $post->ID, 'attribute_license-duration' );
Esto muestra lo siguiente var_dump($licenseDurations);
`
object(WP_Error)[558]
public 'errors' =>
array (size=1)
'invalid_taxonomy' =>
array (size=1)
0 => string 'Invalid taxonomy' (length=16)
public 'error_data' =>
array (size=0)
empty`
y
2.
global $product;
$licenseDuration = $product->get_attribute( 'License Duration' ); // Here I also tried attribute slug `attribute_license-duration` instead of `License Duration` but no use
Referencia: https://stackoverflow.com/a/13454788/2758870
y
3.
global $product;
$licenseDurations = get_the_terms( $product->id, 'License Duration');
foreach ( $licenseDurations as $licenseDuration )
{
echo $licenseDuration->name;
}
en los dos casos anteriores no obtuve nada porque $product;
esta regresando null
en var_dump($product)
4. También he probado este código http://isabelcastillo.com/woocommerce-product-attributes-functions
llamando directamente isa_woo_get_one_pa()
donde quiero mostrar valores. pero sin suerte.
Alguien aquí por favor ayuda…
Puedes intentar lo siguiente
1.get_post_meta
para obtener los atributos del producto
$attr = get_post_meta( 123, '_product_attributes' ); // replace 123 with the actual product id
print_r( $attr );
2. O puede crear un objeto de producto y luego usar el get_attributes
método
$p = new WC_Product( 123 ); // // replace 123 with the actual product id
print_r( $p->get_attributes() );
No estoy seguro si hay cambios en woocommerce, arriba no dio el valor del atributo. Siguiente publicación de este página dio la respuesta correcta
// reemplazar pa_attribute
con su nombre de atributo, pero mantenga el pa_
prefijo
// p.ej pa_weight
$fabric_values = get_the_terms( $product->id, 'pa_attribute');
foreach ( $fabric_values as $fabric_value ) {
echo $fabric_value->name;
}
Aquí está la lista de todos los atributos del producto. Espero que esto te ayude.
$product_attributes = get_post_meta( $post->ID, '_product_attributes' );
foreach ( $product_attributes as $group_attributes ) {
foreach ( $group_attributes as $attributes ) {
echo $attributes['name'].'=>'.$attributes['value'];
}
}
Los atributos del producto comienzan con
pa_
. En su primer intento, cambieattribute_license-duration
apa_license-duration
– Anand Shah
28/09/2015 a las 15:37
@AnandShah… lo intenté
pa_license-duration
pero esta regresando Taxonomía no válida error envar_dump
. alguna otra solución por favor– Código Poeta
29 de septiembre de 2015 a las 5:52
Lo he comprobado localmente creando un atributo con el mismo nombre y funciona bien.
– Anand Shah
29 de septiembre de 2015 a las 5:54
@AnandShah… Descargué la base de datos y no encontré
pa_license-duration
atributo en la búsqueda. En cambio, encontréattribute_license-duration
– Código Poeta
29 de septiembre de 2015 a las 7:38
Eso suena extraño, ¿qué versión de WooCommerce estás usando? Vaya a Productos -> Atributos, haga clic en “Duración de la licencia” y verifique la URL, ¿cómo se ve la URL?
– Anand Shah
29 de septiembre de 2015 a las 8:01