Pra*_*ekh 3 shipping magento-1.7
我已经采用了两种送货方式.1. tablerate 2.免运费
我只需要展示单一运输方式,并启用两种运输方式.我在app\code\core\Mage\Checkout\Block\Onepage\Shipping\Method\Available.php中自定义代码
if (!empty($groups)) {
$ratesFilter = new Varien_Filter_Object_Grid();
$ratesFilter->addFilter(Mage::app()->getStore()->getPriceFilter(), 'price');
$custom = array();
$k=0;
foreach ($groups as $code => $groupItems) {
$custom['shippingmethod'][$k] = $code;
$k++;
}
$check = array('tablerate','freeshipping');
if(in_array($check,$custom)){
foreach ($groups as $code => $groupItems) {
if($code == 'tablerate')
$groups[$code] = $ratesFilter->filter($groupItems);
}
} else {
foreach ($groups as $code => $groupItems) {
$groups[$code] = $ratesFilter->filter($groupItems);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它不给我运费方式的价格.还有其他解决方案吗?
您可以在前端模板中自定义此功能.您将不得不更改app/design/frontend/_your_package _/_ your_theme_/template/checkout/onepage/shipping_method/available.phtml
我想你只想展示免费送货.当无法获得免费提供时,无论如何都不应该显示.
原始代码:
<dl class="sp-methods">
<?php $shippingCodePrice = array(); ?>
Run Code Online (Sandbox Code Playgroud)
新代码:
<dl class="sp-methods">
<?php
$showFreeShipping = false;
$_shippingRateGroupsReduced = array();
foreach ($_shippingRateGroups as $code => $_rates) {
if(strstr($code, 'freeshipping')) {
$showFreeShipping = true;
$_shippingRateGroupsReduced[$code] = $_shippingRateGroups[$code];
}
}
if($showFreeShipping) {
$_shippingRateGroups = $_shippingRateGroupsReduced;
}
?>
<?php $shippingCodePrice = array(); ?>
Run Code Online (Sandbox Code Playgroud)