К настройке интернет-магазина всегда будет пользовательский подход. Редко случается, что все устраивает так, как оно сделано по умолчанию. К примеру, вкладки товаров WooCommerce. Вроде бы к ним вопросов нет, но не всё так просто. Есть моменты, когда нужно изменить порядок вкладок, или некоторые удалить, переименовать, а то и вовсе, добавить новую вкладку.
Как это сделать?
Для этого мы будем использовать хуки-фильтры, чтобы управлять вкладками в карточке товара и получить нужный результат. Любой ниже представленный код нужно добавить в файл functions.php.
Удаление вкладок товаров
/** * Удаление ненужных вкладок */ 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_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 '<p>Текст</p>'; }