| Current Path : /var/www/clients/client3/web2/web/vendor/magento/module-shipping/Model/Config/Source/ |
| Current File : /var/www/clients/client3/web2/web/vendor/magento/module-shipping/Model/Config/Source/Allmethods.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Shipping\Model\Config\Source;
/**
* @inheritdoc
*/
class Allmethods implements \Magento\Framework\Option\ArrayInterface
{
/**
* Core store config
*
* @var \Magento\Framework\App\Config\ScopeConfigInterface
*/
protected $_scopeConfig;
/**
* @var \Magento\Shipping\Model\Config
*/
protected $_shippingConfig;
/**
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
* @param \Magento\Shipping\Model\Config $shippingConfig
*/
public function __construct(
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Shipping\Model\Config $shippingConfig
) {
$this->_scopeConfig = $scopeConfig;
$this->_shippingConfig = $shippingConfig;
}
/**
* Return array of carriers.
*
* If $isActiveOnlyFlag is set to true, will return only active carriers
*
* @param bool $isActiveOnlyFlag
* @return array
*/
public function toOptionArray($isActiveOnlyFlag = false)
{
$methods = [['value' => '', 'label' => '']];
$carriers = $this->_shippingConfig->getAllCarriers();
foreach ($carriers as $carrierCode => $carrierModel) {
if (!$carrierModel->isActive() && (bool)$isActiveOnlyFlag === true) {
continue;
}
$carrierMethods = $carrierModel->getAllowedMethods();
if (!$carrierMethods) {
continue;
}
$carrierTitle = $this->_scopeConfig->getValue(
'carriers/' . $carrierCode . '/title',
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
$methods[$carrierCode] = ['label' => $carrierTitle, 'value' => []];
foreach ($carrierMethods as $methodCode => $methodTitle) {
/** Check it $carrierMethods array was well formed */
if (!$methodCode) {
continue;
}
$methods[$carrierCode]['value'][] = [
'value' => $carrierCode . '_' . $methodCode,
'label' => '[' . $carrierCode . '] ' . $methodTitle,
];
}
}
return $methods;
}
}