/** * Sets the stats boxes to render * @since 1.2.0 * @return array $stats_to_render of stats boxes and values */ public function stats_boxes() { // Get the data required $user_count = count_users(); $user_count = apply_filters('sensei_analysis_total_users', $user_count['total_users'], $user_count); $total_courses = Sensei()->course->course_count(array('publish', 'private')); $total_lessons = Sensei()->lesson->lesson_count(array('publish', 'private')); /** * filter the analysis tot grades query args */ $grade_args = apply_filters('sensei_analysis_total_quiz_grades', array('type' => 'sensei_lesson_status', 'status' => 'any', 'meta_key' => 'grade')); $total_grade_count = Sensei_Grading::get_graded_lessons_count(); $total_grade_total = Sensei_Grading::get_graded_lessons_sum(); $total_average_grade = 0; if ($total_grade_total > 0 && $total_grade_count > 0) { $total_average_grade = abs(round(doubleval($total_grade_total / $total_grade_count), 2)); } $course_args = array('type' => 'sensei_course_status', 'status' => 'any'); $total_courses_started = Sensei_Utils::sensei_check_for_activity(apply_filters('sensei_analysis_total_courses_started', $course_args)); $course_args = array('type' => 'sensei_course_status', 'status' => 'complete'); $total_courses_ended = Sensei_Utils::sensei_check_for_activity(apply_filters('sensei_analysis_total_courses_ended', $course_args)); $average_courses_per_learner = abs(round(doubleval($total_courses_started / $user_count), 2)); // Setup the boxes to render $stats_to_render = array(__('Total Courses', 'woothemes-sensei') => $total_courses, __('Total Lessons', 'woothemes-sensei') => $total_lessons, __('Total Learners', 'woothemes-sensei') => $user_count, __('Average Courses per Learner', 'woothemes-sensei') => $average_courses_per_learner, __('Average Grade', 'woothemes-sensei') => $total_average_grade . '%', __('Total Completed Courses', 'woothemes-sensei') => $total_courses_ended); return apply_filters('sensei_analysis_stats_boxes', $stats_to_render); }