Отображение значения отдельного атрибута товара на странице магазина (Woocommerce)
Я пытаюсь вывести значение одного атрибута ('size') на странице магазина. Я использовал следующий код для отображения всех значений, пытался адаптировать его для отображения одного атрибута, но безуспешно...
Можете, пожалуйста, помочь адаптировать код, чтобы отображать только значения атрибута 'size'?
// Получаем атрибуты
$attributes = $product->get_attributes();
// Начинаем цикл
foreach ( $attributes as $attribute ) :
// Проверяем и выводим, адаптировано из /templates/single-product/product-attributes.php
if ( $attribute['is_taxonomy'] ) {
$values = wc_get_product_terms( $product->id, $attribute['name'], array( 'fields' => 'names' ) );
echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
} else {
// Преобразуем вертикальные черты в запятые и отображаем значения
$values = array_map( 'trim', explode( WC_DELIMITER, $attribute['value'] ) );
echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
}
endforeach;
Можете, пожалуйста, подсказать, как это модифицировать

Просто используйте global $product
, затем метод get_attribute()
этого объекта товара, как показано ниже:
$size = $product->get_attribute( 'pa_size' );
Также вы можете получить это значение с помощью следующего кода:
global $product;
$size = array_shift( wc_get_product_terms( $product->id, 'pa_size', array( 'fields' => 'names' ) ) );
Помните, что вам обязательно нужно использовать global $product
.

Я не понял, что вы имеете в виду под "разделенными пробелами"!! И если этот ответ вам помог, пожалуйста, отметьте его как принятый.

Он помог, спасибо. У меня просто возникли трудности с правильным отображением значений в шаблоне. Можете подсказать, как их вывести?

Можешь показать ссылку или скриншот, как ты хочешь их отобразить? @user3767576

http://nadinka.webd.pl/modafirma/category/clothing/ - при наведении на изображение товара появляется блок "Available sizes", я хочу отображать там все значения размеров, привязанные к товару. Я пытался вывести их через $echo, но отображается только первое значение (а у каждого товара их несколько)

Понял. Сейчас немного занят. Дай мне немного времени. Я вернусь к тебе с ответом, хорошо, друг?

Код, который сработал для меня: $size = $product->get_attribute( 'pa_size' );
global $product;
$size = array_values( wc_get_product_terms( $product->id, 'pa_size', array( 'fields' => 'names' ) ) );
$prodsizes=implode(", ",$size);
echo $prodsizes;

Чтобы отобразить конкретный атрибут под названием "Габариты товара":
add_action( 'woocommerce_single_product_summary', 'display_product_formated_dimensions_table', 25 );
function display_product_formated_dimensions_table(){ global $product;
$item_dimensions = $product->get_attribute( 'Item Dimensions' ); if ( $product->has_attributes() ) { echo '<table class="shop_attributes"><tr> <th>' . __( 'Габариты товара', 'woocommerce' ) . '</th> <td class="product_dimensions">' . esc_html( $item_dimensions ) . '</td> </tr></table>'; } }
