您的位置:首页 > 其它

简单实现 用户注册自动发放红包 功能

2010-08-02 16:11 645 查看
只是实现了这个功能,代码的重用性及效率不是很高,应付项目用。

1. 在后台添加一个给注册用户的红包,记录ID值,怎么得到ID值这个不用再说了吧;

2.在注册用户程序处加入发放红包程序,我选择在user.php 123 行 act_register 这里进行改写,lib_passport.php 里 function register()其实也可以做改写,不过我个人觉得这种强制的改写还是不要写在function里好

3.开工

在 user.php 找到 注册成功信息提示

show_message(sprintf($_LANG['register_success'], $username . $ucdata), array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act, 'user.php'), 'info');

加入下面的代码

/*注册用户发红包*/
function bonus_type_info($bonus_type_id)
{
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('bonus_type') .
" WHERE type_id = '$bonus_type_id'";

return $GLOBALS['db']->getRow($sql);
}
function add_to_maillist($username, $email, $subject, $content, $is_html)
{
$time = time();
$content = addslashes($content);
$template_id = $GLOBALS['db']->getOne("SELECT template_id FROM " . $GLOBALS['ecs']->table('mail_templates') . " WHERE template_code = 'send_bonus'");
$sql = "INSERT INTO "  . $GLOBALS['ecs']->table('email_sendlist') . " ( email, template_id, email_content, pri, last_send) VALUES ('$email', $template_id, '$content', 1, '$time')";
$GLOBALS['db']->query($sql);
return true;
}
$bonus_type = bonus_type_info(1);
$tpl = get_mail_template('send_bonus');
$today = local_date($_CFG['date_format']);

/* 发送邮件通知 */
$smarty->assign('user_name',    $username);
$smarty->assign('shop_name',    $GLOBALS['_CFG']['shop_name']);
$smarty->assign('send_date',    $today);
$smarty->assign('sent_date',    $today);
$smarty->assign('count',        1);
$smarty->assign('money',        price_format($bonus_type['type_money']));

$content = $smarty->fetch('str:' . $tpl['template_content']);

if (add_to_maillist($username, $email, $tpl['template_subject'], $content, $tpl['is_html']))
{
/* 向会员红包表录入数据 */
$sql = "INSERT INTO " . $ecs->table('user_bonus') .
"(bonus_type_id, bonus_sn, user_id, used_time, order_id, emailed) " .
"VALUES ('1', 0, '".$_SESSION['user_id']."', 0, 0, " .BONUS_MAIL_SUCCEED. ")";
$db->query($sql);
}
else
{
/* 邮件发送失败,更新数据库 */
$sql = "INSERT INTO " . $ecs->table('user_bonus') .
"(bonus_type_id, bonus_sn, user_id, used_time, order_id, emailed) " .
"VALUES ('1', 0, '".$_SESSION['user_id']."', 0, 0, " .BONUS_MAIL_FAIL. ")";
$db->query($sql);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: