如何修改PrestaShop 1.5以同时显示两种货币的产品价格(即产品和类别页面中列出的产品的基本货币和访客货币):
我想我应该修改ProductController.php
和product.tpl
。这是对的吗?
以下是我在论坛上找到的产品页面的一个解决方案,但它适用于PrestaShop 1.4x:
覆盖/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();
}
}
修改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>
在上面的示例中,USD是第二种货币($second_currency='USD'
)。我想知道是否可以为PrestaShop 1.5修改此代码,自1.4x以来,该代码发生了重大变化。
答案 0 :(得分:2)
您必须循环此数组,其中包含您管理的所有货币:{$currencies}
{foreach from=$currencies item=c}{$c.name}{/foreach}
默认货币位于:{$id_currency_cookie}
如果我记得,你必须在product.tpl
中写下这个。
我不知道如何为您的货币显示正确的价格。如果你找到,请告诉我们。