Woocommerce: Vis fee i cart med negative værdier
Jeg har i et tema opsat nogle funktioner hvor jeg med add_fee tilføjer en rabat. Rabatten er varibel og bliver aktiveret med udgangspunkt i de produkter som kunden har tilføjet i sin kurv. Standard i dine woo tema filer er det formentlig “wc_cart_totals_fee_html” som printer fee value og det er som sådan også fint nok hvis det er + værdi. Hvis det er et negativ (fratrukket værdi fx. -€10) værdi så printer den ikke et minus tegn foran og den printer det derfor som om at det er plus værdi. Det er kun visuelt for den regner det rigtigt nok og trækker beløbet fra total.
Jeg ville derfor gerne gøre det visuelt tydeligt at det er beløb der trækkes fra, Lige som når der aktiveres en rabatkode og derfor lavede jeg dette lille kodestykke. Funktionen skal man indsætte i sit WP-tema functions.php fil og derefter skal du tilgå dine woo tema filer. Henholdsvis cart/cart-cart-totals.php og checkout/review-order.php. Her skal du udskifte “wc_cart_totals_fee_html($fee) med custom_fee_pretty_with_negative($fee) og vupti så skriver den et minus foran dine negative værdier i fee.
Kodestykket finder du her:
function custom_fee_pretty_with_negative($fee) { $feeprice = number_format( $fee->amount + $fee->tax, 2 ); if ( $feeprice < 0 ) { $replace = '-' . get_woocommerce_currency_symbol(); $feeprice = str_replace( '-', $replace, $feeprice ); } else { $feeprice = wc_price( $feeprice ); } return $feeprice; }