Это документация для разработчиков. Если вы не знакомы с кодом, лучше обратиться к специалисту.
Добавьте код в файл functions.php вашей дочерней темы или используйте плагин для добавления пользовательских функций, например Code Snippets. Не добавляйте код в файл functions.php родительской темы — он будет удалён при обновлении.
Ниже показаны вкладки товара, которые отображаются на странице товара в теме Storefront:

Удаление вкладок
Используйте следующий код, чтобы удалить нужные вкладки:
/**
* Удаление вкладок товара
*/
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
function woo_remove_product_tabs( $tabs ) {
unset( $tabs['description'] ); // Удалить вкладку "Описание"
unset( $tabs['reviews'] ); // Удалить вкладку "Отзывы"
unset( $tabs['additional_information'] ); // Удалить вкладку "Дополнительная информация"
return $tabs;
}
Переименование вкладок
Используйте следующий код, чтобы изменить названия вкладок:
/**
* Переименование вкладок товара
*/
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
$tabs['description']['title'] = __( 'Подробнее' );// Переименовать вкладку "Описание"
$tabs['reviews']['title'] = __( 'Отзывы' );//Переименовать вкладку "Отзывы"
$tabs['additional_information']['title'] = __( 'Характеристики' );//Переименовать вкладку "Дополнительная информация"
return $tabs;
}
Изменение порядка вкладок
Используйте следующий код, чтобы изменить порядок вкладок:
/**
* Изменение порядка вкладок товара
*/
add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 );
function woo_reorder_tabs( $tabs ) {
$tabs['reviews']['priority'] = 5; // "Отзывы" первыми
$tabs['description']['priority'] = 10; // "Описание" вторыми
$tabs['additional_information']['priority'] = 15; // "Дополнительная информация" третьими
return $tabs;
}
Настройка вкладки
Следующий код заменяет вкладку «Описание» на пользовательскую функцию:
/**
* Кастомизация вкладки товара
*/
add_filter( 'woocommerce_product_tabs', 'woo_custom_tab', 98 );
function woo_custom_tab( $tabs ) {
$tabs['description']['callback'] = 'my_custom_tab_content';
return $tabs;
}
function my_custom_tab_content() {
echo '<h2>Мой контент<</h2>';
echo '<h2>Здесь может быть любой HTML или PHP код<</h2>';
}
Добавление пользовательской вкладки товара
Используйте следующий сниппет, чтобы добавить глобальную пользовательскую вкладку товара.
/**
* Добавление пользовательской вкладки товара
*/
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
// Добавляет новую вкладку
$tabs['test_tab'] = array(
'title' => __( 'Новая вкладка товара', 'woocommerce' ),
'priority' => 50,
'callback' => 'woo_new_product_tab_content'
);
return $tabs;
}
function woo_new_product_tab_content() {
// Содержимое новой вкладки
echo '<h2>Новая вкладка товара</h2>';
echo '<h2>Это ваша новая вкладка товара.</h2>';
}
Вкладка «Дополнительная информация»
Обратите внимание: вкладка «Дополнительная информация» отображается только если у товара заданы вес, размеры или атрибуты (с включённой опцией «Видно на странице товара»). Если вы попытаетесь изменить эту вкладку, но у товара нет этих данных, может появиться ошибка:
Warning: call_user_func() expects parameter 1 to be a valid callback, no array or string given in /mysite/wp-content/plugins/woocommerce/templates/single-product/tabs/tabs.php on line 35
В этом случае используйте условные функции WooCommerce:
has_attributes()has_dimensions()has_weight()
/**
* Проверка, есть ли у товара атрибуты, размеры или вес.
* Используется, чтобы избежать ошибки call_user_func() при изменении вкладки «Дополнительная информация».
*/
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {
global $product;
if ( $product->has_attributes() || $product->has_dimensions() || $product->has_weight() ) {
// Переименование вкладки «Дополнительная информация»
$tabs['additional_information']['title'] = __( 'Данные товара', 'woocommerce' );
}
return $tabs;
}
Добавление пользовательской вкладки
Используйте следующий сниппет, чтобы добавить новую пользовательскую вкладку товара.
/**
* Добавление пользовательской вкладки товара
*/
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
// Добавляет новую вкладку
$tabs['test_tab'] = array(
'title' => __( 'Новая вкладка товара', 'woocommerce' ),
'priority' => 50,
'callback' => 'woo_new_product_tab_content'
);
return $tabs;
}
function woo_new_product_tab_content() {
// Содержимое новой вкладки
echo '<h2>Новая вкладка товара</h2>';
echo '<h2>Это ваша новая вкладка товара.</h2>';
}
