同时显示两种货币的产品价格?

时间:2013-06-04 11:56:36

标签: javascript php prestashop prestashop-1.5

如何修改PrestaShop 1.5以同时显示两种货币的产品价格(即产品和类别页面中列出的产品的基本货币和访客货币):

Example

我想我应该修改ProductController.phpproduct.tpl。这是对的吗?

以下是我在论坛上找到的产品页面的一个解决方案,但它适用于PrestaShop 1.4x:

  1. 覆盖/controllers/ProductController.php中的ProductController.php

    <?php
    class ProductController extends ProductControllerCore{
        public function displayContent() {
            global $currency;
            $second_currency = 'USD';
            $productPriceWithTax = Product::getPriceStatic($this->product->id, true, NULL, 6);
            if (Product::$_taxCalculationMethod == PS_TAX_INC) {
                $productPriceWithTax = Tools::ps_round($productPriceWithTax, 2);
            }
            $productPriceWithoutEcoTax = (float)($productPriceWithTax - $this->product->ecotax);
    
            $current_currency = $currency->iso_code;
            $default_currency = Currency::getDefaultCurrency()->iso_code;
            $currency_array   = Currency::getCurrencies($object = false, $active = 1);
    
            if ($current_currency == $default_currency) {
                foreach ($currency_array as $arr) {
                    if ((string)$arr['iso_code'] == $second_currency) {
                        $second_currency_price = Tools::ps_round($productPriceWithoutEcoTax * (float)$arr['conversion_rate'], 2);
                    }
                }
            }
    
            self::$smarty->assign('second_currency_price', $second_currency_price . ' ' . $second_currency);
            parent::displayContent();
        }
    }
    
  2. 修改product.tpl

    {if $priceDisplay >= 0 && $priceDisplay <= 2}
        <span id="our_price_display">{convertPrice price=$productPrice}</span>
    

    {if $priceDisplay >= 0 && $priceDisplay <= 2}
        {$second_currency_price} /
        <span id="our_price_display">{convertPrice price=$productPrice}</span>
    
  3. 在上面的示例中,USD是第二种货币($second_currency='USD')。我想知道是否可以为PrestaShop 1.5修改此代码,自1.4x以来,该代码发生了重大变化。

1 个答案:

答案 0 :(得分:2)

您必须循环此数组,其中包含您管理的所有货币:{$currencies}

{foreach from=$currencies item=c}{$c.name}{/foreach}

默认货币位于:{$id_currency_cookie}

如果我记得,你必须在product.tpl中写下这个。

我不知道如何为您的货币显示正确的价格。如果你找到,请告诉我们。