In Woocommerce, I am trying to get product custom attribute values but I fail miserably and I don't get anything.
So I tried:
global $woocommerce, $post, $product;
$res = get_post_meta($product->id);
print_r(unserialize($res['_product_attributes'][0]));
And I'm getting this raw data:
[pa_koostis] => Array
(
[name] => pa_koostis
[value] =>
[position] => 0
[is_visible] => 1
[is_variation] => 0
[is_taxonomy] => 1
)
I know that there is a value because it is shown in the attribute section, but I just can't find a way to get it displayed with my custom code.
Edited: The
woocommerce_get_product_terms
is deprecated since Woocommerce version 3
Go with the following as @datafeedr wrote in his answer:
global $product;
$koostis = array_shift( wc_get_product_terms( $product->id, 'pa_koostis', array( 'fields' => 'names' ) ) );
or even more compact:
global $product;
$koostis = $product->get_attribute( 'pa_koostis' );
Original answer:
$result = array_shift(woocommerce_get_product_terms($product->id, 'pa_koostis', 'names'));