我试图将订单金额从当前货币转换为基础货币,下面是我试过的代码,但没有去.
$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
$price = 1;
$priceTwo = Mage::helper('directory')->currencyConvert($price, $baseCurrencyCode, $currentCurrencyCode);
Run Code Online (Sandbox Code Playgroud)
UPDATE
试试这段代码,可以帮到你.对于这种情况,我使用总金额.如果基础货币与当前的治愈率不同,将会改变.
$amount = $this->getOrder()->getGrandTotal();
$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
if ($baseCurrencyCode != $currentCurrencyCode) {
// convert price from current currency to base currency
$amount = Mage::helper('directory')->currencyConvert($amount, $currentCurrencyCode, $baseCurrencyCode);
// convert price from base currency to current currency
//$priceTwo = Mage::helper('directory')->currencyConvert($amount, $baseCurrencyCode, $currentCurrencyCode);
}
$amountFinal = round($amount, 2);
Run Code Online (Sandbox Code Playgroud)
小智 6
Mage::helper('directory')->currencyConvert($price, $baseCurrencyCode, $currentCurrencyCode)由于Magento在directory_currency_rate表中找不到具有"currentCurrency"=>"baseCurrency"关系的行,因此无法使用方法将当前货币的价格转换为基础货币.
要解决此问题,您只需按"baseCurrency"=>"currentCurrency"率进行价格划分即可.
你怎么能得到"baseCurrency"=>"currentCurrency"率并解决你的问题?通过这种方式:
// the price
$price=1;
// Base Currency
$baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode();
// Current Currency
$currentCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
// Allowed currencies
$allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
$rates = Mage::getModel('directory/currency')->getCurrencyRates($baseCurrencyCode, array_values($allowedCurrencies));
// the price converted
$price=$price/$rates[$currentCurrencyCode];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9676 次 |
| 最近记录: |