嘿伙计们,我的magento商店只有一种名为JNE http://www.magentocommerce.com/magento-connect/suhanto-jne.html的送货方式
我希望在我的客户填满他的城市时自动选择送货方式。
我已经搜索并找到了这个:http://www.magentocommerce.com/boards/viewthread/9223/#t33602
他的解决方案就像这样
// find methods loop:
<?php foreach ($_rates as $_rate): ?>
// add checking for free shipping method and setting it as default
<?php if ($_rate->getCode()=='freeshipping_freeshipping' && !$this->getAddress()->getShippingMethod()) {
$this->getAddress()->setShippingMethod($_rate->getCode());
} ?>
我不知道我应该在free.html中将代码放在哪里
顺便说一下,我在available.html
中有这个代码<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
<strong><?php echo $this->__('Sorry, no quotes are available for this order at this time.') ?></strong>
<dl class="shipment-methods">
<?php foreach ($_shippingRateGroups as $code => $_rates): ?>
<dt><?php echo $this->getCarrierName($code) ?></dt>
<dd>
<ul>
<?php foreach ($_rates as $_rate): ?>
<li>
<?php if ($_rate->getErrorMessage()): ?>
<ul class="messages"><li class="error-msg"><ul><li><?php echo $_rate->getErrorMessage() ?></li></ul></li></ul>
<?php else: ?>
<input name="shipping_method" type="radio" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?> onclick="shippingMethodStep.save()"/>
<label for="s_method_<?php echo $_rate->getCode() ?>"><?php echo $_rate->getMethodTitle() ?>
<strong>
<?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
<?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>
<?php echo $_excl; ?>
<?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
(<?php echo $this->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
<?php endif; ?>
</strong>
</label>
<?php endif ?>
</li>
<?php endforeach; ?>
</ul>
</dd>
<?php endforeach; ?>
您能告诉我应该在哪里更换或添加该解决方案。
或者自动选择jne运输方法的其他解决方案
答案 0 :(得分:0)
在您的情况下非常难看的方法是编辑
<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?>
在input
到
<?php if($_rate->getCode()===$this->getAddressShippingMethod() or true){ echo ' checked="checked"';}
这不是一个非常聪明的原因,但它会适用于您的情况,因为每个单选按钮都会被选中 - 在您的情况下它只是一个。但最好检查一下是否只有一种运输方式。也许这也有效(到目前为止我还没有测试过):
<?php if($_rate->getCode()===$this->getAddressShippingMethod() or count($_shippingRateGroups) == 1){ echo ' checked="checked"';}
它计算出货数组的数组元素数。如果它只是一个元素,则设置selected
- 标记。