I was more detailed on the case as you said but still same problem, same error message. And when you say if no message then install the module, it installs by itself once the files are uploaded, shows red status, no sort order (but if you click edit it's sort 4) and can't remove it without deleting the flatcanada files. Here is the code one more time. I was sure if I was supposed to change "flat" at the top $Id but I did this time.
// $Id: flatcanada.php 14498 2009-10-01 20:16:16Z ajeh $
//
class flatcanada {
var $code, $title, $description, $icon, $enabled;
// class constructor
function flatcanada() {
global $order, $db;
$this->code = 'flatcanada';
$this->title = MODULE_SHIPPING_FLATCANADA_TEXT_TITLE;
$this->description = MODULE_SHIPPING_FLATCANADA_TEXT_DESCRIPTION;
$this->sort_order = MODULE_SHIPPING_FLATCANADA_SORT_ORDER;
$this->icon = '';
$this->tax_class = MODULE_SHIPPING_FLATCANADA_TAX_CLASS;
$this->tax_basis = MODULE_SHIPPING_FLATCANADA_TAX_BASIS;
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_FLATCANADA_STATUS == 'True') ? true : false);
}
if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLATCANADA_ZONE > 0) ) {
$check_flag = false;
$check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FLATCANADA_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
while (!$check->EOF) {
if ($check->fields['zone_id'] < 1) {
$check_flag = true;
break;
} elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) {
$check_flag = true;
break;
}
$check->MoveNext();
}
if ($check_flag == false) {
$this->enabled = false;
}
}
}
// class methods
function quote($method = '') {
global $order;
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_FLATCANADA_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_FLATCANADA_TEXT_WAY,
'cost' => MODULE_SHIPPING_FLATCANADA_COST)));
if ($this->tax_class > 0) {
$this->quotes['tax'] = zen_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
}
if (zen_not_null($this->icon)) $this->quotes['icon'] = zen_image($this->icon, $this->title);
return $this->quotes;
}
function check() {
global $db;
if (!isset($this->_check)) {
$check_query = $db->Execute("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FLATCANADA_STATUS'");
$this->_check = $check_query->RecordCount();
}
return $this->_check;
}
function install() {
global $db;
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable Flatcanada Shipping', 'MODULE_SHIPPING_FLATCANADA_STATUS', 'True', 'Do you want to offer flatcanada rate shipping?', '6', '0', 'zen_cfg_select_option(array(\'True\', \'False\'), ', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Cost', 'MODULE_SHIPPING_FLATCANADA_COST', '5.00', 'The shipping cost for all orders using this shipping method.', '6', '0', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Tax Class', 'MODULE_SHIPPING_FLATCANADA_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'zen_get_tax_class_title', 'zen_cfg_pull_down_tax_classes(', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Tax Basis', 'MODULE_SHIPPING_FLATCANADA_TAX_BASIS', 'Shipping', 'On what basis is Shipping Tax calculated. Options are<br />Shipping - Based on customers Shipping Address<br />Billing Based on customers Billing address<br />Store - Based on Store address if Billing/Shipping Zone equals Store zone', '6', '0', 'zen_cfg_select_option(array(\'Shipping\', \'Billing\', \'Store\'), ', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Shipping Zone', 'MODULE_SHIPPING_FLATCANADA_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_FLATCANADA_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())");
}
function remove() {
global $db;
$db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE\_SHIPPING\_FLATCANADA\_%'");
}
function keys() {
return array('MODULE_SHIPPING_FLATCANADA_STATUS', 'MODULE_SHIPPING_FLATCANADA_COST', 'MODULE_SHIPPING_FLATCANADA_TAX_CLASS', 'MODULE_SHIPPING_FLATCANADA_TAX_BASIS', 'MODULE_SHIPPING_FLATCANADA_ZONE', 'MODULE_SHIPPING_FLATCANADA_SORT_ORDER');
}
}
?>
// $Id: flatcanada.php 1969 2005-09-13 06:57:21Z drbyte $
//
define('MODULE_SHIPPING_FLATCANADA_TEXT_TITLE', 'Flat Rate');
define('MODULE_SHIPPING_FLATCANADA_TEXT_DESCRIPTION', 'Flat Rate');
define('MODULE_SHIPPING_FLATCANADA_TEXT_WAY', 'Best Way');
?>
// $Id: flatcanada.php 1969 2005-09-13 06:57:21Z drbyte $
//
define('MODULE_SHIPPING_FLATCANADA_TEXT_TITLE', 'Regular Ground Shipping within Continental US (See Policies)<br>');
define('MODULE_SHIPPING_FLATCANADA_TEXT_DESCRIPTION', 'Flat Rate');
define('MODULE_SHIPPING_FLATCANADA_TEXT_WAY', 'Ground Shipping in Continental US. on orders under $175 - Approx. 10-15 Business Days from when the manufacturer ships to us. Less if we have it in our own stock. Free shipping is available within continental US on orders over $175 and international orders over $350.');
?>