Magento 2:Cookieの使用方法


9

magento 2でcookieを使用してデータを保存するにはどうすればよいですか。

vendor/magento/module-checkout/view/frontend/web/js/model/resource-url-manager.js 選択した推定配送方法を保存するために、Cookieにデータを保存しようとしています 。

回答:


15

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/


1
@ rakesh-jesadiyaが以下に述べるように、mage/cookieほとんどのユースケースで使用する必要があります。これにより、で明示的に定義する必要なく、MagentoストアのCookie設定が自動的に使用されますjquery/jquery.cookie
Pmclain 2017

10

あなたは以下の方法を使用してjsファイルにクッキーを保存することができます、

define([
    'jquery',
    'mage/cookies'
], function ($) {
    $.cookie('cookiename', cookievalue);
});

mage/cookiesMagento 1用ですか?
Ankit Shah 2017

1
@AnkitShah mage / cookiesはmagento 2でも動作します
Rakesh Jesadiya 2017年

このメソッド@RakeshJesadiyaを使用して有効期限を設定する方法はありますか?
Ben Crook

@BenCrook、$ .cookie( 'foo'、 ''、{path: '/'、expires:-1}); あなたのために働いていませんか?
Rakesh Jesadiya 2017年

1
デフォルトでユーザーのセッションで期限切れになることがわかりました。関連質問、との間に違いは$.cookie()あり $.mage.cookies.set()ますか?
Ben Crook

9

target.phtml、以下のようなjsコ​​ードを追加します。

クッキーを設定する

<script>
    require([
        'jquery',
        'mage/cookies'
    ], function ($) {
       $.cookie('cookie_name', 'value', { path: '/' });//Set the cookies
    });
</script>

別のページから値を取得する場合は、パス設定に注意してください{ path: '/' }

のでクッキーが指定したパスおよび任意のサブパスにのみアクセス可能な、これについての議論あなたはここで見ることができたクッキーのパスとサブフォルダのページへのアクセスを

クッキーを入手する

<script>
    require([
        'jquery',
        'mage/cookies'
    ], function ($) {
        var temp = $.cookie('cookie_name');//Get the cookies
    });
</script>

オブザーバーまたはコントローラーでこのCookieを使用する方法
Sarvesh Tiwari 2018

上記のコードを試してみましたが、別のページでCookieの値を取得できません。
Chirag Patel

また、コンソールでチェックインされましたが、見つかりません。
Chirag Patel

@ChiragPatelパスを正しく設定していますか?Cookieは、指定されたパスとすべてのサブパスにのみアクセスできます。
Key Shang

@KeyShangありがとう!コードに問題があるので問題を解決しました。
Chirag Patel

0

以下を使用してcookie内にデータを保存します。これがコードです、

<script>
require([
    'jquery',
    'jquery/jquery.cookie',
    'domReady!'
], function($) {
  var data = "store my data";
  $.cookie('my_data', data );
  console.log($.cookie('my_data'));
});
</script>

0

Cookieチェック後にモーダルを開く必要があるかどうかを確認するために:

 require(
    [
        'jquery',
        'Magento_Ui/js/modal/modal',
        'jquery/jquery.cookie'
    ],

これは正しい順序です。それ以外の場合、モーダルは機能しません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.