Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Проверка таба на пустоту

Тема в разделе "Вопросы, советы и доработки.", создана пользователем Kenshi, 13 сен 2016.

Метки:
  1. Kenshi

    Kenshi

    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Всем здравствуйте!
    Подскажите, пожалуйста, специалисты woocommerce начинающему ))
    В карточку товара добавил дополнительную вкладку таба - Модули товара.
    Пример: http://anisola-mebel.ru/product/modulnaya-spalnya-venetsiya

    Если модули есть у товара, то всё отлично, но если же их нет, то показывается пустая вкладка таба, что совсем не устраивает: http://anisola-mebel.ru/product/krovat-s-podyomnyim-mehanizmom-venetsiya

    Код для таба такой (в файле functions.php):

    // удаляем upsells блок и перемещаем его во вкладку ТАБ новую с название Модули
    // Remove the WooCommerce Upsell hook
    remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );

    // Add a custom action to display Upsells
    add_action( 'growdev_after_single_product_summary', 'woocommerce_upsell_display', 15 );

    // A filter to add a custom tab
    add_filter('woocommerce_product_tabs','growdev_add_tab');

    // Callback for add_filter that defines the filter. You can change 'New tab' to the desired
    // tab title
    // growdev_custom_tab is the function callback
    function growdev_add_tab( $tabs ) {
    $tabs['upsell_tab'] = array( 'title' => 'Модули товара',
    'priority' => 1,
    'callback' => 'growdev_custom_tab');
    return $tabs;
    }

    // The function callback for the custom tab.
    // This does the display upsells action inside of the tab
    function growdev_custom_tab($key, $tab) {
    do_action('growdev_after_single_product_summary');
    }

    Сам вопрос: как написать проверку, что если у товара нет модулей, то не выводи вообще эту вкладку?!
    Я не программист, а верстальщик, и не могу понять, как написать (и куда в этом коде воткнуть) проверку на существование модулей.

    Прошу помощи!
    Для знающих код, дело 1й минуты, а я уже 2й день не могу найти решение.
     
  2. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Перед формирование вкладки нужно сделать проверку на наличие upsells у товара.
    Вставьте в свой код проверку из примера ниже.

    Решение для темы Storefront.
    PHP:
    // убираем стандартный вывод апселлов в Storefront
    remove_action'woocommerce_after_single_product_summary''storefront_upsell_display'15 );
    // Фильтр на модификацию заголовков вкладок
    add_filter('woocommerce_product_tabs','growdev_add_tab');
    // Добавляем новую вкладку, если есть апселлы
    function growdev_add_tab$tabs ) {
        
    // Если нет апселлов, то не формируем новую вкладку
        
    global $product;
        if ( ! 
    $product->get_upsells() ) {
            return 
    $tabs;
        }
        
    // Стандартный вывод апселлов в новой вклкдке
        
    add_action'growdev_after_single_product_summary''woocommerce_upsell_display'15 );
        
    $tabs['upsell_tab'] = array( 'title' => 'Модули товара',
        
    'priority' => 1,
        
    'callback' => 'growdev_custom_tab');
    return 
    $tabs;
    }
    // действие для вывода данных новой вкладки
    function growdev_custom_tab($key$tab) {
        
    do_action('growdev_after_single_product_summary');
    }
     
    Последнее редактирование: 13 сен 2016
    • Нравится Нравится x 1
  3. Kenshi

    Kenshi

    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Спасибо, огромное!!!! Всё отлично сработало!!!!