Получить все списки перевозчиков в основном файле 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>
3 answers
Используя модель Mage_Shipping_Model_Config
, вы можете получить список активных носителей, их код в Magento и модель, используемую для этого носителя.
Mage::getSingleton('shipping/config')->getActiveCarriers();
Возвращает массив с кодом в виде ключа , модель в виде значения .
Чтобы получить имя или любое другое значение System > Configuration
, вы можете использовать код
Mage::getStoreConfig("carriers/{$code}/title");
Если вы ищете всех перевозчиков, используйте приведенный ниже код для справки.
<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>
Это позволит вам получить все модули доставки, даже если есть пользовательские, установленные из других модулей.
Ответ Робса отличный, но если вам просто нужен обычай один раз, как в моем случае, то следующий
$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');
}
}