Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.
LLMS_Admin_Builder::update_questions( array $questions, obj $parent )
Update quiz questions from heartbeat data
Description Description
Parameters Parameters
- $questions
-
(array) (Required) question data array
- $parent
-
(obj) (Required) instance of an LLMS_Quiz or LLMS_Question (group)
Return Return
(array)
Source Source
File: includes/admin/class.llms.admin.builder.php
private static function update_questions( $questions, $parent ) { $res = array(); foreach ( $questions as $q_data ) { $ret = array_merge( $q_data, array( 'orig_id' => $q_data['id'], ) ); // remove temp id if we have one so we'll create a new question if ( self::is_temp_id( $q_data['id'] ) ) { unset( $q_data['id'] ); } // remove choices because we'll add them individually after creation $choices = ( isset( $q_data['choices'] ) && is_array( $q_data['choices'] ) ) ? $q_data['choices'] : false; unset( $q_data['choices'] ); // remove child questions if it's a question group $questions = ( isset( $q_data['questions'] ) && is_array( $q_data['questions'] ) ) ? $q_data['questions'] : false; unset( $q_data['questions'] ); $question_id = $parent->questions()->update_question( $q_data ); if ( ! $question_id ) { $ret['error'] = sprintf( esc_html__( 'Unable to update question "%s". Invalid question ID.', 'lifterlms' ), $q_data['id'] ); } else { $ret['id'] = $question_id; $question = $parent->questions()->get_question( $question_id ); if ( $choices ) { $ret['choices'] = array(); foreach ( $choices as $c_data ) { $choice_res = array_merge( $c_data, array( 'orig_id' => $c_data['id'], ) ); unset( $c_data['question_id'] ); // remove the temp ID so that we create it if it's new if ( self::is_temp_id( $c_data['id'] ) ) { unset( $c_data['id'] ); } $choice_id = $question->update_choice( $c_data ); if ( ! $choice_id ) { $choice_res['error'] = sprintf( esc_html__( 'Unable to update choice "%s". Invalid choice ID.', 'lifterlms' ), $c_data['id'] ); } else { $choice_res['id'] = $choice_id; } array_push( $ret['choices'], $choice_res ); } } elseif ( $questions ) { $ret['questions'] = self::update_questions( $questions, $question ); } }// End if(). array_push( $res, $ret ); }// End foreach(). return $res; }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.16.0 | Introduced. |
User Contributed Notes User Contributed Notes
Permalink: