У меня есть категория продуктов, стоимость которых составляет 15 долларов. Когда пользователь покупает от 10 до 20 товаров из этой категории, он должен получить скидку в размере 10 долларов. Когда пользователь покупает 20+, цена снова меняется до 5 долларов. Пользователю не может быть назначена специальная роль (например, оптовый продавец). Я создал код на основе кода LoicTheAzte c из другого вопроса и добавил свои собственные модификации и код. Похоже, должно работать. Я не получаю ошибок, но он не работает.
add_action('woocommerce_before_cart', 'check_product_category_in_cart');
function check_product_category_in_cart() {
// HERE set your product categories in the array (can be IDs, slugs or names)
$categories = array('surfacing-adhesives');
$found = false; // Initializing
$count = 0;
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
// If product categories is found
if ( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
$count++;
}
}
if (!current_user_can('wholesaler')) {
// Discounts
if ($count > 10 && $count < 20) {
// Drop the per item price
$price = 10;
} else if ($count > 20) {
// Drop the per item price
$price = 5;
} else {
// Did not qualify for volume discount
}
}
}