Move 288 types from global AKSRT_* + inc/classes manual requires into
namespace AKSRT\{Domain} under src/AKSRT/, wire composer.json psr-4,
and slim bootstrap to helpers/modules/hooks only. Split multi-class
widget/gateway files, update admin contract audit paths, and document
the layout in ADR/README.
82 lines
3.0 KiB
PHP
82 lines
3.0 KiB
PHP
<?php
|
|
/**
|
|
* AKSRT Credits Helper
|
|
*
|
|
* 模板层使用的顶层辅助函数:
|
|
* aksrt_user_credits($user_id = 0) 读取余额
|
|
* aksrt_format_credits(int $n) 格式化展示
|
|
* aksrt_credits_label(string $reason) 流水原因 → 友好文案
|
|
*
|
|
* @package AKSRT
|
|
*/
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
if (!function_exists('aksrt_user_credits')) {
|
|
/**
|
|
* 取用户当前积分余额。
|
|
*
|
|
* @param int $user_id 0 表示当前登录用户
|
|
* @return int
|
|
*/
|
|
function aksrt_user_credits(int $user_id = 0): int {
|
|
if ($user_id <= 0) $user_id = get_current_user_id();
|
|
if ($user_id <= 0) return 0;
|
|
if (!class_exists('\AKSRT\Credits\Credits')) return 0;
|
|
return \AKSRT\Credits\Credits::balance($user_id);
|
|
}
|
|
}
|
|
|
|
if (!function_exists('aksrt_format_credits')) {
|
|
function aksrt_format_credits(int $n): string {
|
|
return number_format_i18n($n);
|
|
}
|
|
}
|
|
|
|
if (!function_exists('aksrt_credits_label')) {
|
|
/**
|
|
* 把 reason 字段翻译成展示文案。
|
|
*/
|
|
function aksrt_credits_label(string $reason): string {
|
|
$map = [
|
|
'register' => __('注册赠送', 'aksrt'),
|
|
'signin' => __('每日签到', 'aksrt'),
|
|
'comment' => __('发表评论', 'aksrt'),
|
|
'invite' => __('邀请奖励', 'aksrt'),
|
|
'invitee' => __('被邀请奖励', 'aksrt'),
|
|
'download' => __('下载消费', 'aksrt'),
|
|
'admin' => __('管理员调整', 'aksrt'),
|
|
'refund' => __('退款', 'aksrt'),
|
|
'forum_topic' => __('论坛发帖', 'aksrt'),
|
|
'forum_reply' => __('论坛回复', 'aksrt'),
|
|
'free_sign_up' => __('注册奖励', 'aksrt'),
|
|
'free_sign_in' => __('每日签到', 'aksrt'),
|
|
'free_login' => __('每日登录', 'aksrt'),
|
|
'free_followed'=> __('被关注', 'aksrt'),
|
|
'free_post_new'=> __('发布文章', 'aksrt'),
|
|
'free_post_like'=> __('文章被赞', 'aksrt'),
|
|
'free_post_favorite'=> __('文章被收藏', 'aksrt'),
|
|
'free_comment_new'=> __('发表评论', 'aksrt'),
|
|
'free_comment_like'=> __('评论被赞', 'aksrt'),
|
|
'free_bbs_posts_new'=> __('论坛发帖', 'aksrt'),
|
|
'free_bbs_reply'=> __('论坛回复', 'aksrt'),
|
|
'free_bbs_essence'=> __('帖子加精', 'aksrt'),
|
|
'free_bbs_adopt'=> __('回复被采纳', 'aksrt'),
|
|
'free_bbs_posts_hot'=> __('热帖奖励', 'aksrt'),
|
|
'free_bbs_comment_hot'=> __('神评奖励', 'aksrt'),
|
|
'free_bbs_score_extra'=> __('帖子加分', 'aksrt'),
|
|
];
|
|
if (isset($map[$reason])) {
|
|
return $map[$reason];
|
|
}
|
|
if (str_starts_with($reason, 'free_') && class_exists('\AKSRT\Credits\PointsFree')) {
|
|
$key = substr($reason, 5);
|
|
$cat = \AKSRT\Credits\PointsFree::catalog();
|
|
if (isset($cat[$key][0])) {
|
|
return (string) $cat[$key][0];
|
|
}
|
|
}
|
|
return $reason;
|
|
}
|
|
}
|