Как отключить сравнение товаров в WooCommerce без плагинов

Диагностика проблемы: зачем отключать сравнение товаров в WooCommerce

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

Определяем источник функции сравнения товаров

Для начала нужно понять, откуда вообще берётся функционал сравнения в вашем магазине:

  • Активирован ли плагин сравнения (например, WooCommerce Compare, YITH WooCommerce Compare и другие).
  • Добавляет ли тема функцию сравнения по умолчанию.
  • Используются ли кастомные скрипты или хуки в functions.php для реализации сравнения.

Проверить наличие соответствующих плагинов можно в wp-admin/plugins.php. Если плагинов нет, смотрим в файлах темы (обычно functions.php или папка inc) наличие функций с ключевым словом compare, compare_products и т.п.

Пошаговое решение: отключение сравнения товаров без плагинов

1. Отключение через functions.php

Если функция сравнения добавлена через хук, можно удалить её следующим кодом в functions.php активной темы (желательно дочерней):

function disable_product_comparison() {
    // Пример для удаления действия, добавляющего кнопку сравнения
    remove_action('woocommerce_after_shop_loop_item', 'yourtheme_compare_button_function', 20);
    // Удаляем скрипты и стили сравнения, если они подключены
    wp_dequeue_script('compare-scripts-handle');
    wp_dequeue_style('compare-styles-handle');
}
add_action('wp_enqueue_scripts', 'disable_product_comparison', 100);

Замените yourtheme_compare_button_function и compare-scripts-handle на реальные имена функций и хендлов. Их можно найти через просмотр исходника страниц и файлов темы.

2. Удаление шорткодов сравнения

Если на страницах используется шорткод сравнения, его можно отключить так:

remove_shortcode('compare_products');

Добавьте этот код в functions.php. Это предотвратит отображение шорткода, если он используется.

3. Удаление виджетов сравнения

Если в сайдбаре есть виджет сравнения, удалите его в Внешний вид > Виджеты или через код:

function unregister_compare_widgets() {
    unregister_widget('WC_Widget_Product_Compare');
}
add_action('widgets_init', 'unregister_compare_widgets', 11);

Убедитесь, что класс виджета существует, иначе этот код вызовет ошибку.

4. Очистка сессий и cookie

Функции сравнения часто используют сессии или cookie для хранения выбранных товаров. Можно очистить эти данные, чтобы полностью убрать остатки функционала:

function clear_compare_session() {
    if ( isset($_COOKIE['compare_products']) ) {
        setcookie('compare_products', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN);
    }
    if ( isset($_SESSION['compare_products']) ) {
        unset($_SESSION['compare_products']);
    }
}
add_action('init', 'clear_compare_session');

Этот код удалит куки и сессионные данные с ключом compare_products, если они есть.

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

  1. Обновите кэш сайта и браузера.
  2. Перейдите на страницу каталога и убедитесь, что кнопки или ссылки сравнения товаров отсутствуют.
  3. Проверьте исходный код страницы (Ctrl+U), чтобы в HTML не было элементов сравнения.
  4. Убедитесь, что при добавлении товаров в сравнение куки не создаются (через инструменты разработчика в браузере).
  5. Если были виджеты, они должны исчезнуть из боковых панелей.

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

  • Ошибка: Кнопки сравнения всё ещё отображаются.
    Причина: Скрытие через CSS или JavaScript, а не через удаление функций.
    Решение: Найдите и удалите PHP-обработчики, отключите скрипты и стили.
  • Ошибка: Ошибки PHP после вставки кода.
    Причина: Использование неправильных имён функций или классов.
    Решение: Проверьте точные имена в теме и плагинах, используйте function_exists() и class_exists() для проверки перед удалением.
  • Ошибка: Операция не работает из-за кэширования.
    Решение: Очистите кэш сайта и браузера, выключите кэширующие плагины на время теста.

Практические советы по производительности и безопасности

  • Удаляйте неиспользуемые скрипты и стили сравнения, чтобы не нагружать фронтенд.
  • Очистка сессий и cookie предотвратит утечки данных и сохранение устаревших параметров.
  • Используйте дочернюю тему для внесения изменений, чтобы не потерять их при обновлениях.
  • Регулярно проверяйте работу сайта после обновлений темы и WooCommerce, чтобы избежать возвращения функционала сравнения.

Сравнение способов отключения сравнения товаров

МетодПлюсыМинусы
Удаление через functions.phpПолный контроль, без плагиновТребует знаний, поиск правильных функций
Отключение плагина сравненияПростота, быстрое отключениеПотеря других функций плагина, если нужны
Удаление виджетов через админкуБез кода, удобно для новичковМожет не убрать кнопки в товарах или шорткод
Почему в WooCommerce не отправляются письма о возврате средств и как это исправить
20.04.2026
Как создать автоматический Sitemap в WordPress с помощью кода
07.01.2026
Как сделать автоматическое удаление старых черновиков в WordPress
27.02.2026
Как отключить автозаполнение форм в WordPress
05.04.2026
Как изменить URL страницы регистрации WordPress без плагинов
07.12.2025

Хотите научиться создавать сайты и зарабатывать на этом от 30 000 рублей в месяц?

Записаться на курс сейчас