Чтобы добавить кнопку очистки корзины на отдельной странице в 1C-Bitrix, вам потребуется изменить шаблон компонента "Корзина" и добавить специальную кнопку.
1. Вам понадобится настроить дизайн для кнопки очистки корзины. Это можно сделать с помощью HTML и CSS. Например, вы можете использовать следующий код для создания кнопки:
<button id="clear-cart-button">Очистить корзину</button>
2. По умолчанию шаблон компонента "Корзина" в 1C-Bitrix находится в папке /bitrix/components/bitrix/sale.basket.basket/templates/.default/
. Вам нужно скопировать шаблон внутри этой папки и переименовать его, например, в my_template
.
3. В новом шаблоне my_template
вам нужно добавить вашу кнопку очистки корзины. Для этого она может быть вставлена в любое удобное для вас место, например, внутри <form>
:
<form method="post" action="<?=POST_FORM_ACTION_URI?>"> <!-- ... --> <button id="clear-cart-button">Очистить корзину</button> <!-- ... --> </form>
4. Добавьте JavaScript-обработчик события клика на кнопке, который будет отправлять AJAX-запрос на сервер для удаления товаров из корзины. Вам понадобится использовать API Bitrix для обработки AJAX-запросов. Например, используйте следующий код:
<script> document.addEventListener('DOMContentLoaded', function() { document.getElementById('clear-cart-button').addEventListener('click', function(event) { event.preventDefault(); BX.ajax.post( '/path/to/ajax-handler.php', // Замените на свой путь к обработчику AJAX-запросов { clear_cart: 'Y' }, // Параметр для обработчика, указывающий на необходимость очистки корзины function(result) { console.log(result); // Вывод результата в консоль (для демонстрации) // Здесь вы можете добавить код для обработки успешного ответа } ); }); }); </script>
5. Наконец, вам нужно создать обработчик AJAX-запросов на сервере. Создайте файл ajax-handler.php
и поместите его в папку вашего шаблона my_template
. В обработчике PHP вы можете использовать API Bitrix для очистки корзины. Например, вот пример кода:
<?php require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); if (isset($_POST['clear_cart']) && $_POST['clear_cart'] === 'Y') { CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID()); die('Cart cleared successfully.'); } die('Invalid request.');
6. Не забудьте изменить путь к обработчику AJAX-запросов в коде JavaScript (шаг 4) и в форме отправки (шаг 3), заменив /path/to/ajax-handler.php
на свой путь к файлу ajax-handler.php
.
Теперь при нажатии на кнопку "Очистить корзину" на вашей отдельной странице, корзина будет очищаться с помощью AJAX-запроса через обработчик ajax-handler.php
.