function dt_payment_save_settings($current) { if (!empty($_POST) && check_admin_referer('dt_payment_settings', '_wpnonce')) { $payment_settings = array(); $payment_settings = get_option('dt_settings'); unset($_POST['_wpnonce']); unset($_POST['_wp_http_referer']); unset($_POST['dt_save']); switch ($current) { case 'dt_set_commission': $payment_settings['set-commission']['commission'][$_POST['dt-setcom-teacher']] = $_POST; break; case 'dt_pay_commission': $teacher_info = get_userdata($_POST['dt-paycom-teacher']); $teacher_name = $teacher_info->display_name; $title = __('Commissions / ' . $teacher_name . ' / ' . date('Y-m-d'), 'dt_themes'); $items_all = dt_decode_array($_POST['item_data_all']); $selected_items = isset($_POST['item']) ? $_POST['item'] : ''; $new_items = array(); if ($selected_items != '') { $j = 0; foreach ($items_all as $key => $item) { if (isset($selected_items[$j]) && $selected_items[$j] == 'true') { $students = array_merge(get_users(array('role' => 's2member_level1')), get_users(array('role' => 's2member_level2')), get_users(array('role' => 's2member_level3')), get_users(array('role' => 's2member_level4'))); foreach ($students as $student) { $new_ccaps = ''; $student_level = get_user_field("s2member_access_role", $student->data->ID); if ($student_level == 's2member_level2' || $student_level == 's2member_level3' || $student_level == 's2member_level4') { $all_ccaps = dt_get_all_paid_courses(); } else { $student_cap = get_user_field("s2member_access_ccaps", $student->data->ID); $all_ccaps = dt_remove_cid($student_cap); } if (in_array($item['course_id'], $all_ccaps)) { $prev_ccaps = get_user_meta($student->data->ID, 'commission_ccaps', true); $prev_ccaps = isset($prev_ccaps) ? $prev_ccaps : ''; if ($prev_ccaps != '') { $new_ccaps = $prev_ccaps . ',' . $item['course_id']; } else { $new_ccaps = $item['course_id']; } update_user_meta($student->data->ID, 'commission_ccaps', $new_ccaps); } } $new_items[] = $item; } $j++; } $payment_post = array('post_title' => $title, 'post_status' => 'publish', 'post_type' => 'dt_payments'); $payment_post_id = wp_insert_post($payment_post); update_post_meta($payment_post_id, 'payment-data', $new_items); } break; } update_option('dt_settings', $payment_settings); } }
function dt_get_all_capabilities_id() { $students_list = $students_cap = $new_ccaps = array(); $students = array_merge(get_users(array('role' => 's2member_level1')), get_users(array('role' => 's2member_level2')), get_users(array('role' => 's2member_level3')), get_users(array('role' => 's2member_level4'))); foreach ($students as $student) { $students_list[] = $student->data->ID; $student_level = get_user_field("s2member_access_role", $student->data->ID); if ($student_level == 's2member_level2' || $student_level == 's2member_level3' || $student_level == 's2member_level4') { $current_student_cap = dt_get_all_paid_courses(); } else { $current_student_cap = get_user_field("s2member_access_ccaps", $student->data->ID); $current_student_cap = dt_remove_cid($current_student_cap); } $commission_paid_caps = get_user_meta($student->data->ID, 'commission_ccaps', true); $commission_paid_caps = array_filter(explode(',', $commission_paid_caps)); $result_caps = array_diff($current_student_cap, $commission_paid_caps); $students_cap[] = $result_caps; } foreach ($students_cap as $key => $cap) { $new_ccaps = array_merge($new_ccaps, $cap); } return $new_ccaps; }
function dt_get_user_completed_course_count($student_id) { $student_level = get_user_field("s2member_access_role", $student_id); if ($student_level == 's2member_level2' || $student_level == 's2member_level3' || $student_level == 's2member_level4') { $student_cap = dt_get_all_paid_courses(); } else { $student_cap = get_user_field("s2member_access_ccaps", $student_id); $student_cap = dt_remove_cid($student_cap); } $i = 0; foreach ($student_cap as $course_id) { if (dt_get_users_course_status($course_id, $student_id)) { $i++; } } return $i; }