/** * Given a Cart, return a set of Valid ShippingRanges satisfied. * * @param ShippingCollectionEvent $event Event * * @return $this Self object */ public function addCustomShippingMethods(ShippingCollectionEvent $event) { if (!$this->plugin->isEnabled()) { return $this; } $cart = $event->getCart(); $carrierRanges = $this->shippingRangesProvider->getAllShippingRangesSatisfiedWithCart($cart); foreach ($carrierRanges as $carrierRange) { $event->addShippingMethod(new ShippingMethod('custom-shipping-method-' . $carrierRange->getId(), $carrierRange->getCarrier()->getName(), $carrierRange->getName(), '', $carrierRange->getPrice())); } }
/** * Checks if the plugin should be disabled * * @param GetResponseEvent $event The response event */ public function handle(GetResponseEvent $event) { if ($this->plugin->isEnabled() && $this->wizardStatus->isWizardFinished()) { $this->plugin->setEnabled(false); $this->pluginObjectManager->flush($this->plugin); } }
/** * Renders the mini wizard bar * * @param EventInterface $event The event */ public function renderMiniWizard(EventInterface $event) { if ($this->plugin->isEnabled() && $this->isVisible() && !$this->wizardStatus->isWizardFinished()) { $stepsFinished = $this->wizardStatus->getStepsFinishStatus(); $activeStep = $this->wizardStatus->getNextStep(); $firstCarrier = $this->carrierRepository->findOneBy(['enabled' => true], ['id' => 'ASC']); $firstCarrier = $firstCarrier instanceof CarrierInterface ? $firstCarrier : false; $this->appendTemplate('@ElcodiStoreSetupWizard/Wizard/wizard.html.twig', $event, $this->plugin, ['stepsFinished' => $stepsFinished, 'activeStep' => $activeStep, 'isMiniWizard' => true, 'carrier' => $firstCarrier]); } }
/** * Handles the event redirecting to the wizard if the user is visiting the * dashboard * * @param GetResponseEvent $event The response event */ public function handle(GetResponseEvent $event) { if ($this->plugin->isEnabled() && !$this->wizardStatus->isWizardFinished()) { $request = $event->getRequest(); $currentRoute = $this->getCurrentRequestRoute($request); if ('admin_homepage' == $currentRoute) { $event->setResponse(new RedirectResponse($this->urlGenerator->generate($this->wizardRoutes->getDefaultWizardRoute()))); } } }