magento 我如何在配送选项上添加徽标?

kuhbmx9i  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(111)

我克隆了tablerate航运方法,有另一个选项(快速快递)。我检查了各地如何才能添加一个标志时,显示航运选项。
"我所做的“在公共函数collectRates内我添加了我的运输模型

$method->setLogo( $this->getShipmentImageSrc('postaromana') );
$result->append($method);

现在我有了logo路径,问题是我不知道如何调用它。我假设调用是在
/app/设计/前端/基础/默认/模板/ checkout /onepage/发货方式/可用.phtml

有什么解决办法吗

bybem2ql

bybem2ql1#

回答我的问题。
我分享我的解决方案,以防有人需要。
app/code/core/Mage/Shipping/etc/system.xml中,将其添加到新运营商

<logo>
    <label>Logo</label>
    <frontend_type>image</frontend_type>
    <backend_model>adminhtml/system_config_backend_image</backend_model>
    <upload_dir config="system/filesystem/media" scope_info="0">freeshippingtimisoara/logo</upload_dir>
    <base_url type="media" scoope_info="0">freeshippingtimisoara/logo</base_url>
    <sort_order>3</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</logo>

/app/code/core/Mage/Shipping/Model/Carrier的载体模型上添加此功能

public function getShipmentImageSrc($shipping)
{
    $logo = $this->getConfigData('logo');
    $imageFilepath = DS . $shipping . DS . $_code . 'logo' . DS . $logo;
    if( file_exists(Mage::getBaseDir('media').$imageFilepath) ){
        return Mage::getBaseUrl('media').$imageFilepath;
    }
    return false;
}

/app/code/core/Mage/Checkout/Block/Onepage/Shipping/Method/Available.php克隆到本地并添加以下函数:

public function getCarrierLogo($carrierCode)
{
    if ($logo = Mage::getStoreConfig('carriers/'.$carrierCode.'/logo')) 
    {
        $carrierModel = Mage::getModel('shipping/carrier_' . $carrierCode);
        $logo = $carrierModel->getShipmentImageSrc($carrierCode);
        return $logo;
    }
    //$shippingModel = Mage::getModel('shipping/shipping');
    //$carrier = $shippingModel->getShipmentImageSrc($carrierCode);
    //Mage::helper('firephp')->debug( $carrier );
}

app/design/frontend/default/sex/template/checkout/onepage/shipping_method/available.phtml中使用此文件我的模板中有此文件,如果您想更改,最好将其复制到您的模板中。

<?php if($this->getCarrierLogo($code)): ?>
    <span class="carrier-desc" style="margin:0 10px">
        <img src="<?php echo $this->getCarrierLogo($code) ?>" alt="<?php echo $_code; ?>" />
    </span>
<?php endif; ?>

相关问题