cma01 Posted April 21, 2004 Share Posted April 21, 2004 I installed this contribution, but I want to add additional shipping options. So I tried to duplicate the added code for the three options I want to insert. It sort of works. On the admin side, under modules =>shipping, if I click on the table function, standard and two-day will display the rates and then there is a big space where the other three options should be listed. If I edit the table info, there is a text box under for the last three options, but no title. On the store site, if I have the table option set to calculate by weight it works; however, only the ground shipping and Hawaii & Alaska delivery are listed (the first and the last). If I set it to calculate by price, I get this error message. Fatal error: Call to undefined function: show_shipping_total() in /usr/home/givingba/public_html/catalog/includes/modules/shipping/table.php on line 53 This the modified /catalog/includes/modules/shipping/table.php <?php /* $Id: table.php,v 1.27 2003/02/05 22:41:52 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ class table { var $code, $title, $description, $icon, $enabled; // class constructor function table() { global $order; $this->code = 'table'; $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE; $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER; $this->icon = ''; $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false); if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } // class methods function quote($method = '') { global $order, $cart, $shipping_weight, $shipping_num_boxes; if (MODULE_SHIPPING_TABLE_MODE == 'price') { $order_total = $cart->show_shipping_total(); } else { $order_total = $shipping_weight; } // jgp - when processing the shipping option, check the method and use the appropriate cost table if ($method) { // jgp - shipping is free if the order total is 0 (optional) if ($order_total != 0) $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST); else $table_cost=0; $table_cost_2day = split("[:,]" , MODULE_SHIPPING_TABLE_COST_2DAY); if ($method == 'table2day'){ $size = sizeof($table_cost_2day); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost_2day[$i]) { $shipping = $table_cost_2day[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => 'table2day', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_2DAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING))); } // cma added overnight shipping $table_cost_overnight = split("[:,]" , MODULE_SHIPPING_TABLE_COST_OVERNIGHT); if ($method == 'tableovernight'){ $size = sizeof($table_cost_overnight); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost_overnight[$i]) { $shipping = $table_cost_overnight[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => 'tableovernight', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_OVERNIGHT, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING))); } // end overnight shipping // cma added saturday shipping $table_cost_saturday = split("[:,]" , MODULE_SHIPPING_TABLE_COST_SATURDAY); if ($method == 'tablesaturday'){ $size = sizeof($table_cost_saturday); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost_saturday[$i]) { $shipping = $table_cost_saturday[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => 'tablesaturday', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_SATURDAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING))); } // end saturday shipping // cma add alaska shipping $table_cost_alaska = split("[:,]" , MODULE_SHIPPING_TABLE_COST_ALASKA); if ($method == 'tablealaska'){ $size = sizeof($table_cost_alaska); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost_alaska[$i]) { $shipping = $table_cost_alaska[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => 'tablealaska', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_ALASKA, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING))); } // end alaska shipping else { $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING))); } } else { // jgp - added 2-day shipping cost if ($order_total != 0) $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST); else $table_cost=0; // jgp - added 2-day shipping cost $table_cost_2day = split("[:,]" , MODULE_SHIPPING_TABLE_COST_2DAY); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } // jgp - added overnight shipping cost $table_cost_overnight = split("[:,]" , MODULE_SHIPPING_TABLE_COST_OVERNIGHT); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } // jgp - added SATURDAY shipping cost $table_cost_saturday = split("[:,]" , MODULE_SHIPPING_TABLE_COST_SATURDAY); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } // jgp - added alaska shipping cost $table_cost_alaska = split("[:,]" , MODULE_SHIPPING_TABLE_COST_ALASKA); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping = $table_cost[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } // jgp - duplicated the shipping cost application for 2-day shipping $size = sizeof($table_cost_2day); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping_2day = $table_cost_2day[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping_2day = $shipping_2day * $shipping_num_boxes; } // jgp - duplicated the shipping cost application for overnight shipping $size = sizeof($table_cost_overnight); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping_overnight = $table_cost_overnight[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping_overnight = $shipping_overnight * $shipping_num_boxes; } // jgp - duplicated the shipping cost application for saturday shipping $size = sizeof($table_cost_saturday); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping_saturday = $table_cost_saturday[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping_saturday = $shipping_saturday * $shipping_num_boxes; } // jgp - duplicated the shipping cost application for alaska shipping $size = sizeof($table_cost_alaska); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { $shipping_alaska = $table_cost_alaska[$i+1]; break; } } if (MODULE_SHIPPING_TABLE_MODE == 'weight') { $shipping_alaska = $shipping_alaska * $shipping_num_boxes; } // jgp - added 2day shipping to methods array $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING), array('id' => 'table2day', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_2DAY, 'cost' => $shipping_2day + MODULE_SHIPPING_TABLE_HANDLING))); // jgp - added overnight shipping to methods array $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING), array('id' => 'tableovernight', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_OVERNIGHT, 'cost' => $shipping_overnight + MODULE_SHIPPING_TABLE_HANDLING))); // jgp - added saturday shipping to methods array $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING), array('id' => 'tablesaturday', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_SATURDAY, 'cost' => $shipping_saturday + MODULE_SHIPPING_TABLE_HANDLING))); // jgp - added ALASKA shipping to methods array $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING), array('id' => 'tablealaska', 'title' => MODULE_SHIPPING_TABLE_TEXT_WAY_ALASKA, 'cost' => $shipping_alaska + MODULE_SHIPPING_TABLE_HANDLING))); } if ($this->tax_class > 0) { $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']); } if (tep_not_null($this->icon)) $this->quotes['icon'] = tep_image($this->icon, $this->title); return $this->quotes; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) VALUES ('Enable Table Method', 'MODULE_SHIPPING_TABLE_STATUS', 'True', 'Do you want to offer table rate shipping?', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table', 'MODULE_SHIPPING_TABLE_COST', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); // jgp - added additional (2day) shipping type tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table 2-Day', 'MODULE_SHIPPING_TABLE_COST_2DAY', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); // jgp - added additional (overnight) shipping type tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table Overnight', 'MODULE_SHIPPING_TABLE_COST_OVERNIGHT', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); // jgp - added additional (saturday) shipping type tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table Saturday', 'MODULE_SHIPPING_TABLE_COST_SATURDAY', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); // jgp - added additional (alaska) shipping type tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Shipping Table Alaska', 'MODULE_SHIPPING_TABLE_COST_Alaska', '25:8.50,50:5.50,10000:0.00', 'The shipping cost is based on the total cost or weight of items. Example: 25:8.50,50:5.50,etc.. Up to 25 charge 8.50, from there to 50 charge 5.50, etc', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Table Method', 'MODULE_SHIPPING_TABLE_MODE', 'weight', 'The shipping cost is based on the order total or the total weight of the items ordered.', '6', '0', 'tep_cfg_select_option(array(\'weight\', \'price\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Handling Fee', 'MODULE_SHIPPING_TABLE_HANDLING', '0', 'Handling fee for this shipping method.', '6', '0', now())"); tep_db_query("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_TABLE_TAX_CLASS', '0', 'Use the following tax class on the shipping fee.', '6', '0', 'tep_get_tax_class_title', 'tep_cfg_pull_down_tax_classes(', now())"); tep_db_query("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_TABLE_ZONE', '0', 'If a zone is selected, only enable this shipping method for that zone.', '6', '0', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort Order', 'MODULE_SHIPPING_TABLE_SORT_ORDER', '0', 'Sort order of display.', '6', '0', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { // jgp - added 2day shipping key return array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_COST', 'MODULE_SHIPPING_TABLE_COST_2DAY', 'MODULE_SHIPPING_TABLE_COST_OVERNIGHT', 'MODULE_SHIPPING_TABLE_COST_SATURDAY', 'MODULE_SHIPPING_TABLE_COST_ALASKA', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER'); } } ?> This is the modified /catalog/includes/languages/english/modules/shipping/table.php <?php /* $Id: table.php,v 1.5 2002/11/19 01:48:08 dgw_ Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2002 osCommerce Released under the GNU General Public License */ define('MODULE_SHIPPING_TABLE_TEXT_TITLE', 'Standard Shipping'); define('MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION', 'Table Rate Shipping Options'); define('MODULE_SHIPPING_TABLE_TEXT_WAY', 'Ground Shipping'); // jgp - added 2-day shipping text define('MODULE_SHIPPING_TABLE_TEXT_WAY_2DAY', '2-Day Shipping'); define('MODULE_SHIPPING_TABLE_TEXT_WEIGHT', 'Weight'); define('MODULE_SHIPPING_TABLE_TEXT_AMOUNT', 'Amount'); // jgp - added overnight shipping text define('MODULE_SHIPPING_TABLE_TEXT_WAY_OVERNIGHT', 'Overnight Shipping'); define('MODULE_SHIPPING_TABLE_TEXT_WEIGHT', 'Weight'); define('MODULE_SHIPPING_TABLE_TEXT_AMOUNT', 'Amount'); // jgp - added SATURDAY shipping text define('MODULE_SHIPPING_TABLE_TEXT_WAY_SATURDAY', 'Saturday Delivery'); define('MODULE_SHIPPING_TABLE_TEXT_WEIGHT', 'Weight'); define('MODULE_SHIPPING_TABLE_TEXT_AMOUNT', 'Amount'); // jgp - added alaska shipping text define('MODULE_SHIPPING_TABLE_TEXT_WAY_ALASKA', 'Alaska & Hawaii Delivery'); define('MODULE_SHIPPING_TABLE_TEXT_WEIGHT', 'Weight'); define('MODULE_SHIPPING_TABLE_TEXT_AMOUNT', 'Amount'); ?> Carla Quote Link to comment Share on other sites More sharing options...
zzfritz Posted April 22, 2004 Share Posted April 22, 2004 [gee, was it really necessary to post the whole script?] I am not familiar with the contribution, but a simple comparison to the original table.php discloses that the statement $order_total = $cart->show_shipping_total(); should be $order_total = $cart->show_total(); Quote Link to comment Share on other sites More sharing options...
universalrestor Posted April 27, 2004 Share Posted April 27, 2004 I also installed this contribution and did the same thing, and am stuck in the same area. It works fine in the admin section, but in checkout there are only the first and the last shipping mods listed. Do you have any updates? Does anyone have any input? Thanks Quote Link to comment Share on other sites More sharing options...
Starkness Posted June 22, 2004 Share Posted June 22, 2004 I had spaces at the top of my table.php file. <?php I removed the spaces... <?php And it works like a champ. Quote Thanks! Starkness Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.