ecshop 多货币解决方案(1)
首先修改数据库,找到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}"+"¤cy=" + kk; } </script>
这样,在前台页面里就会显示出选择语言的选项。
但是这样做会发现每次都清除缓存才能显示出来,所以就得把根目录下面的所有php文件里带有
$smarty->caching = true;
这句话改为
$smarty->caching = false;
这样就使之不使用缓存技术,会立即改变。
转载于:https://www.cnblogs.com/xlucien/archive/2012/07/31/2616788.html
ecshop 多货币解决方案(1)相关推荐
- 研究发现有适用于欧洲GDPR法规的加密货币解决方案
点击上方"蓝色字"可关注我们! 暴走时评:伦敦大学玛丽女王学院和剑桥大学开展的一项联合研究得出了结论,在理论上,可以设计出完全符合最近实施的欧盟"通用数据保护条例(GDP ...
- 支付巨头Visa宣布计划在巴西将加密货币服务引入传统银行
9月8日消息,据国外媒体报道,跨国支付巨头Visa宣布计划将加密货币服务引入巴西的传统银行平台,既用于支付,也用于价值储存,包括主要的加密货币比特币. 信用卡巨头Visa宣布计划将加密货币解决方案集成 ...
- 浙大文武:数字经济与数字货币
嘉宾介绍:文武,浙江大学教授,国际电联法定数字货币焦点前主席. 文武教授的报告主要围绕金融科技技术如何为数字经济.实体经济服务开展,从计算机的角度解释货币形态的改变,技术在货币形态的改变中发挥的作用, ...
- 银行IT迎“高景气”时代,宇信科技如何领跑行业?
文|螳螂财经(TanglangFin) 作者|李永华 陈明涛 郑威涛 科创和创业板近期双双反弹,涨幅抢跑. 站在全市场视角,两者均强于整体市场,且成交额明显上升.如3月22至26日这一周,科创50指数 ...
- 2019北京物联网智慧城市大数据博览会开启中国之路
邀 请 函 时间2019年05月16-18日 地点 中国•北京亦创国际会展中心 4组织单位 特邀单位:××× ×××商务部 批准单位:北京市商务委员会 主办单位:中国电子商会 物联网技术产品应用专业委 ...
- 2019第二届中国智慧零售终端大会
2019第二届中国智慧零售终端大会 The 2th China Smart Retail Terminal Conference, 2019 新时代 新零售 时间:2019年7月8-10日 地点 ...
- 区块链+支付:区块链技术是什么?它如何在支付行业中使用?
技术在不断变化,其能力正在不断扩大.各个行业的领导者都在寻找新的技术解决方案,以满足全球人口压倒性的数字需求.其中一个重要的例子是银行机构.金融机构.区块链科技公司开始关注如何使用区块链技术和支付方式 ...
- 1月共有49个区块链项目进行ICO,卖牛肉的都来玩区块链了!
2018年1月份已经过去,愈演愈烈的区块链也诞生了很多新项目.HiBlock编辑整理了国外网站上关于区块链项目ICO的49个项目,虽然金融相关项目还是占大多数,但区块链也已经开始应用在直播.视频流媒体 ...
- 物联大世界 2019年国际物联网展会5月在北京盛大召开
时间2019年05月16-18日 地点 中国•北京亦创国际会展中心 4组织单位 特邀单位:××× ×××商务部 批准单位:北京市商务委员会 主办单位:中国电子商会 物联网技术产品应用专业委员会 北京铭 ...
最新文章
- 扫描分发Apriori算法学习(一)
- 数组中两个字符串的最小距离
- 医学院计算机社发展,医学院计算机教学创新思路.docx
- 动画原理——绘制正弦函数环绕运动椭圆运动
- 企业运维经典面试题汇总(3)
- Excel 如何使多组数据的饼状图大小一致
- arduino学习笔记(三)——LED相关
- Python3.8.0中string与byte相互转换
- 桌面推演技术前沿及发展趋势
- java nginx报502,Nginx 502错误排查及解决办法
- 设计原则Python
- Python神经网络学习--神经网络知识先导(一)--什么是神经网络?
- CTF·WEB入门之路
- html旋转线条,html5 – 为什么我在移动浏览器上看到旋转的条纹?
- 可能不能吃的食物-为自己记录一下
- angr原理与实践(三)——Arbiter:一种弥合二进制程序漏洞发现中的静态和动态鸿沟
- 菜菜包:赛场荣耀的背后,刻着 0 到 1 的执着
- Endnote 参考文献输出格式GB/T 7714的Style定义写法
- snmp的团体名配置_snmp默认团体名/弱口令漏洞及安全加固
- Nacos名字服务(Naming Service)