我克隆了tablerate送货方法,有另一种选择(快递)。 我在任何地方检查了如何在显示运输选项时添加徽标。
我做了什么:
在我的运输模型中的公共功能collectRates
中,我添加了
$method->setLogo( $this->getShipmentImageSrc('postaromana') );
$result->append($method);
所以现在我有了logo路径,问题是我不知道如何调用它。我打电话是在
/app/design/frontend/base/default/template/checkout/onepage/shipping_method/available.phtml
有任何想法如何解决这个问题?
答案 0 :(得分:4)
解决我的问题。
如果有人需要,我会分享我的解决方案。
在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; ?>