// // Update shipping method // if ($mode == 'update') { if (!empty($_REQUEST['shipping_id']) && fn_check_company_id('shippings', 'shipping_id', $_REQUEST['shipping_id']) || empty($_REQUEST['shipping_id'])) { fn_set_company_id($_REQUEST['shipping_data']); $_REQUEST['shipping_id'] = fn_update_shipping($_REQUEST['shipping_data'], $_REQUEST['shipping_id']); } $_extra = empty($_REQUEST['destination_id']) ? '' : '&destination_id=' . $_REQUEST['destination_id']; $suffix = '.update?shipping_id=' . $_REQUEST['shipping_id'] . $_extra; } // Delete selected rates if ($mode == 'delete_rate_values') { if (fn_check_company_id('shippings', 'shipping_id', $_REQUEST['shipping_id'])) { foreach ($_REQUEST['delete_rate_data'] as $destination_id => $rates) { fn_delete_rate_values($rates, $_REQUEST['shipping_id'], $destination_id); } } $suffix = ".update?shipping_id={$_REQUEST['shipping_id']}"; } // // Update shipping methods // if ($mode == 'm_update') { if (!empty($_REQUEST['shipping_data']) && is_array($_REQUEST['shipping_data'])) { foreach ($_REQUEST['shipping_data'] as $k => $v) { if (empty($v)) { continue; } if (fn_check_company_id('shippings', 'shipping_id', $k)) { fn_update_shipping($v, $k);
$view->assign('taxes', fn_get_taxes()); $view->assign('usergroups', fn_get_usergroups('C', DESCR_SL)); $view->assign('companies', fn_get_short_companies()); // Show all shipping methods } elseif ($mode == 'manage') { $view->assign('shippings', fn_get_all_shippings()); $view->assign('usergroups', fn_get_usergroups('C', DESCR_SL)); // Delete shipping method } elseif ($mode == 'delete_shipping') { if (!empty($_REQUEST['shipping_id']) && fn_check_company_id('shippings', 'shipping_id', $_REQUEST['shipping_id'])) { fn_delete_shipping($_REQUEST['shipping_id']); } return array(CONTROLLER_STATUS_REDIRECT, "shippings.manage"); // Delete selected rate } elseif ($mode == 'delete_rate_value') { fn_delete_rate_values($_REQUEST['rate_id'], array($_REQUEST['rate_type'] => array($_REQUEST['amount'] => 'Y')), $_REQUEST['shipping_id'], $_REQUEST['destination_id']); return array(CONTROLLER_STATUS_REDIRECT, "shippings.update?shipping_id={$_REQUEST['shipping_id']}&destination_id={$_REQUEST['destination_id']}&selected_section=shipping_charges"); } function fn_delete_rate_values($rate_id, $delete_rate_data, $shipping_id, $destination_id) { $rate_values = db_get_field("SELECT rate_value FROM ?:shipping_rates WHERE shipping_id = ?i AND destination_id = ?i", $shipping_id, $destination_id); if (!empty($rate_values)) { $rate_values = unserialize($rate_values); } foreach ((array) $rate_values as $rate_type => $rd) { foreach ((array) $rd as $amount => $data) { if (isset($delete_rate_data[$rate_type][$amount]) && $delete_rate_data[$rate_type][$amount] == 'Y') { unset($rate_values[$rate_type][$amount]); } } }