Voor een webshop zou ik onderstaande code moeten kunnen gebruiken:
Tussen 1 en 6 items in winkelmandje: 8.7 verpakkingskost
Tussen 7 en 12 items in winkelmandje: 10.59 verpakkingskost
Enz.
Ik heb voorlopig enkel dit: (code waarmee ik vaste kost (€0,10) per item reken)
Momenteel gebruik ik onderstaande code (waarvoor dank Jan de Laet)
Wanneer het totaal aantal items in het winkelmandje tussen de 1 en 6 is, komen hier inderdaad 8,7 euro kosten bij.
Maar wanneer er meer dan 6 items zijn, veranderen deze kosten niet naar 10,59...
Enig idee hoe dit op te lossen is?
add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees');
function add_custom_fees( WC_Cart $cart ){
$fees = 0;
$aantal_items = 0;
foreach( $cart->get_cart() as $item ){
$aantal_items = $aantal_items +1;
}
if ($aantal_items >= 1 and $aantal_items <= 6) {$fees = 8.7;}
if ($aantal_items >= 7 and $aantal_items <= 12) {$fees = 10.59;}
$cart->add_fee( 'Verpakkingskosten', $fees);
}
Wat was je aantal items?
De regels die ik heb voorgesteld gaan maar tot en met 12 items. Dus als je er meer items hebt dan 12 wordt er geen fees berekend.
Je zult dus regels toe moeten voegen na regel 11.
Dan zul je wat anders moeten doen bij $cart->get_cart() as $item, om te bepalen wat er besteld is.
En dan $aantal_items + 1 vervangen door $aantal_items + $besteld.
Ik ken woocommerce niet, maar snelle google levert $item['quantity'] op, dus dan zou regel 7 worden
$aantal_items = $aantal_items + $item['quantity'];
*** toevoeging ***
Als ik verder google, in plaats van de foreach zou dit ook moeten kunnen:
$aantal_items = $cart->cart_contents_count;