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

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

Kenshi

Новичок
#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й день не могу найти решение.
 

searchingman

Гуру
Местный
#2
Перед формирование вкладки нужно сделать проверку на наличие 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');
}
 
Последнее редактирование: