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,

Yogesh
sumber

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/

Ankit Shah
sumber
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);
});
Rakesh Jesadiya
sumber
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>
Key Shang
sumber
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>
Tonmoy
sumber
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

Enrico Thrasher Monzeglio
sumber