// ========== 新增:排行榜奖励条件与手动发放 ========== /** * 发放排行榜奖励(支持每日邀请达标人数条件) */ function riri_give_ranking_rewards() { $ranking_rewards = get_option('riri_ranking_rewards', array( 'daily_enabled' => 1, 'daily_top' => 3, 'daily_amount' => 5, 'daily_min_invites' => 0, 'weekly_enabled' => 1, 'weekly_top' => 5, 'weekly_amount' => 20, 'total_enabled' => 1, 'total_top' => 10, 'total_amount' => 50, )); $now = current_time('timestamp'); $today_date = date('Y-m-d', $now); $week_start = date('Y-m-d', strtotime('monday this week', $now)); $last_daily = get_option('riri_last_daily_ranking_reward', ''); $last_weekly = get_option('riri_last_weekly_ranking_reward', ''); $last_total = get_option('riri_last_total_ranking_reward', ''); // 每日榜 if ($ranking_rewards['daily_enabled'] && $last_daily !== $today_date) { $daily_ranking = riri_get_invite_ranking('today', $ranking_rewards['daily_top']); $min_invites = intval($ranking_rewards['daily_min_invites']); foreach ($daily_ranking as $item) { if ($min_invites > 0 && $item->invite_count < $min_invites) continue; riri_add_withdrawable_balance($item->user_id, $ranking_rewards['daily_amount'], 'daily_ranking_reward'); riri_add_ranking_reward_log($item->user_id, 'daily', $ranking_rewards['daily_amount'], $item->invite_count); riri_send_ranking_reward_mail($item->user_id, 'daily', $ranking_rewards['daily_amount'], $item->invite_count); } update_option('riri_last_daily_ranking_reward', $today_date); } // 周榜 if ($ranking_rewards['weekly_enabled'] && $last_weekly !== $week_start) { $weekly_ranking = riri_get_invite_ranking('week', $ranking_rewards['weekly_top']); foreach ($weekly_ranking as $item) { riri_add_withdrawable_balance($item->user_id, $ranking_rewards['weekly_amount'], 'weekly_ranking_reward'); riri_add_ranking_reward_log($item->user_id, 'weekly', $ranking_rewards['weekly_amount'], $item->invite_count); riri_send_ranking_reward_mail($item->user_id, 'weekly', $ranking_rewards['weekly_amount'], $item->invite_count); } update_option('riri_last_weekly_ranking_reward', $week_start); } // 总榜(一次性) if ($ranking_rewards['total_enabled'] && !$last_total) { $total_ranking = riri_get_invite_ranking('total', $ranking_rewards['total_top']); foreach ($total_ranking as $item) { riri_add_withdrawable_balance($item->user_id, $ranking_rewards['total_amount'], 'total_ranking_reward'); riri_add_ranking_reward_log($item->user_id, 'total', $ranking_rewards['total_amount'], $item->invite_count); riri_send_ranking_reward_mail($item->user_id, 'total', $ranking_rewards['total_amount'], $item->invite_count); } update_option('riri_last_total_ranking_reward', '1'); } } /** * 手动发放排行榜奖励(测试) */ function riri_manual_give_ranking_rewards($period = 'daily') { $ranking_rewards = get_option('riri_ranking_rewards', array( 'daily_enabled' => 1, 'daily_top' => 3, 'daily_amount' => 5, 'daily_min_invites' => 0, 'weekly_enabled' => 1, 'weekly_top' => 5, 'weekly_amount' => 20, 'total_enabled' => 1, 'total_top' => 10, 'total_amount' => 50, )); $results = array(); if ($period === 'daily') { $ranking = riri_get_invite_ranking('today', $ranking_rewards['daily_top']); $min_invites = intval($ranking_rewards['daily_min_invites']); foreach ($ranking as $item) { if ($min_invites > 0 && $item->invite_count < $min_invites) continue; riri_add_withdrawable_balance($item->user_id, $ranking_rewards['daily_amount'], 'daily_ranking_reward_manual'); riri_add_ranking_reward_log($item->user_id, 'daily', $ranking_rewards['daily_amount'], $item->invite_count); riri_send_ranking_reward_mail($item->user_id, 'daily', $ranking_rewards['daily_amount'], $item->invite_count); $results[] = $item->user_id; } } elseif ($period === 'weekly') { $ranking = riri_get_invite_ranking('week', $ranking_rewards['weekly_top']); foreach ($ranking as $item) { riri_add_withdrawable_balance($item->user_id, $ranking_rewards['weekly_amount'], 'weekly_ranking_reward_manual'); riri_add_ranking_reward_log($item->user_id, 'weekly', $ranking_rewards['weekly_amount'], $item->invite_count); riri_send_ranking_reward_mail($item->user_id, 'weekly', $ranking_rewards['weekly_amount'], $item->invite_count); $results[] = $item->user_id; } } elseif ($period === 'total') { $ranking = riri_get_invite_ranking('total', $ranking_rewards['total_top']); foreach ($ranking as $item) { riri_add_withdrawable_balance($item->user_id, $ranking_rewards['total_amount'], 'total_ranking_reward_manual'); riri_add_ranking_reward_log($item->user_id, 'total', $ranking_rewards['total_amount'], $item->invite_count); riri_send_ranking_reward_mail($item->user_id, 'total', $ranking_rewards['total_amount'], $item->invite_count); $results[] = $item->user_id; } } return $results; } /** * 发送排行榜奖励邮件通知 */ function riri_send_ranking_reward_mail($user_id, $rank_type, $amount, $invite_count) { $user = get_userdata($user_id); if (!$user || empty($user->user_email)) return; $site_name = get_bloginfo('name'); $type_text = $rank_type == 'daily' ? '每日榜' : ($rank_type == 'weekly' ? '本周榜' : '总榜'); $subject = sprintf('[%s] 排行榜奖励通知', $site_name); $message = sprintf( "亲爱的 %s:\n\n恭喜您登上 %s!\n您本次邀请人数为 %d 人,获得奖励 %.2f 元(可提现)。\n\n感谢您对 %s 的支持!", $user->display_name, $type_text, $invite_count, $amount, $site_name ); wp_mail($user->user_email, $subject, $message); } // AJAX 手动发放奖励(供前端按钮调用) add_action('wp_ajax_riri_manual_ranking_reward', 'riri_ajax_manual_ranking_reward'); function riri_ajax_manual_ranking_reward() { check_ajax_referer('riri_manual_reward', '_ajax_nonce'); if (!current_user_can('manage_options')) { wp_send_json_error('无权限'); } $period = isset($_POST['period']) ? sanitize_text_field($_POST['period']) : 'daily'; $results = riri_manual_give_ranking_rewards($period); wp_send_json_success(array('message' => '已发放奖励', 'users' => $results)); } 冒泡网创-第 447 页-测试站-创业资源网

冒泡网创

热门赚钱项目,引流推广,短视频,自媒体等VIP课程