I have this working code for setting the cookie for a visitor:
$metadata = $cookieMetadataFactory
->createPublicCookieMetadata()
->setDuration(86400 * 90)
->setPath('/');
$cookieManager->setPublicCookie(
'cookie_name',
'cookie_value',
$metadata
);
But, since I enabled full page cache for the website, this code stopped working. Disabling cache is not a option, using javascript is not a option...
I noticed that other extensions that use cookies (like Amasty Affiliate), also don't work. Is this default Magento behaviour?
It seems like the Full Page Cache (FPC) is interfering together with your cookie putting capability. When FPC is enabled, the page content material is cached, so your server-aspect code for setting the cookie isn't always being carried out on every page load. Here are some steps you could observe to solve this difficulty:
Utilize AJAX: Use an AJAX call to a server-aspect action to set the cookie, thereby isolating the cookie putting from page rendering.
On the server-facet, you will take care of cookie putting as regular.
HTTP Cookies:
Set cookies via HTTP headers through web server configuration or a reverse proxy. Custom Cache Contexts:
Establish a custom cache context or a cacheable block in Magento to manipulate cookies at the same time as maintaining FPC enabled. Extension Configurations:
Check configurations of any third-party extensions installed, some might have solutions for managing cookies with FPC.