Ответы:
app/code/Custom/Module/view/frontend/templates/sample.phtml
<script type="text/javascript">
require([
'jquery',
'jquery/jquery.cookie'
], function ($) {
$(document).ready(function () {
var check_cookie = $.cookie('foo'); // Get Cookie Value
var date = new Date();
var minutes = 60;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie('foo', '', {path: '/', expires: -1}); // Expire Cookie
$.cookie('foo', 'bar', {expires: date}); // Set Cookie Expiry Time
$.cookie('foo', 'setvalue'); // Set Cookie Value
}
});
</script>
Полезная статья о стороне PHP: https://webkul.com/blog/set-get-data-cookie-magento2/
Вы можете сохранить cookie в js файле, используя метод ниже,
define([
'jquery',
'mage/cookies'
], function ($) {
$.cookie('cookiename', cookievalue);
});
mage/cookies
это для Magento 1?
$.cookie()
и $.mage.cookies.set()
?
В target.phtml
, добавьте JS коды, как показано ниже.
<script>
require([
'jquery',
'mage/cookies'
], function ($) {
$.cookie('cookie_name', 'value', { path: '/' });//Set the cookies
});
</script>
Если вы хотите получить значение с другой страницы, обратите внимание на настройку пути
{ path: '/' }
!Поскольку файлы cookie доступны только по указанному пути и любым подпутям , более подробно об этом вы можете узнать здесь Путь файла cookie и его доступ к страницам подпапок .
<script>
require([
'jquery',
'mage/cookies'
], function ($) {
var temp = $.cookie('cookie_name');//Get the cookies
});
</script>
На всякий случай, если вам нужно открыть модал или нет после проверки куки:
require(
[
'jquery',
'Magento_Ui/js/modal/modal',
'jquery/jquery.cookie'
],
это правильный порядок, иначе модал не будет работать
mage/cookie
для большинства случаев использования. При этом будет автоматически использоваться конфигурация cookie для магазина Magento без необходимости явно определять их с помощьюjquery/jquery.cookie
.