woocommerce_cart_calculate_fees

WooCommerce voert deze action uit tijdens het berekenen van winkelwagenkosten. Code kan via het winkelwagenobject een toeslag toevoegen voordat de definitieve totalen worden vastgesteld.

Kort overzicht

TypeActionhook
OnderdeelWinkelwagenkosten
Argumenten$cart (WC_Cart)
BronWooCommerce-codereferentie

Hoe het werkt

Een callback ontvangt de huidige instantie van WC_Cart en kan $cart->add_fee() aanroepen. Kosten worden samen met de winkelwagen opnieuw berekend. Voeg ze daarom via deze action toe in plaats van een eenmalig totaal op te slaan. De methode add_fee() accepteert een naam, een bedrag, een aanduiding of de kosten belastbaar zijn en eventueel een belastingklasse.

PHP-voorbeeld

add_action( 'woocommerce_cart_calculate_fees', function ( $cart ) {
    if ( is_admin() && ! wp_doing_ajax() ) {
        return;
    }

    if ( $cart->get_subtotal() < 50 ) {
        $cart->add_fee( 'Small order fee', 5 );
    }
} );

Dit voegt vijf eenheden in de winkelvaluta aan niet-belastbare kosten toe wanneer het subtotaal vóór kortingen lager is dan 50. Pas de drempel en belastingbehandeling aan je winkel aan.

Plaats de code in een sitespecifieke plug-in of in het bestand functions.php van een child-thema en test deze vervolgens op een testsite.

Veelvoorkomende valkuilen

Het voorbeeld gebruikt get_subtotal(), dat de artikelprijzen controleert voordat kortingscodes worden toegepast. Een kortingscode die het te betalen bedrag onder 50 brengt, activeert deze toeslag dus niet op zichzelf. Kies welk bedrag je controleert op basis van de vraag of je regel betrekking heeft op het oorspronkelijke artikelsubtotaal of het bedrag dat de klant werkelijk betaalt.

Elke toeslag heeft binnen de winkelwagenberekening een unieke naam nodig. De WooCommerce-methode add_fee() accepteert geen negatief bedrag. Gebruik een kortingscode of een geschikt kortingsmechanisme om prijzen te verlagen, in plaats van een negatieve toeslag aan te maken. De toeslag in het voorbeeld is niet belastbaar, omdat het optionele argument $taxable ontbreekt.

Compatibiliteit

Deze hook wordt uitgevoerd tijdens de berekening van de winkelwagentotalen in WooCommerce, ook wanneer de winkelwagen of afrekenpagina opnieuw moet worden berekend. Test de werking met je betaal- en verzendinstellingen.