Когда возникает необходимость создать интернет-магазин на WordPress, WooCommerce – это незаменимый помощник, который я всегда использую.  Конечно, очень редко получается обходится базовой функциональностью и нужно вносить изменения в работу плагина. Благо он обладает множеством хуков, которые позволяют это делать без изменения кода самого плагина.

Одна из частых правок – это добавление нового таба на странице товара, или удаление, изменение существующих. Ниже я постараюсь кратко изложить как это сделать.

Я буду рассматривать только вариант как редактировать табы без использования плагинов. Для таких простых действий они не понадобятся. Все описанное ниже нужно вносить в файл functions.php, который находится в папке вашей темы.

Как создать новую вкладку

Новый таб – это удобный способ добавить дополнительную информацию про товар. Код ниже поможет это сделать.

/**
 * Новый таб для продуктов 
 */
add_filter( 'woocommerce_product_tabs', 'rmn_woo_custom_tabs' );
function rmn_woo_custom_tabs($tabs) {
  $tabs['product_custom_tab'] = array(
    'title'    => __( 'Название таба', 'mytheme' ), // Тут можно присвоить простую строку.
    'priority' => 30,                               // Определяет положение таба относительно других.
    'callback' => 'rmn_custom_product_tab'          // Функция для содержимого вкладки.
  );

  return $tabs;
}

function rmn_custom_product_tab() {
  // Описываем, что должно быть внутри вкладки, в данном случае – простой текст.
  echo '<p>Текст новой вкладки</p>';
}

Это маленький, но очень полезный и часто используемый кусок кода. Добавление новых вкладок поможет организовать дополнительную информацию о товаре и сэкономить место на странице.

Как удалить вкладку

Помню, когда я впервые столкнулся с WooCommerce, много лет назад, чтобы удалить ненужный таб со страницы я просто использовал display: none; в CSS, тогда я еще не знал, что есть лучший способ.

/**
 * Удаляем вкладки продуктов
 */
add_filter( 'woocommerce_product_tabs', 'rmn_woo_remove_tabs', 98 );

function 'rmn_woo_remove_tabs( $tabs ) {
  // Используем функцию PHP unset для удаления элементов в массиве содержащий табы.
  unset( $tabs['description'] );      	    // Удаляем таб с описанием
  unset( $tabs['reviews'] ); 	            // Удаляем таб с отзывами
  unset( $tabs['additional_information'] ); // Удаляем таб с дополнительным описанием. 

  return $tabs;
}

Как изменить порядок вкладок

Чтобы изменить порядок табов используйте код ниже.

/**
 * Изменение порядка табов
 */
add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 );

function woo_reorder_tabs( $tabs ) {

  $tabs['product_custom_tab']['priority'] = 10;     // Новый таб созданный выше будет первым,
  $tabs['description']['priority'] = 20;            // потом идет таб с описанием товара,
  $tabs['reviews']['priority'] = 30;                // отзывы 
  $tabs['additional_information']['priority'] = 40; // и последний таб с дополнительным описанием.

  return $tabs;
}

Это были небольшие куски кода, которые помогут добавить, удалить или изменить порядок вкладок на странице товара в WooCommerce.