会员体系
注册登录、等级积分、VIP、投稿审核、收藏关注、站内信、签到、预约、钱包与 RBAC 权限,一次配通。
本页目录(10 分钟读完)
这一章只做一件事:把会员相关功能一个一个打开。
页面打不开 → 看 排错手册。
先装哪些插件#
会员功能拆成了几个插件,按需装,不用全装。
| 插件 | 提供什么 | 什么时候装 |
|---|---|---|
member | 注册、登录、资料、投稿、收藏、消息、签到、VIP | 基本都要 |
member-community | 会员列表、个人主页、在线预约 | 要做社区/预约 |
wallet | 积分、余额、兑换 | 要做付费/积分 |
socialauth | 微信/QQ/GitHub 一键登录 | 要第三方登录 |
member-generator | 批量生成测试会员 | 只用于测试 |
安装顺序:
- 先装
member - 再按需要装其它
- 每装一个跑一次
php aucms cache:rebuild
怎么开会员注册#
作用:让访客能自己注册账号。
步骤:
- 后台 → 插件 → 插件管理
- 找到「会员管理」→ 点「设置」
- 「开放注册」选「开」
- 「默认角色」选
member - 点「保存」
- 跑
php aucms cache:clear
效果:
| 地址 | 打开后 |
|---|---|
/login | 登录页 |
/register | 注册页 |
/forgot | 找回密码 |
关掉注册:「开放注册」选「关」。关掉后 /register 直接 404。
打不开? → 看 排错手册
怎么开投稿#
作用:让会员自己发内容。
步骤:
第 1 步:打开投稿开关
- 后台 → 插件 → 插件管理 → 会员管理 → 设置
- 「允许投稿」选「开」
- 「投稿需审核」选「开」(建议)
- 点「保存」
第 2 步:勾选可投稿的栏目
- 后台 → 插件 → 会员管理 → 栏目投稿
- 勾上允许投稿的栏目
- 点「保存」
默认一个栏目都不勾。
所以「会员中心没有投稿入口」多半不是 bug,是没勾栏目。效果:会员登录后打开 /member/submit 能投稿。
投稿后的流程:
| 步骤 | 谁做 | 在哪 |
|---|---|---|
| 1. 会员投稿 | 会员 | /member/submit |
| 2. 内容进「审核中」 | 系统 | 自动 |
| 3. 点通过 | 管理员 | 插件 → 会员 → 投稿审核 |
| 4. 内容上线 | 系统 | 自动 |
| 5. 作者得积分 | 系统 | 自动,每篇 10 分 |
打不开? → 看 排错手册
怎么开签到#
作用:让会员每天签到领积分。
步骤:
- 后台 → 插件 → 插件管理 → 会员管理 → 设置
- 「允许签到」选「开」
- 「签到基础积分」填 5
- 「连续签到加成」填 2
- 「连续签到上限」填 7
- 点「保存」
效果:会员中心出现签到按钮。连签每天多给 2 分,最多按 7 天算。
打不开? → 看 排错手册
怎么配 VIP#
作用:卖会员,控制付费内容。
步骤:
第 1 步:建套餐
- 后台 → 插件 → 会员管理 → VIP 套餐
- 点「新建」
- 填套餐
| 项 | 填什么 | 例子 |
|---|---|---|
| 名称 | 套餐名 | 月卡 / 年卡 |
| 时长 | 多少天 | 30 / 365 |
| 价格 | 多少钱 | 19.9 |
| 说明 | 给用户看的 | 全站文章免费看 |
- 点「保存」
第 2 步:看效果
前台打开 /member/vip,能看到刚建的套餐。
第 3 步:确认订单
VIP 默认是「手动确认」:
- 后台 → 插件 → 会员管理 → VIP 订单
- 收到钱后点「已支付」
- 系统自动开通
怎么用 VIP 挡内容(模板里加):
{if !empty($user) && $user.vip_expire > $now}
{$article.content|raw}
{else}
<div class="paywall">
<p>本节内容为会员专享</p>
<a class="btn" href="/member/vip">开通会员</a>
</div>
{/if}打不开? → 看 排错手册
怎么配积分#
作用:给会员发虚拟分,能兑换东西。
积分怎么来:
| 行为 | 默认给多少 | 在哪改 |
|---|---|---|
| 签到 | +5,连签递增 | 会员设置 |
| 投稿通过 | +10 | 会员设置 |
| 后台手动加 | 任意 | 会员列表 → 调整积分 |
| 消费兑换 | 扣减 | 钱包 → 兑换管理 |
怎么手动加积分:
- 后台 → 插件 → 会员管理 → 会员列表
- 点开某个会员
- 点「调整积分」
- 填数字,选加/减
- 点「保存」
不要直接改数据库里的积分字段。
必须走后台或 app('wallet')->change()。
否则账本对不上,审计页会报警。打不开? → 看 排错手册
怎么开收藏#
作用:让会员收藏文章。
步骤:
第 1 步:确认插件装了
member 插件启用即可。
第 2 步:详情页加收藏按钮
在 view/你的主题/index/article.html 里加:
{if !empty($user)}
<button class="btn-fav"
data-fav-id="{$article.id}"
data-fav-url="/member/favorite"
data-csrf="{$csrf}">收藏</button>
{/if}第 3 步:抄 JS
把默认主题 static/js/style.js 里的收藏代码抄过来。
JS 请求必须带 X-Requested-With: XMLHttpRequest。
不带的话后端按普通表单处理,前端会显示「操作失败」。效果:登录后点「收藏」,/member/favorites 里能看到。
打不开? → 看 排错手册
怎么开站内信#
作用:给会员发通知。
步骤:
- 装好
member插件就行,不用额外开 - 会员收信:
/member/messages - 管理员代发:后台 → 插件 → 会员管理 → 会员详情 → 发消息
投稿自动通知:投稿通过后,系统自动给作者发「你的投稿已通过」。
打不开? → 看 排错手册
怎么开预约#
作用:让访客在线约时间(到店、咨询)。
步骤:
第 1 步:装插件
启用 member-community。
第 2 步:填预约项目
- 后台 → 插件 → 会员社区 → 社区设置
- 「预约项目」每行填一个,例如:
到店咨询
电话回访
上门测量- 「预约须知」填提示文字
- 「每日预约上限」填 3
- 「预约通知」选「开」
- 点「保存」
第 3 步:看效果
前台打开 /member/appointment,能提交预约。
第 4 步:处理预约
- 后台 → 插件 → 会员社区 → 预约管理
- 点开一条
- 状态改成「已确认」「已完成」或「已取消」
预约时段写死在 09:00–18:00,半小时一档。
要改时段只能改插件源码,没有配置项。打不开? → 看 排错手册
怎么配权限#
作用:控制每个管理员能点哪些菜单。
步骤:
第 1 步:建角色
- 后台 → 插件 → 会员管理 → 角色与权限
- 点「新建角色」
- 填名称,例如「编辑」
- 勾上这个角色能做的事(内容管理、会员管理…)
- 点「保存」
第 2 步:把人放进角色
- 后台 → 插件 → 会员管理 → 会员列表
- 点开某个会员
- 「角色」选「编辑」
- 点「保存」
效果:这个会员登录后,只能看到勾过的模块。
没勾的模块,默认只有超管能进。
这不是 bug,是「默认拒绝」的安全设计。
超管不会被禁用/删除 —— 系统保留最后一个超管。打不开? → 看 排错手册
前台页面一览#
装好后前台自动多出这些地址:
| 地址 | 干什么 | 要登录吗 |
|---|---|---|
/login | 登录 | 否 |
/register | 注册 | 否 |
/forgot | 找回密码 | 否 |
/member | 会员中心 | 是 |
/member/profile | 改资料 | 是 |
/member/submit | 投稿 | 是 |
/member/submits | 我的投稿 | 是 |
/member/favorites | 我的收藏 | 是 |
/member/messages | 站内信 | 是 |
/member/followers | 关注/粉丝 | 是 |
/member/vip | 开通 VIP | 是 |
/member/wallet | 钱包/积分 | 是 |
/members | 会员列表(社区插件) | 否 |
/member/{id} | 个人主页(社区插件) | 否 |
/member/appointment | 在线预约(社区插件) | 否 |
想改这些页面的样子:在主题目录建同名文件就能覆盖。
view/你的主题/member/center.html
覆盖规则:主题优先,插件默认回落。常见问题#
| 现象 | 原因 | 修法 |
|---|---|---|
| 注册页 404 | 「开放注册」关了 | 打开 |
| 注册后提示待审核 | 账号状态是 2 或 4 | 后台改成 1 |
| 看不到投稿入口 | 没勾栏目 | 栏目投稿里勾 |
| 积分加了余额没变 | 没走账本 | 用 app('wallet')->change() |
| 上传头像失败 | 上传限制 | 查上传设置与 PHP 限制 |
| 预约提交失败 | 预约项目为空 | 社区设置里填项目 |
还没解决?→ 看 排错手册
给会 PHP 的人:怎么在插件里调会员#
// 当前登录会员(未登录返回 null)
$user = \Aucms\Support\Context::get('current_user');
// 会员资料
$profile = \app('member.profile')->get($userId);
// 加积分(必须走账本)
\app('wallet')->change($userId, 10, 'daily_bonus', '每日奖励');
// 发站内信
\app('member.message')->send($userId, '标题', '内容');
// 判断是不是 VIP
$isVip = \app('vip')->isVip($userId);跨插件调用前,先确认对方服务已注册。
标准写法是在控制器构造函数里判断 class_exists。server_debug.php 复现一次,页面会直接告诉你异常文件与行号。