Как посчитать сумму скидки и общую сумму со скидкой php?

В корзине есть товары без скидок на которые скидки не распространяются, просто товары, на которые распространяется скидка 10% и акционные товары с 10% скидкой. Выводит только общую сумму заказа без учета скидок. Как сделать, чтобы выводилась сумма скидки, а за ней общая сумма заказа с учетом акционных и не акционных товаров. Плюс, когда в корзине увеличиваешь количество товаров, общая сумма не показывается, пока не обновишь страницу. Помогите, пожалуйста! вот ссылка на код https://pastebin.com/JXuWHjNk Строки 122-126 там должны выводиться суммы, но там пусто. так же кажется, что в строках 86-93 напутано

<style>
.zcontent{width:950px;}
</style>
<div class="cartview">
<div class="head_block min">
    <span><?=lg(272)?></span>
</div>
 
<? if($auth->status){ ?>
<div class="production_filter_wrap"><div class="production_filter">
    <a class="act"><?=lg(226)?></a>
    <a class="z" href="/z/<?=$u?>cart_orders"><?=lg(232)?></a>
    <div class="clear"></div>
</div></div>
<?  } 
 
 
$total_price=0;
$oplata_price=0;
if ($cartlist != '' && $cartlist != '{}'){
$cart_ids = "";
foreach($cart_obj as $key => $val){
    $cart_ids .= ",".$key;
}
$cart_ids = trim($cart_ids,',');
 
?>
 
<div class="best_price itemsblock view4">
 
<form id="order_form" onsubmit="return false">
<?
 
$result = mysql_query("SELECT * FROM `items` WHERE `code` IN ($cart_ids)"); 
while($myrow = mysql_fetch_assoc($result)){
 
/////////////// блок товара
$topshop = $cityrow['topshop'];
$item_patch="upload/items/".$myrow['code']."/poster/min.jpg";
if(!file_exists(ROOT_FOLDER.$item_patch)){$item_patch="images/nophoto.jpg";}
$actual = "";
$act_price = $myrow["act_price".$topshop];
$price = $myrow['m'.$topshop]>0?$myrow["now_price".$topshop]:0;
 
if($myrow["act_price".$topshop] > 0){
$act_arr = explode('¿',$myrow["act_date".$topshop]);
$act_start = $act_arr[0];
$act_stop = $act_arr[1];
$time = time();
 
if(intval($act_stop) > intval($time)){$actual = "<div class='sale_info'>".lg(91)." ".time2date_min($act_stop)."</div>";} else {$act_price = 0;}
 
} else {
$act_price = 0;
}
 
$settings = mysql_fetch_assoc(mysql_query("SELECT * FROM settings WHERE id=1 LIMIT 1"));
$block_cats = explode(PHP_EOL, $settings['discont_block_cats']);
$block_items = explode(PHP_EOL, $settings['discont_block_items']);
$block_discont=0;
if(in_array($myrow['code'], $block_items)){
    $block_discont=1;
} else {
    foreach($block_cats as $val){
            $val = rtrim($val,'0');
            if(stripos($myrow['cat'], $val)!== false){
                $block_discont=1;
            }
    }
}
 
$fact_price=$price;
if(!$block_discont && $fact_price){
    $fact_price=$fact_price-(($fact_price/100)*10);
}
 
//if(!$auth->status || $auth->reg_user['id']!=1){$block_discont=1;} //////////////////// delete
if(!$settings['discont_block_is']){$block_discont=1;} //////////////////// delete
 
$all_price = $myrow["now_price".$topshop]*$cart_obj[$myrow['code']];
$all_price_fact = $fact_price*$cart_obj[$myrow['code']];
?>
<div class="cartitem_wrap<?=($act_price>0?" action":"")?>" id="itm_<?=$myrow['code']?>" price="<?=$price?>" >
    <div class="itemblock" cat="<?=$myrow['cat']?>">
        <a href="<?=$u?>item/<?=$myrow['code']?>"><img src="<?=$item_patch?>"/></a>
        <div class="cont">
            <a href="<?=$u?>item/<?=$myrow['code']?>" class="title"><?=($myrow['name_'.$lang]!=""?$myrow['name_'.$lang]:$myrow['name_ru']).(!$block_discont && $act_price>0?"<br/><span class='sale_info'>".lg(312)."</span>":(!$block_discont?"<br/><span class='sale_info'>".lg(311)."</span>":"<br/><span class='sale_info'>".lg(309)."</span>"))?></a>
            <? if($myrow['m'.$topshop]>0 && $myrow['now_price'.$topshop]>0) { $total_price=$total_price+$all_price; $oplata_price=$total_price-$all_price_fact; ?>
            <div class="price_wrap">
                <? if($act_price > 0){echo "<div class='old_price'>".echo_price($price)."</div><div class='price'>".echo_price($act_price)."</div>";} else {echo "<div class='price'>".echo_price($price)."</div>";} ?><div class="mera"> x </div>
                <div class="item_num_wrap">
                    <input ident="<?=$myrow['code']?>" class="item_num" type="number" step="<?=($myrow['ed']=='кг'?"0.1":"1")?>" min="<?=($myrow['ed']=='кг'?"0.1":"1")?>" max="<?=$myrow['m'.$topshop]?>" value="<?=$cart_obj[$myrow['code']]?>" title="Количество" />
                </div>
                <div class="mera"><?="<span>".$myrow['ed'].". = </span>"?></div>
                <div class='all_price'><?=echo_price($fact_price)?></div>
                <? if($act_price > 0){ echo "<div style='width:40px; display:inline-block;'></div>"; } ?>
                <div class="clear"></div>
 
            </div>
            <? } else { ?>
            <div class="price_wrap">
                <div class="itm_empty"><?=lg(236)?></div>
            </div>
            <? } ?>
        </div>
        <? echo "
        <div class='sale_wrap'>
            ".$actual."
            ".($act_price>0?"<div class='sale'>-".$myrow["percent".$topshop]."%</div>":"")."
            ".(!$block_discont?"<div class='sale' style:'right:57px;'>-10%</div>":"")."
        </div>";
        ?>
    </div>
    <a onclick="item_remove('<?=$myrow['code']?>')" class="remove_cart_item" title="<?=lg(227)?>"><i class="icon fa-times"></i></a>
    <div class="clear"></div>
</div>
<?
/////////////   
} 
?>
    <div class="clear"></div>
<div class='total_price'><span id="del_price"><?=lg(244)?>: <span>0 тг.</span></span> <span id="total_price"><?=lg(245)?>: <span><?=echo_price($total_price)?></span></span></div>
<? if($settings['discont_block_is']){ ?>
<div id='skidos_price'>Скидка при покупке в интернет-магазине: <span><?=echo_price()?></span></div>
<div id='oplata_price'>Итого к оплате: <span><?=echo_price()?></span></div>
<? } ?>
<div class="order_block">
    <div class="order_zag"><?=lg(253)?>:</div>
    <div class="short"><div class="row fio"><input type="text" placeholder="<?=lg(247)?>" name="fio" value="<?=($auth->status?$auth->reg_user['name']:"")?>"/></div></div>
    <div class="short"><div class="row tel"><input type="text" placeholder="<?=($auth->status?"+7".$auth->reg_user['tel']:lg(248))?>" id="order_phone" name="tel" /></div></div>
    <div class="short"><div class="row email"><input type="email" placeholder="email" name="email" value="<?=($auth->status?$auth->reg_user['email']:"")?>"/></div></div>
 
<div class="radio_w">
    <div class="radio_l">
        <div><input type="radio" value="1" name="is_deliv" id="deliv_y" checked /><label for="deliv_y"><?=lg(288)?></label></div>
        <div><input type="radio" value="0" name="is_deliv" id="deliv_n" /><label for="deliv_n"><?=lg(289)?></label></div>
    </div>
    <div class="radio_r">
        <span>Оплата:</span> 
        <div><input type="radio" value="1" name="pay" id="pay_1" checked  /><label for="pay_1"><?=lg(290)?></label></div>
        <!-- div><input type="radio" value="2" name="pay" id="pay_2" /><label for="pay_2"><?=lg(291)?></label></div -->
        <div><input type="radio" value="3" name="pay" id="pay_3" /><label for="pay_3"><?=lg(292)?></label></div>
    </div>
    <div class="clear"></div>
</div>
    <div class="short0">
        <div id="samovyvoz">
            <div class="descr sam">г. Актобе, пр. Санкибай-батыра 14/5; Ежедневно с 9:00 до 21:00; Инфо-центр: 8 (7132) 74-90-10</div>
        </div>
    </div>
    <div id="dostavka">
        <div class="short1">
        <div class="row district">
        <select id="district" name="district">
            <option value="0=0=0"><?=lg(254)?></option>
            <?
            $qry = mysql_query("SELECT * FROM `delivery` WHERE `public`=1 ORDER BY `code` ASC");
            while($drow = mysql_fetch_assoc($qry)){
                echo "<option value='".$drow['code']."=".$drow['price']."=".$drow['id']."'>".$drow['name_'.$lang]."</option>";
            }
            ?>
 
        </select>
        </div>
        </div>
        <div class="short1"><div class="row sadress"><input type="text" placeholder="<?=lg(250)?>" name="address" value=""/></div></div>
    </div>
    <div class="clear"></div>
    <div class="short0"><div class="descr"><input type="text" placeholder="<?=lg(255)?>" name="descr" value=""/></div></div>
    <p>
    <input type="checkbox" id="agree" style="margin:0 10px; vertical-align:middle;"><label for="agree"><?=lg(238)?></label>
    </p>
</div>
<!--div class='cart_ok_wrap'><input class="button_red" type="button" onclick="cart_order(); ym(85041187,'reachGoal','target1')" value="<?=lg(256)?>" /></div-->
</form>
<div id="return_msg"></div>
</div>
 
 
 
<script>
var totalPrice = <?=$total_price?>;
var delivPrice = 0;
var delivFree = 3000;
 
function cart_clear(){
    cart = {};
    setCookie('cart', '{}');
    $('#count_cart').html('(0)');
    $('.like_btn.act').removeClass('act');
    $('#order_form').hide();
    $('#return_msg').html("<div class='cart_empty' style='width:100%'><?=lg(237)?></div>");
}
 
function cart_order(){
    $('#order_form').hide();
    $('#return_msg').html("<div class='cart_empty' style='width:100%'><img style='border:20px solid #fff;border-radius:20%;' src = 'view/home/images/load.gif'/></div>");
    //alert($('#order_form input[name=is_deliv]').val());
    var sendData = {
        fio: $('#order_form input[name=fio]').val(),
        tel: $('#order_form input[name=tel]').val(),
        address: $('#order_form input[name=address]').val(),
        descr: $('#order_form input[name=descr]').val(),
        delivery: $('#order_form select[name=district]').val(),
        is_deliv: $('#order_form input[name=is_deliv]:checked').val(),
        pay: $('#order_form input[name=pay]:checked').val(),
        items: {}
    };
 
    for (var key in cart) {
        sendData['items'][key]={};
        sendData['items'][key]['price'] = parseFloat($('#itm_'+key).attr('price_fact'));
        sendData['items'][key]['qty'] = cart[key];
    }
 
    //if($("#agree").prop("checked")){best=1;} else {best=0;}
 
    $.post("action/ajax.php?act=cart_order", { data: JSON.stringify(sendData), agree:$("#agree").prop("checked"), email:$('#order_form input[name=email]').val() }).done(function(data) {
      var dataArr = data.split('|');
      if(dataArr[0]=="ok"){
          $('#order_form').hide();
          $('#return_msg').html("<div><span>Заказ № "+dataArr[1]+" оформлен!</span><br>Ожидайте звонка оператора.<?=($auth->status?'<br><br><a href=\"'.$u.'orders\">Перейти в «Мои заказы»</a>':'')?></div>");
          cart = {};
          setCookie('cart', '{}');
          $('#count_cart').html('(0)');
      } else {
        alert(data);
        $('#order_form').show();
        $('#return_msg').empty();
      }
    });
 
}
 
 
function cart_price_update(){ //console.log(cart);
        totalPrice = 0; oplataPrice = 0;
        for (var key in cart) {
            var newPrice = parseFloat($('#itm_'+key).attr('price'))*cart[key];
            var newPriceFact = parseFloat($('#itm_'+key).attr('price_fact'))*cart[key];
            totalPrice = totalPrice + newPrice;
            oplataPrice = oplataPrice + newPriceFact;
 
            //$('#itm_'+key+' .all_price').html(newPrice.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ')+" тг.");
            $('#itm_'+key+' .all_price').html(Math.round(newPrice).toLocaleString()+" тг.");
        }
        if(totalPrice>=delivFree && delivArr[1]=='1500'){delivPrice=0;}else{delivPrice = parseInt(delivArr[1]);}
        $('#del_price span').html(Math.round(delivPrice).toLocaleString()+" тг.");
        let newttl = Math.round(totalPrice+delivPrice);
        let newttl_fact = Math.round(oplataPrice+delivPrice);
        $('#total_price span').html(newttl.toLocaleString()+" тг.");
        $('#oplata_price span').html(newttl_fact.toLocaleString()+" тг.");
        $('#skidos_price span').html(Math.round(newttl-newttl_fact).toLocaleString()+" тг.");
}
 
 
var delivArr = $('#district').val().split("=");
function item_remove(ident){
    delete cart[ident];
    setCookie('cart', JSON.stringify(cart));
    cart_price_update();
    $('#itm_'+ident).remove();
    $('#count_cart').html('('+Object.keys(cart).length+')');
    $('.like_btn.act[item='+ident+']').removeClass('act');
}
 
 jQuery(function($){
   $("#order_phone").mask("+7(999) 999-9999");
 
   $('.item_num').change(function(){
       cart[$(this).attr('ident')] = parseFloat($(this).val());
       setCookie('cart', JSON.stringify(cart));
       //cart[$(this).attr('ident')];
       cart_price_update();
        // $('#skidos_price span').html(Math.round(newttl/10).toLocaleString()+" тг.");
        // $('#oplata_price span').html(Math.round(newttl-(newttl/10)).toLocaleString()+" тг.");
   });
 
 
  $('#district').change(function(){ //alert(JSON.stringify(cart));
        delivArr = $(this).val().split("="); 
        $('#del_price').css('display','inline');
        cart_price_update();
    });  
 
    $("input[name='is_deliv']").change(function() { 
        if ($(this).val()==1) {
            $('#samovyvoz').hide(); 
            $('#dostavka').show(); 
        } else {
            $('#dostavka').hide();
            $('#samovyvoz').show();         
        }
 
    });
 });
</script>
 
<? 
} else {echo "<div class='cart_empty'>".lg(237)."</div>";} ?>
</div>
<a id="zclear_btn" title="<?=lg(257)?>" onclick="cart_clear();"><i style="font-size:29px;" class="fa fa-trash"></i></a>

Ответы (0 шт):