Я пытаюсь получить определенный пользовательский атрибут в woocommerce. Я прочитал тонны потоков на этом сайте, которые предлагают около 3-5 методов, как это сделать. После попытки всего, единственный метод, который работал для меня, – это перебрать все атрибуты – все остальные не работали. У меня есть пользовательский атрибут с именем 'pdfs'
Следующие попытки не помогли: ( ссылка )
$global product; $myPdf = array_shift( wc_get_product_terms( $product->id, 'pdfs', array( 'fields' => 'names' ) ) ); $myPdf = $product->get_attribute( 'pdfs' ); $myPdf = get_post_meta($product->id, 'pdfs', true);
Это единственное, что работало: ( link )
$attributes = $product->get_attributes(); foreach ( $attributes as $attribute ) { if (attribute_label( $attribute[ 'name' ] ) == "pdfs" ) { echo array_shift( wc_get_product_terms( $product->id, $attribute[ 'name' ] ) ); } }
Я бы скорее использовал один из первых вариантов. Любая помощь была бы оценена.
благодаря
Поскольку атрибуты всегда pa_
с помощью pa_
в БД, для получения их с wc_get_product_terms()
функции wc_get_product_terms()
вам нужно будет использовать pa_pdfs
вместо pdfs
, таким образом:
global $product; $myPdf = array_shift( wc_get_product_terms( $product->id, 'pa_pdfs', array( 'fields' => 'names' ) ) );
Ссылка: Woocommerce получает пользовательские атрибуты