Thanks you SO much!! I don't know much about php, I really appreciate the code. :clap:
Printable View
Thanks you SO much!! I don't know much about php, I really appreciate the code. :clap:
You are most welcome ... thanks for the update that this is now working for you ... :smile:
Hi, I'm back. The cloned shipping modules are in place, and they work as far as giving the correct shipping amounts.
But when I try to place an order, it goes from Step 1 to a blank page. The source on the blank page shows that it is still at step one.
The cache shows this error over and over:
PHP Warning: Cannot modify header information - headers already sent by (output started at /home2/thedess1/public_html/includes/languages/english/modules/shipping/itemzone10.php:13) in /home2/thedess1/public_html/includes/functions/functions_general.php on line 45
itemzone10.php is one of the newly cloned modules. I have tried deleting it.
Then I got:
PHP Warning: Cannot modify header information - headers already sent by (output started at /home2/thedess1/public_html/includes/languages/english/modules/shipping/itemzone11.php:13) in /home2/thedess1/public_html/includes/functions/functions_general.php on line 45
I have tried turning all the item modules off. Same problem. I am pretty sure if I delete all the modules (It will be a lot of work to reinstall them, so I haven't done this yet), it will work. I am attaching itemzone10.php in case you can spot the error. Thanks.
I can't attach itemzone10.php, so here is the code below.
<?php
class itemzone10 {
var $code, $title, $description, $icon, $enabled;
// class constructor
function itemzone10() {
global $order, $db;
$this->code = 'itemzone10';
$this->title = MODULE_SHIPPING_ITEMZONE10_TEXT_TITLE;
$this->description = MODULE_SHIPPING_ITEMZONE10_TEXT_DESCRIPTION;
$this->sort_order = MODULE_SHIPPING_ITEMZONE10_SORT_ORDER;
$this->icon = '';
$this->tax_class = MODULE_SHIPPING_ITEMZONE10_TAX_CLASS;
$this->tax_basis = MODULE_SHIPPING_ITEMZONE10_TAX_BASIS;
// disable only when entire cart is free shipping
if (zen_get_shipping_enabled($this->code)) {
$this->enabled = ((MODULE_SHIPPING_ITEMZONE10_STATUS == 'True') ? true : false);
}
if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_ITEMZONE10_ZONE > 0) ) {
$check_flag = false;
$check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_ITEMZONE10_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, $total_count;
// adjusted count for free shipping
$item_total_count = $total_count - $_SESSION['cart']->free_shipping_items();
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_ITEMZONE10_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_ITEMZONE10_TEXT_WAY,
'cost' => (MODULE_SHIPPING_ITEMZONE10_COST * $item_total_count) + MODULE_SHIPPING_ITEMZONE10_HANDLING)));
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_ITEMZONE10_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 itemzone10 Shipping', 'MODULE_SHIPPING_ITEMZONE10_STATUS', 'True', 'Do you want to offer per itemzone10 rate shipping?', '10', '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_ITEMZONE10_COST', '10.100', 'The shipping cost will be multiplied by the number of itemzone10s in an order that uses this shipping method.', '10', '0', now())");
$db->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Handling Fee', 'MODULE_SHIPPING_ITEMZONE10_HANDLING', '0', 'Handling fee for this shipping method.', '10', '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_ITEMZONE10_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '10', '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_ITEMZONE10_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', '10', '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_ITEMZONE10_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '10', '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_ITEMZONE10_SORT_ORDER', '0', 'Sort order of display.', '10', '0', now())");
}
function remove() {
global $db;
$db->Execute("delete from " . TABLE_CONFIGURATION . " where configuration_key like 'MODULE\_SHIPPING\_ITEMZONE10\_%'");
}
function keys() {
return array('MODULE_SHIPPING_ITEMZONE10_STATUS', 'MODULE_SHIPPING_ITEMZONE10_COST', 'MODULE_SHIPPING_ITEMZONE10_HANDLING', 'MODULE_SHIPPING_ITEMZONE10_TAX_CLASS', 'MODULE_SHIPPING_ITEMZONE10_TAX_BASIS', 'MODULE_SHIPPING_ITEMZONE10_ZONE', 'MODULE_SHIPPING_ITEMZONE10_SORT_ORDER');
}
}
?>
Actually, in the folder includes/languages/english/modules there is another file I created also called itemzone10/php, here is that code:
<?php
define('MODULE_SHIPPING_ITEMZONE10_TEXT_TITLE', 'Per itemzone10');
define('MODULE_SHIPPING_ITEMZONE10_TEXT_DESCRIPTION', 'Per itemzone10');
define('MODULE_SHIPPING_ITEMZONE10_TEXT_WAY', 'Best Way');
?>
Check these two files:
/home2/thedess1/public_html/includes/languages/english/modules/shipping/itemzone10.php
/home2/thedess1/public_html/includes/languages/english/modules/shipping/itemzone11.php
as the error message states and see if there are space(s) or blank line(s) after the closing php bracket ?> at the end of the files and remove them ...
I'm intensely embarrassed that I didn't check that first, as I had already done it with checkout.php. However, I've done it now with all 22 clones, and made the modules all live again.
I tested and got a blank page, and the cache error log says:
PHP Warning: Cannot modify header information - headers already sent by (output started at /home2/thedess1/public_html/includes/languages/english/modules/shipping/itemzone10.php:13) in /home2/thedess1/public_html/includes/functions/functions_general.php on line 45
Triple check of itemzone10.php shows no space after the closing tag.
Delete the two files for itemzone10.php ...
Does the error go away?
Then edit the language file and make sure those spaces and blank lines are gone and reload both files to the server ...
Fixed. I am appalled at my ignorance. Thanks so much! More blanks at the end of some of the language files.
Why isn't there an "I'm not worthy" emoticon?
:(
*snicker* ... got that T-shirt too ... :lamo: