custom/plugins/NrbnSenertec/src/Subscriber/OrderSubscriber.php line 24

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace NrbnSenertec\Subscriber;
  3. use Shopware\Core\Checkout\Cart\Order\CartConvertedEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. class OrderSubscriber implements EventSubscriberInterface{
  7.     private RequestStack $requestStack;
  8.     public function __construct(RequestStack $requestStack) {
  9.         $this->requestStack $requestStack;
  10.     }
  11.     public static function getSubscribedEvents(): array {
  12.         return [
  13.             CartConvertedEvent::class => 'addCustomFieldsToOrder',
  14.         ];
  15.     }
  16.     public function addCustomFieldsToOrder(CartConvertedEvent $event) {
  17.         $orderData $event->getConvertedCart();
  18.         $orderCustomFields $orderData['customFields'] ?? [];
  19.         $nrbn_comment_shipping $this->requestStack->getCurrentRequest()->request->get('nrbn_comment_shipping');
  20.         $nrbn_shipping_date $this->requestStack->getCurrentRequest()->request->get('nrbn_shipping_date');
  21.         $nrbn_shipping_complete $this->requestStack->getCurrentRequest()->request->get('nrbn_shipping_complete');
  22.         $nrbn_subject_commission $this->requestStack->getCurrentRequest()->request->get('nrbn_subject_commission');
  23.         if ($nrbn_comment_shipping){
  24.             $orderCustomFields['nrbn_orderattributes_comment_shipping'] = $nrbn_comment_shipping;
  25.         }
  26.         if ($nrbn_shipping_date){
  27.             $orderCustomFields['nrbn_orderattributes_shipping_date'] = $nrbn_shipping_date;
  28.         }
  29.         if ($nrbn_shipping_complete){
  30.             $orderCustomFields['nrbn_orderattributes_shipping_complete'] = (bool) $nrbn_shipping_complete;
  31.         }
  32.         if ($nrbn_subject_commission){
  33.             $orderCustomFields['nrbn_subject_commission'] = $nrbn_subject_commission;
  34.         }
  35.         $orderData['customFields'] = $orderCustomFields;
  36.         $event->setConvertedCart($orderData);
  37.     }
  38. }