Elcodi\Plugin\CustomShippingBundle\Provider\ShippingRangesProvider::getAllShippingRangesSatisfiedWithCart PHP Метод

getAllShippingRangesSatisfiedWithCart() публичный Метод

Given a Cart, return a set of ShippingRanges satisfied.
public getAllShippingRangesSatisfiedWithCart ( Elcodi\Component\Cart\Entity\Interfaces\CartInterface $cart ) : Elcodi\Plugin\CustomShippingBundle\Entity\Interfaces\ShippingRangeInterface[]
$cart Elcodi\Component\Cart\Entity\Interfaces\CartInterface Cart
Результат Elcodi\Plugin\CustomShippingBundle\Entity\Interfaces\ShippingRangeInterface[] Set of carriers ranges satisfied
    public function getAllShippingRangesSatisfiedWithCart(CartInterface $cart)
    {
        $availableCarriers = $this->carrierRepository->findBy(['enabled' => true]);
        $satisfiedShippingRanges = [];
        foreach ($availableCarriers as $carrier) {
            $satisfiedShippingRanges = array_merge($satisfiedShippingRanges, $this->getShippingRangesSatisfiedByCart($cart, $carrier));
        }
        return $satisfiedShippingRanges;
    }

Usage Example

 /**
  * 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()));
     }
 }
All Usage Examples Of Elcodi\Plugin\CustomShippingBundle\Provider\ShippingRangesProvider::getAllShippingRangesSatisfiedWithCart