评论互动奖励与惩罚插件(完整文档整理版)

预计阅读 15 分钟

评论互动奖励与惩罚插件(完整文档整理版)

版本:1.1.0

 

作者:小武

 

官网https://1z345.cn/

 

适配子比主题子比主题 (Zibll)、WordPress

用户在网站评论区发表评论后,系统将按照自定义概率随机触发奖励 / 惩罚,支持积分、余额、经验值、会员权限的增减与变更。配套完整配置、日志、通知、权限管控功能,前台后台完美适配子比主题明暗模式。

  1. 随机触发机制:自定义奖励、惩罚触发概率,随机执行对应规则
  2. 奖励类型:增加积分、增加账户余额、提升经验值、赠送会员时长 & 等级
  3. 惩罚类型:扣除积分、扣减余额、降低经验值、取消会员资格
  4. 基础管控:自定义数值区间、评论字数限制、评论冷却时间(防刷)
  5. 权限筛选:指定生效用户角色、排除指定用户 ID、设置最低用户等级
  6. 消息通知:支持站内通知、邮件通知,用户可自主关闭通知权限
  7. 数据记录:全量操作日志、数据统计、日志 CSV 导出、自动清理过期日志
  8. 界面适配:原生适配子比主题日间 / 夜间模式

  • WordPress 版本:7.0 及以上
  • PHP 版本:8.1 及以上
  • 前置条件:网站已启用子比主题 (Zibll)

  1. 将插件文件夹 zib-comment-reward-punishment 上传至站点目录:/wp-content/plugins/
  2. 进入 WordPress 后台 → 插件,找到本插件并点击激活
  3. 后台侧边栏出现「评论奖励惩罚」菜单,进入即可完成参数配置

代码
zib-comment-reward-punishment/
├── zib-comment-reward-punishment.php  # 插件主入口文件
├── inc/                                # 核心功能模块
│   ├── options.php                     # CSF后台配置面板
│   ├── reward-punishment.php           # 奖惩核心逻辑
│   ├── user-asset.php                  # 用户资产(积分/余额/经验/会员)操作
│   ├── notification.php                # 站内+邮件通知模块
│   └── logger.php                      # 日志记录、统计、清理模块
├── assets/                             # 前端静态资源
│   ├── css/frontend.css                # 前台样式文件
│   └── js/frontend.js                  # 前台交互脚本
└── README.md                           # 插件使用说明文档
 

路径:评论奖励惩罚 → 基础设置
  • 启用功能:全局开关,控制插件是否生效
  • 最短评论字数:低于该字数不触发奖惩(默认 10 字)
  • 冷却时间:同一用户两次触发间隔(默认 300 秒)
  • 通知用户:触发奖惩时是否推送通知
  • 记录日志:是否将操作存入数据库

路径:评论奖励惩罚 → 奖励设置
  • 奖励触发概率:评论后触发奖励的比例(默认 30%)
  • 积分奖励:开关、最小 / 最大奖励数值(默认 10~50)
  • 余额奖励:开关、最小 / 最大金额(默认 1~10 元)
  • 经验值奖励:开关、最小 / 最大经验(默认 10~100)
  • 会员奖励:开关、赠送会员天数(默认 7 天)、会员等级(普通 / 高级 / 超级)

路径:评论奖励惩罚 → 惩罚设置
  • 惩罚触发概率:评论后触发惩罚的比例(默认 10%)
  • 积分惩罚:开关、最小 / 最大扣除数值(默认 5~20)
  • 余额惩罚:开关、最小 / 最大扣除金额(默认 0.5~5 元)
  • 经验值惩罚:开关、最小 / 最大扣除数值(默认 5~50)

路径:评论奖励惩罚 → 权限控制
  • 适用用户角色:指定可参与奖惩的用户组(默认:订阅者、投稿者、作者)
  • 排除用户 ID:填写用户 ID,多 ID 用英文逗号分隔,该类用户不参与规则
  • 最低用户等级:低于该等级的用户不触发奖惩(0 = 不限制)

  1. 用户发布评论,系统自动校验字数、冷却、权限、概率,判定是否触发奖惩
  2. 触发后前台弹出提示窗口,展示具体奖惩内容
  3. 通知设置:个人资料页可自主开启 / 关闭站内通知、邮件通知

  1. 操作日志:查看所有奖惩记录、关联评论 / 文章、操作用户
  2. 数据统计:查看周期内奖励、惩罚整体数据
  3. 日志导出:支持将日志导出为 CSV 文件
  4. 日志清理:插件自动清理过期日志,默认保留 30 天

WordPress 后台 → 用户 → 个人资料 → 评论奖励惩罚通知设置,勾选对应通知类型即可。

日志数据表 wp_zcrp_logs,用于存储所有奖惩记录:
代码
CREATE TABLE wp_zcrp_logs (
    id bigint(20) NOT NULL AUTO_INCREMENT,
    user_id bigint(20) NOT NULL,
    comment_id bigint(20) NOT NULL,
    post_id bigint(20) NOT NULL,
    type varchar(20) NOT NULL COMMENT 'reward/punishment',
    action varchar(50) NOT NULL COMMENT 'points/balance/vip/exp',
    value decimal(10,2) NOT NULL DEFAULT 0,
    description text NOT NULL,
    created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    KEY user_id (user_id),
    KEY comment_id (comment_id),
    KEY created_at (created_at)
);
 

  • comment_post:监听评论提交事件,触发奖惩逻辑
  • zib_require_end:加载子比 CSF 后台配置面板
  • show_user_profile / edit_user_profile:在用户资料页添加通知选项
  • personal_options_update / edit_user_profile_update:保存用户通知配置

代码
// 插件配置读写
zcrp_get_option($key, $default);
zcrp_update_option($key, $value);

// 用户资产操作
zcrp_add_points($user_id, $points);        // 增加积分
zcrp_deduct_points($user_id, $points);     // 扣除积分
zcrp_add_balance($user_id, $amount);       // 增加余额
zcrp_deduct_balance($user_id, $amount);    // 扣减余额
zcrp_add_exp($user_id, $exp);              // 增加经验
zcrp_deduct_exp($user_id, $exp);           // 扣减经验
zcrp_add_vip($user_id, $days, $level);     // 赠送会员
zcrp_remove_vip($user_id);                 // 取消会员

// 日志相关
zcrp_log_operation($user_id, $comment_id, $post_id, $type, $action, $value, $description);
zcrp_get_user_logs($user_id, $limit, $offset);
zcrp_get_statistics($period);
 

  • 全量 AJAX 请求启用 Nonce 验证
  • 严格校验用户角色与操作权限
  • 输入数据使用 sanitize_* 系列函数过滤
  • 页面输出使用 esc_* 系列函数转义
  • 采用 $wpdb->prepare 预编译 SQL,杜绝注入风险
  • 启动前检测子比主题状态,防止主题不兼容报错

  • 插件配置项启用静态缓存,减少数据库查询
  • 日志表建立专属索引,提升查询速度
  • 定时任务自动清理过期日志,控制数据表体积
  • CSS/JS 合理依赖加载,避免资源重复加载

A:检查三项内容:已启用子比主题、PHP 版本≥8.1、WordPress 版本≥7.0。

A:逐一排查:插件未开启、评论字数不达标、冷却时间未结束、用户角色 / 等级被限制、概率未命中。

A:后台进入「评论奖励惩罚 → 奖励设置 / 惩罚设置」,直接修改对应概率数值即可。

A:后台菜单「评论奖励惩罚 → 操作日志」。

A:默认保留 30 天,自动清理。添加以下代码可自定义保留天数:
代码
add_filter('zcrp_log_retention_days', function() {
    return 60; // 修改为想要保留的天数
});
 

  1. 修复经验值无法到账问题,替换为 zib_add_user_level_integral 函数
  2. 修复会员权限失效问题,修正过期时间参数格式
  3. 新增 integral_add_options 过滤器,优化经验值明细展示

  1. 正式首发版本,完成评论奖惩核心逻辑
  2. 支持积分、余额、经验、会员四类奖惩操作
  3. 搭建完整 CSF 后台配置面板
  4. 实现操作日志、数据统计、通知全套功能
© 版权声明
THE END
喜欢就支持一下吧
点赞6687支持作者 分享
评论标题 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容