![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/Ecombricks/InventoryShipping/Plugin/Model/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See COPYING.txt for license details. */ namespace Ecombricks\InventoryShipping\Plugin\Model; /** * Carrier factory plugin */ class CarrierFactory extends \Ecombricks\Framework\Plugin\AbstractPlugin { /** * Get source carrier code * * @param array|string $carrierCode * @return string */ protected function getSourceCarrierCode($carrierCode) { if (is_array($carrierCode)) { $sourceCode = $this->getSubject()->getSourceCode(); if (!empty($sourceCode)) { $carrierCode = !empty($carrierCode[$sourceCode]) ? $carrierCode[$sourceCode] : null; } else { $carrierCode = current($carrierCode); } } return $carrierCode; } /** * Around get * * @param \Magento\Shipping\Model\CarrierFactory $subject * @param \Closure $proceed * @param array|string $carrierCode * @return bool|\Magento\Shipping\Model\Carrier\AbstractCarrier */ public function aroundGet( \Magento\Shipping\Model\CarrierFactory $subject, \Closure $proceed, $carrierCode ) { $this->setSubject($subject); return $proceed($this->getSourceCarrierCode($carrierCode)); } /** * Around create * * @param \Magento\Shipping\Model\CarrierFactory $subject * @param \Closure $proceed * @param array|string $carrierCode * @param int|null $storeId * @return bool|\Magento\Shipping\Model\Carrier\AbstractCarrier */ public function aroundCreate( \Magento\Shipping\Model\CarrierFactory $subject, \Closure $proceed, $carrierCode, $storeId = null ) { $this->setSubject($subject); return $proceed($this->getSourceCarrierCode($carrierCode), $storeId); } /** * Around get if active * * @param \Magento\Shipping\Model\CarrierFactory $subject * @param \Closure $proceed * @param array|string $carrierCode * @return bool|\Magento\Shipping\Model\Carrier\AbstractCarrier */ public function aroundGetIfActive( \Magento\Shipping\Model\CarrierFactory $subject, \Closure $proceed, $carrierCode ) { $this->setSubject($subject); return $proceed($this->getSourceCarrierCode($carrierCode)); } /** * Around create if active * * @param \Magento\Shipping\Model\CarrierFactory $subject * @param \Closure $proceed * @param array|string $carrierCode * @param int|null $storeId * @return bool|\Magento\Shipping\Model\Carrier\AbstractCarrier */ public function aroundCreateIfActive( \Magento\Shipping\Model\CarrierFactory $subject, \Closure $proceed, $carrierCode, $storeId = null ) { $this->setSubject($subject); return $proceed($this->getSourceCarrierCode($carrierCode), $storeId); } }