在prestashop 1.7中,在商品从购物车中删除之前,prestashop中是否有方法显示确认消息?我只想指向包含此方法的文件,以便我可以添加一个确认对话框,因为现在用户可以在不确认的情况下删除
是的,您可以在从购物车中删除商品之前显示确认对话框。默认情况下,core.js
和theme.js
文件会在updateCart
事件中处理所有事件并相应地更新购物车。 (Refer more on events here)
要克服默认行为,在js
之前添加theme.js
将帮助我们防止默认点击事件。按照下面提到的分步指南加载您自己的js
并在项目删除时添加确认对话框。
1)在js
下面添加以下代码,在theme.yml
(More details here)注册你的assets
主题/ {} 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
并在其中添加以下代码。
主题/ {} 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
(Reference)
4)将产品添加到购物车并检查购物车;删除项目您将看到确认消息。附加图像以供参考。