ecshop的红包功能,能不能指定产品使用

ecshop的红包功能,能不能指定产品使用,第1张

ecshop的红包可以指定商品购买后订单发货状态后发送,但不能指定商品进行使用,默认的ecshop红包功能都是针对订单来使用的,如需要指定商品使用指定红包的话,可握春祥以段搏做功能二次开发,ecshop模板堂有专业的开发技术团队,您可以先整理下功能需求然后森瞎到模板堂官网找客服联系咨询下。

祝您生活愉快!

双十一买买买

步骤

1) 添加一种新的红包类型4 ,

文件 admin/templates/bonus_type_info.htm

找到 <input type="radio" name="send_type" value="0" {if $bonus_arr.send_type eq 0} checked="true" {/if} onClick="showunit(0)" />{$lang.send_by[0]}

<input type="radio" name="send_type" value="1" {if $bonus_arr.send_type eq 1} checked="true" {/if} onClick="showunit(1)" />{$lang.send_by[1]}

<input type="radio" name="send_type" value="2" {if $bonus_arr.send_type eq 2} checked="true" {/if} onClick="showunit(2)" />{$lang.send_by[2]}

<input type="radio" name="send_type" value="3" {if $bonus_arr.send_type eq 3} checked="true" {/if} onClick="showunit(3)" />{$lang.send_by[3]}

再其后面添加

<input type="radio" name="send_type" value="4" {if $bonus_arr.send_type eq 4} checked="true" {/if} onClick="showunit(4)" />通用红包 多次使用

2) 生成这类红包字符串

增加文件 admin/templates/bonus_by_print_phpsir.htm

修改文件 admin/bonus.php 找到

elseif ($_REQUEST['send_by'] == SEND_BY_PRINT)

{

$smarty->assign('type_list',get_bonus_type())

$smarty->display('bonus_by_print.htm')

}

再其后添加

elseif ($_REQUEST['send_by'] == 4)

{

$smarty->assign('type_list',get_bonus_type_phpsir())

$smarty->display('bonus_by_print_phpsir.htm')

}

3) 增加 get_bonus_type_phpsir 函数

文件 admin/includes/lib_main.php

function get_bonus_type_phpsir()

{

$bonus = array()

$sql = 'SELECT type_id, type_name, type_money FROM ' . $GLOBALS['败碧ecs']->table('bonus_type') .

' WHERE send_type = 4'

$res = $GLOBALS['db']->query($sql)

while ($row = $GLOBALS['db']->fetchRow($res))

{

$bonus[$row['type_id']] = $row['type_name'].' [' .sprintf($GLOBALS['_CFG']['currency_format'], $row['type_money']).']'

}

return $bonus

}

4) 在 bonus.php 里面 找到

if ($_REQUEST['拆轿act'] == 'send_by_print')

{

...........................

}

再其后面添加,处理增加这类红包时候生成方法

if ($_REQUEST['act'] == 'send_by_print_phpsir')

{

@set_time_limit(0)

/* 红下红包的类型ID和生成的旅枯肆数量的处理 */

$bonus_typeid = !empty($_POST['bonus_type_id']) ? $_POST['bonus_type_id'] : 0

$bonus_sum= !empty($_POST['bonus_sum']) ? $_POST['bonus_sum'] : 1

/* 生成红包序列号 */

for ($i = 0, $j = 0$i <$bonus_sum$i++)

{

$bonus_sn = $_POST['bonus_txt']

$db->query("INSERT INTO ".$ecs->table('user_bonus')." (bonus_type_id, bonus_sn) VALUES('$bonus_typeid', '$bonus_sn')")

$j++

}

/* 记录管理员 *** 作 */

admin_log($bonus_sn, 'add', 'userbonus')

/* 清除缓存 */

clear_cache_files()

/* 提示信息 */

$link[0]['text'] = $_LANG['back_bonus_list']

$link[0]['href'] = 'bonus.php?act=bonus_list&bonus_type=' . $bonus_typeid

sys_msg($_LANG['creat_bonus'] . $j . $_LANG['creat_bonus_num'], 0, $link)

}

5) 修改 bonus.php 让后台显示红包内容

if ($_REQUEST['act'] == 'bonus_list')

{

...........................

}

if ($_REQUEST['act'] == 'query_bonus')

{

...........................

}

里面增加

if ($bonus_type['send_type'] == 4)

{

$smarty->assign('show_bonus_sn', 1)

}

至此 后台部分完成

前台部分 修改

includes/lib_order.php

function bonus_info($bonus_id, $bonus_sn = '')

{

$sql = "SELECT t.*, b.* " .

"FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

$GLOBALS['ecs']->table('user_bonus') . " AS b " .

"WHERE t.type_id = b.bonus_type_id"

if ($bonus_id >0)

{

$sql .= " AND b.bonus_id = '$bonus_id'"

$row = $GLOBALS['db']->getRow($sql)

return $row

}

else

{

$sql .= " AND b.bonus_sn = '$bonus_sn'"

$row = $GLOBALS['db']->getRow($sql)

}

if($row['send_type'] == 4) // phpsir 如果是第4类型红包,那么就找一个未使用的红包,这种红包可被多次使用,不限制每人使用次数

{

$sess_userid = $_SESSION["user_id"]

$sql = "SELECT t.*, b.* " .

"FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

$GLOBALS['ecs']->table('user_bonus') . " AS b " .

"WHERE t.type_id = b.bonus_type_id and b.used_time = 0 "

if ($bonus_id >0)

{

$sql .= "AND b.bonus_id = '$bonus_id'"

}

else

{

$sql .= "AND b.bonus_sn = '$bonus_sn'"

}

//print $sql

$row = $GLOBALS['db']->getRow($sql)

//var_dump($row)

return $row

}

// 如果想每人只使用N次,请用下面的部分

/*

if($row['send_type'] == 4) // phpsir 如果是第4类型红包,那么就找一个未使用的红包,这种红包可被多次使用,不限制每人使用次数

{

$sess_userid = $_SESSION["user_id"]

$sql = "SELECT t.*, b.* " .

"FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

$GLOBALS['ecs']->table('user_bonus') . " AS b " .

"WHERE t.type_id = b.bonus_type_id and b.user_id = '$sess_userid' and b.bonus_sn = '$bonus_sn' "

$rows = $GLOBALS['db']->getAll($sql)

$allow_used_bonus_num = 2// 最大允许使用次数

if(count($rows) >= $allow_used_bonus_num )

{

return false

}else{

$sql = "SELECT t.*, b.* " .

"FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .

$GLOBALS['ecs']->table('user_bonus') . " AS b " .

"WHERE t.type_id = b.bonus_type_id and b.used_time = 0 and b.bonus_sn = '$bonus_sn' "

$row = $GLOBALS['db']->getRow($sql)

return $row

}

}

*/

return $row

}

注意不要用记事本修改php文件,建议下载dreamweaver


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12239158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存