0
votes

I am using the cart widget from WooCommerce -> mini-cart.php I am adding products to it via AJAX and added some elements already to it myself. Standard it shows the subtotal price in the cart but I want to show the shipping costs after it and after that the total price (subtotal + shipping).

So the cart will look like this:

- Products in cart - Subtotal - Shipping costs - Total price (shipping + subtotal)

I have added the total price with this code:

<p><?php echo WC()->cart->get_cart_total(); ?></p>

But this echo's the same price as the subtotal because the shipping isn't added to it. Can someone help me to add the shipping costs to it. Some hook or code.

1

1 Answers

0
votes

To get and display the chosen shipping method label (and other related data, if needed) in cart page (or in checkout page):

foreach( WC()->session->get('shipping_for_package_0')['rates'] as $method_id => $rate ){
    if( WC()->session->get('chosen_shipping_methods')[0] == $method_id ){
        $rate_label = $rate->label; // The shipping method label name
        $rate_cost_excl_tax = floatval($rate->cost); // The cost excluding tax
        // The taxes cost
        $rate_taxes = 0;
        foreach ($rate->taxes as $rate_tax)
            $rate_taxes += floatval($rate_tax);
        // The cost including tax
        $rate_cost_incl_tax = $rate_cost_excl_tax + $rate_taxes;

        echo '<p class="shipping-total">
            <strong class="label">'.$rate_label.': </strong>
            <span class="totals">'. WC()->cart->get_cart_shipping_total() .'</span>
        </p>';
        break;
    }
}