EN EN

Очищение корзины одной кнопкой в 1С-Битрикс

Как сделать кнопку на 1С-Битрикс, которая сразу удаляет весь товар в корзине

⬅️ Вернуться к статьям
Дата публикации AccelLoad
3 июля 2022
Количество просмотров AccelLoad
66
Теги AccelLoad
1С-Битрикс
bitrix:sale.basket.basket
PHP
jQuery
JavaScript
Очищение корзины одной кнопкой в 1С-Битрикс

result_modifier.php

Находим файл result_modifier.php который находится в вашем шаблоне корзины (например, /local/templates/accelload/components/bitrix/sale.basket.basket/accelload/result_modifier.php), если его нет, то создаём и добавляем в него следующий код:

    
    <?
    if ($_POST["BasketDelete"] and CModule::IncludeModule("sale"))
    {
        CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());
    }
    ?>
    

template.php

Затем в файл шаблона template.php добавляем кнопку в нужном месте:

    
    <form action="" method="POST">
        <input type="submit" value="Очистить корзину" name="BasketDelete"/>
    </form>
    

Метод без перезагрузки страницы

Очищение корзины одной кнопкой в 1С-Битрикс

Приведённый выше метод удаляет товары с перезагрузкой страницы. Но если вы хотите сделать удаление без перезагрузки, тогда достаточно добавить вашей кнопке удаления какой-то класс или идентификатор, например, .basketDelete и добавить эти строчки кода в ваш файл скриптов. Привели примеры на чистом JavaScript и на jQuery, кому как нравится:

	
	<script>
		const basketDelete = document.querySelector('.basketDelete');
		basketDelete.onclick = function() {
			var basketList = document.querySelectorAll('.basket-items-list-item-container');
			for (var i = 0; i < basketList.length; i++) {
				basketList[i].querySelector('.basket-item-actions-remove').click();
			}
		}
	</script>

	<script>
		$('.basketDelete').click(function () {
			$('.basket-item-actions-remove').click();
		});
	</script>
	
Скролл вверх