首页建站经验 ecshop多货币解决方案

ecshop多货币解决方案

今天给大家提供一篇文章,叫做ecshop多货币解决方案,分享给大家供大家参考。具体如下:1、首先在我们的后台网店设置里要添加汇率转换的功能,如何添加网店功能自己摸索一下,你要把…

今天给大家提供一篇文章,叫做ecshop多货币解决方案,分享给大家供大家参考。具体如下:

1、首先在我们的后台网店设置里要添加汇率转换的功能,如何添加网店功能自己摸索一下,你要把添加的功能插入表里。如图:

我们的汇率都是和美元进行转换的。

2、开始前台实现:首先我们在首页加上多语言的链接如图:

我们看下他的url

这个{$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表加俩个字段一个是客户选的货币方式 这样生成订单后 当我进入我的会员中心我依然可以看到我购买人民币是多少钱 我们读取数据库的方式进行换算,另外一个字段是我们换算后的金额。当然我们之前美元的总金额都是在的 。在支付的时候 我们给贝宝付参数 就是货币类型 。搞定。

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/18817.html
上一篇ecshop获取点击人气排行榜
下一篇 ecshop热门搜索的关键词在所有页面显示的修改方
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部