app/Plugin/EccubePaymentLite4/EventListener/EventSubscriber/Admin/Product/AddFreeAreaDescriptionFormToProductType.php line 31

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 AddFreeAreaDescriptionFormToProductType implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var SaleTypeRepository
  12.      */
  13.     private $saleTypeRepository;
  14.     public function __construct(
  15.         SaleTypeRepository $saleTypeRepository
  16.     ) {
  17.         $this->saleTypeRepository $saleTypeRepository;
  18.     }
  19.     public static function getSubscribedEvents()
  20.     {
  21.         return [
  22.             '@admin/Product/product.twig' => 'product',
  23.         ];
  24.     }
  25.     public function product(TemplateEvent $event)
  26.     {
  27.         /** @var Product $Product */
  28.         $Product $event->getParameter('Product');
  29.         $sale_type_flg false;
  30.         if ($Product->getProductClasses()->count() > 1) {
  31.             foreach ($Product->getProductClasses() as $productClass){
  32.                 if($productClass->getSaleType()->getName() === '定期商品'){
  33.                     $sale_type_flg true;
  34.                 }
  35.             }
  36.         }
  37.         /** @var SaleType $SaleType */
  38.         $SaleType $this->saleTypeRepository->findOneBy([
  39.             'name' => '定期商品',
  40.         ]);
  41.         if (is_null($SaleType)) {
  42.             return;
  43.         }
  44.         $event->setParameter('regularSaleTypeId'$SaleType->getId());
  45.         $event->setParameter('sale_type_flg'$sale_type_flg);
  46.         $event->addSnippet('@EccubePaymentLite4/admin/Product/add_free_area_description_form.twig');
  47.     }
  48. }