You would have to customize the table.php and alter the following:
Code:
function quote($method = '') {
global $order, $shipping_weight, $shipping_num_boxes, $total_count;
// shipping adjustment
switch (MODULE_SHIPPING_TABLE_MODE) {
case ('price'):
$order_total = $_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices() ;
break;
case ('weight'):
$order_total = $shipping_weight;
break;
case ('item'):
$order_total = $total_count - $_SESSION['cart']->free_shipping_items();
$chk_excluded22 = $_SESSION['cart']->in_cart_check('master_categories_id','22');
$chk_excluded23 = $_SESSION['cart']->in_cart_check('master_categories_id','23');
echo 'COUNT IS: total: ' . $order_total . ' cat 22: ' . $chk_excluded22 . ' cat 23: ' . $chk_excluded23 . ' = ' . ($order_total - ($chk_excluded22 + $chk_excluded23));
$order_total = ($order_total - ($chk_excluded22 + $chk_excluded23));
break;
}
$order_total_amount = $_SESSION['cart']->show_total() - $_SESSION['cart']->free_shipping_prices() ;
$table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST);
$size = sizeof($table_cost);
for ($i=0, $n=$size; $i<$n; $i+=2) {
if (round($order_total,9) <= $table_cost[$i]) {
if (strstr($table_cost[$i+1], '%')) {
$shipping = ($table_cost[$i+1]/100) * $order_total_amount;
} else {
$shipping = $table_cost[$i+1];
}
break;
}
}
$shipping = $shipping + (($chk_excluded22 + $chk_excluded23) * 12);
if (MODULE_SHIPPING_TABLE_MODE == 'weight') {
The echo in there is just so you can see how this is working ... later comment it out ...
NOTE: if you have other shipping modules running at the same time you may need to customize this code further ...
Bookmarks