local/modules/VirtualProductControl/Hook/VirtualProductHook.php line 40
<?php
/*
* This file is part of the Thelia package.
* http://www.thelia.net
*
* (c) OpenStudio <info@thelia.net>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace VirtualProductControl\Hook;
use Thelia\Core\Event\Hook\HookRenderEvent;
use Thelia\Core\Hook\BaseHook;
use Thelia\Core\Security\AccessManager;
use Thelia\Core\Security\Resource\AdminResources;
use Thelia\Core\Security\SecurityContext;
use Thelia\Model\ModuleQuery;
use Thelia\Model\ProductQuery;
/**
* Class VirtualProductHook.
*
* @author Manuel Raynaud <manu@raynaud.io>
*/
class VirtualProductHook extends BaseHook
{
/**
* @var SecurityContext
*/
protected $securityContext;
public function __construct(SecurityContext $securityContext)
{
$this->securityContext = $securityContext;
}
public function onMainBeforeContent(HookRenderEvent $event): void
{
if ($this->securityContext->isGranted(
['ADMIN'],
[AdminResources::PRODUCT],
[],
[AccessManager::VIEW]
)) {
$products = ProductQuery::create()
->filterByVirtual(1)
->filterByVisible(1)
->count();
if ($products > 0) {
$deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery();
if (false === $deliveryModule) {
$event->add($this->render('virtual-delivery-warning.html'));
}
}
}
}
}