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?

Sam Hendrickx
la source

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.

enrico69
la source
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

Magarusu
la source