Да, вы можете показать диалог подтверждения перед удалением товара из корзины.По умолчанию файл core.js
и theme.js
обрабатывает все события и обновляет корзину соответственно для события updateCart
.( Подробнее о событиях см. Здесь )
Чтобы преодолеть поведение по умолчанию, добавление js
до theme.js
поможет нам предотвратить событие щелчка по умолчанию.Следуйте приведенному ниже пошаговому руководству, чтобы загрузить свой js
и добавить диалоговое окно подтверждения при удалении элемента.
1) Зарегистрируйте js
в theme.yml
( Подробнее здесь )добавив приведенный ниже код в assets
themes / {your_theme} /config/theme.yml
assets:
js:
cart:
- id: cart-extra-lib
path: assets/js/cart-lib.js
priority: 30
2) Создать файл cart-lib.js
в themes/{your_theme}/assets/js
и добавьте в него код ниже.
themes / {your_theme} /assets/js/cart-lib.js
function refreshDataLinkAction() {
$('[data-link-action="delete-from-cart"]').each(function(){
$(this).attr('data-link-action', 'confirm-remove-item');
});
}
$(document).on('click', '[data-link-action="confirm-remove-item"]', function(e) {
e.preventDefault();
if (confirm('Are you sure you want to remove product from cart?')) {
$(this).attr('data-link-action', 'delete-from-cart');
$(this).trigger('click');
}
return false;
});
$(document).ready(function () {
refreshDataLinkAction();
prestashop.on('updatedCart', function (event) {
refreshDataLinkAction();
});
});
3) Теперь, чтобы загрузитьВаш файл JS необходимо удалить файл config/themes/{your_theme}/shop1.json
( Ссылка )
4) Добавить товары в корзину и проверить корзину;удалить элементы, вы увидите подтверждающее сообщение.Прикрепленное изображение для справки.