Как спрятать товар в кассе magento 2 и в корзине - PullRequest
2 голосов
/ 14 апреля 2019

Я использую одношаговый модуль проверки из magestore и хочу скрыть некоторые товары в magento checkout. Эти продукты автоматически добавляются при каждом заказе, например, упаковочный материал для этих продуктов. Поэтому мне нужно скрыть эти продукты в оформлении заказа и в корзине. Как я могу сделать этот одноступенчатый модуль проверки, он использует 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, который, как я полагаю, содержит код отображения товаров в кассе, но я не понимаю, как применить фильтр, чтобы скрыть товары с этим sku XXXXXXXXX или идентификатором продукта XXXXX. Это веб-сайт, который я настроил для тестирования. http://13.232.223.99

1 Ответ

1 голос
/ 16 апреля 2019

Мне не удалось скрыть продукты через код, но мне, наконец, удалось скрыть эти продукты через код 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();
}

Я надеюсь, что этот ответ поможет вам. Если да, не забудь нажать кнопку upvote.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...