#magento #product #magento2 #cart #checkout
#magento #товар #magento2 #Корзина #Оформить покупку
Вопрос:
Я использую модуль одношаговой проверки из magestore, и я хочу скрыть некоторые товары в кассе magento эти товары предварительно добавляются автоматически при каждом заказе, например, упаковочный материал для этих товаров, поэтому мне нужно скрыть эти товары в кассе и корзине. Как я могу сделать этот модуль одношаговой проверки, он использует 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');
}
});
}
);
Это фактический cart-items.js файл, который, я полагаю, содержит код отображения товаров при оформлении заказа, но я не понимаю, как применить фильтр, чтобы скрыть товары с этим артикулом XXXXXXXXX или идентификатором продукта XXXXX.
Это веб-сайт, который я настраиваю для целей тестирования.
http://13.232.223.99
Ответ №1:
Я не смог скрыть товары с помощью кода, но мне, наконец, удалось скрыть эти товары с помощью кода 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();
}
я надеюсь, что этот ответ окажет вам некоторую помощь. Если да, не забудьте нажать кнопку «Проголосовать».