使用ECShop搭建外贸站多国货币切换功能
//1 在数据库里的表ecs_shop_config插入
insert into ecs_shop_config('id','parent_id','code','type','store_range','store_dir','value','sort_order') values(null,'1','rate','text','','','1,0.71,0.69,6.85,1.45','1'),(null,'1','ybprice_format','text','','','&%s','1'),(null,'1','aprice_format','text','','','EUR%s','1'),(null,'1','cprice_format','text','','','¥%s','1'),(null,'1','aoprice_format','text','','','AU%s','1');
//INSERT INTO `ecs_shop_config`(`id`, `parent_id`, `code`, `type`, `store_range`, `store_dir`, `value`, `sort_order`) VALUES (null,'1','rate','text','','','1,0.71,0.69,6.85,1.45','1'),(null,'1','ybprice_format','text','','','&%s','1'),(null,'1','aprice_format','text','','','EUR%s','1'),(null,'1','cprice_format','text','','','¥%s','1'),(null,'1','aoprice_format','text','','','AU%s','1')
//2 在/languages/zh_cn/admin/shop_config.php下添加 (73行)
$_LANG['cfg_name']['rate'] = '货币汇率';
$_LANG['cfg_name']['ybprice_format'] = '英镑格式';
$_LANG['cfg_name']['aprice_format'] = '欧元格式';
$_LANG['cfg_name']['cprice_format'] = '人民币格式';
$_LANG['cfg_name']['aoprice_format'] = '澳元格式';
//并且添加下面的帮助信息 (199行)
$_LANG['cfg_desc']['rate'] = '输入规则按照和美元的汇率进行出入 Us,EURP,BriishPound,China,Austriliar';
$_LANG['cfg_desc']['ybprice_format'] = '显示英镑格式,%s将被替换为相应的价格。';
$_LANG['cfg_desc']['aprice_format'] = '显示欧元格式,%s将被替换为相应的价格。';
$_LANG['cfg_desc']['cprice_format'] = '显示人民币格式,%s将被替换为相应的价格。';
$_LANG['cfg_desc']['aoprice_format'] = '显示澳元格式,%s将被替换为相应的价格。';
//3.在themes/当前使用的模板文件夹/library/page_header.lbi的合适位置添加
<div class="TopNavList">
<li><a href="{$url_head}¤cy=USD">美元</a><span></span></li>
<li><a href="{$url_head}¤cy=CNY">人民币</a><span></span></li>
<li><a href="{$url_head}¤cy=EUR">欧元</a><span></span></li>
<li><a href="{$url_head}¤cy=GBP">英镑</a><span></span></li>
<li><a href="{$url_head}¤cy=AUD">澳元</a><span></span></li>
</div>
<select>
<option value="{$url_head}¤cy=USD">美元</option>
<option value="{$url_head}¤cy=CNY">人民币</option>
<option value="{$url_head}¤cy=EUR">欧元</option>
<option value="{$url_head}¤cy=GBP">英镑</option>
<option value="{$url_head}¤cy=AUD">澳元</option>
</select>
//或
<div class="TopNavList">
<ul>
<li><a href="{$url_head}¤cy=USD">美元</a><span></span></li>
<li><a href="{$url_head}¤cy=CNY">人民币</a><span></span></li>
<li><a href="{$url_head}¤cy=EUR">欧元</a><span></span></li>
<li><a href="{$url_head}¤cy=GBP">英镑</a><span></span></li>
<li><a href="{$url_head}¤cy=AUD">澳元</a><span></span></li>
</ul>
</div>
// 4在/includes/init.php最后面添加 //路径处理
$url_this="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".@$_GET['id'];
$smarty->assign("url_head",$url_this);
$currency=@$_GET['currency'];
clear_all_files(); 清除缓存功能
if($currency!=""){
$_SESSION['currency']=$currency;
}
if($_SESSION['currency']==''){
$_SESSION['currency']='USD';
}
// 5.在/includes/lib_commom.php找到这个函数price_format并且按下面的进行修改
/** * 格式化商品价格
* * @access public
* @param float $price 商品价格
* @return string
*/
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('ESC_ADMIN')==false){
switch($GLOBALS['_CFG']['price_format']){
case 0:
$price=number_format($price,2,'.','');
break;
case 1: //保留不为3的尾数
$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;
}
}
// 6.修改表ecs_order_info
alter table 'ecs_order_info' add 'currency' varchar(10) not null,add 'new_money' decimal(10,2) not null
// 7.修改flow.php文件中
{
//分成功能关闭
$parent_id=0;
}
$order['parent_id']=$parent_id;
//大约1608行左右下面 插入以下代码
$order['currency']=$_SESSION['currency'];
$order['new_money']=price_format_hs($order['order_amount']);
//同时修改\inlucdes\lib_common.php在里面新增加price_format_hs函数
/**
* 用于支付换算 *
* @access public
* @param float $price 商品价格 * @return string
*/
function price_format_hs($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('ESC_ADMIN')==false){
switch ($GLOBALS['_CFG']['price_format']){
case 0:
$price=number_format($price,2,'.','');
break;
case 1: //保留不为0的尾数
$price=price_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,'.','');
}
return $price;
}
// 8.在\includes\modules\payment\paypal.php 大约92行一个get_code函数
function get_code($order,$payment){
$paypal_currency=$_SESSION["currency"]; //新增加的
$data_order_id=$order['log_id'];
$data_amount=$order['order_amount'];
$data_return_url=return_url(basename(__FILE__,'.php'));
$data_pay_account=$payment['paypal_account'];
$currency_code=$paypal_currency; //把下一行复制出来,并下行注掉,修改为这一行
//$currency_code=$payment['paypal_currency'];
}
使用ECShop搭建外贸站多国货币切换功能相关推荐
- 跨境电商淘系、阿里巴巴海外站、外贸站搭建,代购系统源码PHP前端源码展示
v2022版系统搭建更多详情了解请移步获取外贸站测试权限.工具. 测试权限:http://console.open.onebound.cn/console/?i=Turbo 系统简介: 1. 链接各大 ...
- 淘宝、1688海外站、外贸站搭建,代购系统源码PHP前端源码展示。
v2022版系统搭建更多详情了解请移步获取外贸站测试权限.工具. https://console.open.onebound.cn/console/?i=Rookie 系统简介: 1. 链接各大热门商 ...
- WordPress搭建“外贸独立站”完整操作教程
以往的文章,我们介绍了很多种搭建独立站的方式,有最省事的Shopify .最专业的Magento以及最省钱的Wordpress Woocommerce.其中,通过主机托管的方式又分了免费的谷歌云vps ...
- 跨境电商如何搭建独立站?
商品的流通推动经济的发展,近些年来国家致力发展跨境电商,国家为何致力发展跨境电商呢?那是因为要建立一种全新的消费观念,跨境电商利润高,与国内消费观念不同,国外消费者对于价格敏感度较低,赚的是汇率差,利 ...
- 2021 年广东省职业院校技能大赛(中职组) 网络搭建与应用赛项国赛遴选赛卷(B)
2021 年广东省职业院校技能大赛(中职组) 网络搭建与应用赛项国赛遴选赛卷(B) 技能要求 (总分 1000 分) 竞赛说明 一.竞赛内容分布 "网络搭建与应用"竞赛共分三个部分 ...
- Nginx 上搭建PHP站 更改目录出现的错误:File not found、403 forbidden (13: Permission denied)
Nginx 上搭建PHP站 更改目录出现的错误:File not found.403 forbidden (13: Permission denied) 第一次用nginx搭建php站,安装的是cen ...
- 本地搭建靶站进行漏洞复现和防御(SQL注入、文件上传、XSS漏洞的多种形式)
目录 注册登录模块 源码 测试 源码加固 文件上传模块 源码 测试 源码加固 发布动态模块 源码 测试 源码加固 本地搭建靶站进行测试,旨在提高自己的开发能力以及对漏洞的理解. 源码:利用PHP开发具 ...
- 2021年全国职业院校技能大赛网络搭建与应用赛项——国赛组播题
2021年全国职业院校技能大赛网络搭建与应用赛项--国赛组播题 sw1:# ip pim multicast-routing (开启组播模式,在全局模式) int vlan 10 ip pim den ...
- 外贸站外推广方式有哪些?外贸推广的几种方式以及效果排行
在现今互联网时代,外贸网站推广是非常重要的一环. 因为外贸网站的推广能够帮助外贸企业快速提升知名度,拓展市场,实现销售提升. 那么,外贸站外推广方式有哪些呢? 首先,谷歌SEO是必不可少的. 外贸网站 ...
最新文章
- 使用阿里云服务器安装docker,并用nginx示例
- Cocos Creator快速开通联网服务教程
- atlas mysql 数据库同步_atlas+mysql实现主从复制和读写分离(二)
- 【OpenCV】透视变换 Perspective Transformation(续)
- hadoop学习记录
- 送给“苦逼”的IT人系列1:IT人的“钱”景以及收入的两道坎
- (19)System Verilog利用clocking块产生输入信号延迟激励
- ubuntu12.04中安装SVN记录
- java显示参数,Java中的隐式参数和显示参数实例详解
- Python笔记:re模块详解
- Java程序设计 北京大学 2019冬期末测验
- 编程网站:21 个学习网站推荐给你,大部分编程语言都在这里了
- beautifulsoup+requests链家(深圳)爬取及可视化分析
- Shiro介绍(四):定义自己的安全域Realm
- 如何做好互联网广告销售
- 【Python】计算任意位数的圆周率π(Machin Formula)
- FAR PASCAL 的解释
- 聊聊身边的嵌入式,自拍神器自拍杆
- 计算机网络DV和LS
- c语言编程培训心得体会,编程培训个人心得体会 编程学习心得