В статье рассмотрим несколько примеров (с пояснениями) по теме, как добавить дескрипшн Description описание к товару в каталоге WooCommerce.
Посмотрим какие есть минусы в том или ином варианте вызова во фронтэнде описания в карточке товара.
Один из вариантов будет более простой и логичный, однако, существуют и иные, которые нужно иметь в виду перед тем как окончательно выбирать способ реализации вывода описания.
С подобными вопросами коррекции отображения карточки товара, ко мне обращается большинство из моих клиентов владельцев магазинов, а потому, думаю, эта статья при случае будет весьма полезна в рамках темы о woocommerce.
Как добавить краткое описание (Description) к товару в каталоге товаров WooCommerce
Если вам необходимо в каталоге товаров вывести описание (дескрипшн Description) к товару, то эту задачу, как и говорилось, можно решить несколькими способами.
Я дам в статье пару рабочих, что называется “из коробки”, вариантов.
Создаем произвольную функцию (для первого варианта, к примеру, ats_exc_description
), эту функцию привяжем к фильтру события woocommerce_after_shop_loop_item_title
.
В итоге получим обычный фильтр, который и поможет вывести описание к товару в магазине на woocommerce (данные коды добавлять в functions.php
или свой плагин):
add_action( 'woocommerce_after_shop_loop_item_title', 'ats_exc_description', 9 );
function ats_exc_description() {
echo the_excerpt() . '<br />';
}
Выведет дескрипшн к описанию товара. Величина текста в символах будет равна числу символов в настройках функции the_excerpt()
.
Обычно эту функцию переопределяют в файлах шаблона (на сайте есть пост по теме).
Кратко:
Обрезать текст внутри цикла возможно таким образом:
$text = strip_tags( get_the_content() );
echo mb_substr( $text, 0, 200 ); // 200 - число символов
Продолжаем…
Если вам нужно задать количество выводимых на экран символов непременно в коде для wooc, то есть получить по сути автономный код для вызова дескрипшн к товару, тогда поступаем так:
Используем в functions.php
или плагине такой код:
/*description of the product description in the category catalog*/
add_action( 'woocommerce_after_shop_loop_item_title', 'ats_add_short_description', 9 ); // 9 приоритет
function ats_add_short_description() {
global $post;
$text = $post->post_excerpt;
$maxchar = 120; //макс кол-во символов
$text = preg_replace ('~\[[^\]]+\]~', '', $text ); //no шорткоды
//удаляем всякую html символику
$text = strip_tags( $text);
// срезаем
if ( mb_strlen( $text ) > $maxchar ){
$text = mb_substr( $text, 0, $maxchar );
$text = preg_replace('@(.*)\s[^\s]*$@s', '\\1 ...', $text );
}
echo '<div class="w-desc">'; // обернём в div класс - можно это написать одной строкой, но я для ясности прописал так
echo $text;
echo '</div>';
}
/*description of the product description in the category catalog*/
В коде даны кое-какие пояснения, так что подробно разжевывать не стану.
К примеру, о приоритете:
В комментариях к файлу wooc content-product.php
даны подсказки (об этом файле ниже):
@hooked woocommerce_template_loop_rating - 5 //приоритет
@hooked woocommerce_template_loop_price - 10 //приоритет
играя цифровым значением приоритетов можно указать последовательность (между чем и чем) выводить описание к товару магазина wooc.
В кодах выше у меня задано значение 9.
После использования одного из выше показанных кодов, в вашем магазине в карточке товара(ов) появится описание.
Получится примерно по такому принципу:
Вариант 2: (Однако, советую использовать первый вариант, потому что тот вариант наиболее логичен. Пояснения ниже)
полезно почитать:
как сделать атрибут товара произвольной ссылкой:WooCommerce
Наиболее полная подборка, пояснения Условные теги woocommerce…
Подборка полезного кода (сниппеты) для работы магазина на WooCommerce…
Woocommerce шорткоды и их применение…
добавим краткое описание (Description) к товару в каталоге WooCommerce
Этот вариант имеет свои плюсы и минусы. А поэтому целесообразно в этом посте упомянуть и о нём.
Прицепим код для вывода описания (description) товара напрямую в коде файла.
Для реализации сей задачи нужно перейти в директорию плагина woocommerce, отыскать и скопировать из папки woocommerce/templates
файл content-product.php
, о нем я упомянул выше. Этот файл как раз отвечает за вывод товаров в цикле каталога Woocommerce.
Далее создаём в папке ядра шаблона сайта подпапку с именем woocommerce. И в эту новую папку помещаем скопированный файл из ядра плагина.
К слову, в эту папку в дальнейшем будем помещать и другие требуемые для магазина файлы из ядра – подробности…
Теперь добавляем в перенесённый файл (в требуемое конкретное место для вывода описания) примерно такую строку:
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
Подобный подход переноса файла из плагина woocommerce в шаблон обусловит сохранность правок файла (ведь редактировать напрямую файлы плагин нельзя!)!
Минусы (а для кого-то плюсы) в том, что придётся время от времени в связи с обновлениями woocommerce в теме подправлять файл wooc!
Этот вариант вывода описания товара в каталоге woocommerce подойдёт для тех администраторов магазинов, которые строят какой-то свой уникальный дизайн отображения страниц! Тогда, да! в этом конкретном случае наиболее целесообразно перенести файл wooc в ядро шаблона и там работать…
Как итог наших правок, краткое описание будет выведено в карточке товара в каталоге woocommerce.
В качестве бонуса к статье следующий раздел:
К слову: в статье, может быть, не совсем понятно излагаю алгоритм действий для рядовых владельцев магазинов, которые отдаленно понимают о чем я говорю, однако, вряд ли стоит подробно расписывать эту тему. К тому же, на мой взгляд, в некоторых случаях логичнее всего обратиться за помощью к профессионалам, например, к ребятам студии web-dius.ru…
Всего знать невозможно. И одно дело управлять магазином, как маркетолог, и совсем иное, как программист, скажем…
В студии смогут создать сайт полностью, что называется под “Ключ”, так и внести кое-какие правки в качестве бонусного исключения. Так что рассмотрите для себя этот вариант.
как убрать количество товара в категории woocommerce
Чтобы убрать выводимое в TITLE число товаров опубликованных в категории (цифровое значение) нужно всего-то в файл функций активного шаблона (либо свой плагин) добавить код, показанный ниже:
/*remove the number of products = убраем количество товара в категории*/
add_filter( 'woocommerce_subcategory_count_html', 'ats_woocs_remove_category_products_count' );
function ats_woocs_remove_category_products_count() {
return;
}
/*remove the number of products*/
Подборка полезного кода для работы с магазином на woocommerce описана по ссылке выше.
Если чего-то упустил описать… и если непонятно, задавайте вопросы в комментариях…
Смена эл/почты; логина пользователя; пароля через Базу Данных за минуту
mihalica.ru !