app/Plugin/EccubePaymentLite4/EventListener/EventSubscriber/Admin/Product/AddRegularDiscountFormToProductClassType.php line 30

Open in your IDE?
  1. <?php
  2. namespace Plugin\EccubePaymentLite4\EventListener\EventSubscriber\Admin\Product;
  3. use Eccube\Entity\Master\SaleType;
  4. use Eccube\Entity\Product;
  5. use Eccube\Event\TemplateEvent;
  6. use Eccube\Repository\Master\SaleTypeRepository;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class AddRegularDiscountFormToProductClassType implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var SaleTypeRepository
  12.      */
  13.     private $saleTypeRepository;
  14.     public function __construct(SaleTypeRepository $saleTypeRepository)
  15.     {
  16.         $this->saleTypeRepository $saleTypeRepository;
  17.     }
  18.     public static function getSubscribedEvents(): array
  19.     {
  20.         return [
  21.             '@admin/Product/product.twig' => 'product',
  22.         ];
  23.     }
  24.     public function product(TemplateEvent $event): void
  25.     {
  26.         /** @var Product $Product */
  27.         $Product $event->getParameter('Product');
  28.         if ($Product->getProductClasses()->count() > 1) {
  29.             return;
  30.         }
  31.         /** @var SaleType $SaleType */
  32.         $SaleType $this->saleTypeRepository->findOneBy(['name' => '定期商品']);
  33.         if (is_null($SaleType)) {
  34.             return;
  35.         }
  36.         $event->setParameter('regularSaleTypeId'$SaleType->getId());
  37.         $event->addSnippet('@EccubePaymentLite4/admin/Product/regular_discount.twig');
  38.     }
  39. }