apply_filters( 'learndash_ques_multiple_answer_pts_each', float $point, int|string $answer_index, array $question_data, mixed $correct_answer, array $user_response )
Filters the points of each answer for multiple answer type question.
Description #
Parameters #
- $point
-
(float) Points for the question.
- $answer_index
-
(int|string) Index of the answer.
- $question_data
-
(array) An array of question data.
- $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_multiple_answer_pts_each filter.
*/
add_filter(
'learndash_ques_multiple_answer_pts_each',
function( $points, $questionData, $answerIndex, $correctAnswer, $userResponse ) {
// If the answer item is FALSE (not correct) but the student provided an answer. Then deduct the points.
if ( ( $questionData['correct'][ $answerIndex ] == false ) && ( ! empty( $userResponse[ $answerIndex ] ) ) ) {
if ( intval( $questionData['points'][ $answerIndex ] ) > 0 ) {
$points -= intval( $questionData['points'][ $answerIndex ] );
} else {
$points -= 1;
}
}
// Keep the points zero or greater.
// First we get the key of the last answer items
end( $questionData['correct'] );
$last_key = key( $questionData['correct'] );
// If we are at the last index and the points is less than zero we keep it from being negative.
if ( ( $last_key == $answerIndex ) && ( $points < 0 ) ) {
$points = 0;
}
// Always return $points
return $points;
},
10,
5
);
add_filter( 'learndash_ques_multiple_answer_pts_each', 'learndash_ques_multiple_answer_pts_each', 10, 5 );
function learndash_ques_multiple_answer_pts_each( $points, $questionData, $answerIndex, $correctAnswer, $userResponse ) {
if ( empty( $correctAnswer ) && empty( $userResponse[ $answerIndex ] ) ) {
$r[ $answerIndex ] = true;
$points += $questionData['points'][ $answerIndex ];
}
return $points;
}
Changelog #
| Version | Description |
|---|---|
| 4.14.0 | Introduced. Changed $points type from int to float. |