WooCommerce — самый популярный плагин для создания интернет-магазинов на WordPress. Если вы разрабатываете собственную тему, важно грамотно интегрировать WooCommerce, чтобы магазин корректно отображался и имел полный функционал. В этой статье разберём, как добавить поддержку WooCommerce в свою тему с нуля, какие хуки и функции использовать, а также как кастомизировать шаблоны и стили.
Почему важна интеграция WooCommerce в тему WordPress
WooCommerce добавляет множество новых типов страниц, шаблонов, стилей и скриптов. Без поддержки в теме магазин может выглядеть сломанным или неотформатированным. Интеграция позволяет:
- Активировать стили WooCommerce или заменить их своими;
- Создавать собственные шаблоны для страниц магазина, товара, корзины;
- Поддерживать виджеты и хуки WooCommerce;
- Оптимизировать загрузку и производительность для магазина.
Добавление поддержки — это обязательный шаг при разработке темы, ориентированной на e-commerce.
Шаг 1. Объявляем поддержку WooCommerce в теме
Для начала в файле functions.php своей темы нужно зарегистрировать поддержку плагина. Это позволит WooCommerce подключать свои стили и скрипты, а также активировать функционал.
function wptheme_add_woocommerce_support() {
add_theme_support('woocommerce');
}
add_action('after_setup_theme', 'wptheme_add_woocommerce_support');После этого WooCommerce распознает вашу тему как совместимую и подключит базовые стили.
Шаг 2. Отключаем стандартные стили WooCommerce (по желанию)
Если вы хотите полностью контролировать стили и не использовать стандартные CSS плагина, можно отключить их подключение:
function wptheme_dequeue_woocommerce_styles() {
wp_dequeue_style('woocommerce-general');
wp_dequeue_style('woocommerce-layout');
wp_dequeue_style('woocommerce-smallscreen');
}
add_action('wp_enqueue_scripts', 'wptheme_dequeue_woocommerce_styles', 99);После этого вы пишете свои стили для элементов магазина, чтобы добиться уникального дизайна.
Шаг 3. Копируем и кастомизируем шаблоны WooCommerce
WooCommerce использует шаблоны из папки woocommerce/templates. Чтобы изменить вывод, скопируйте нужные файлы в папку вашей темы /woocommerce/, сохраняя структуру.
Например, чтобы изменить шаблон страницы товара, скопируйте single-product.php и content-single-product.php в wp-theme/woocommerce/ и редактируйте их.
Это самый гибкий способ настроить дизайн и структуру страниц магазина.
Шаг 4. Используем хуки и фильтры WooCommerce для кастомизации
WooCommerce предлагает множество хуков (actions и filters), позволяющих добавлять или удалять элементы в шаблонах без изменения файлов.
Например, чтобы убрать описание товара из страницы, используйте:
function wptheme_remove_product_description() {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
}
add_action('init', 'wptheme_remove_product_description');Чтобы добавить блок с дополнительной информацией после цены:
function wptheme_add_custom_info_after_price() {
echo '<div class="custom-info">Бесплатная доставка при заказе от 5000 рублей</div>';
}
add_action('woocommerce_single_product_summary', 'wptheme_add_custom_info_after_price', 25);<Основные хуки для кастомизации страницы товара
woocommerce_before_single_product— перед всем контентом товара;woocommerce_single_product_summary— основное содержимое (название, цена, описание);woocommerce_after_single_product— после всего товара;woocommerce_before_shop_loop— перед списком товаров;woocommerce_after_shop_loop— после списка товаров.
Шаг 5. Поддержка виджетов WooCommerce в боковой панели темы
Для полноценной интеграции удобно зарегистрировать сайдбар, в который можно добавить виджеты магазина (фильтры, поиск, категории).
function wptheme_register_woocommerce_sidebar() {
register_sidebar(array(
'name' => 'WooCommerce Sidebar',
'id' => 'woocommerce-sidebar',
'before_widget' => '<div class="widget woocommerce-widget">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>'
));
}
add_action('widgets_init', 'wptheme_register_woocommerce_sidebar');В шаблонах магазина подключайте сайдбар вызовом:
if ( is_active_sidebar( 'woocommerce-sidebar' ) ) {
dynamic_sidebar( 'woocommerce-sidebar' );
}<Шаг 6. Оптимизация производительности и загрузки
WooCommerce добавляет много CSS и JS, которые не всегда нужны на всех страницах. Рекомендуется загружать их только на страницах магазина.
Пример условной загрузки стилей и скриптов:
function wptheme_conditional_woocommerce_assets() {
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
wp_dequeue_style('woocommerce-general');
wp_dequeue_script('wc-cart-fragments');
}
}
add_action('wp_enqueue_scripts', 'wptheme_conditional_woocommerce_assets', 99);Это значительно улучшит скорость загрузки главной и других страниц.
Полезные плагины для расширения возможностей WooCommerce в теме
- Clearfy Pro — оптимизация и отключение ненужных функций WooCommerce для ускорения сайта. Подробнее: https://wpshop.ru/plugins/clearfy-pro/
- WPGPT — генерация описаний товаров с помощью ИИ прямо в админке WooCommerce. Подробнее: https://wpshop.ru/plugins/wpgpt/
- ABC Pagination — улучшенная пагинация для списка товаров в каталогах WooCommerce. Подробнее: https://wpshop.ru/plugins/abc-pagination/
Итоги
Добавление поддержки WooCommerce в свою тему — задача обязательная для корректной работы магазина. Используйте add_theme_support('woocommerce'), копируйте и кастомизируйте шаблоны, применяйте хуки для управления выводом и не забывайте об оптимизации загрузки ресурсов.
Так вы создадите удобный, красивый и производительный интернет-магазин на базе собственной темы WordPress.