Guest Posted August 28, 2006 Posted August 28, 2006 Hi All!!! Really need some help! i have been trying to get a module going that will provide a discount depending if a customer is subscribed to the newsletter.... its a modification of another module and is working to some extent except that it doesnt let you select a payment type in the checkout when its enabled! This makes it pretty useless and i'm just looking for a bit of trouble shooting to get it working.... ANY help really appreciated! Here's the code: <?php /* $Id: ot_lev_members.php,v 1.0 2002/04/08 01:13:43 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2002 osCommerce Released under the GNU General Public License */ class ot_xmembers { var $title, $output; function ot_xmembers() { $this->code = 'ot_xmembers'; $this->title = MODULE_XMEMBERS_TITLE; $this->description = MODULE_XMEMBERS_DESCRIPTION; $this->enabled = MODULE_XMEMBERS_STATUS; $this->sort_order = MODULE_XMEMBERS_SORT_ORDER; $this->include_shipping = MODULE_XMEMBERS_INC_SHIPPING; $this->include_tax = MODULE_XMEMBERS_INC_TAX; $this->percentage = MODULE_XMEMBERS_PERCENTAGE; $this->minimum = MODULE_XMEMBERS_MINIMUM; $this->calculate_tax = MODULE_XMEMBERS_CALC_TAX; // $this->credit_class = true; $this->output = array(); } function process() { global $order, $currencies; $od_amount = $this->calculate_credit($this->get_order_total()); if ($od_amount>0) { $this->deduction = $od_amount; $this->output[] = array('title' => $this->title . ':', 'text' => '<b>' . $currencies->format($od_amount) . '</b>', 'value' => $od_amount); $order->info['total'] = $order->info['total'] - $od_amount; } } function calculate_credit($amount) { global $order, $customer_id; $od_amount=0; $od_pc = $this->percentage; if ($amount > $this->minimum) { if ((MODULE_XMEMBERS_DISABLE_WITH_COUPON == 'true') && (isset($_SESSION['cc_id']))) return $od_amount; $query = tep_db_query("select customers_newsletter from " . TABLE_CUSTOMERS . " where customers_id = '" . $customer_id . "'"); $query_result = tep_db_fetch_array($query); if ($query_result['customers_newsletter'] == '1') { // Calculate tax reduction if necessary if($this->calculate_tax == 'true') { // Calculate main tax reduction $tod_amount = round($order->info['tax']*10)/10*$od_pc/100; $order->info['tax'] = $order->info['tax'] - $tod_amount; // Calculate tax group deductions reset($order->info['tax_groups']); while (list($key, $value) = each($order->info['tax_groups'])) { $god_amount = round($value*10)/10*$od_pc/100; $order->info['tax_groups'][$key] = $order->info['tax_groups'][$key] - $god_amount; } } $od_amount = round($amount*10)/10*$od_pc/100; $od_amount = $od_amount + $tod_amount; } } return $od_amount; } function get_order_total() { global $order, $cart; $order_total = $order->info['total']; // Check if gift voucher is in cart and adjust total $products = $cart->get_products(); for ($i=0; $i<sizeof($products); $i++) { $t_prid = tep_get_prid($products[$i]['id']); $gv_query = tep_db_query("select products_price, products_tax_class_id, products_model from " . TABLE_PRODUCTS . " where products_id = '" . $t_prid . "'"); $gv_result = tep_db_fetch_array($gv_query); if (ereg('^GIFT', addslashes($gv_result['products_model']))) { $qty = $cart->get_quantity($t_prid); $products_tax = tep_get_tax_rate($gv_result['products_tax_class_id']); if ($this->include_tax =='false') { $gv_amount = $gv_result['products_price'] * $qty; } else { $gv_amount = ($gv_result['products_price'] + tep_calculate_tax($gv_result['products_price'],$products_tax)) * $qty; } $order_total=$order_total - $gv_amount; } } if ($this->include_tax == 'false') $order_total=$order_total-$order->info['tax']; if ($this->include_shipping == 'false') $order_total=$order_total-$order->info['shipping_cost']; return $order_total; } function check() { if (!isset($this->check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_XMEMBERS_STATUS'"); $this->check = tep_db_num_rows($check_query); } return $this->check; } function keys() { return array('MODULE_XMEMBERS_STATUS', 'MODULE_XMEMBERS_SORT_ORDER', 'MODULE_XMEMBERS_DISABLE_WITH_COUPON', 'MODULE_XMEMBERS_PERCENTAGE','MODULE_XMEMBERS_MINIMUM', 'MODULE_XMEMBERS_INC_SHIPPING', 'MODULE_XMEMBERS_INC_TAX', 'MODULE_XMEMBERS_CALC_TAX'); } 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 ('Display Total', 'MODULE_XMEMBERS_STATUS', 'true', 'Do you want to enable the Order Discount?', '6', '1','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 ('Sort Order', 'MODULE_XMEMBERS_SORT_ORDER', '300', 'Sort order of display.', '6', '2', 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 ('Disable If Coupon Used', 'MODULE_XMEMBERS_DISABLE_WITH_COUPON', 'true', 'Do you want to disable the quantity discount module if a discount coupon is being used by the user?', '6', '3','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, set_function ,date_added) values ('Include Shipping', 'MODULE_XMEMBERS_INC_SHIPPING', 'true', 'Include Shipping in calculation', '6', '5', '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, set_function ,date_added) values ('Include Tax', 'MODULE_XMEMBERS_INC_TAX', 'true', 'Include Tax in calculation.', '6', '6','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 ('Discount Percentage', 'MODULE_XMEMBERS_PERCENTAGE', '10', 'Amount of Discount(percentage).', '6', '7', 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 ('Calculate Tax', 'MODULE_XMEMBERS_CALC_TAX', 'false', 'Re-calculate Tax on discounted amount.', '6', '5','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 ('Minimum Amount', 'MODULE_XMEMBERS_MINIMUM', '100', 'Minimum order before discount', '6', '2', now())"); } function remove() { $keys = ''; $keys_array = $this->keys(); for ($i=0; $i<sizeof($keys_array); $i++) { $keys .= "'" . $keys_array[$i] . "',"; } $keys = substr($keys, 0, -1); tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in (" . $keys . ")"); } } ?> Thanks!!!! Quote
Guest Posted September 6, 2006 Posted September 6, 2006 Any help really appreciated!!!! I Can't resolve this on my own and need a more experienced person to help. Cheers, Ed. Quote
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.
Note: Your post will require moderator approval before it will be visible.