Насколько я понял, вы хотели удалить контент из браузера, который Magento хранит локально в каждом браузере, когда вы / кто-либо открывает ваш сайт, чтобы использовать их в некоторых местах, например, для поддержки компонента knock-out js
в пурпурном, как на странице оформления заказа, мини-корзине и т. Д. .
Здесь я создал модуль для достижения этой цели, сС помощью этого модуля вы можете управлять тем, сколько контента должно храниться в локальном хранилище браузера.Означает, что magento будет хранить контент в локальном хранилище браузера, но, если вы хотите, чтобы данные удалялись, когда ограничение увеличивается до 10-20 независимо от того, какую единицу измерения вы хотите, тогда модуль удалит контент избраузер и magento снова начнут хранить данные в локальном формате от 1 до желаемого предела.
Создайте модуль в расположении ниже
Magento_root / app / code / {VendorName}/ {ModuleName}
Создайте в нем файлы ниже в соответствующем указанном месте.
- registration.php
- etc / module.xml
- view / frontend / layout / catalog_product_view.xml
- view / frontend / templates / product / view / removelocal.phtml
- 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