feat(identity): tip QR upload, metrics engine, comment moderate caps

Close identity 1:1 gaps after p1: user-center weixin/alipay tip QR
upload+save, AKSRT_User_Metrics counters for medal get_type and level
XP bridges, forum/revenue/signin hooks, comment moderate via user_caps,
and clearer free-task deep links/status CTAs.
This commit is contained in:
kate522 committed 2026-07-17 01:52:35 +08:00
1 parent 4e3eb0414d
commit 487681a6c4
18 files changed
+854 -36

No files matched your search

+20 -5
View File
@@ -477,11 +477,10 @@ class AKSRT_User_Badges {
return (float) $counts;
case 'followed':
$meta = get_user_meta($user_id, 'followed-user', true);
if (!is_array($meta)) {
$meta = get_user_meta($user_id, 'aksrt_followed_users', true);
if (class_exists('AKSRT_Follow')) {
return (float) AKSRT_Follow::get_instance()->get_follower_count($user_id);
}
return is_array($meta) ? (float) count($meta) : 0.0;
return 0.0;
case 'like':
return (float) get_user_meta($user_id, 'aksrt_posts_like_sum', true);
@@ -505,7 +504,23 @@ class AKSRT_User_Badges {
return (float) get_user_meta($user_id, 'aksrt_bbs_score_sum', true);
case 'views':
return (float) get_user_meta($user_id, 'aksrt_posts_views_sum', true);
$sum = (float) get_user_meta($user_id, 'aksrt_posts_views_sum', true);
if ($sum > 0) {
return $sum;
}
// Lazy backfill once from postmeta.
global $wpdb;
$sum = (float) $wpdb->get_var($wpdb->prepare(
"SELECT COALESCE(SUM(CAST(pm.meta_value AS UNSIGNED)),0)
FROM {$wpdb->posts} p
INNER JOIN {$wpdb->postmeta} pm ON pm.post_id = p.ID AND pm.meta_key = 'aksrt_post_views'
WHERE p.post_author = %d AND p.post_type = 'post' AND p.post_status = 'publish'",
$user_id
));
if ($sum > 0) {
update_user_meta($user_id, 'aksrt_posts_views_sum', $sum);
}
return $sum;
case 'pay_income':
return (float) get_user_meta($user_id, 'aksrt_pay_income_sum', true);