src/Menu/AdminOrderShowMenuListener.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Menu;
  3. use Sylius\Bundle\AdminBundle\Event\OrderShowMenuBuilderEvent;
  4. use Sylius\Component\Core\Model\OrderInterface;
  5. final class AdminOrderShowMenuListener
  6. {
  7.     /**
  8.      * @param OrderShowMenuBuilderEvent $event
  9.      * @return void
  10.      */
  11.     public function addAdminOrderShowMenuItems(OrderShowMenuBuilderEvent $event): void
  12.     {
  13.         $menu $event->getMenu();
  14.         $order $event->getOrder();
  15.         // Remove default Cancel button
  16.         if ($menu->getChild('cancel')) {
  17.             $menu->removeChild('cancel');
  18.         }
  19.         // Add custom Cancel button
  20.         if ($order->getId() && $order->getState() !== OrderInterface::STATE_CANCELLED) {
  21.             $menu
  22.                 ->addChild('cancel_order', [
  23.                     'route' => 'app_admin_cancel_order',
  24.                     'routeParameters' => ['orderId' => $order->getId()]
  25.                 ])
  26.                 ->setLabel('Annuler la commande')
  27.                 ->setLabelAttribute('icon''cancel')
  28.                 ->setLabelAttribute('color''red')
  29.             ;
  30.         }
  31.     }
  32. }