Получить все списки перевозчиков в основном файле PHP


Хотите получить все имена носителей в a.PHP-файл В основном PHP-файле, который доступен во внутренней папке Magento,

Например, MagentoRootFolder/CorePHPFolder/File.php **

Для внешнего использования кода Magento я использую следующий код:

<?php
require_once('../app/Mage.php'); //Path to Magento
umask(0);
Mage::app();
// extra code 
?>
<select>
    <?php 
        // **Here I need Code** to Get *All Shipping Carrier List*
    ?>
</select>
Author: Teja Bhagavan Kollepara, 2015-03-30

3 answers

Используя модель Mage_Shipping_Model_Config, вы можете получить список активных носителей, их код в Magento и модель, используемую для этого носителя.

Mage::getSingleton('shipping/config')->getActiveCarriers();

Возвращает массив с кодом в виде ключа , модель в виде значения .

Чтобы получить имя или любое другое значение System > Configuration, вы можете использовать код

Mage::getStoreConfig("carriers/{$code}/title");
 2
Author: Sander Mangel, 2015-03-30 09:43:12

Если вы ищете всех перевозчиков, используйте приведенный ниже код для справки.

<code>
$carriersData = array();
$carriers = Mage::getsingleton("shipping/config")->getAllCarriers();
foreach($carriers as $code => $method){
    $carriersData[$code] = array(
        "title"     => Mage::getStoreConfig("carriers/$code/title"),
        "methods"   => $method->getMethods(),
     );
}
</code>

Это позволит вам получить все модули доставки, даже если есть пользовательские, установленные из других модулей.

 3
Author: Rob David, 2015-07-03 04:15:13

Ответ Робса отличный, но если вам просто нужен обычай один раз, как в моем случае, то следующий

$carriers = array();
$carrierInstances = Mage::getSingleton('shipping/config')->getAllCarriers();
$carriers['custom'] = Mage::helper('sales')->__('Custom Value');
foreach ($carrierInstances as $code => $carrier) {
    if ($carrier->isTrackingAvailable()) {
        $carriers[$code] = $carrier->getConfigData('title');
    }
}
 1
Author: xelber, 2018-05-15 04:01:26