apply_filters( 'learndash_ques_single_answer_pts', float $points, array $question_data, int|string $answer_index, mixed $correct_answer, array $user_response )
Filters points awarded for a single answer type question.
Description #
LearnDash single answer question, allow points to be allocated for not marking an incorrect answer. Allow all possibility of given answer to be correct answer.
Parameters #
- $points
-
(float) Points awarded to quiz
- $question_data
-
(array) An array of question data.
- $answer_index
-
(int|string) Index of the answer.
- $correct_answer
-
(mixed) Correct answer for the question.
- $user_response
-
(array) An array of user response data.
Source #
Examples #
Note: Extended code example below not guaranteed, you may need to consult with a developer
<?php
/**
* Example usage for learndash_ques_single_answer_pts filter.
*/
add_filter( 'learndash_ques_single_answer_pts', 'learndash_ques_single_answer_pts', 10, 5 );
function learndash_ques_single_answer_pts( $points, $questionData, $answerIndex, $correctAnswer, $userResponse ) {
// If the Single Question diffMode is enabled then we ignore.
if ( ( ! isset( $questionData['diffMode'] ) ) || ( empty( $questionData['diffMode'] ) ) ) {
// If the user provide an answer and is correct...
if ( ( ! empty( $correctAnswer ) ) && ( ! empty( $userResponse[ $answerIndex ] ) ) ) {
// ...we give the points for total of all/any answers.
$points = array_sum( $questionData['points'] );
} else {
// ...we give the points for total of all correct answers.
$points = array_sum( $questionData['correct'] );
}
}
return $points;
}
Changelog #
| Version | Description |
|---|---|
| 4.14.0 | Introduced. Changed $points type from int to float. |