Битрикс кнопка очистить корзину

В компонентах битрикса нет такой важной кнопки как очистить корзину, точнее она есть но не везде. Как добавить эту кнопку в свой шаблон?

Как добавить кнопку очистить корзину в битриксе

Рассмотрим на примере компонента sale.basket.basket файла template.php.
Ваш шаблон может отличаться от примера. Код который нам понадобится для кнопки:

<form action="" method="POST">
	<button type="submit" class="clear-cart" name="BasketClear">Очистить корзину</button>
</form>

<?
if (isset($_POST["BasketClear"]) && CModule::IncludeModule("sale")) {
	CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());
	header("Location: ".$_SERVER['REQUEST_URI']);
}
?>

Чтобы сбросить $_POST используем header(“Location: “.$_SERVER[‘REQUEST_URI’]).
Внимание! Добавляйте код так, чтобы у вас не получилась “форма в форме”, приблизительно вот так:

<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="basket_form" id="basket_form">
	<div id="basket_form_container">
		<div class="bx_ordercart">
			<?
			include($_SERVER["DOCUMENT_ROOT"].$templateFolder."/basket_items.php");
			?>
		</div>
	</div>
	<input type="hidden" name="BasketOrder" value="BasketOrder" />
</form>

<form action="" method="POST">
	<button type="submit" class="clear-cart" name="BasketClear">Очистить корзину</button>
</form>

<?
if (isset($_POST["BasketClear"]) && CModule::IncludeModule("sale")) {
	CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());
	header("Location: ".$_SERVER['REQUEST_URI']);
}
?>

В таком варианте записи у вас не будет конфликта. Одна из возможных ошибок – не будет работать кнопка “Оформить заказ”, поэтому будьте внимательны и проверяйте весь функционал в корзине.

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *