Woocommerce имеет функцию отображения всех атрибутов (свойств) продукта — list_attributes(), но что если нам надо получить значение какого-нибудь одного свойства, и к тому же вывести его на странице, не связанной с вукоммерц.
Когда мы создаем произвольный атрибут товара в WooCommerce, он регистрируется как произвольная таксономия (custom taxonomy). Поэтому мы можем использовать функцию WordPress get_the_terms для извлечения его значения.
При регистрации такой таксономии WooCommerce добавляет префикс pa_ к названию нашего атрибута.
Таким образом мы должны посмотреть поле Слаг (slug) нужного свойства. Это смотрим в разделе Товары — Атрибуты. Например, мы создали у продукта свойство Год и слаг у него — god. Тогда woocommerce присвоит таксономии имя ‘pa_god’.
Чтобы получить все значения этого атрибута для заданного продукта воспользуйтесь следующим кодом.
1 2 3 4 5 |
$values = get_the_terms( $product->id, 'pa_god'); foreach ( $values as $value ) { echo $value->name; } |
Здесь $product->id это id записи продукта.
Добрый день. Сделал по вашему примеру:
id, ‘pa_manufacture’);?>
Производитель: name;
}
?>
Но как сделать, чтоб при пустом производителе н7и чего не выводилось?
Петр, ваш код неправильно вывелся, поэтому непонятно, что там. А что сейчас выводится, когда производитель пусто? Например, можно сделать проверку и если полученный производитель содержит пустое значение (только что это за значение: 0 или пустая строка — »), то его не отображать.
Когда значение установлено, но пустое, или не установлено, выдаёт ошибку. Эту функцию нужно проверять в условии:
if ($values):
// действия
endif;