首先修改数据库,找到ecs_shop_config这个表,在里面添加如图所示的几条信息

之后,找到\languages\zh_cn\admin\shop_config.php这个文件,在适当位置添加

$_LANG['cfg_name']['rate'] = '货币汇率';
$_LANG['cfg_desc']['rate'] = '输入规则按照和美元的汇率进行输入:
英镑,欧元,美元,人民币,日元,港元,澳元。';$_LANG['cfg_name']['ybprice_format'] = '英镑格式';
$_LANG['cfg_name']['oyprice_format'] = '欧元格式';
$_LANG['cfg_name']['myprice_format'] = '美元格式';
$_LANG['cfg_name']['rmbprice_format'] = '人民币格式';
$_LANG['cfg_name']['ryprice_format'] = '日元格式';
$_LANG['cfg_name']['gyprice_format'] = '港元格式';
$_LANG['cfg_name']['ayprice_format'] = '澳元格式';$_LANG['cfg_desc']['ybprice_format'] = '显示英镑格式,%s将被替换为相应价格';
$_LANG['cfg_desc']['oyprice_format'] = '显示欧元格式,%s将被替换为相应价格';
$_LANG['cfg_desc']['myprice_format'] = '显示美元格式,%s将被替换为相应价格';
$_LANG['cfg_desc']['rmbprice_format'] = '显示人民币格式,%s将被替换为相应价格';
$_LANG['cfg_desc']['ryprice_format'] = '显示日元格式,%s将被替换为相应价格';
$_LANG['cfg_desc']['gyprice_format'] = '显示港元格式,%s将被替换为相应价格';
$_LANG['cfg_desc']['ayprice_format'] = '显示澳元格式,%s将被替换为相应价格';

然后在后台管理界面的商店设置的下面就会出现相应的设置选项,设置好保存。

下来找到include\init.php这个文件,在其末尾加入

$url_this = "http://".$_SERVER ['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".$_GET['id'];
$smarty->assign("url_head",$url_this);$currency = @$_GET['currency'];if($currency!=""){
$_SESSION['currency'] = $currency;
}
if($_SESSION['currency'] == '')
{
$_SESSION['currency'] = 'RMB';
}
echo $_SESSION['currency'];

在找到\include\lib_common.php这个文件,将function price_format这个函数修改为

function price_format($price, $change_price = true)
{$currency = $_SESSION['currency'];
$rate = explode(',',$GLOBALS['_CFG']['rate']);
if($currency == 'RMB')
{
$price = $price*$rate[0];
}
if($currency == 'USD')
{$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 'RMB':
return sprintf($GLOBALS['_CFG']['currency_format'], $price);
break;
case 'USD':
return sprintf($GLOBALS['_CFG']['myprice_format'], $price);
break;
case 'EUR':
return sprintf($GLOBALS['_CFG']['oyprice_format'], $price);
break;
case 'AUD':
return sprintf($GLOBALS['_CFG']['ayprice_format'], $price);
break;
}
}

找到\themes\default\library\page_header.lbi这个文件,在适当位置加入

<select name="hbxz" id="hbxz" onChange="changhb(this.value)">
<option>请选择币种</option>
<option value="RMB" >人民币</option>
<option value="USD" >USD</option>
<option value="AUD" >AUG</option>
<option value="EUR" >Euro</option>
</select>
<script>
function changhb(kk)
{
location.href = "{$url_head}"+"&currency=" + kk;
}
</script>

这样,在前台页面里就会显示出选择语言的选项。
但是这样做会发现每次都清除缓存才能显示出来,所以就得把根目录下面的所有php文件里带有

$smarty->caching = true;

这句话改为

$smarty->caching = false;

这样就使之不使用缓存技术,会立即改变。

转载于:https://www.cnblogs.com/xlucien/archive/2012/07/31/2616788.html

ecshop 多货币解决方案(1)相关推荐

  1. 研究发现有适用于欧洲GDPR法规的加密货币解决方案

    点击上方"蓝色字"可关注我们! 暴走时评:伦敦大学玛丽女王学院和剑桥大学开展的一项联合研究得出了结论,在理论上,可以设计出完全符合最近实施的欧盟"通用数据保护条例(GDP ...

  2. 支付巨头Visa宣布计划在巴西将加密货币服务引入传统银行

    9月8日消息,据国外媒体报道,跨国支付巨头Visa宣布计划将加密货币服务引入巴西的传统银行平台,既用于支付,也用于价值储存,包括主要的加密货币比特币. 信用卡巨头Visa宣布计划将加密货币解决方案集成 ...

  3. 浙大文武:数字经济与数字货币

    嘉宾介绍:文武,浙江大学教授,国际电联法定数字货币焦点前主席. 文武教授的报告主要围绕金融科技技术如何为数字经济.实体经济服务开展,从计算机的角度解释货币形态的改变,技术在货币形态的改变中发挥的作用, ...

  4. 银行IT迎“高景气”时代,宇信科技如何领跑行业?

    文|螳螂财经(TanglangFin) 作者|李永华 陈明涛 郑威涛 科创和创业板近期双双反弹,涨幅抢跑. 站在全市场视角,两者均强于整体市场,且成交额明显上升.如3月22至26日这一周,科创50指数 ...

  5. 2019北京物联网智慧城市大数据博览会开启中国之路

    邀 请 函 时间2019年05月16-18日 地点 中国•北京亦创国际会展中心 4组织单位 特邀单位:××× ×××商务部 批准单位:北京市商务委员会 主办单位:中国电子商会 物联网技术产品应用专业委 ...

  6. 2019第二届中国智慧零售终端大会

    2019第二届中国智慧零售终端大会 The 2th China Smart Retail Terminal Conference, 2019 新时代  新零售 时间:2019年7月8-10日   地点 ...

  7. 区块链+支付:区块链技术是什么?它如何在支付行业中使用?

    技术在不断变化,其能力正在不断扩大.各个行业的领导者都在寻找新的技术解决方案,以满足全球人口压倒性的数字需求.其中一个重要的例子是银行机构.金融机构.区块链科技公司开始关注如何使用区块链技术和支付方式 ...

  8. 1月共有49个区块链项目进行ICO,卖牛肉的都来玩区块链了!

    2018年1月份已经过去,愈演愈烈的区块链也诞生了很多新项目.HiBlock编辑整理了国外网站上关于区块链项目ICO的49个项目,虽然金融相关项目还是占大多数,但区块链也已经开始应用在直播.视频流媒体 ...

  9. 物联大世界 2019年国际物联网展会5月在北京盛大召开

    时间2019年05月16-18日 地点 中国•北京亦创国际会展中心 4组织单位 特邀单位:××× ×××商务部 批准单位:北京市商务委员会 主办单位:中国电子商会 物联网技术产品应用专业委员会 北京铭 ...

最新文章

  1. 扫描分发Apriori算法学习(一)
  2. 数组中两个字符串的最小距离
  3. 医学院计算机社发展,医学院计算机教学创新思路.docx
  4. 动画原理——绘制正弦函数环绕运动椭圆运动
  5. 企业运维经典面试题汇总(3)
  6. Excel 如何使多组数据的饼状图大小一致
  7. arduino学习笔记(三)——LED相关
  8. Python3.8.0中string与byte相互转换
  9. 桌面推演技术前沿及发展趋势
  10. java nginx报502,Nginx 502错误排查及解决办法
  11. 设计原则Python
  12. Python神经网络学习--神经网络知识先导(一)--什么是神经网络?
  13. CTF·WEB入门之路
  14. html旋转线条,html5 – 为什么我在移动浏览器上看到旋转的条纹?
  15. 可能不能吃的食物-为自己记录一下
  16. angr原理与实践(三)——Arbiter:一种弥合二进制程序漏洞发现中的静态和动态鸿沟
  17. 菜菜包:赛场荣耀的背后,刻着 0 到 1 的执着
  18. Endnote 参考文献输出格式GB/T 7714的Style定义写法
  19. snmp的团体名配置_snmp默认团体名/弱口令漏洞及安全加固
  20. Nacos名字服务(Naming Service)

热门文章

  1. Putty中Vim无法粘贴paste的问题
  2. 单片机简单Log日志封装
  3. 电脑录屏快捷键是什么?教你一招可以自己设定
  4. Java编程序哥德巴赫猜想
  5. 前端导出Excel,修改字体样式以及居中等
  6. 面试字节跳动的一点小经验
  7. 脉冲信号matlab代码,MATLAB产生SNR可设的脉冲调制信号代码
  8. 罗德里格斯公式 理解、推导
  9. 北京某高端养老机构开业3年 : 1次失信,2场官司,3项处罚,处在高危中的养老行业如何应对多维度经营风险?
  10. 往数据库里添加date(时间)类型的数据