Перейти к содержимому

11. WooCommerce

WooCommerce — самый популярный плагин для создания интернет-магазинов на WordPress. Он превращает WP в мощную e-commerce платформу.

Чтобы тема корректно работала с WooCommerce, её нужно объявить.

function yasha_add_woocommerce_support() {
add_theme_support( 'woocommerce' );
add_theme_support( 'wc-product-gallery-zoom' );
add_theme_support( 'wc-product-gallery-lightbox' );
add_theme_support( 'wc-product-gallery-slider' );
}
add_action( 'after_setup_theme', 'yasha_add_woocommerce_support' );

WooCommerce использует свою систему шаблонов. Чтобы переопределить их, создайте папку woocommerce в корне вашей темы.

graph TD
A[Plugin: woocommerce/templates/] --> B{Файл в Теме?}
B -- Да --> C[your-theme/woocommerce/...]
B -- Нет --> D[Использование плагинного шаблона]

Например, для изменения страницы товара: скопируйте single-product.php из плагина в your-theme/woocommerce/single-product.php.

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

Пример: Добавление текста под кнопкой “Купить”

Заголовок раздела «Пример: Добавление текста под кнопкой “Купить”»
add_action( 'woocommerce_after_add_to_cart_button', 'yasha_after_cart_button_text' );
function yasha_after_cart_button_text() {
echo '<p class="shipping-info">Бесплатная доставка от 5000 руб.</p>';
}
// Удаление вывода цены на странице списка товаров
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
$order = wc_get_order( $order_id );
foreach ( $order->get_items() as $item_id => $item ) {
$product_name = $item->get_name();
$quantity = $item->get_quantity();
}
$total = $order->get_total();
  • Используйте add_theme_support( 'woocommerce' ).
  • Переопределяйте шаблоны только в крайнем случае, отдавайте приоритет хукам (add_action, remove_action).
  • Используйте wc_get_product и wc_get_order для получения объектов данных.

Карточки товаров — как в WooCommerce: