• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Переименовать вкладку Additional Information

ymacker

Новичок
Тема Bridge, шаблон Summer Sales http://bridge48.qodeinteractive.com/

1. Не удаётся переименовать (руссифицировать) вкладку additional_information, простым добавлением сниппета в function.php ничего не решается.
Код:
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {

    $tabs['description']['title'] = __( 'More Information' );        // Rename the description tab
    $tabs['reviews']['title'] = __( 'Ratings' );                // Rename the reviews tab
    $tabs['additional_information']['title'] = __( 'Product Data' );    // Rename the additional information tab

    return $tabs;

}
Первые 2 вкладки меняются на раз, а последняя нет. Наверняка кто-то уже спрашивал этот вопрос, но поиск дал ссылки на темы, где эту вкладку пытаются скрыть со страницы регистрации. Надеюсь на Вашу помощь.
 

Useer72

Опытный
Местный
что значит русифицировать если сайт целиком на английском? ааа, это на тему ссылка что ли... нафига она тут?
чем poedit не устраивает? или saywhat?
 

ymacker

Новичок
что значит русифицировать если сайт целиком на английском? ааа, это на тему ссылка что ли... нафига она тут?
чем poedit не устраивает? или saywhat?
Считай, что я просто пытаюсь переименовать табу из additional information в характеристики без применения плагинов. Как это сделать?
 

Useer72

Опытный
Местный
Как это сделать?
Ну уж точно не через function.php имхо!
И да, poedit это не плагин:D

Ради интереса, попробовал на тестовом сайте твой код - у меня сработал нормально))))
Только переименовывает он название самой вкладки, а внутри остаются старые значения, поэтому poedit в данном случае предпочтительнее, как ни крути!
 

Вложения

  • Безымянный.png
    Безымянный.png
    7 KB · Просмотры: 7
Последнее редактирование:

ymacker

Новичок
Начнём с простого:
1. на голом woo сниппет работает.
2. это делается либо плагином, либо через function.php других вариантов не встречал
3. poedit мне не нужен, впихнуть кириллицу там где она нужна, я могу и без доп. инструмента
4. менять данные внутри вкладки мне не нужно, нужно переименовать саму вкладку

Как итог. С моей темой (Bridge) сниппет не отрабатывает, осталось понять почему
 

ADv

Гуру
Местный
Начнём с простого:
1. на голом woo сниппет работает.
2. это делается либо плагином, либо через function.php других вариантов не встречал
3. poedit мне не нужен, впихнуть кириллицу там где она нужна, я могу и без доп. инструмента
4. менять данные внутри вкладки мне не нужно, нужно переименовать саму вкладку

Как итог. С моей темой (Bridge) сниппет не отрабатывает, осталось понять почему
Поищите по файлам своей темы woocommerce_product_tabs
 

ymacker

Новичок
Поищите по файлам своей темы woocommerce_product_tabs
есть additional-information.php
Код:
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

global $product;

$heading = apply_filters( 'woocommerce_product_additional_information_heading', '' );
?>

<?php if ( $heading ) : ?>
    <h3><?php echo esc_html($heading); ?></h3>
<?php endif; ?>

<?php
// WooCommerce plugin changed hooks in 3.0 version and because of that we have this condition
if ( version_compare( WOOCOMMERCE_VERSION, '3.0' ) >= 0 ) {
    do_action( 'woocommerce_product_additional_information', $product );
} else {
    $product->list_attributes();
}
?>
и есть tabs.php
Код:
$tabs = apply_filters( 'woocommerce_product_tabs', array() );
$single_type = qode_woocommerce_single_type();
$tabs_position_class = 'left';
if($single_type == 'tabs-on-bottom'){
    $tabs_position_class = 'center';
}

if ( ! empty( $tabs ) ) : ?>
    <?php if($single_type != '') { ?>
        <div class="q_tabs horizontal <?php echo esc_attr__($tabs_position_class);?>">
            <ul class="tabs-nav">
                <?php foreach ( $tabs as $key => $tab ) : ?>
                    <li class="<?php echo esc_attr( $key ); ?>_tab">
                        <a href="#tab-<?php echo esc_attr( $key ); ?>"><?php echo apply_filters( 'woocommerce_product_' . $key . '_tab_title', esc_html( $tab['title'] ), $key ); ?></a>
                    </li>
                <?php endforeach; ?>
            </ul>
            <div class="tabs-container">
                <?php foreach ( $tabs as $key => $tab ) : ?>
                    <div class="tab-content" id="tab-<?php echo esc_attr( $key ); ?>">
                        <?php call_user_func( $tab['callback'], $key, $tab ); ?>
                    </div>
                <?php endforeach; ?>
            </div>
        </div>
    <?php } else { ?>

        <div class="q_accordion_holder toggle boxed woocommerce-accordion">
            <?php foreach ( $tabs as $key => $tab ) : ?>

                <h6 class="title-holder clearfix <?php echo esc_attr($key) ?>_tab">
                    <span class="tab-title"><?php echo apply_filters( 'woocommerce_product_' . $key . '_tab_title', esc_html( $tab['title'] ), $key ); ?></span>
                </h6>
                <div class="accordion_content">
                    <div class="accordion_content_inner">
                        <?php call_user_func( $tab['callback'], $key, $tab ) ?>
                    </div>
                </div>

            <?php endforeach; ?>
        </div>

    <?php } ?>

<?php endif; ?>
Первый, насколько я понял, стилизует и определяет то, как будет выглядеть вкладка additional information, т.е. делает подзаголовок H3 и выдаёт список атрибутов.
 

ADv

Гуру
Местный
Попробуйте в файле additional-information.php
строку
PHP:
$heading = apply_filters( 'woocommerce_product_additional_information_heading', '' );
изменить на
PHP:
$heading = esc_html( apply_filters( 'woocommerce_product_additional_information_heading', __( 'Дополнительная информация', 'woocommerce' ) ) );

Ну или просто в одинарные кавычки добавить текст.
 

ymacker

Новичок
Попробуйте в файле additional-information.php
строку
PHP:
$heading = apply_filters( 'woocommerce_product_additional_information_heading', '' );
изменить на
PHP:
$heading = esc_html( apply_filters( 'woocommerce_product_additional_information_heading', __( 'Дополнительная информация', 'woocommerce' ) ) );

Ну или просто в одинарные кавычки добавить текст.
Не сработало
 

ADv

Гуру
Местный
Сделайте бекап этого файла и вставьте туда вместо всего кода следующее
PHP:
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

global $product;

$heading = esc_html( apply_filters( 'woocommerce_product_additional_information_heading', __( 'Additional information', 'woocommerce' ) ) );

?>

<?php if ( $heading ) : ?>
    <h2><?php echo $heading; ?></h2>
<?php endif; ?>

<?php do_action( 'woocommerce_product_additional_information', $product ); ?>
после чего воспользуйтесь кодом из своего первого сообщения.
 

Useer72

Опытный
Местный
пойди простым путем - найди все упоминания Additional Information через тот же Notepad++ и пробегись по ним, не думаю что больше 5 совпадений будет. Там уже логически или методом исправления значений найдешь. Я бы с этого начал, чем на кофейной гуще гадать сидеть! Этот способ еще не подводил ни разу.
 

ymacker

Новичок
Сделайте бекап этого файла и вставьте туда вместо всего кода следующее
PHP:
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

global $product;

$heading = esc_html( apply_filters( 'woocommerce_product_additional_information_heading', __( 'Additional information', 'woocommerce' ) ) );

?>

<?php if ( $heading ) : ?>
    <h2><?php echo $heading; ?></h2>
<?php endif; ?>

<?php do_action( 'woocommerce_product_additional_information', $product ); ?>
после чего воспользуйтесь кодом из своего первого сообщения.
Поотлетало буквально всё ))), вкладки пропали, фото товара тоже. Так, понял в чём дело, в Вашем коде <?php вначале строки нет. Сейчас проверю
 

ymacker

Новичок
Видимо, неверно вставили

Воспользуйтесь файлом из аттача
Думаю, что тут дело уже не в теме, а в самой функции additional_information реализованной на WC 3.0 и старше. Сама функция реализована в wc-template-functions.php
Код:
function woocommerce_product_additional_information_tab() {
    wc_get_template( 'single-product/tabs/additional-information.php' );
}
и используется
Код:
if ( !function_exists( 'woocommerce_product_additional_information_tab' ) ) {
    require_once '/includes/wc-template-functions.php';
}
 
 
// NOTICE! Understand what this does before running.
$result = woocommerce_product_additional_information_tab();
 

Useer72

Опытный
Местный
Думаю, что тут дело уже не в теме, а в самой функции additional_information реализованной на WC 3.0 и старше
А я думаю что все таки в теме, на других же темах код отрабатывает нормально.
 
Последнее редактирование:

Useer72

Опытный
Местный
Мой тебе совет - поставь WooCommerce Customizer и назови как хочешь эту табу:)
 
Сверху Снизу