kirchenbauer Posted October 12, 2005 Share Posted October 12, 2005 Glad to hear it worked out for you. Link to comment Share on other sites More sharing options...
wheeloftime Posted October 12, 2005 Share Posted October 12, 2005 Whoever is above be praised :rolleyes: Link to comment Share on other sites More sharing options...
kirchenbauer Posted October 12, 2005 Share Posted October 12, 2005 I'm not sure if I understand your comment, Howard. Link to comment Share on other sites More sharing options...
wheeloftime Posted October 12, 2005 Share Posted October 12, 2005 I'm not sure if I understand your comment, Howard. Something like finally seeing the light :P Link to comment Share on other sites More sharing options...
CgFreak Posted October 13, 2005 Share Posted October 13, 2005 Wow i was about to punch you in the face Morris, lol finally you got it, and thanks Monika it worked for me wonderfully :D Link to comment Share on other sites More sharing options...
♥Monika in Germany Posted October 13, 2005 Share Posted October 13, 2005 <?php /* $Id: table2.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_TABLE2_TEXT_TITLE', 'Rush Order Table Rate'); define('MODULE_SHIPPING_TABLE2_TEXT_DESCRIPTION', 'Rush Order Table Rate'); define('MODULE_SHIPPING_TABLE2_TEXT_WAY', 'This adds a 15% surcharge to your order total and ensures made-to-order items leave our shop within 2 weeks'); define('MODULE_SHIPPING_TABLE2_TEXT_WEIGHT', 'Weight'); define('MODULE_SHIPPING_TABLE2_TEXT_AMOUNT', 'Amount'); ?> <?php /* $Id: table2.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 table2 { var $code, $title, $description, $icon, $enabled; // class constructor function table2() { global $order; $this->code = 'table2'; $this->title = MODULE_SHIPPING_TABLE2_TEXT_TITLE; $this->description = MODULE_SHIPPING_TABLE2_TEXT_DESCRIPTION; $this->sort_order = MODULE_SHIPPING_TABLE2_SORT_ORDER; $this->icon = ''; $this->tax_class = MODULE_SHIPPING_TABLE2_TAX_CLASS; $this->enabled = ((MODULE_SHIPPING_TABLE2_STATUS == 'True') ? true : false); if (is_object($order)) { // disable the module if the order only contains virtual products if ($this->enabled == true) { global $cart; if ($cart->show_total() == 0.00) { $this->enabled = false; } } } if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE2_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_TABLE2_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_TABLE2_MODE == 'price') { $order_total = $cart->show_total(); } else { $order_total = $shipping_weight; } $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE2_COST); $size = sizeof($table_cost); for ($i=0, $n=$size; $i<$n; $i+=2) { if ($order_total <= $table_cost[$i]) { if ((MODULE_SHIPPING_TABLE_MODE == 'price') && (strpos($table_cost[$i+1],'%')) && (strpos($table_cost[$i+1],'+'))) { $shipping = before('+',$table_cost[$i+1]) + $order_total * (after('+',$table_cost[$i+1])/100); } elseif ((MODULE_SHIPPING_TABLE_MODE == 'price') && (strpos($table_cost[$i+1],'%'))) { $shipping = $order_total * ($table_cost[$i+1]/100); } else { $shipping = $table_cost[$i+1]; } break; } } if (MODULE_SHIPPING_TABLE2_MODE == 'weight') { $shipping = $shipping * $shipping_num_boxes; } $this->quotes = array('id' => $this->code, 'module' => MODULE_SHIPPING_TABLE2_TEXT_TITLE, 'methods' => array(array('id' => $this->code, 'title' => MODULE_SHIPPING_TABLE2_TEXT_WAY, 'cost' => $shipping + MODULE_SHIPPING_TABLE2_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_TABLE2_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_TABLE2_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_TABLE2_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())"); 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_TABLE2_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_TABLE2_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_TABLE2_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_TABLE2_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_TABLE2_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() { return array('MODULE_SHIPPING_TABLE2_STATUS', 'MODULE_SHIPPING_TABLE2_COST', 'MODULE_SHIPPING_TABLE2_MODE', 'MODULE_SHIPPING_TABLE2_HANDLING', 'MODULE_SHIPPING_TABLE2_TAX_CLASS', 'MODULE_SHIPPING_TABLE2_ZONE', 'MODULE_SHIPPING_TABLE2_SORT_ORDER'); } } ?> for those who installed my module, please check if your general.php has the following functions, so you can also use the base price + percentage calculation ... I had them in mine from a different mod so didn't mention it, but you may not! //trimming functions, custom made function after ($this, $inthat) { if (!is_bool(strpos($inthat, $this))) return substr($inthat, strpos($inthat,$this)+strlen($this)); }; function before ($this, $inthat) { return substr($inthat, 0, strpos($inthat, $this)); }; :-) Monika addicted to writing code ... can't get enough of databases either, LOL! my toolbox: Textpad - Compare and Merge - phpMyAdmin - WS_FTP - Photoshop - How to search the forum Interactive Media Award July 2007 ~ category E-Commerce my advice on the forum is for free, PMs where you send me work are considered consultation which I charge for ... Link to comment Share on other sites More sharing options...
mtechama Posted December 8, 2005 Author Share Posted December 8, 2005 I have another website that I want to charge just 20% of the total order it can range from $10 to $1000 how can I do that I have use this coding for my gift shop and I am trying to get it to work right on my computer site this is what I have in my module 10000:20% Wade Morris Amarillo, Texas Before you do any changes on your site you need to do BACKUP! BACKUP! Link to comment Share on other sites More sharing options...
xecutech Posted June 22, 2007 Share Posted June 22, 2007 I am trying this code and getting the following error: Fatal error: Cannot redeclare class table2 in /home/smoke/public_html/includes/modules/shipping/table2.php on line 13 I know this may be something simple, but I followed the instructions here exactly. Can someone please help me out? Link to comment Share on other sites More sharing options...
tferrer Posted November 26, 2007 Share Posted November 26, 2007 I was looking for the same solution and after reading this post I tried Monika's code and it worked fine!! wow thanks Monika for sharing this piece of code, hat off to you. Link to comment Share on other sites More sharing options...
WebDev22 Posted July 14, 2010 Share Posted July 14, 2010 We need to charge a flat 15% for shipping (based on price), with a $7.50 minimum. Does anyone know if this possible with Monika's code? Link to comment Share on other sites More sharing options...
WebDev22 Posted July 14, 2010 Share Posted July 14, 2010 We need to charge a flat 14% for shipping (based on price), with a $7.50 minimum. Does anyone know if this possible with Monika's code? I installed the files easily. Thanks, Monika. I must have something configured incorrectly in the Admin though. I'm trying to set it up for 14% shipping but it seems to be calculating 5%. Here's what I have in the "Shipping Table" field: 25:8+14%,50:10+14%,75:12+14%,100:14+14%,150:18+14%,1000:22+14%,1000000:14% Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.