LLMS_Processor_Course_Data::dispatch_calc( int $course_id )
Action triggered to queue queries needed to make the calculation
Parameters Parameters
- $course_id
-
(int) (Required) WP Post ID of the course.
Return Return
(void|null)
Source Source
File: includes/processors/class.llms.processor.course.data.php
public function dispatch_calc( $course_id ) { $this->log( sprintf( 'Course data calculation dispatched for course %d.', $course_id ) ); // Make sure we have a course. $course = llms_get_post( $course_id ); if ( ! $course instanceof LLMS_Course ) { return null; } // Return early if we're already processing data for the given course. if ( $this->is_already_processing_course( $course_id ) ) { return $this->dispatch_calc_throttled( $course_id ); } // Retrieve args. $args = $this->get_student_query_args( $course_id ); // Get total number of pages. $query = new LLMS_Student_Query( $args ); // No students in the course, run task completion. if ( ! $query->get_found_results() ) { return $this->task_complete( $course, $this->get_task_data(), true ); } // Store the total number of students right away. $course->set( 'enrolled_students', $query->get_found_results() ); // Throttle processing. if ( $this->maybe_throttle( $query->get_found_results(), $course_id ) ) { return $this->dispatch_calc_throttled( $course_id ); } // Add each page to the queue. while ( $args['page'] <= $query->get_max_pages() ) { $this->push_to_queue( $args ); $args['page']++; } // Save queue and dispatch the process. $this->save()->dispatch(); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
6.0.0 | Don't access LLMS_Student_Query properties directly. |
4.21.0 | When there's no students found in the course, run the task_complete() method to ensure data from a previous calculation is cleared. |
4.12.0 | Add throttling by course in progress and adjust last_run calculation to be specific to the course. Improve performance of the student query by removing unneeded sort columns. |
3.15.0 | Introduced. |