appState = $appState; $this->loggerFactory = $loggerFactory; $this->logger = $this->loggerFactory->create(); } /** * After plugin to filter out unwanted shipping methods * * @param \Magento\Shipping\Model\Rate\Result $subject * @param array $result * @return array */ public function afterGetAllRates($subject, $result) { $this->logger->info('App State: ' . $this->appState->getAreaCode()); if ($this->appState->getAreaCode() == \Magento\Framework\App\Area::AREA_CRONTAB) { return $result; } $filteredMethods = []; foreach ($result as $method) { $code = $method->getCarrier(); // e.g. "flatrate", "freeshipping" $this->logger->info("Checking carrier: {$code}"); if (!in_array($code, self::NO_NO_METHOD)) { $filteredMethods[] = $method; } else { $this->logger->info("Removed shipping method: {$code}"); } } return $filteredMethods; } }