AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.191.181.12
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/ajax/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/ajax/delete_update_basket_item_custom.php
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

\Bitrix\Main\Loader::includeModule('sale');

if($_POST['ID']){
	
	if($_POST['ACTION'] == 'DELETE'){
		CSaleBasket::Delete($_POST['ID']);
	}
	
	if($_POST['ACTION'] == 'CHANGE' && $_POST['QUANTITY']){
		$arFields = array(
		   "QUANTITY" => $_POST['QUANTITY'],
		   "DELAY" => "N"
		);
		
		CSaleBasket::Update($_POST['ID'], $arFields);
	}
    

    ob_start();    
	
	$APPLICATION->IncludeComponent("bitrix:sale.basket.basket.line","custom",Array(
            "HIDE_O N_BASKET_PAGES" => "Y",
            "PATH_TO_BASKET" => SITE_DIR."personal/cart/",
            "PATH_TO_ORDER" => SITE_DIR."personal/order/make/",
            "PATH_TO_PERSONAL" => SITE_DIR."personal/",
            "PATH_TO_PROFILE" => SITE_DIR."personal/",
            "PATH_TO_REGISTER" => SITE_DIR."login/",
            "POSITION_FIXED" => "Y",
            "POSITION_HORIZONTAL" => "right",
            "POSITION_VERTICAL" => "top",
            "SHOW_AUTHOR" => "Y",
            "SHOW_DELAY" => "N",
            "SHOW_EMPTY_VALUES" => "Y",
            "SHOW_IMAGE" => "Y",
            "SHOW_NOTAVAIL" => "N",
            "SHOW_NUM_PRODUCTS" => "Y",
            "SHOW_PERSONAL_LINK" => "N",
            "SHOW_PRICE" => "Y",
            "SHOW_PRODUCTS" => "Y",
            "SHOW_SUMMARY" => "Y",
            "SHOW_TOTAL_PRICE" => "Y"
        )
    );
    
    // сохраняем всё что есть в буфере в переменную $content
    $content = ob_get_contents();
    
    // отключаем и очищаем буфер
    ob_end_clean();
    
    $optPriceTypeID = COption::GetOptionString('main', 'basket_id_price_opt', '', SITE_ID);
    $basePriceTypeID = COption::GetOptionString('main', 'basket_id_price_base', '', SITE_ID);

    $sumOpt = COption::GetOptionString('main', 'basket_recalc_summ', '10000', SITE_ID);

    $session = \Bitrix\Main\Application::getInstance()->getSession();

    if($optPriceTypeID && $basePriceTypeID && $sumOpt){

        //текущая сумма корзины
        $summ = 0;
        $dbBasketItems = CSaleBasket::GetList(
            array(),
            array(
                    "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                    "LID" => SITE_ID,
                    "ORDER_ID" => "NULL",
                    "!DELAY" => "Y"
                ),
            false,
            false,
            array("ID","MODULE", "PRODUCT_ID", "QUANTITY", "PRICE")
        );
        
        while ($arRow = $dbBasketItems->Fetch()) {
            $arPriceBase = CPrice::GetList(
                array(),
                array(
                        "PRODUCT_ID" => $arRow['PRODUCT_ID'],
                        "CATALOG_GROUP_ID" => $optPriceTypeID				
                    )
            )->Fetch();				

            if (!$arPriceBase['PRICE']) {
                $arPriceBase = CPrice::GetList(
                    array(),
                    array(
                            "PRODUCT_ID" => $arRow['PRODUCT_ID'],
                            "CATALOG_GROUP_ID" => $basePriceTypeID				
                        )
                )->Fetch();
            }

            $summ += $arRow['QUANTITY'] * $arPriceBase['PRICE'];

        }

        

        if (!$session->has('price_o')) {            
            if($summ >= $sumOpt){
                $session->set('price_o', '1'); 
            } else {
                $session->set('price_o', '0'); 
            }           
        }
        
        if($summ >= $sumOpt && $session['price_o'] == '0'){
            $session->set('price_o', '1'); 

            echo json_encode([
                'status' => 'updateProductList',
                'opt' => '1',
                'totalPrice' => $content
            ]);
            die();

        } elseif ($summ < $sumOpt && $session['price_o'] == '1') {
            $session->set('price_o', '0');  
            
            echo json_encode([
                'status' => 'updateProductList',                
                'opt' => '0',
                'totalPrice' => $content
            ]);
            die();
        }
    }    

    echo json_encode([
        'status' => 'updateTotalPrice',
        'totalPrice' => $content
    ]);
	
}

Anon7 - 2022
AnonSec Team