LLMS_Quiz_Attempt::answer_question( int $question_id, string[] $answer )
Answer a question
Description Description
Records the selected option and whether or not the selected option was the correct option.
Automatically updates & saves the attempt to the database
Parameters Parameters
- $question_id
-
(int) (Required) WP_Post ID of the LLMS_Question.
- $answer
-
(string[]) (Required) Array of selected choice IDs (for core question types) or an array containing the user-submitted answer(s).
Return Return
(LLMS_Quiz_Attempt) Instance of the current attempt.
Source Source
File: includes/models/model.llms.quiz.attempt.php
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | public function answer_question( $question_id , $answer ) { $questions = $this ->get_questions(); foreach ( $questions as $key => $data ) { if ( absint( $question_id ) !== absint( $data [ 'id' ] ) ) { continue ; } $question = llms_get_post( $question_id ); $graded = $question ->grade( $answer ); $questions [ $key ][ 'answer' ] = $answer ; $questions [ $key ][ 'correct' ] = $graded ; $questions [ $key ][ 'earned' ] = llms_parse_bool( $graded ) ? $questions [ $key ][ 'points' ] : 0; break ; } $this ->set_questions( $questions )->save(); return $this ; } |
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
4.0.0 | Explicitly set earned points to 0 when answering incorrectly. Exit the loop as soon as we find our question. Use strict comparison for IDs. |
3.9.0 | |
3.16.0 | Introduced. |