Files

73 lines
2.3 KiB
PHP

<?php
/**
* @package Plumrocket_CookieConsent
* @copyright Copyright (c) 2020 Plumrocket Inc. (https://plumrocket.com)
* @license https://plumrocket.com/license End-user License Agreement
*/
declare(strict_types=1);
namespace Plumrocket\CookieConsent\Plugin;
use Magento\Framework\Stdlib\Cookie\PublicCookieMetadata;
use Magento\Framework\Stdlib\Cookie\SensitiveCookieMetadata;
use Magento\Framework\Stdlib\CookieManagerInterface;
use Plumrocket\CookieConsent\Api\IsAllowedCookieInterface;
/**
* @since 1.0.0
*/
class CookieManagerPlugin
{
/**
* @var \Plumrocket\CookieConsent\Api\IsAllowedCookieInterface
*/
private $isAllowCookie;
/**
* @param \Plumrocket\CookieConsent\Api\IsAllowedCookieInterface $isAllowCookie
*/
public function __construct(IsAllowedCookieInterface $isAllowCookie)
{
$this->isAllowCookie = $isAllowCookie;
}
/**
* @param \Magento\Framework\Stdlib\CookieManagerInterface $subject
* @param callable $proceed
* @param $name
* @param $value
* @param \Magento\Framework\Stdlib\Cookie\PublicCookieMetadata|null $metadata
*/
public function aroundSetPublicCookie(
CookieManagerInterface $subject,
callable $proceed,
$name,
$value,
?PublicCookieMetadata $metadata = null
) {
if ($this->isAllowCookie->execute($name)) {
$proceed($name, $value, $metadata);
}
}
/**
* @param \Magento\Framework\Stdlib\CookieManagerInterface $subject
* @param callable $proceed
* @param $name
* @param $value
* @param \Magento\Framework\Stdlib\Cookie\SensitiveCookieMetadata|null $metadata
*/
public function aroundSetSensitiveCookie(
CookieManagerInterface $subject,
callable $proceed,
$name,
$value,
?SensitiveCookieMetadata $metadata = null
) {
if ($this->isAllowCookie->execute($name)) {
$proceed($name, $value, $metadata);
}
}
}