app/Plugin/SDream/EventSubscriber/ShoppingConfirmSubscriber.php line 33

Open in your IDE?
  1. <?php
  2. namespace Plugin\SDream\EventSubscriber;
  3. use Eccube\Event\EccubeEvents;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Eccube\Event\EventArgs;
  6. use Plugin\SDream\Service\VariableWeightOrderService;
  7. use Psr\Log\LoggerInterface;
  8. class ShoppingConfirmSubscriber implements EventSubscriberInterface
  9. {
  10.     private VariableWeightOrderService $service;
  11.     private LoggerInterface $logger;
  12.     public function __construct(
  13.         VariableWeightOrderService $service,
  14.         LoggerInterface $logger
  15.         )
  16.     {
  17.         $this->service $service;
  18.         $this->logger $logger;
  19.     }
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         return [
  23.             EccubeEvents::FRONT_SHOPPING_CONFIRM_INITIALIZE => 'onConfirm',
  24.         ];
  25.     }
  26.     public function onConfirm(EventArgs $event): void
  27.     {
  28.         //デバッグ用
  29.         $this->logger->info('onConfirm called (test log)');
  30.         /** @var \Eccube\Entity\Order $Order */
  31.         $Order $event->getArgument('Order');
  32.         if (!$Order) {
  33.             return;
  34.         }
  35.         //デバッグ用
  36.         $this->logger->info('VariableWeight apply', [
  37.             'order_id' => $Order->getId(),
  38.             'has_variable_weight' => $Order->hasVariableWeight(),
  39.         ]);
  40.         $this->service->apply($Order);
  41.     }
  42. }