Сегодняшняя статья о том, как вывести произвольные свойства товара на странице товара в WooCommerce (Для того того, чтобы вывести свойства в корзине, смотрите статью Выводим пользовательские свойства товаров в WooCommerce на странице товара). Реализовывается данный функционал с помощью файла функций вашей темы и полезного хука WooCommerce под названием ‘woocommerce_single_product_summary‘, который позволит вывести свойство товара над кнопкой «Добавить в корзину». Работать будем как обычно с файлом functions.php, а не с файлами шаблона.
Ниже два примера. Первый код выведет одно свойство товара на ваш выбор. Второй же выведет все пользовательские свойства товара для товара.
Выводим одно свойство товара
Этот пример выведет одно свойство товара. Необзодимо дважды изменить ‘version’ в строке 8 на slug (короткую ссылку вашего свойства). По-умолчанию. он выводит название свойства и его значение в формате «Название: значение». Для отображения только значения вытрите строку 18 ниже.
/** * WooCommerce: выводим пользовательское свойство товара над кнопкой "Добавить в корзину" на странице отдельного товара. */ function devise_woo_get_pa(){ global $product; $attributes = $product->get_attributes(); $attribute = isset($attributes['version']) ? $attributes['version'] : ''; if ( ! $attribute ) { return; } if ( $attribute['is_taxonomy'] ) { // backwards compatibility $out = implode( ', ', woocommerce_get_product_terms( $product->id, $attribute['name'], 'names' ) ); } else { $out = $attribute['name'] . ': '; $out .= $attribute['value']; } echo $out; } add_action('woocommerce_single_product_summary', 'devise_woo_get_pa');
Выводим все пользовательские свойства товара
/** * WooCommerce: выводим все пользовательские свойства товара над кнопкой "Добавить в корзину" на странице отдельного товара. */ function devise_woo_all_pa(){ global $product; $attributes = $product->get_attributes(); if ( ! $attributes ) { return; } $out = ''; foreach ( $attributes as $attribute ) { $out .= $attribute['name'] . ': '; $out .= $attribute['value'] . '<br />'; } echo $out; } add_action('woocommerce_single_product_summary', 'devise_woo_all_pa');
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.