Woocommerce - переименовать вкладку товара в соответствии с выбранной категорией товара

Я надеялся переименовать вкладку ОПИСАНИЕ продукта по умолчанию на странице одного продукта в другое имя в соответствии с выбранной категорией продукта.

Я изначально выходил из следующей функции WC, чтобы переименовать вкладку описания по умолчанию:

add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {

    $tabs['description']['title'] = __( 'More Information' );   // Rename the description tab

    return $tabs;

} 

Теперь я хотел бы добиться, чтобы, если продукт был отнесен к категории "Книги", тогда название вкладки описания изменилось бы на "Об этой книге". Затем, если продукт назначен категории "Видео", вкладка изменится на "Об этом видео", а если продукт будет присвоен какой-либо другой категории, имя вкладки изменится на "Дополнительная информация".

Я попытался изменить код, и вот что я придумал:

add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {

    global $product, $woocommerce;

    if ( is_product_category() ) {

        if ( is_product_category( 'books' ) ) {
           $tabs['description']['title'] = __( 'About this book' );
        } elseif ( is_product_category( 'videos' ) ) {
           $tabs['description']['title'] = __( 'About this video' );  
        } else {
           $tabs['description']['title'] = __( 'More Information' );
        }
    }

    return $tabs;
}

Но, к сожалению, это не работает, так как имя вкладки все еще "Описание"

Что я делаю неправильно?

1 ответ

Решение

Изменить:

 is_product_category( 'books' ) to has_term( 'books', 'product_cat' )
 is_product_category( 'videos' ) to has_term( 'videos', 'product_cat' )

и это должно работать.

Функция is_product_category возвращает true только при просмотре страницы категории продукта. Но вы находитесь на странице одного продукта, поэтому он возвращает FALSE.

Другие вопросы по тегам