如何使用一步结帐模块在 magento 2 结帐和购物车中隐藏产品
How to hide product in magento 2 checkout and cart With one step checkout Module
我正在使用 magestore 的一步结帐模块,我想在 magento 结帐中隐藏一些产品这些产品会自动预先添加到每个订单中,例如这些产品的包装 material 所以我需要隐藏结帐和购物车中的这些产品 我如何使用 knockoutJS 执行此一步结帐模块,所以我对此不是很熟悉。
提前感谢您的回复。
我曾尝试使用 CSS 隐藏,但这不是我想要做的。所以我想以编程方式隐藏这些产品。
/*
* *
* Copyright © 2016 Magestore. All rights reserved.
* See COPYING.txt for license details.
*
*/
/*browser:true*/
/*global define*/
define(
[
'jquery',
'ko',
'Magento_Checkout/js/model/totals',
'uiComponent',
'Magento_Checkout/js/model/step-navigator',
'Magento_Checkout/js/model/quote',
],
function ($, ko, totals, Component, stepNavigator, quote) {
'use strict';
return Component.extend({
initialize: function () {
this._super();
var self = this;
totals.isLoading.subscribe(function () {
if (totals.isLoading() == true) {
self.showOverlay();
} else {
self.hideOverlay();
}
});
},
defaults: {
template: 'Magestore_OneStepCheckout/summary/cart-items'
},
totals: totals.totals(),
getItems: totals.getItems(),
getItemsQty: function() {
return parseFloat(this.totals.items_qty);
},
showOverlay: function () {
$('#ajax-loader3').show();
$('#control_overlay_review').show();
},
hideOverlay: function () {
$('#ajax-loader3').hide();
$('#control_overlay_review').hide();
},
isItemsBlockExpanded: function () {
return quote.isVirtual() || stepNavigator.isProcessed('shipping');
}
});
}
);
这是实际的购物车-items.js 文件,我想它包含在结帐时显示产品的代码,但我不明白如何应用过滤器来隐藏具有此 sku XXXXXXXXX 或产品 ID XXXXX 的产品。
这是我为测试目的而设置的网站。
http://13.232.223.99
我无法通过代码隐藏产品但我最终设法通过下面的 JQuery 代码隐藏了这些产品。希望对你也有帮助。
您还可以使用相同的代码隐藏其他页面上的产品,例如购物车和订单确认页面,只是元素之间有所不同。
购物车:
if($( "a:contains('demo2')" )){
var element1 = $( "a:contains('demo2')" );
element1.closest('tbody').remove();
}
if($( "a:contains('demo1')" )){
var element2 = $( "a:contains('demo1')" );
element2.closest('tbody').remove();
}
结帐:
if($( "h2:contains('demo2')" )){
var element1 = $( "h2:contains('demo2')" );
element1.closest('tr').remove();
}
if($( "h2:contains('demo1')" )){
var element2 = $( "h2:contains('demo1')" );
element2.closest('tr').remove();
}
同时隐藏所有价格为 0.00 的产品:
if($( "font:contains('$ 0.00')" )){
var element2 = $( "font:contains('$ 0.00')" );
element2.closest('tr').remove();
}
希望这个回答能对您有所帮助。如果是,请不要忘记点击赞成按钮。
我正在使用 magestore 的一步结帐模块,我想在 magento 结帐中隐藏一些产品这些产品会自动预先添加到每个订单中,例如这些产品的包装 material 所以我需要隐藏结帐和购物车中的这些产品 我如何使用 knockoutJS 执行此一步结帐模块,所以我对此不是很熟悉。 提前感谢您的回复。
我曾尝试使用 CSS 隐藏,但这不是我想要做的。所以我想以编程方式隐藏这些产品。
/*
* *
* Copyright © 2016 Magestore. All rights reserved.
* See COPYING.txt for license details.
*
*/
/*browser:true*/
/*global define*/
define(
[
'jquery',
'ko',
'Magento_Checkout/js/model/totals',
'uiComponent',
'Magento_Checkout/js/model/step-navigator',
'Magento_Checkout/js/model/quote',
],
function ($, ko, totals, Component, stepNavigator, quote) {
'use strict';
return Component.extend({
initialize: function () {
this._super();
var self = this;
totals.isLoading.subscribe(function () {
if (totals.isLoading() == true) {
self.showOverlay();
} else {
self.hideOverlay();
}
});
},
defaults: {
template: 'Magestore_OneStepCheckout/summary/cart-items'
},
totals: totals.totals(),
getItems: totals.getItems(),
getItemsQty: function() {
return parseFloat(this.totals.items_qty);
},
showOverlay: function () {
$('#ajax-loader3').show();
$('#control_overlay_review').show();
},
hideOverlay: function () {
$('#ajax-loader3').hide();
$('#control_overlay_review').hide();
},
isItemsBlockExpanded: function () {
return quote.isVirtual() || stepNavigator.isProcessed('shipping');
}
});
}
);
这是实际的购物车-items.js 文件,我想它包含在结帐时显示产品的代码,但我不明白如何应用过滤器来隐藏具有此 sku XXXXXXXXX 或产品 ID XXXXX 的产品。 这是我为测试目的而设置的网站。 http://13.232.223.99
我无法通过代码隐藏产品但我最终设法通过下面的 JQuery 代码隐藏了这些产品。希望对你也有帮助。
您还可以使用相同的代码隐藏其他页面上的产品,例如购物车和订单确认页面,只是元素之间有所不同。
购物车:
if($( "a:contains('demo2')" )){
var element1 = $( "a:contains('demo2')" );
element1.closest('tbody').remove();
}
if($( "a:contains('demo1')" )){
var element2 = $( "a:contains('demo1')" );
element2.closest('tbody').remove();
}
结帐:
if($( "h2:contains('demo2')" )){
var element1 = $( "h2:contains('demo2')" );
element1.closest('tr').remove();
}
if($( "h2:contains('demo1')" )){
var element2 = $( "h2:contains('demo1')" );
element2.closest('tr').remove();
}
同时隐藏所有价格为 0.00 的产品:
if($( "font:contains('$ 0.00')" )){
var element2 = $( "font:contains('$ 0.00')" );
element2.closest('tr').remove();
}
希望这个回答能对您有所帮助。如果是,请不要忘记点击赞成按钮。