0

Magento で onestepcheckout を使用しています。追加の定額料金を追加して、そのうちの 2 つを使用しています。カートの小計に応じて、定額料金の 1 つだけを表示できるようにしたいと考えています。

小計を変数に入れましたが、コードには利用可能な各配送方法の foreach があるため、$total500 を超える場合は 2 番目の配送方法のみを表示し、合計が 500 未満の場合は最初の配送方法のみを表示する方法が必要です。

<?php $total = Mage::getSingleton('checkout/session')->getQuote()->getSubtotal(); ?>
                <?php foreach ($_shippingRateGroups as $code => $_rates): ?>
                            <dd><?php echo $this->getCarrierName($code) ?></dd>
                        <?php foreach ($_rates as $_rate): ?>
                            <dt style="margin-bottom: 5px;">

                               <?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" class="validate-one-required-by-name" value="<?php echo $_rate->getCode() ?>" id="s_method_<?php echo $_rate->getCode() ?>"<?php if($_rate->getCode()===$this->getAddressShippingMethod()) echo ' checked="checked"' ?> />
                                    <label for="s_method_<?php echo $_rate->getCode() ?>"><!--<b><?php echo $this->getCarrierName($code) ?>:</b>--> <?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 ?>
                            </dt>
                        <?php endforeach; ?>
                <?php endforeach; ?>
4

1 に答える 1

0

ただやって...

//first method here by default
if($total>500){
 //second method here
}

あなたはすでにこれを行う方法を知っていると何かが私に言います

コード内の最初と2番目のメソッドが何であるかを解読できません。そうでなければ、より完全なコードを投稿したでしょう

于 2013-06-27T18:13:30.247 に答える