function get_child_category_list( $parent_id, $level = 0 ) {
$args = array(
'hierarchical' => 1,
'show_option_none' => '',
'hide_empty' => 0,
'parent' => $parent_id,
'taxonomy' => 'product_cat'
);
$subcategories = get_categories( $args );
if ( $subcategories ) {
$output = '<ul class="subcategories level-' . $level . '">';
foreach ( $subcategories as $category ) {
$output .= '<li>';
$output .= '<a href="' . get_term_link( $category ) . '">' . $category->name . '</a>';
$output .= get_child_category_list( $category->term_id, $level + 1 );
$output .= '</li>';
}
$output .= '</ul>';
return $output;
} else {
return '';
}
}
if ( is_product_category() ) {
$parent_id = get_queried_object_id();
echo get_child_category_list( $parent_id );
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'woocommerce-style', get_stylesheet_directory_uri() . '/woocommerce.css', array('parent-style') );
}
.single_add_to_cart_button {
background-color: #ff0000;
}
add_filter( 'woocommerce_checkout_fields', 'add_data_attribute_to_checkout_field', 10, 1 );
function add_data_attribute_to_checkout_field( $fields ) {
$fields['billing']['billing_first_name']['custom_data_attribute'] = 'custom_value';
return $fields;
}
<?php
// получаем объект продукта
$product = wc_get_product( $product_id );
// проверяем, является ли продукт вариативным
if ( $product->is_type( 'variable' ) ) {
// получаем вариации продукта
$variations = $product->get_available_variations();
// выводим цены для каждой вариации
foreach ( $variations as $variation ) {
// получаем объект вариации
$variation_obj = wc_get_product( $variation['variation_id'] );
// выводим обычную цену и цену распродажи
echo 'Обычная цена: ' . $variation_obj->get_regular_price() . '<br/>';
echo 'Цена распродажи: ' . $variation_obj->get_sale_price() . '<br/>';
}
}
?>
<?php
// Получаем содержимое корзины
$cart_items = WC()->cart->get_cart();
// Флаг, показывающий наличие товара в категории "Мастерклаcсы"
$has_workshop_product = false;
// Перебираем все товары в корзине
foreach ( $cart_items as $cart_item ) {
// Получаем объект товара
$product = $cart_item['data'];
// Получаем идентификаторы категорий товара
$category_ids = $product->get_category_ids();
// Проверяем наличие товара в категории "Мастерклаcсы"
if ( in_array( 31, $category_ids ) ) {
$has_workshop_product = true;
break;
}
}
// Отображаем соответствующие поля на странице оформления заказа
if ( $has_workshop_product ) {
// Поля для товаров в категории "Мастерклаcсы"
// ...
} else {
// Стандартные поля для других товаров
// ...
}
?>
add_filter( 'woocommerce_add_to_cart_redirect', 'redirect_to_product_page' );
function redirect_to_product_page() {
global $woocommerce;
$product_url = get_permalink( get_the_ID() );
return $product_url;
}
jQuery(function($) {
// Цепляемся за событие adding_to_cart
$(document.body).on('adding_to_cart', function(event, button) {
// Выцепляем инициатора события (ссылка/кнопка)
var $btn = $(button[0]);
// Пытаемся найти в вёрстке название товара и количество
var product_title = $btn.parents('li.product').find('.woocommerce-loop-product__title').text();
var product_qty = $btn.parents('li.product').find('.input-text.qty.text').val();
if (product_title && product_qty) {
// Формируем шаблон попапа
var tpl = '';
tpl += '<p>' + product_qty + ' шт. товара "' + product_title + '" добавлено в корзину</p>';
tpl += '<div>';
tpl += '<a class="button" onclick="jQuery.unblockUI();">Продолжить</a>';
tpl += '<a href="/shop/cart/" class="button alt">Оформить</a>';
tpl += '</div>';
// Выводим шаблон в модальное окно.
// Используем blockUI из WooCommerce
$.blockUI({
message: tpl,
timeout: 4000,
css: {
width: '300px',
border: 0,
padding: 30
}
});
}
});
});