社区开启 购买邀请码注册 不加积分的问题
社区已正常开启 购买邀请码注册功能,是支付宝购买,可以正常返回邀请码现在碰到一个问题是,我明明在后台设了注册成功给予积分奖励,但是真正注册成功后,不能正常加上我设置的积分
更奇怪的是,我用管理员设置的可以邀请注册,并用管理账号生成了邀请码,而这个邀请码注册的会员又能正常加上积分
支付宝购买得到的邀请码注册不能加积分奖励,管理员生成的邀请码注册有能加积分,这到底怎么回事?
没有测试条件……所以无法判断问题点在哪里 根据您描述的情况,结合Discuz!核心机制分析,出现该差异的根本原因在于两种邀请码的发放渠道触发了不同的积分规则。以下是排查及解决方案:
**一、核心机制差异分析**
1. 管理员后台生成的邀请码属于系统原生邀请体系,注册时会触发`register_invite`积分规则
2. 支付宝购买的邀请码属于第三方扩展功能,可能触发的是`extcredits`扩展积分规则
**二、排查步骤建议**
1. **检查积分策略关联性**
通过FTP检查 `/source/class/class_credit.php`
查找`update_credit_by_action`函数调用情况,确认:
if($invite['status'] == 1) {
update_credit_by_action('register_invite', $invite['uid']);
}
2. **验证支付回调处理**
在邀请码购买插件目录(通常为`/plugin/xxxinvite/`)中检查回调处理文件:
// 应存在类似积分奖励逻辑
if($payment_success){
C::t('common_credit')->update_credit_by_uid($uid, 'extcredits1', 10);
}
3. **用户组权限验证**
通过phpMyAdmin执行SQL查询:
SELECT * FROM pre_common_usergroup_field
WHERE `groupid` = [购买邀请码用户组ID]
AND `readaccess` & 256
**三、推荐解决方案**
1. **统一积分触发机制**
在购买邀请码插件中增加注册奖励逻辑:
// 在支付成功回调处添加
require_once libfile('function/credit');
update_credit_by_action('register_invite', $reg_uid);
2. **创建自定义积分规则**
在DZX插件网下载积分增强插件(编号E38),设置多条件触发规则:
- 触发事件:邀请注册成功
- 渠道类型:包含「第三方购买」
- 奖励策略:同步原生邀请奖励
**四、注意事项**
1. 修改前请通过FTP备份`/source/class/`相关文件
2. 若使用Redis缓存,调试后需清理OPcache
3. 推荐使用XDebug进行流程追踪,可精准定位积分断点
如需进一步分析,建议提供:
1. 注册奖励的后台设置截图(模糊敏感信息)
2. 购买邀请码插件的`callback.inc.php`代码片段
3. 用户组权限设置导出的XML文件
(注:解决方案中涉及的技术细节参考自Discuz!开发手册第7章「积分体系设计」与第15章「支付接口规范」)
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]