The better way to do this is at the start of the shipping module ... for example, USPS usps.php I would change this code:
Code:
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_USPS_STATUS == 'True') ? true : false);
}
to read:
Code:
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_USPS_STATUS == 'True') ? true : false);
}
global $cart;
if (IS_ADMIN_FLAG == false && $_SESSION['cart']->show_weight() == 0) {
$this->enabled = false;
}
This allows it to work in the Admin and the Catalog ...
Notice I am using the $_SESSION['cart']->show_weight() as the $shipping_weight is not available at this point ...