I did something similar for a client but they wanted a shortcode to enable to put the percentage anywhere on their page. Keep in mind this displays the percentage correct for all users, if you need it show for individual users you will need to modify the code reflect current_user. The code is below:
function all_users_previous_day_percentage_shortcode() { // Retrieve the entries for all users from the previous day $args = array( 'form_id' => 'YOUR_FORM_ID', // Replace with the ID of your form 'date_query' => array( array( 'after' => '1 day ago', 'before' => 'today', ), ), ); $entries = FrmEntry::get( $args ); // Calculate the percentage correct for all entries from the previous day $total_questions = 0; $total_correct = 0; foreach ( $entries as $entry ) { // Get the quiz score field value for this entry $quiz_score = FrmProEntriesController::get_field_value_shortcode( array( 'field_id' => 'YOUR_SCORE_FIELD_ID', // Replace with the ID of your quiz score field 'entry' => $entry, ) ); // Get the total number of questions and number of correct answers $quiz_data = json_decode( $quiz_score, true ); $total_questions += $quiz_data['total']; $total_correct += $quiz_data['correct']; } $percent_correct = $total_questions > 0 ? round( $total_correct / $total_questions * 100 ) : 0; // Output the percentage correct return 'Percentage correct for all users from the previous day: ' . $percent_correct . '%'; } add_shortcode( 'all_users_previous_day_percentage', 'all_users_previous_day_percentage_shortcode' );Use the shortcode [all_users_previous_day_percentage] to show the percentage in a view or on a page.
Thanks, I'll give this a try.
Please login or Register to submit your answer