This article contains PHP code and is intended for developers. We offer this code as a courtesy, but don't provide support for code customizations or 3rd party development.
Select which fields should be included or excluded from a quiz score.
Usage
add_filter( 'frm_quiz_score_field', 'frm_quiz_score_field', 10, 2 );
Parameters
- $count_field (boolean) - True if the field should be counted or false if it should not.
- $args (array)
- $args['field'] (object) - The field to be checked.
- $args['entry'] (object) - The entry being scored.
- $args['value'] (array|string) - The response in the field.
- $args['saved_answers'] (array) - A list of correct answers.
Examples
Exclude date field type
This example will exclude a field of date type from being counted in the score.
add_filter( 'frm_quiz_score_field', 'exclude_date_field_type', 10, 2 );
function exclude_date_field_type( $count_field, $args ) {
if ( $args['field']->type === 'date' ) {
$count_field = false;
}
return $count_field;
}
Replace the value 'date' in the if condition with the type of field you need to exclude from the score
Exclude fields by id
Use this code example to exclude the specified fields from being counted in the quiz score.
In $fields_to_exclude array on line 3, change 2504, 2505, and 2506 to a list of the ids of the fields you want to exclude from quiz scoring. The fields in this list can be from different quizzes.
add_filter( 'frm_quiz_score_field', 'exclude_fields_from_quiz_score', 10, 2 );
function exclude_fields_from_quiz_score( $count_field, $args ) {
$fields_to_exclude = array( 2504, 2505, 2506 ); // List the ids of the fields you want to exclude from the quiz score.
if ( in_array( $args['field']->id, $fields_to_exclude ) ) {
$count_field = false;
}
return $count_field;
}
Include fields by id
Use this code example to list all the fields you want to include in the quiz score. Other fields will be excluded. This example can be useful when you have many fields in a form and you only want to include a few in the quiz.
In the $forms array on line 3, list the ids of the forms whose scoring you want to control with this code. You can have just one form in the list or many forms.
In $fields_to_include on line 8, list all the fields that you want to be included in the scores in the specified forms. All other fields in the specified forms will not be included in the quiz scores.
add_filter( 'frm_quiz_score_field', 'include_fields_in_quiz_score', 10, 2 );
function include_fields_in_quiz_score( $count_field, $args ) {
$forms = array( 203, 210 ); // List the ids of the quiz forms whose scoring you want to determine with this snippet
if ( ! in_array( $args['field']->form_id, $forms ) ){
return $count_field;
}
$count_field = false;
$fields_to_include = array( 2507, 2508, 2509); // List the ids of the fields you want to include in the quiz score.
if ( in_array( $args['field']->id, $fields_to_include ) ) {
$count_field = true;
}
return $count_field;
}