Easier than I thought, so I'm sharing in case someone else needs a similar workaround.
Just for informative purposes.
I needed to display 3 different free shipping parameters as we offer free shipping over $45 for Michigan orders, over $85 for Continental US orders and over $125 for Canada. To set up the whole scenario we cloned the freeoptions.php module which I'm not explaining here how to do. There is plenty of info on how to accomplish this throughout the forum. Next we installed the Modules>Order Total>Shipping as explained above and set it up to false with the lowest free shipping amount we offer which is $45.
On the tpl_cart_header.php find
<?php
$free_ship_on = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING;
if ($free_ship_on == 'false') {
echo '<div id="cartFreeShip">';
$free_limit = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
if ($cart_count) {
// $_SESSION['cart']->get_products();
$cart_total = $_SESSION['cart']->show_total();
if ($cart_total < $free_limit) {
$diff_to_free = ($free_limit - $cart_total);
echo CART_HEADER_DIFF_PRE . $currencies->format($diff_to_free) . CART_HEADER_DIFF_POST;
} else {
echo CART_HEADER_QUALIFIES;
}
} else {
echo CART_HEADER_FREE_LIMIT_PRE . $currencies->format($free_limit) . CART_HEADER_FREE_LIMIT_POST;
}
echo '</div>';
} ?>
and replace for
<?php
$free_ship_on = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING;
if ($free_ship_on == 'false') {
echo '<div id="cartFreeShip">';
$free_limit = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
if ($cart_count) {
// $_SESSION['cart']->get_products();
$cart_total = $_SESSION['cart']->show_total();
if ($cart_total < $free_limit) {
$diff_to_free = ($free_limit - $cart_total);
echo CART_HEADER_DIFF_PRE . $currencies->format($diff_to_free) . CART_HEADER_DIFF_POST;
$diff_to_free = ($free_limit + '40.00' - $cart_total);
echo CART_HEADER_DIFF_PRE_CONT . $currencies->format($diff_to_free) . CART_HEADER_DIFF_POST_CONT;
$diff_to_free = ($free_limit + '80.00' - $cart_total);
echo CART_HEADER_DIFF_PRE_CANADA . $currencies->format($diff_to_free) . CART_HEADER_DIFF_POST_CANADA;
} else {
echo CART_HEADER_QUALIFIES;
}
} else {
echo CART_HEADER_FREE_LIMIT_PRE . $currencies->format($free_limit) . CART_HEADER_FREE_LIMIT_POST;
}
echo '</div>';
} ?>
We've commented the
// $_SESSION['cart']->get_products();
as we don't want to display the entire list of products.
Next on cart_header_defines.php add the following
define ('CART_HEADER_DIFF_PRE_CONT',', ');
define ('CART_HEADER_DIFF_PRE_CANADA',' or ');
define ('CART_HEADER_DIFF_POST_CONT',' for Free Continental Shipping, ');
define ('CART_HEADER_DIFF_POST_CANADA',' for Free Shipping to Canada.');
Upload everything to the server.
The result is a message that looks like this for a shopping bag with $28
"Total: $28.00 (1 item)
Add $17.00 to qualify for Free Shipping in Michigan, $57.00 for Free Continental Shipping, or $97.00 for Free Shipping to Canada."
Hope this works for someone else.