If the problem is only in the Shipping Estimator ...
You would replace the code in the:
/includes/modules/shipping_estimator.php
around 102-120 that reads:
} elseif ($_SESSION['cart_country_id']){
// session is available
$_SESSION['country_info'] = zen_get_countries($_SESSION['cart_country_id'],true);
$country_info = $_SESSION['country_info'];
// fix here - check for error on $cart_country_id
$order->delivery = array('postcode' => $_SESSION['cart_zip_code'],
'country' => array('id' => $_SESSION['cart_country_id'], 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']),
'country_id' => $_SESSION['cart_country_id'],
'format_id' => zen_get_address_format_id($_SESSION['cart_country_id']));
} else {
// first timer
$_SESSION['cart_country_id'] = STORE_COUNTRY;
$_SESSION['country_info'] = zen_get_countries(STORE_COUNTRY,true);
$country_info = $_SESSION['country_info'];
$order->delivery = array(//'postcode' => '',
'country' => array('id' => STORE_COUNTRY, 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']),
'country_id' => STORE_COUNTRY,
'format_id' => zen_get_address_format_id($_POST['zone_country_id']));
}
With the code:
} elseif ($_SESSION['cart_country_id']){
// session is available
$_SESSION['country_info'] = zen_get_countries($_SESSION['cart_country_id'],true);
$country_info = $_SESSION['country_info'];
// fix here - check for error on $cart_country_id
$order->delivery = array('postcode' => $_SESSION['cart_zip_code'],
'country' => array('id' => $_SESSION['cart_country_id'], 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']),
'country_id' => $_SESSION['cart_country_id'],
'zone_id' => $state_zone_id,
'format_id' => zen_get_address_format_id($_SESSION['cart_country_id']));
} else {
// first timer
$_SESSION['cart_country_id'] = STORE_COUNTRY;
$_SESSION['country_info'] = zen_get_countries(STORE_COUNTRY,true);
$country_info = $_SESSION['country_info'];
$order->delivery = array(//'postcode' => '',
'country' => array('id' => STORE_COUNTRY, 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' => $country_info['countries_iso_code_3']),
'country_id' => STORE_COUNTRY,
'zone_id' => $state_zone_id,
'format_id' => zen_get_address_format_id($_POST['zone_country_id']));
}
Seems to be a little quirk in there on Zones and the Shipping Estimator ... :lamo: