程序员人生 网站导航

ecshop 会员等级管理与实例分析

栏目:DedeCMS时间:2014-02-07 06:52:46
ecshop2.6.2会员等级管理。别看这个功能很简单,但是可以发挥非常大的作用。而且还可以用来修改人民币对其他货币的汇率。

最近有个电子商务的朋友,让我将会员等级修改一下,他录入的产品价格是韩币,需要通过汇率来转化为人民币,我想了想。终于从会员登记下手。首先,比如。录入产品韩币是10000,那么转换成人民币需要乘以0.0006.那么很简单,可以用会员等级来修改成不同货币的汇率。

1:先将后台修改,能让起ecshop会员等级录入带有小数的积分。

修改ecs_user_rank,把discount字段修改为decimal(10,6)数据类型,用于存储小数。

2:修改admin/user_rank.php,把edit_discount修改成

check_authz_json('user_rank');
$rank_id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
$val = empty($_REQUEST['val']) ? 0 : $_REQUEST['val'];
if ($exc->edit("discount = '$val'", $rank_id))
{
$rank_name = $exc->get_name($rank_id);
admin_log(addslashes($rank_name), 'edit', 'user_rank');
clear_cache_files();
make_json_result($val);
}
else
{
make_json_error($val);
}

3:修改ecshop数据库中ecs_sessions表,将discount字段修改为decimal(18,8),为了存储session中的折扣。保留小数点。

4:修改ecshop中init.php

$_SESSION['user_id'] = 0;
$_SESSION['user_name'] = '';
$_SESSION['email'] = '';
$_SESSION['user_rank'] = 0;
$_SESSION['discount'] = 0.0066;

把折扣默认为韩币对人民币汇率。0.0066

5:将includes/cls_session.php中update_session()函数,修改成

$discount = !empty($GLOBALS['_SESSION']['discount']) ?$GLOBALS['_SESSION']['discount'] : 0;

6:在goods.php中,把会员等级传递给session

$smarty -> assign('rank',$_SESSION['user_rank']);

7:在goods.dwt中,修改会员等级对应的人民币价格。

<!-- {foreach from=$rank_prices item=rank_price key=key} 会员等级对应的价格-->
{if $key == $rank}
<dd><strong>{$rank_price.rank_name}:</strong><font class="shop" id="ECS_RANKPRICE_{$key}">{$rank_price.price}</font> </dd>
{/if}
<!--{/foreach}-->

最后完成。
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐