Как убрать из браузера данные о продукте Magento? - PullRequest
0 голосов
/ 11 июня 2018

В Magento 2 , когда мы открываем несколько продуктов, он сохраняет данные этих продуктов в window.localStorage.product_data_storage, локально в браузере, во многих браузерах эти данные удаляются автоматически, но в некоторых браузерах это не так.удаление

Я должен сказать, что открыл около 200 продуктов до того, как это произошло, но это никогда не ясно.

Когда мы очищаем кеш браузера затем он удаляет это содержимое данных из браузера, но просто понятно, что конечный пользователь не будет каждый раз очищать свой кэш, поэтому как мы можем удалить это содержимое из их браузера?

ЛюбыеПомощь будет оценена

Спасибо!

1 Ответ

0 голосов
/ 10 июля 2018

Насколько я понял, вы хотели удалить контент из браузера, который Magento хранит локально в каждом браузере, когда вы / кто-либо открывает ваш сайт, чтобы использовать их в некоторых местах, например, для поддержки компонента knock-out js в пурпурном, как на странице оформления заказа, мини-корзине и т. Д. .

Здесь я создал модуль для достижения этой цели, сС помощью этого модуля вы можете управлять тем, сколько контента должно храниться в локальном хранилище браузера.Означает, что magento будет хранить контент в локальном хранилище браузера, но, если вы хотите, чтобы данные удалялись, когда ограничение увеличивается до 10-20 независимо от того, какую единицу измерения вы хотите, тогда модуль удалит контент избраузер и magento снова начнут хранить данные в локальном формате от 1 до желаемого предела.

Создайте модуль в расположении ниже

Magento_root / app / code / {VendorName}/ {ModuleName}

Создайте в нем файлы ниже в соответствующем указанном месте.

  1. registration.php
  2. etc / module.xml
  3. view / frontend / layout / catalog_product_view.xml
  4. view / frontend / templates / product / view / removelocal.phtml
  5. view / frontend / web / js / removelocal.js

Здесь я не помещаю содержание registration.php & module.xml, предполагая, что оно вам уже понято.Для этого ответа я беру VendorName => Vendorname & ModuelName => Removelocal .Вот код пользовательского модуля.

catalog_product_view.xml

<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Magento\Framework\View\Element\Template" name="vendorname.removelocal.content" template="Vendorname_Removelocal::product/view/removelocal.phtml" before="-" />
        </referenceContainer>
    </body>
</page>

removelocal.phtml

<div class="swatch-opt" data-role="remov-local-content"></div>
<script type="text/x-magento-init">
    {
        "[data-role=remov-local-content]": {
            "Vendorname_Removelocal/js/removelocal": {

            }
        }
    }
</script>

removelocal.js

define([
    'jquery'
], function ($){
    'use strict';
    $.widget('mage.removelocal', {

        _init: function () {

            if(window.localStorage.product_data_storage)
            {
                var temp = window.localStorage.product_data_storage;
                var myObject = JSON.parse(window.localStorage.product_data_storage);
                var count = Object.keys(myObject).length;

                if(count >= 10){
                    window.localStorage.removeItem('product_data_storage');
                }
            }
        }
    });
    return $.mage.removelocal;
});

Примечание. После завершения выполните следующую команду.

php bin/magento module:enable Vendorname_Removelocal
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush
...