/** * Don't add item to the collection if only fixed are allowed and its carrier is not fixed * * @param \Magento\Quote\Model\Quote\Address\Rate $rate * @return $this */ public function addItem(\Magento\Framework\DataObject $rate) { $carrier = $this->_carrierFactory->get($rate->getCarrier()); if ($this->_allowFixedOnly && (!$carrier || !$carrier->isFixed())) { return $this; } return parent::addItem($rate); }
/** * Add rule to isGirthAllowed() method * * @param \Magento\Framework\DataObject $subject * @param \Closure $proceed * @return array * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundCheckSizeAndGirthParameter(\Magento\Framework\DataObject $subject, \Closure $proceed) { $carrier = $subject->getCarrier(); $size = $subject->getSourceSizeModel(); $girthEnabled = false; $sizeEnabled = false; if ($carrier && isset($size[0]['value'])) { if ($size[0]['value'] == Carrier::SIZE_LARGE && in_array(key($subject->getContainers()), [Carrier::CONTAINER_NONRECTANGULAR, Carrier::CONTAINER_VARIABLE])) { $girthEnabled = true; } if (in_array(key($subject->getContainers()), [Carrier::CONTAINER_NONRECTANGULAR, Carrier::CONTAINER_RECTANGULAR, Carrier::CONTAINER_VARIABLE])) { $sizeEnabled = true; } } return [$girthEnabled, $sizeEnabled]; }