На странице карточки товара есть табы «Описание», «Детали», «Отзывы» и иногда нужно подредактировать их вывод.
Обратите внимание, что вкладки «Описание» и «Детали» появляются только когда есть что отобразить. То есть, если есть текст контента то отображается «Описание», если есть у товара атрибуты то отображается «Детали».
Редактирование табов
Работа с табами ведется через woocommerce_product_tabs
Например
add_filter('woocommerce_product_tabs','change_tabs'); function change_tabs($tabs){ //расположение вкладки "описание" после отзывов unset($tabs['additional_information']); // удаляем таб // задаем приоритет отображения $tabs['description']['priority'] = 10; // изменяем заголовок таба $tabs['description']['title'] = 'Характеристики'; // изменяем обработчик, указав название функции $tab['description']['callback'] = 'comments_template'; return $tabs; };
То есть мы фактически переопределили стандартный обработчик табов на свой «change_tabs»
Например, нам нужно изменить порядок отображения табов, и Описание (Description) перенести под Атрибуты (Additional information), тогда меняем просто приоритет
add_filter('woocommerce_product_tabs','change_tabs'); function change_tabs($tabs){ // задаем приоритет отображения $tabs['description']['priority'] = 100; return $tabs; };
Для того что бы посмотреть что вообще находится с $tabs, добавляем print_r($tabs);
и получаем
[description] => Array ( [title] => Описание [priority] => 10 [callback] => woocommerce_product_description_tab ) [additional_information] => Array ( [title] => Детали [priority] => 20 [callback] => woocommerce_product_additional_information_tab ) [reviews] => Array ( [title] => Отзывы (1) [priority] => 30 [callback] => comments_template )
Не отображается вкладка «Отзывы»
Еще ньюанс, если у вас не отображается вкладка «Отзывы» хотя print_r($tabs) показывает что там есть «reviews» то возможно проблема в теме, добавьте в функцию темы (functions.php) это
add_theme_support( 'woocommerce' );
Изменение заголовка h2 в табе
Если надо изменить заголовок h2 в табе а не надпись таба, например «Детали», то переопределяем шаблон, additional-information.php, добавляя его в нашу тему
путь_теме/woocommerce/single-product/tabs/additional-information.php
и в нем уже правим h2
Другие способы изменения табов
Для редактирования табов есть плагин, который вполне хорошо справляется с эти, это Custom Product Tabs for WooCommerce
А как отключить таб в одной только категории?
Если товары разномастные, например в одном нужны характеристики, а в другом они не уместны?