Как убрать вариативы из карточки товара WooCommerce без удаления товара

Сценарий типичный: товар нужен в каталоге, но показывать покупателю список вариаций нельзя или неудобно. Например, у вас есть товар с десятками комбинаций, часть из них недоступна, либо нужно оставить выбор размера/цвета только в админке для внутренней работы. Удалять вариативный товар целиком — плохая идея: потеряете историю, SEO-URL, связи с заказами и ручные настройки.

Ниже — рабочие способы скрыть вариативы на фронтенде, не ломая товар в WooCommerce. Разберём, как понять, что именно мешает, какой вариант выбрать и как проверить результат после внедрения.

Когда проблема действительно в вариациях

Сначала стоит убедиться, что речь именно о выводе вариативов, а не о другом элементе карточки. Часто путают:

  • выпадающие списки атрибутов на странице товара;
  • цену, которая меняется при выборе вариации;
  • кнопку «Выбрать параметры» вместо «В корзину»;
  • блок «Нет в наличии» для отдельных вариаций.

Если задача — оставить товар как variable, но не показывать покупателю сами селекты, то решение обычно сводится к одному из трёх подходов: CSS-скрытие, фильтрация шаблона или замена типа отображения на фронтенде через код.

Что проверить перед правкой

  • Товар действительно имеет тип variable, а не простой товар с кастомными полями.
  • Вариации не используются в других местах: в фильтрах, в импорте, в интеграции с остатками.
  • Тема не переопределяет шаблон single-product/add-to-cart/variable.php.

Какой способ выбрать: CSS, шаблон или код

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

ПодходКогда использоватьМинус
CSSНужно срочно скрыть блок на витринеЭлемент остаётся в HTML и может влиять на верстку
Фильтр/шаблонНужно убрать вывод корректноТребует проверки темы и обновлений WooCommerce
Код с логикойНужно менять поведение карточкиНужна аккуратная проверка совместимости

Быстрое решение через CSS

Если задача временная или нужно проверить гипотезу без вмешательства в PHP, можно скрыть блок вариаций стилями. Это не лучший вариант для долгосрочной поддержки, но он безопасен для теста.

.single-product form.variations_form,
.single-product .reset_variations {
    display: none !important;
}

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

Надёжный способ: скрыть вариативы через шаблон

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

Самый практичный сценарий — показать на странице товара только обычную кнопку или текст, а вариации оставить доступными в админке. Для этого можно перехватить шаблон variable.php и заменить его на собственный.

add_filter( 'woocommerce_locate_template', function( $template, $template_name, $template_path ) {
    if ( 'single-product/add-to-cart/variable.php' === $template_name ) {
        $custom = get_stylesheet_directory() . '/woocommerce/single-product/add-to-cart/variable.php';
        if ( file_exists( $custom ) ) {
            return $custom;
        }
    }

    return $template;
}, 10, 3 );

Дальше создайте файл variable.php в дочерней теме и оставьте там только нужный вам вывод. Например, можно показать сообщение о том, что товар доступен только по запросу, или вывести кнопку на форму связи.

<?php
/**
 * Custom variable product template.
 */

defined( 'ABSPATH' ) || exit;

global $product;

if ( ! $product || ! $product->is_type( 'variable' ) ) {
    return;
}
?>

<div class="product-variations-hidden">
    <p>Этот товар доступен в нескольких вариантах. Уточните наличие у менеджера.</p>
    <a class="button" href="/contacts/">Связаться с менеджером</a>
</div>

Такой вариант уже не зависит от CSS и не оставляет стандартную форму выбора на странице.

Если нужно скрыть вариативы только для части товаров

На практике редко требуется прятать вариации везде. Чаще это нужно только для отдельных категорий или товаров с нестандартной логикой. В этом случае лучше проверять ID товара, категорию или метку.

add_filter( 'woocommerce_locate_template', function( $template, $template_name, $template_path ) {
    if ( 'single-product/add-to-cart/variable.php' !== $template_name ) {
        return $template;
    }

    if ( ! is_product() ) {
        return $template;
    }

    $product_id = get_queried_object_id();

    if ( has_term( 'opt', 'product_cat', $product_id ) ) {
        $custom = get_stylesheet_directory() . '/woocommerce/single-product/add-to-cart/variable.php';
        if ( file_exists( $custom ) ) {
            return $custom;
        }
    }

    return $template;
}, 10, 3 );

Здесь шаблон подменяется только для товаров из категории opt. Это удобно, если у вас есть оптовый раздел, товары под заказ или ассортимент, который не должен раскрываться на витрине.

Проверка результата после внедрения

После правки важно проверить не только внешний вид, но и поведение товара в корзине. Вот минимальный чек-лист:

  • страница товара открывается без ошибок PHP;
  • блок выбора вариаций не отображается;
  • кнопка покупки работает так, как задумано;
  • товар не ломает AJAX-обновление цены и наличия;
  • в админке вариации по-прежнему доступны для редактирования;
  • в мобильной версии не осталось пустых отступов после скрытого блока.

Если используете шаблонную подмену, проверьте исходный HTML страницы: стандартная форма variations_form не должна присутствовать. Если скрывали через CSS, убедитесь, что блок не перекрывает другие элементы и не оставляет пустое место под кнопкой.

Как быстро убедиться, что WooCommerce не сломал покупку

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

Частые ошибки и как их исправить

Ошибка 1: скрыли форму CSS-ом, но товар перестал добавляться в корзину. Это ожидаемо, если WooCommerce требует выбор атрибутов. Решение — либо оставить один доступный вариант, либо заменить стандартную покупку на заявку.

Ошибка 2: подменили шаблон, но изменений не видно. Обычно причина в том, что тема уже переопределяет шаблон WooCommerce. Проверьте папку /your-theme/woocommerce/ и очистите кэш.

Ошибка 3: после обновления WooCommerce слетела верстка. Если вы копировали шаблон в тему, его могли изменить в новой версии плагина. Сравните файл с актуальным шаблоном WooCommerce и обновите разметку вручную.

Ошибка 4: скрыли вариации, но цена всё равно меняется странно. Это бывает, если на странице остались скрипты вариативного товара, а разметка формы удалена частично. В таком случае лучше не смешивать CSS-скрытие и частичную правку шаблона.

Безопасность и поддержка

Не редактируйте файлы WooCommerce напрямую в плагине. Любое обновление затрёт изменения. Используйте дочернюю тему или небольшой mu-plugin, если логика должна жить отдельно от темы.

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

<?php
/**
 * Plugin Name: Hide Variable Product Form
 */

add_filter( 'woocommerce_locate_template', function( $template, $template_name, $template_path ) {
    if ( 'single-product/add-to-cart/variable.php' === $template_name ) {
        $custom = WP_CONTENT_DIR . '/mu-plugins/woocommerce/variable.php';
        if ( file_exists( $custom ) ) {
            return $custom;
        }
    }

    return $template;
}, 10, 3 );

Если задача шире и включает удаление дублей карточек, скрытие лишних элементов и чистку витрины, стоит посмотреть в сторону инструментов уровня Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wpcommunity.ru&utm_medium=article&utm_campaign=kak-ubrat-variativy-iz-kartochki-tovara-woocommerce-bez-udaleniya-tovara

Но для конкретной задачи с вариативами чаще всего достаточно шаблона и аккуратной проверки после внедрения. Главное — не путать визуальное скрытие с реальным изменением логики товара: в WooCommerce это разные вещи, и проверять нужно обе.

Автоматическое изменение стоимости товаров WooCommerce по категории
19.07.2026
Как использовать динамический кэшинг в WooCommerce для ускорения загрузки страниц
03.05.2026
Как избежать проблем с разным форматом даты в WooCommerce
13.06.2026
Закрытый доступ к WooCommerce по ролям пользователей
07.05.2026
Как использовать WP-Cron для автоматического удаления старых вариативных товаров WooCommerce
23.06.2026

Задать вопрос о вордпресс, получить ответ - это все можно сделать в нашем сообществе WP. Сайт в данный момент в разработке, изучите ссылки ниже: