예제 #1
0
 //
 // 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);
예제 #2
0
    $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]);
            }
        }
    }