custom/plugins/MojeBambinoExtensions/src/Subscriber/CartPageSubscriber.php line 57

Open in your IDE?
  1. <?php
  2. namespace MojeBambino\Extensions\Subscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Doctrine\DBAL\Connection;
  5. use MojeBambino\Extensions\Struct\Brakuje;
  6. use Shopware\Storefront\Page\Checkout\Cart\CheckoutCartPageLoadedEvent;
  7. use Shopware\Storefront\Page\Checkout\Offcanvas\OffcanvasCartPageLoadedEvent;
  8. use MojeBambino\Extensions\Struct\Przyciski;
  9. class CartPageSubscriber implements EventSubscriberInterface {
  10.     
  11.     private Connection $connection;
  12.     
  13.     public function __construct(Connection $connection){
  14.         $this->connection $connection;
  15.     }
  16.     
  17.     public static function getSubscribedEvents(): array{
  18.         return [CheckoutCartPageLoadedEvent::class => 'onCartPageLoaded'OffcanvasCartPageLoadedEvent::class => 'onCanvasCartPageLoaded'];
  19.     }
  20.     
  21.     public function onCartPageLoaded(CheckoutCartPageLoadedEvent $event): void{
  22.         $cart $event->getPage()->getCart();
  23.         $brakuje = new Brakuje();
  24.         $brakuje->setKoszyk($cart->getPrice()->getPositionPrice());
  25.         $brakuje->setDostawa($cart->getShippingCosts()->getTotalPrice());
  26.         $pozycje $cart->getLineItems()->getTypes();
  27.         //echo "<pre>"; print_r($pozycje); echo "</pre>";
  28.         if(in_array("promotion"$pozycje)){
  29.             $promocja $cart->get(array_search('promotion'$pozycje));
  30.             //echo "<pre>"; print_r($promocja->getPayloadValue("value")); echo "</pre>";
  31.             $brakuje->setKoszyk($cart->getPrice()->getPositionPrice()+$promocja->getPayloadValue("value"));
  32.         }
  33.         if($brakuje->getDostawa()>0){
  34.             $info "<span class='text-danger'>Do darmowej dostawy brakuje ".number_format(150-$brakuje->getKoszyk(), 2","" ")." zł</span>";
  35.         }
  36.         else{
  37.             $info "";
  38.         }  
  39.         $brakuje->setInfo($info);
  40.         $cart->addExtension('brakuje'$brakuje);
  41.         //print_r($cart->getPrice()->getPositionPrice());
  42.         
  43.         $przyciski = new Przyciski();
  44.         
  45.         $query $this->connection->createQueryBuilder();
  46.         $query->select(['*'])->from('przyciski')->where("gdzie='koszyk'")->andWhere("active=1");
  47.         $statement $query->execute();
  48.         $prz $statement->fetchAll(\PDO::FETCH_ASSOC);
  49.         $przyciski->setPrzyciski($prz);
  50.         
  51.         $cart->addExtension('przyciski'$przyciski);
  52.     }
  53.     
  54.     public function onCanvasCartPageLoaded(OffcanvasCartPageLoadedEvent $event): void{
  55.         $cart $event->getPage()->getCart();
  56.         $brakuje = new Brakuje();
  57.         $brakuje->setKoszyk($cart->getPrice()->getPositionPrice());
  58.         $brakuje->setDostawa($cart->getShippingCosts()->getTotalPrice());
  59.         $pozycje $cart->getLineItems()->getTypes();
  60.         if(in_array("promotion"$pozycje)){
  61.             $promocja $cart->get(array_search('promotion'$pozycje));
  62.             //echo "<pre>"; print_r($promocja->getPayloadValue("value")); echo "</pre>";
  63.             $brakuje->setKoszyk($cart->getPrice()->getPositionPrice()+$promocja->getPayloadValue("value"));
  64.         }
  65.         if($brakuje->getDostawa()>0){
  66.             $info "<div class=' col-12 text-danger'>Do darmowej dostawy brakuje ".number_format(150-$brakuje->getKoszyk(), 2","" ")." zł</div>";
  67.         }
  68.         else{
  69.             $info "";
  70.         }
  71.         $brakuje->setInfo($info);
  72.         $cart->addExtension('brakuje'$brakuje);
  73.     }
  74. }