Задать вопрос
@alexiusgrey

Как сделать видимой вкладку General для вариативного товара?

Я знаю, что первый вопрос будет "зачем". Затем, что в дочерней теме без доступа к родительской баг, который выводит в каталог цену со скидкой для простых товаров, а для вариативных нет.
Методом экспериментов нашли, что если временно сделатб вариативный товар простым, поставить обычную и скидочную цену во вкладке general, сохранить, обратно вернуть на вариативный, то все работает.
И клиенты просят сделать эту вкладку видимой в вариативном товаре, чтобы не переключаться на простой.
На самом деле вкладка эта есть и для вариативных товаров, просто она скрытая стилями и классами, ее просто нужно открыть для вариативных товаров.
Приоритет тут "как быстрее", а не "как по фэншую".

Что уже перепробовал

function art_added_tabs( array $tabs ): array {

    $tabs['general'] = [
        'label'    => 'General', 
        'target'   => 'general_product_data',  
        'class'    => [ 'show_if_variable show_if_simple' ],  
        'priority' => 5, // 
    ];

    return $tabs;
}

add_filter( 'woocommerce_product_data_tabs', 'art_added_tabs', 10, 1 );

и так
add_filter('woocommerce_product_data_tabs', function($tabs) {
    $tabs['general'] = [
        'label' => __('General', 'txtdomain'),
        'target' => 'general_product_data',
        'class' => ['show_if_variable show_if_simple'],
        'priority' => 25
    ];
    return $tabs;
});

и так
add_filter('woocommerce_product_data_tabs', 'misha_product_data_tabs' );
function misha_product_data_tabs( $tabs ){
 
    $tabs['general']['class'][] = 'show_if_variable show_if_simple';
    return $tabs;
 
}


и так
add_action( 'admin_footer', 'show_hide_general_tab' );
function show_hide_general_tab() {
    ?>
    <script type="text/javascript">
        function showHideGeneralTab() {           
                jQuery('li.general_options.general_tab').show();             
                jQuery('li.general_options.general_tab').attr('style','display:block!important'); 
                jQuery('li.general_options.general_tab').removeClass('hide_if_grouped');  
            }     
        
        // runs the script when the page loads
        showHideGeneralTab();
    </script>
    <?php }


Где ошибаюсь? Ну, кроме самой кустарной идеи делать открытый таб.
  • Вопрос задан
  • 17 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы