Поддержка Проблемы и решения Как скрыть пустые вкладки woocommerce

  • Решено Дмитрий

    (@pro100ta)


    Здравствуйте!

    Добавляю дополнительные вкладки в товары woocommerce через function.php. Дополнительные вкладки добавляются нормально (использую плагин acf), но хочу чтобы сами вкладки добавлялись только если в них есть содержимое. например, у некоторых товаров есть схема, но в большинстве товаров схемы не будет. Однако, вкладка с пустым содержимым отображается.

    Заранее благодарен.

    add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
    function woo_new_product_tab( $tabs ) {
     
    	// Adds the new tab
     
    	$tabs['test_tab'] = array(
    		'title' 	=> __( 'Схема', 'woocommerce' ),
    		'priority' 	=> 50,
    		'callback' 	=> 'woo_new_product_tab_content'
    	);
     
    	return $tabs;
     
    }
    function woo_new_product_tab_content() {
     
    	// The new tab content
     
    	echo '<h2>Схема</h2>';
    	echo '<p>Привет</p>';
    	echo the_field('shema');
     
    }
    • Тема изменена 11 месяцев назад пользователем Дмитрий.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • добавляй вкладки плагином только в нужных товарах

    Какой сейчас лучший плагин по этой проблеме?

    Ты серьезно думаешь, что в мире есть человек, который сравнил эту сотню плагинов и решил какой из них лучший?

    А почему ты решил, что лучшый для этого человека плагин, станет лучшим и для тебя?

    Сделал. Пока работает. Может быть будет кому интересно.

    add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
    function woo_new_product_tab( $tabs ) {
     
    	// Adds the new tab
     if( get_field('shema') ) {
    	 
    	$tabs['test_tab'] = array(
    		'title' 	=> __( 'Схема', 'woocommerce' ),
    		'priority' 	=> 50,
    		'callback' 	=> 'woo_new_product_tab_content'
    	);
    
    	 
    	return $tabs; 
    	} else { 
    	 
    	 $tabs['test_tab'] = array(
    		'title' 	=> __( '' ),
    		'priority' 	=> 50,
    		'callback' 	=> 'woo_new_product_tab_content'
    	);
    
    	 return $tabs; 
     }
    	
     
    }
    function woo_new_product_tab_content() { 
    	
    	echo '<img src="' . get_field('shema') . '"/>';
     
    }

    Что скажете, народ, по коду? Нормально или чего-нибудь подправить надо?

    По плагину. Плагин скорей всего будет узконаправленным. Такие иногда перестают обновлять авторы и появляется большая проблема. Если вы или кто-то другой подскажете рабочий, хорошообновляемый плагин, от проверенных производителей — буду рад.

    Можно загуглить, но часто в блогах пишет абы кто. На этом форуме доверия больше.

    Мда, твой самописный код конечно же будкт обновляться каждую среду -)))

    Вроде через дочернюю тему делаю. Не должно так быть )

    Не должно так быть )

    так я о том же. Достаточно странно говорить об обновлениях человеку, который весь сайт костылями утыкал.

    Woocommerce из костылей (хуков и фильтров) и состоит более чем целиком. Решение для woo правильное, хотя может и не оптимальное.

    Решение для woo правильное, хотя может и не оптимальное.

    Что посоветуете в качестве оптимального?

    Оптимально использовать классы 🙂

    И свойства объекта класса как замену глобальной переменной для хранения локального филда. Или, в идеале, использовать get_post_meta вместо get_field. Я сталкивался с тем, что ACF плохо кэширует поля, в итоге требуются лишние запросы к базе.

    Спасибо.

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Как скрыть пустые вкладки woocommerce» закрыта для новых ответов.