<?php
namespace Plugin\SDream\EventSubscriber;
use Eccube\Event\EccubeEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Eccube\Event\EventArgs;
use Plugin\SDream\Service\VariableWeightOrderService;
use Psr\Log\LoggerInterface;
class ShoppingConfirmSubscriber implements EventSubscriberInterface
{
private VariableWeightOrderService $service;
private LoggerInterface $logger;
public function __construct(
VariableWeightOrderService $service,
LoggerInterface $logger
)
{
$this->service = $service;
$this->logger = $logger;
}
public static function getSubscribedEvents(): array
{
return [
EccubeEvents::FRONT_SHOPPING_CONFIRM_INITIALIZE => 'onConfirm',
];
}
public function onConfirm(EventArgs $event): void
{
//デバッグ用
$this->logger->info('onConfirm called (test log)');
/** @var \Eccube\Entity\Order $Order */
$Order = $event->getArgument('Order');
if (!$Order) {
return;
}
//デバッグ用
$this->logger->info('VariableWeight apply', [
'order_id' => $Order->getId(),
'has_variable_weight' => $Order->hasVariableWeight(),
]);
$this->service->apply($Order);
}
}