Magento 2: Bagaimana cara menggunakan Cookie?


9

Bagaimana kita bisa menggunakan cookie di magento 2 untuk menyimpan data ..

Saya mencoba menyimpan data dalam cookie, vendor/magento/module-checkout/view/frontend/web/js/model/resource-url-manager.js untuk menyimpan metode pengiriman perkiraan yang dipilih,

Jawaban:


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>

Artikel Bermanfaat di Sisi PHP: https://webkul.com/blog/set-get-data-cookie-magento2/


1
Seperti yang dikatakan @ rakesh-jesadiya di bawah ini, Anda harus menggunakan mage/cookiekebanyakan case. Melakukannya akan secara otomatis menggunakan konfigurasi cookie untuk toko Magento tanpa perlu mendefinisikannya secara eksplisit jquery/jquery.cookie.
Pmclain

10

Anda dapat menyimpan cookie dalam file js menggunakan metode di bawah ini,

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

mage/cookiesApakah untuk Magento 1?
Ankit Shah

1
@AnkitShah mage / cookies juga bekerja di
magento

Adakah yang tahu cara mengatur tanggal kedaluwarsa menggunakan metode ini @RakeshJesadiya?
Ben Crook

@BenCrook, $ .cookie ('foo', '', {path: '/', kedaluwarsa: -1}); tidak bekerja untukmu?
Rakesh Jesadiya

1
Ternyata itu berakhir dengan sesi pengguna secara default yang saya butuhkan. Terkait pertanyaan, apakah ada perbedaan antara $.cookie()dan $.mage.cookies.set()?
Ben Crook

9

Dalam target.phtml, tambahkan kode js seperti di bawah ini.

Atur cookie

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

Jika Anda ingin mendapatkan nilai dari halaman lain, perhatikan pengaturan jalur{ path: '/' } !

Karena cookie hanya dapat diakses ke jalur yang ditentukan dan setiap subpath , diskusi lebih lanjut tentang ini dapat Anda lihat di sini Jalur cookie dan aksesibilitasnya ke halaman subfolder .

Dapatkan cookie

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

cara menggunakan cookie ini pada pengamat atau pengontrol
Sarvesh Tiwari

Saya mencoba dengan kode di atas tetapi saya tidak mendapatkan nilai cookie di halaman lain.
Chirag Patel

Juga saya diperiksa di konsol tetapi saya tidak dapat menemukan di sana.
Chirag Patel

@ChiragPatel Apakah Anda mengatur jalurnya dengan benar? Cookie hanya dapat diakses ke jalur yang ditentukan dan setiap subpath.
Key Shang

@KeyShang Terima kasih! saya memecahkan masalah saya ada masalah dengan kode saya.
Chirag Patel

0

gunakan di bawah ini untuk menyimpan data di dalam cookie. Ini kodenya,

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

0

Hanya dalam kasus Anda perlu membuka atau tidak modal setelah cookie memeriksa:

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

ini adalah urutan yang benar jika tidak modal tidak akan berfungsi

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.