Les cookies de Magento 2 ne fonctionnent pas lorsque tout le cache est activé


9

Dans un observateur, je mets un cookie comme celui-ci:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cookieManager = $objectManager->get('Magento\Framework\Stdlib\CookieManagerInterface');

$cookieManager->setPublicCookie('myvar', $myVar);

Tout fonctionne quand Full page cachingest désactivé. Cependant, une fois que je l'ai activé, le cookie ne sera pas défini.

Comment puis-je réparer cela?

Réponses:


2

D'ACCORD. J'ai posé la question sur le GitHub officiel. Il est tout à fait normal que vous essayiez (comme moi) d'accéder à un cookie dans un bloc.

J'ai trouvé ce sujet et surtout celui-ci et j'espère que cela vous aidera.


2

J'ai réussi à définir le cookie de la même manière que magento le stocke en utilisant des plugins.

Voir le fichier pour la définition du plugin: vendor / magento / module-store / etc / di.xml: 265

<type name="Magento\Framework\App\FrontController">
    <plugin name="storeCookieValidate" type="Magento\Store\Model\Plugin\StoreCookie" sortOrder="10"/>
</type>

Et ici, vous avez le cookie réel défini sur beforeDispatch()vendor / magento / module-store / Model / Plugin / StoreCookie.php: 69

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.