Tabs в карточке товаров на сайте WordPress
Есть сайт на WordPress с модулем интернет-магазина WooCommerce и на нем шаблон WoodMart.
Сейчас отображается так (скрин во вложении)
Нужно поменять tab местами: Описание, Характеристики, Доставка и оплата, Как выбрать размер, Отзывы.
Код, отображаемый на странице:
А вот код ёё формирования:
<div class="woocommerce-tabs wc-tabs-wrapper tabs-layout-<?php echo esc_attr( $tabs_layout ); ?>">
<ul class="tabs wc-tabs">
<?php foreach ( $product_tabs as $key => $product_tab ) : ?>
<li class="<?php echo esc_attr( $key ); ?>_tab <?php echo $tab_count === 0 ? 'active' : ''; ?>">
<a href="#tab-<?php echo esc_attr( $key ); ?>"><?php echo apply_filters( 'woocommerce_product_' . $key . '_tab_title', esc_html( $product_tab['title'] ), $key ); ?></a>
</li>
<?php $tab_count++; ?>
<?php endforeach; ?>
</ul>
<?php foreach ( $product_tabs as $key => $product_tab ) : ?>
<div class="woodmart-tab-wrapper">
<a href="#tab-<?php echo esc_attr( $key ); ?>" class="woodmart-accordion-title tab-title-<?php echo esc_attr( $key ); ?> <?php echo $content_count === 0 ? 'active' : ''; ?>"><?php echo apply_filters( 'woocommerce_product_' . $key . '_tab_title', esc_html( $product_tab['title'] ), $key ); ?></a>
<div class="woocommerce-Tabs-panel woocommerce-Tabs-panel--<?php echo esc_attr( $key ); ?> panel entry-content wc-tab" id="tab-<?php echo esc_attr( $key ); ?>">
<div class="wc-tab-inner
<?php
if ( $scroll ) {
echo 'woodmart-scroll';}
?>
">
<div class="<?php echo true == $scroll ? 'woodmart-scroll-content' : ''; ?>">
<?php call_user_func( $product_tab['callback'], $key, $product_tab ); ?>
</div>
</div>
</div>
</div>
<?php $content_count++; ?>
<?php endforeach; ?>
<?php do_action( 'woocommerce_product_after_tabs' ); ?>
</div>
Ответы (1 шт):
Автор решения: KAGG Design
→ Ссылка
В целом, в любой теме под WooCommerce можно поменять порядок вкладок. Добавьте такой код в functions.php вашей дочерней темы:
/**
* Filter WooCommerce product tabs.
*
* @param array $tabs Tabs.
*
* @return array
*/
function my_woocommerce_product_tabs( $tabs ) {
$new_tabs['reviews'] = $tabs['reviews'];
$new_tabs['description'] = $tabs['description'];
return $new_tabs;
}
add_filter( 'woocommerce_product_tabs', 'my_woocommerce_product_tabs', PHP_INT_MAX );
В примере создаётся новый массив вкладок и изменяется их порядок: сначала reviews, затем descriptions.
У вас вкладок больше, ключи массива вкладок вы можете узнать, вставив var_dump( $tabs ) в начало функции.

