Magento设置多种货币

时间:2012-12-12 09:44:20

标签: magento

我遇到Magento货币问题:我的代码工作正常,否则,现在我想在更改货币后重定向页面。

假设我当前的网址为http://www.example.com/women/?color=black

现在,当我更改货币时,它会重定向到:http://www.example.com/women/;所以删除了?color=black

代码:

if($this->getCurrencyCount()>1): ?>
<div class="block block-currency">
    <div class="block-title">
        <strong><span><?php echo $this->__('Select Your Currency') ?></span></strong>
    </div>
    <div class="block-content">
        <select name="currency" title="<?php echo $this->__('Select Your Currency') ?>" onchange="setLocation(this.value)">
        <?php foreach ($this->getCurrencies() as $_code => $_name): ?>
            <option value="<?php echo $this->getSwitchCurrencyUrl($_code) ?>"<?php if($_code==$this->getCurrentCurrencyCode()): ?> selected="selected"<?php endif; ?>>
                <?php echo $_name ?> - <?php echo $_code ?>
            </option>
        <?php endforeach; ?>
        </select>
    </div>
</div>
<?php endif;

更新代码:

<?PHP $currentParams = $this->getRequest()->getParams(); ?>
<div style="float:left; margin-top:10px; color:#727478;">
    <!--Change 1 to 0 if you wish to output selector always-->
    <?php if($this->getCurrencyCount() > 1): ?>
    <span>Select Currency:</span>

    <select name="custom-currency-selector" id="custom-currency-selector">
    <?php foreach ($this->getCurrencies() as $_code => $_name): 
                $currencyUrl = $this->getSwitchCurrencyUrl($_code);
                foreach ($currentParams as $_param) {
                    $currencyUrl = $this->helper('core/url')->addRequestParam($currencyUrl, $_param);
                }
                ?>
        <option value="<?php echo $currencyUrl; ?>"
            <?php if($_code == $this->getCurrentCurrencyCode()): ?>
                selected="SELECTED"
            <?php endif; ?>>
            <?php echo $_code ?>
        </option>
   <?php endforeach; ?>
   </select>
  <?php endif;?>

更新代码:

 <!--Change 1 to 0 if you wish to output selector always-->
    <?php if($this->getCurrencyCount() > 1): 
    $currentParams = $this->getRequest()->getParams();
    ?>
    <span>Select Currency:</span>
    <select name="custom-currency-selector" id="custom-currency-selector">
    <?php foreach ($this->getCurrencies() as $_code => $_name):
    $currencyUrl = $this->helper('core/url')->addRequestParam($this->getSwitchCurrencyUrl($_code),$currentParams)
     ?>
        <option value="<?php echo $currencyUrl ?>"
            <?php if($_code == $this->getCurrentCurrencyCode()): ?>
                selected="SELECTED"
            <?php endif; ?>>
            <?php echo $_code ?>
        </option>
    <?php endforeach; ?>
    </select>
    <?php endif; ?>

1 个答案:

答案 0 :(得分:0)

您应该将这些参数添加到新网址:

$currentParams = $this->getRequest()->getParams();
$currencyUrl = $this->helper('core/url')->addRequestParam(
    $this->getSwitchCurrencyUrl($_code), 
    $currentParams
)

然后使用$ currencyUrl作为重定向的网址。