Magento 2: ¿Cómo usar la cookie?


9

¿Cómo podemos usar las cookies en magento 2 para almacenar datos?

Estoy tratando de almacenar datos en cookies, vendor/magento/module-checkout/view/frontend/web/js/model/resource-url-manager.js para almacenar el método de envío estimado seleccionado,

Respuestas:


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>

Artículo útil en el lado de PHP: https://webkul.com/blog/set-get-data-cookie-magento2/


1
Como @ rakesh-jesadiya dice a continuación, debería usarlo mage/cookiepara la mayoría de los casos de uso. Al hacerlo, se usará automáticamente la configuración de cookies para la tienda Magento sin necesidad de definirlas explícitamente jquery/jquery.cookie.
— Pmclain

10

Puede almacenar cookies en el archivo js utilizando el método siguiente,

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

mage/cookieses para Magento 1?
— Ankit Shah

1
@AnkitShah mage / cookies también está trabajando en magento 2.
— Rakesh Jesadiya

¿Alguna idea de cómo establecer una fecha de vencimiento utilizando este método @RakeshJesadiya?
— Ben Crook

@BenCrook, $ .cookie ('foo', '', {ruta: '/', caduca: -1}); no te funciona?
— Rakesh Jesadiya

1
Resulta que caduca con la sesión del usuario por defecto, que es lo que necesitaba. Pregunta relacionada, ¿hay alguna diferencia entre $.cookie()y $.mage.cookies.set()?
— Ben Crook

9

En el target.phtml, agregue códigos js como a continuación.

Establecer las cookies

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

Si desea obtener el valor de otra página, observe la configuración de la ruta{ path: '/' } .

Debido a que solo se puede acceder a las cookies en la ruta especificada y en cualquier ruta secundaria , puede ver más información sobre esto aquí Ruta de la cookie y su accesibilidad a las páginas de subcarpetas .

Consigue las galletas

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

cómo usar estas cookies en el observador o controlador
— Sarvesh Tiwari

Intento con el código anterior pero no obtengo el valor de la cookie en otra página.
— Chirag Patel

También me registraron en la consola pero no puedo encontrarla allí.
— Chirag Patel

@ChiragPatel ¿Estableces el camino correcto? Solo se puede acceder a las cookies en la ruta especificada y en cualquier ruta secundaria.
— Key Shang

@KeyShang ¡Gracias! Resolví mi problema, hay un problema con mi código.
— Chirag Patel

0

use lo siguiente para almacenar datos dentro de las cookies. Aquí está el código

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

0

En caso de que necesite abrir o no un modal después de la comprobación de cookies:

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

este es el orden correcto, de lo contrario el modal no funcionará

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.