Как в woocommerce сделать одинаковые вкладки ко всем товарам?

Ссылка скопирована
1 ответ

Добрый день!
Есть потребность чтобы по мимо главной вкладки с контентом о товаре (описанием товара) были дополнительные, такие как ДОСТАВКА и ОПЛАТА. И эти дополнительные две вкладки одинаковы для всех товаров.

Делать вручную под все 500 000 товаров - нереально.

Возможно есть какое то штатное решение woocommerce или подходящий плагин?

Дополнительно:

полно плагинов, учись пользоваться оф каталогом

  • полно плагинов, учись пользоваться оф каталогом
  • Ответы:

    Последний код из этой статьи должен помочь
    https://wordsmall.ru/woocommerce/woocommerce-vklad...

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    В WooCommerce одинаковые вкладки для всех товаров лучше добавлять кодом через фильтр woocommerce_product_tabs. Это нормальное штатное решение: не нужно вручную заполнять 500 000 товаров и не нужно дублировать один и тот же текст в базе.

    Пример для вкладок “Доставка” и “Оплата”:

    add_filter('woocommerce_product_tabs', function ($tabs) {
        $tabs['delivery'] = [
            'title'    => 'Доставка',
            'priority' => 50,
            'callback' => 'my_delivery_tab_content',
        ];
     
        $tabs['payment'] = [
            'title'    => 'Оплата',
            'priority' => 60,
            'callback' => 'my_payment_tab_content',
        ];
     
        return $tabs;
    });
     
    function my_delivery_tab_content() {
        echo '<h2>Доставка</h2>';
        echo '<p>Опишите условия доставки для всех товаров.</p>';
    }
     
    function my_payment_tab_content() {
        echo '<h2>Оплата</h2>';
        echo '<p>Опишите способы оплаты.</p>';
    }

    add_filter('woocommerce_product_tabs', function ($tabs) { $tabs['delivery'] = [ 'title' => 'Доставка', 'priority' => 50, 'callback' => 'my_delivery_tab_content', ]; $tabs['payment'] = [ 'title' => 'Оплата', 'priority' => 60, 'callback' => 'my_payment_tab_content', ]; return $tabs; }); function my_delivery_tab_content() { echo '<h2>Доставка</h2>'; echo '<p>Опишите условия доставки для всех товаров.</p>'; } function my_payment_tab_content() { echo '<h2>Оплата</h2>'; echo '<p>Опишите способы оплаты.</p>'; }

    Код лучше разместить в дочерней теме или в небольшом плагине. Если текст вкладок должен редактироваться из админки, сделайте отдельные страницы “Доставка” и “Оплата” и выводите их контент внутри вкладок через get_post().

    Если для части товаров вкладки должны отличаться, добавьте условия по категории товара:

    if (has_term('digital', 'product_cat', get_the_ID())) {
        // другая вкладка или другой текст
    }

    if (has_term('digital', 'product_cat', get_the_ID())) { // другая вкладка или другой текст }

    Плагины тоже есть, но для двух одинаковых вкладок код проще, быстрее и не создаёт лишней нагрузки на каталог.

    Если магазин огромный, особенно с сотнями тысяч товаров, это принципиально: вкладка через фильтр не создаёт дополнительные записи в базе для каждого товара. Вы меняете текст в одном месте, и он сразу обновляется на всех карточках. После внедрения проверьте простой товар, вариативный товар и товар без описания, чтобы вкладки не конфликтовали с основной вкладкой WooCommerce.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно