国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

ecshop多貨幣解決方案

2024-04-25 20:42:28
字體:
來源:轉載
供稿:網友

今天給大家提供一篇文章,叫做ecshop多貨幣解決方案,分享給大家供大家參考。具體如下:

1、首先在我們的后臺網店設置里要添加匯率轉換的功能,如何添加網店功能自己摸索一下,你要把添加的功能插入表里。如圖:

我們的匯率都是和美元進行轉換的。

2、開始前臺實現:首先我們在首頁加上多語言的鏈接如圖:

我們看下他的url

<UL>

<LI><A href="{$url_head}¤cy=USD"><IMG src="images/USD.gif"> US Dollar</A></LI>

<LI><A href="{$url_head}¤cy=EUR"><IMG src="images/EUR.gif"> Euro</A></LI>

<LI><A href="{$url_head}¤cy=GBP"><IMG src="images/GBP.gif"> British Pound</A></LI>

<LI><A href="{$url_head}¤cy=CNY"><IMG src="images/CNY.gif"> China RMB</A></LI>

<LI><A href="{$url_head}¤cy=AUD"><IMG src="images/AUD.gif"> Austrilian Dollar</A></LI>

</UL>

這個{$url_head} 我是重新建了一個文件 conn.php放到首頁 每個文件調用

//路徑處理

$url_this = "[url=http://]http://".$_SERVER[/url] ['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".$_GET['id'];

$smarty->assign("url_head",$url_this);

3、我們發現都是在每個頁面后面傳了一次get值 那么在那接這些get值呢 我們肯定要找每個頁面的共同文件 不難想到init.php

我在init.php的最后加入

[code]$currency = $_GET['currency'];

if($currency!=""){

$_SESSION['currency'] = $currency;

}

if($_SESSION['currency'] == '')

{

$_SESSION['currency'] = 'USD';

}

這個代碼大家明白吧 我接到get值后 給了session 如果session不存在話 我們默認就是usd 這樣每個頁面都可以獲得當前的session值 .

4、我們通過以上操作至少在每個頁面可以搞定客戶選的貨幣是什么,下來我們就考慮如何解決顯示問題,如果每個頁面都修改顯示goods價格那多麻煩啊,我們熟悉ecshop的朋友不難想到我們所有顯示的價格都是在一個函數里進行里處理 ,這應該感謝官方的技術人員 代碼寫的好 當然是 lib_common.php里得price_format()這個函數 我們想一下 如果在這搞定是不是所有顯示都搞定了 我們就從這入手 以下是我修改后的函數

function price_format($price, $change_price = true)

{

$currency = $_SESSION['currency'];

$rate = explode(',',$GLOBALS['_CFG']['rate']);

if($currency == 'USD')

{

$price = $price*$rate[0];

}

if($currency == 'CNY')

{

$price = $price*$rate[3];

}

if($currency == 'EUR')

{

$price = $price*$rate[1];

}

if($currency == 'GBP')

{

$price = $price*$rate[2];

}

if($currency == 'AUD')

{

$price = $price*$rate[4];

}

if ($change_price && defined('ECS_ADMIN') === false)

{

switch ($GLOBALS['_CFG']['price_format'])

{

case 0:

$price = number_format($price, 2, '.', '');

break;

case 1: // 保留不為 0 的尾數

$price = preg_replace('/(.*)(//.)([0-9]*?)0+$/', '/1/2/3', number_format($price, 2, '.', ''));

if (substr($price, -1) == '.')

{

$price = substr($price, 0, -1);

}

break;

case 2: // 不四舍五入,保留1位

$price = substr(number_format($price, 2, '.', ''), 0, -1);

break;

case 3: // 直接取整

$price = intval($price);

break;

case 4: // 四舍五入,保留 1 位

$price = number_format($price, 1, '.', '');

break;

case 5: // 先四舍五入,不保留小數

$price = round($price);

break;

}

}

else

{

$price = number_format($price, 2, '.', '');

}

switch ($currency)

{

case 'USD':

return sprintf($GLOBALS['_CFG']['currency_format'], $price);

break;

case 'CNY':

return sprintf($GLOBALS['_CFG']['cprice_format'], $price);

break;

case 'EUR':

return sprintf($GLOBALS['_CFG']['aprice_format'], $price);

break;

case 'GBP':

return sprintf($GLOBALS['_CFG']['ybprice_format'], $price);

break;

case 'AUD':

return sprintf($GLOBALS['_CFG']['aoprice_format'], $price);

break;

}

}

$rate = explode(',',$GLOBALS['_CFG']['rate']); 這句是從數據庫獲得我們當時的參數 然后我們計算 同時返回值的時候我們用了系統設置的符號 解決問題 前臺就這樣搞定。

5、有關交易 后臺的操作我做簡單的介紹 我們只是解決了顯示問題 其實我們實質的數據還是美元 在我們提交訂單的時候 我們在order_goods表加倆個字段一個是客戶選的貨幣方式 這樣生成訂單后 當我進入我的會員中心我依然可以看到我購買人民幣是多少錢 我們讀取數據庫的方式進行換算,另外一個字段是我們換算后的金額。當然我們之前美元的總金額都是在的 。在支付的時候 我們給貝寶付參數 就是貨幣類型 。搞定。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上栗县| 禹城市| 屯昌县| 波密县| 溧水县| 湘潭市| 绍兴县| 日喀则市| 社会| 万山特区| 武胜县| 台北县| 子长县| 沂南县| 东丽区| 肇东市| 德惠市| 泉州市| 沧源| 济源市| 洮南市| 吴川市| 邹城市| 高雄县| 鹿邑县| 新郑市| 安陆市| 霍城县| 区。| 余姚市| 平陆县| 龙井市| 连云港市| 武宣县| 扎赉特旗| 汶上县| 大足县| 苏尼特左旗| 大同市| 达尔| 瓮安县|