Potrebno je bilo složiti da na dva ili više proizvoda iz iste kategorije se doda neki popust u postocima. Snipet uzima ukupnu cijenu svih proizvoda iz iste kategorije te izračunava popust samo ako u košarici ima više od dva proizvoda.
Primjer prikazuje da su u košaici dva proizvoda iz različitih kategorija, a samo na kategoriju "slikovnica" se računa popust.
add_action( 'woocommerce_cart_calculate_fees', 'add_discount_for_slikovnica_category' );
function add_discount_for_slikovnica_category( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ){return;}
$discount = 50; $category = 'slikovnica';
$total = 0; $count = 0;
foreach ( $cart->get_cart() as $cart_item ) {
$product_categories = get_the_terms( $cart_item['product_id'], 'product_cat' );
foreach ( $product_categories as $product_category ) {
if ( $product_category->slug == $category ) {
$total += $cart_item['line_total'];
$count = $count + $cart_item['quantity'];
}
}
}
if ( $count >= 2 ) {
$discount_amount = ( $total * $discount ) / 100;
$cart->add_fee( 'Popust na '.$count.' slikovnice ('.$total.' - ' . $discount . '%)', -$discount_amount );
}
}