@@ -21,12 +21,12 @@ discard block |
||
21 | 21 | */ |
22 | 22 | public function __construct () { |
23 | 23 | |
24 | - $this->token = 'lesson'; |
|
24 | + $this->token = 'lesson'; |
|
25 | 25 | |
26 | 26 | // Setup meta fields for this post type |
27 | 27 | $this->meta_fields = array( 'lesson_prerequisite', 'lesson_course', 'lesson_preview', 'lesson_length', 'lesson_complexity', 'lesson_video_embed' ); |
28 | 28 | |
29 | - $this->question_order = ''; |
|
29 | + $this->question_order = ''; |
|
30 | 30 | |
31 | 31 | // Admin actions |
32 | 32 | if ( is_admin() ) { |
@@ -84,18 +84,18 @@ discard block |
||
84 | 84 | add_action( 'wp_ajax_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) ); |
85 | 85 | add_action( 'wp_ajax_nopriv_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) ); |
86 | 86 | |
87 | - // output bulk edit fields |
|
88 | - add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 ); |
|
89 | - add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 ); |
|
87 | + // output bulk edit fields |
|
88 | + add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 ); |
|
89 | + add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 ); |
|
90 | 90 | |
91 | - // load quick edit default values |
|
92 | - add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2); |
|
91 | + // load quick edit default values |
|
92 | + add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2); |
|
93 | 93 | |
94 | - // save bulk edit fields |
|
95 | - add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) ); |
|
94 | + // save bulk edit fields |
|
95 | + add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) ); |
|
96 | 96 | |
97 | - // flush rewrite rules when saving a lesson |
|
98 | - add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) ); |
|
97 | + // flush rewrite rules when saving a lesson |
|
98 | + add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) ); |
|
99 | 99 | |
100 | 100 | } else { |
101 | 101 | // Frontend actions |
@@ -189,8 +189,8 @@ discard block |
||
189 | 189 | $post_args = array( 'post_type' => 'lesson', |
190 | 190 | 'posts_per_page' => -1, |
191 | 191 | 'orderby' => 'title', |
192 | - 'order' => 'ASC', |
|
193 | - 'exclude' => $post->ID, |
|
192 | + 'order' => 'ASC', |
|
193 | + 'exclude' => $post->ID, |
|
194 | 194 | 'suppress_filters' => 0 |
195 | 195 | ); |
196 | 196 | $posts_array = get_posts( $post_args ); |
@@ -226,7 +226,7 @@ discard block |
||
226 | 226 | |
227 | 227 | $checked = ''; |
228 | 228 | if ( isset( $lesson_preview ) && ( '' != $lesson_preview ) ) { |
229 | - $checked = checked( 'preview', $lesson_preview, false ); |
|
229 | + $checked = checked( 'preview', $lesson_preview, false ); |
|
230 | 230 | } // End If Statement |
231 | 231 | |
232 | 232 | $html .= '<label for="lesson_preview">'; |
@@ -275,7 +275,7 @@ discard block |
||
275 | 275 | |
276 | 276 | |
277 | 277 | /** |
278 | - * Update the lesson quiz and all the post meta |
|
278 | + * Update the lesson quiz and all the post meta |
|
279 | 279 | * |
280 | 280 | * @access public |
281 | 281 | * @return integer|boolean $post_id or false |
@@ -296,7 +296,7 @@ discard block |
||
296 | 296 | } |
297 | 297 | |
298 | 298 | // Temporarily disable the filter |
299 | - remove_action( 'save_post', array( $this, 'quiz_update' ) ); |
|
299 | + remove_action( 'save_post', array( $this, 'quiz_update' ) ); |
|
300 | 300 | // Save the Quiz |
301 | 301 | $quiz_id = $this->lesson_quizzes( $post_id, 'any'); |
302 | 302 | |
@@ -311,11 +311,11 @@ discard block |
||
311 | 311 | |
312 | 312 | // Setup Query Arguments |
313 | 313 | $post_type_args = array( 'post_content' => $post_content, |
314 | - 'post_status' => $post_status, |
|
315 | - 'post_title' => $post_title, |
|
316 | - 'post_type' => 'quiz', |
|
317 | - 'post_parent' => $post_id, |
|
318 | - ); |
|
314 | + 'post_status' => $post_status, |
|
315 | + 'post_title' => $post_title, |
|
316 | + 'post_type' => 'quiz', |
|
317 | + 'post_parent' => $post_id, |
|
318 | + ); |
|
319 | 319 | |
320 | 320 | $settings = $this->get_quiz_settings(); |
321 | 321 | |
@@ -323,48 +323,48 @@ discard block |
||
323 | 323 | if ( 0 < $quiz_id ) { |
324 | 324 | // Update the Quiz |
325 | 325 | $post_type_args[ 'ID' ] = $quiz_id; |
326 | - wp_update_post($post_type_args); |
|
327 | - |
|
328 | - // Update the post meta data |
|
329 | - update_post_meta( $quiz_id, '_quiz_lesson', $post_id ); |
|
330 | - |
|
331 | - foreach( $settings as $field ) { |
|
332 | - if( 'random_question_order' != $field['id'] ) { |
|
333 | - $value = $this->get_submitted_setting_value( $field ); |
|
334 | - if( isset( $value ) ) { |
|
335 | - update_post_meta( $quiz_id, '_' . $field['id'], $value ); |
|
336 | - } |
|
337 | - } |
|
338 | - } |
|
339 | - |
|
340 | - // Set the post terms for quiz-type |
|
341 | - wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' ); |
|
326 | + wp_update_post($post_type_args); |
|
327 | + |
|
328 | + // Update the post meta data |
|
329 | + update_post_meta( $quiz_id, '_quiz_lesson', $post_id ); |
|
330 | + |
|
331 | + foreach( $settings as $field ) { |
|
332 | + if( 'random_question_order' != $field['id'] ) { |
|
333 | + $value = $this->get_submitted_setting_value( $field ); |
|
334 | + if( isset( $value ) ) { |
|
335 | + update_post_meta( $quiz_id, '_' . $field['id'], $value ); |
|
336 | + } |
|
337 | + } |
|
338 | + } |
|
339 | + |
|
340 | + // Set the post terms for quiz-type |
|
341 | + wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' ); |
|
342 | 342 | } else { |
343 | 343 | // Create the Quiz |
344 | - $quiz_id = wp_insert_post($post_type_args); |
|
345 | - |
|
346 | - // Add the post meta data WP will add it if it doesn't exist |
|
347 | - update_post_meta( $quiz_id, '_quiz_lesson', $post_id ); |
|
348 | - |
|
349 | - foreach( $settings as $field ) { |
|
350 | - if( 'random_question_order' != $field['id'] ) { |
|
351 | - |
|
352 | - //ignore values not posted to avoid |
|
353 | - // overwriting with empty or default values |
|
354 | - // when the values are posted from bulk edit or quick edit |
|
355 | - if( !isset( $_POST[ $field['id'] ] ) ){ |
|
356 | - continue; |
|
357 | - } |
|
358 | - |
|
359 | - $value = $this->get_submitted_setting_value( $field ); |
|
360 | - if( isset( $value ) ) { |
|
361 | - add_post_meta( $quiz_id, '_' . $field['id'], $value ); |
|
362 | - } |
|
363 | - } |
|
364 | - } |
|
365 | - |
|
366 | - // Set the post terms for quiz-type |
|
367 | - wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' ); |
|
344 | + $quiz_id = wp_insert_post($post_type_args); |
|
345 | + |
|
346 | + // Add the post meta data WP will add it if it doesn't exist |
|
347 | + update_post_meta( $quiz_id, '_quiz_lesson', $post_id ); |
|
348 | + |
|
349 | + foreach( $settings as $field ) { |
|
350 | + if( 'random_question_order' != $field['id'] ) { |
|
351 | + |
|
352 | + //ignore values not posted to avoid |
|
353 | + // overwriting with empty or default values |
|
354 | + // when the values are posted from bulk edit or quick edit |
|
355 | + if( !isset( $_POST[ $field['id'] ] ) ){ |
|
356 | + continue; |
|
357 | + } |
|
358 | + |
|
359 | + $value = $this->get_submitted_setting_value( $field ); |
|
360 | + if( isset( $value ) ) { |
|
361 | + add_post_meta( $quiz_id, '_' . $field['id'], $value ); |
|
362 | + } |
|
363 | + } |
|
364 | + } |
|
365 | + |
|
366 | + // Set the post terms for quiz-type |
|
367 | + wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' ); |
|
368 | 368 | } // End If Statement |
369 | 369 | |
370 | 370 | // Add default lesson order meta value |
@@ -386,7 +386,7 @@ discard block |
||
386 | 386 | } |
387 | 387 | |
388 | 388 | // Restore the previously disabled filter |
389 | - add_action( 'save_post', array( $this, 'quiz_update' ) ); |
|
389 | + add_action( 'save_post', array( $this, 'quiz_update' ) ); |
|
390 | 390 | |
391 | 391 | } // End post_updated() |
392 | 392 | |
@@ -426,22 +426,22 @@ discard block |
||
426 | 426 | // Get the meta key. |
427 | 427 | $meta_key = '_' . $post_key; |
428 | 428 | |
429 | - //ignore fields are not posted |
|
429 | + //ignore fields are not posted |
|
430 | 430 | |
431 | - if( !isset( $_POST[ $post_key ] ) ){ |
|
431 | + if( !isset( $_POST[ $post_key ] ) ){ |
|
432 | 432 | |
433 | - // except for lesson preview checkbox field |
|
434 | - if( 'lesson_preview' == $post_key ){ |
|
433 | + // except for lesson preview checkbox field |
|
434 | + if( 'lesson_preview' == $post_key ){ |
|
435 | 435 | |
436 | - $_POST[ $post_key ] = ''; |
|
436 | + $_POST[ $post_key ] = ''; |
|
437 | 437 | |
438 | - } else { |
|
438 | + } else { |
|
439 | 439 | |
440 | - return false; |
|
440 | + return false; |
|
441 | 441 | |
442 | - } |
|
442 | + } |
|
443 | 443 | |
444 | - } |
|
444 | + } |
|
445 | 445 | |
446 | 446 | // Get the posted data and sanitize it for use as an HTML class. |
447 | 447 | if ( 'lesson_video_embed' == $post_key) { |
@@ -450,10 +450,10 @@ discard block |
||
450 | 450 | $new_meta_value = ( isset( $_POST[$post_key] ) ? sanitize_html_class( $_POST[$post_key] ) : '' ); |
451 | 451 | } // End If Statement |
452 | 452 | |
453 | - // update field with the new value |
|
454 | - if( -1 != $new_meta_value ){ |
|
455 | - return update_post_meta( $post_id, $meta_key, $new_meta_value ); |
|
456 | - } |
|
453 | + // update field with the new value |
|
454 | + if( -1 != $new_meta_value ){ |
|
455 | + return update_post_meta( $post_id, $meta_key, $new_meta_value ); |
|
456 | + } |
|
457 | 457 | |
458 | 458 | } // End save_post_meta() |
459 | 459 | |
@@ -478,9 +478,9 @@ discard block |
||
478 | 478 | $post_args = array( 'post_type' => 'course', |
479 | 479 | 'posts_per_page' => -1, |
480 | 480 | 'orderby' => 'title', |
481 | - 'order' => 'ASC', |
|
482 | - 'post_status' => 'any', |
|
483 | - 'suppress_filters' => 0, |
|
481 | + 'order' => 'ASC', |
|
482 | + 'post_status' => 'any', |
|
483 | + 'suppress_filters' => 0, |
|
484 | 484 | ); |
485 | 485 | $posts_array = get_posts( $post_args ); |
486 | 486 | // Buid the HTML to Output |
@@ -488,20 +488,20 @@ discard block |
||
488 | 488 | // Nonce |
489 | 489 | $html .= wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false ); |
490 | 490 | |
491 | - // Select the course for the lesson |
|
492 | - $drop_down_args = array( |
|
493 | - 'name'=>'lesson_course', |
|
494 | - 'id' => 'lesson-course-options' |
|
495 | - ); |
|
491 | + // Select the course for the lesson |
|
492 | + $drop_down_args = array( |
|
493 | + 'name'=>'lesson_course', |
|
494 | + 'id' => 'lesson-course-options' |
|
495 | + ); |
|
496 | 496 | |
497 | - $courses = WooThemes_Sensei_Course::get_all_courses(); |
|
498 | - $courses_options = array(); |
|
499 | - foreach( $courses as $course ){ |
|
500 | - $courses_options[ $course->ID ] = get_the_title( $course ) ; |
|
501 | - } |
|
502 | - $html .= Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args ); |
|
497 | + $courses = WooThemes_Sensei_Course::get_all_courses(); |
|
498 | + $courses_options = array(); |
|
499 | + foreach( $courses as $course ){ |
|
500 | + $courses_options[ $course->ID ] = get_the_title( $course ) ; |
|
501 | + } |
|
502 | + $html .= Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args ); |
|
503 | 503 | |
504 | - // Course Actions Panel |
|
504 | + // Course Actions Panel |
|
505 | 505 | if ( current_user_can( 'publish_courses' )) { |
506 | 506 | $html .= '<div id="lesson-course-actions">'; |
507 | 507 | $html .= '<p>'; |
@@ -527,16 +527,16 @@ discard block |
||
527 | 527 | } // End For Loop |
528 | 528 | $html .= '</select>' . "\n"; |
529 | 529 | // Course Product |
530 | - if ( Sensei_WC::is_woocommerce_active() ) { |
|
530 | + if ( Sensei_WC::is_woocommerce_active() ) { |
|
531 | 531 | // Get the Products |
532 | 532 | $select_course_woocommerce_product = get_post_meta( $post_item->ID, '_course_woocommerce_product', true ); |
533 | 533 | |
534 | 534 | $product_args = array( 'post_type' => array( 'product', 'product_variation' ), |
535 | 535 | 'posts_per_page' => -1, |
536 | 536 | 'orderby' => 'title', |
537 | - 'order' => 'DESC', |
|
538 | - 'post_status' => array( 'publish', 'private', 'draft' ), |
|
539 | - 'tax_query' => array( |
|
537 | + 'order' => 'DESC', |
|
538 | + 'post_status' => array( 'publish', 'private', 'draft' ), |
|
539 | + 'tax_query' => array( |
|
540 | 540 | array( |
541 | 541 | 'taxonomy' => 'product_type', |
542 | 542 | 'field' => 'slug', |
@@ -544,7 +544,7 @@ discard block |
||
544 | 544 | 'operator' => 'NOT IN' |
545 | 545 | ) |
546 | 546 | ), |
547 | - 'suppress_filters' => 0 |
|
547 | + 'suppress_filters' => 0 |
|
548 | 548 | ); |
549 | 549 | $products_array = get_posts( $product_args ); |
550 | 550 | $html .= '<label>' . __( 'WooCommerce Product' , 'woothemes-sensei' ) . '</label> '; |
@@ -872,58 +872,58 @@ discard block |
||
872 | 872 | $html .= '<tr class="question-quick-edit ' . esc_attr( $edit_class ) . '">'; |
873 | 873 | $html .= '<td colspan="5">'; |
874 | 874 | $html .= '<span class="hidden question_original_counter">' . $question_counter . '</span>'; |
875 | - $html .= '<div class="question_required_fields">'; |
|
876 | - |
|
877 | - // Question title |
|
878 | - $html .= '<div>'; |
|
879 | - $html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> '; |
|
880 | - $html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />'; |
|
881 | - $html .= '</div>'; |
|
882 | - |
|
883 | - // Question description |
|
884 | - $html .= '<div>'; |
|
885 | - $html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> '; |
|
886 | - $html .= '</div>'; |
|
887 | - $html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>'; |
|
888 | - |
|
889 | - // Question grade |
|
890 | - $html .= '<div>'; |
|
891 | - $html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> '; |
|
892 | - $html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />'; |
|
893 | - $html .= '</div>'; |
|
894 | - |
|
895 | - // Random order |
|
896 | - if( $question_type == 'multiple-choice' ) { |
|
897 | - $html .= '<div>'; |
|
898 | - $html .= '<label for="' . $question_counter . '_random_order"><input type="checkbox" name="random_order" class="random_order" id="' . $question_counter . '_random_order" value="yes" ' . checked( $random_order, 'yes', false ) . ' /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>'; |
|
899 | - $html .= '</div>'; |
|
900 | - } |
|
901 | - |
|
902 | - // Question media |
|
903 | - $html .= '<div>'; |
|
904 | - $html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>'; |
|
905 | - $html .= '<button id="question_' . $question_counter . '_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . $question_media_add_button . '</button>'; |
|
906 | - $html .= '<button id="question_' . $question_counter . '_media_button_delete" class="delete_media_file_button button-secondary ' . $question_media_delete_class . '">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>'; |
|
907 | - $html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>'; |
|
908 | - $html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>'; |
|
909 | - $html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />'; |
|
910 | - $html .= '</div>'; |
|
911 | - |
|
912 | - $html .= '</div>'; |
|
913 | - |
|
914 | - $html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter ); |
|
915 | - |
|
916 | - $html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />'; |
|
875 | + $html .= '<div class="question_required_fields">'; |
|
876 | + |
|
877 | + // Question title |
|
878 | + $html .= '<div>'; |
|
879 | + $html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> '; |
|
880 | + $html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />'; |
|
881 | + $html .= '</div>'; |
|
882 | + |
|
883 | + // Question description |
|
884 | + $html .= '<div>'; |
|
885 | + $html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> '; |
|
886 | + $html .= '</div>'; |
|
887 | + $html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>'; |
|
888 | + |
|
889 | + // Question grade |
|
890 | + $html .= '<div>'; |
|
891 | + $html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> '; |
|
892 | + $html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />'; |
|
893 | + $html .= '</div>'; |
|
894 | + |
|
895 | + // Random order |
|
896 | + if( $question_type == 'multiple-choice' ) { |
|
897 | + $html .= '<div>'; |
|
898 | + $html .= '<label for="' . $question_counter . '_random_order"><input type="checkbox" name="random_order" class="random_order" id="' . $question_counter . '_random_order" value="yes" ' . checked( $random_order, 'yes', false ) . ' /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>'; |
|
899 | + $html .= '</div>'; |
|
900 | + } |
|
901 | + |
|
902 | + // Question media |
|
903 | + $html .= '<div>'; |
|
904 | + $html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>'; |
|
905 | + $html .= '<button id="question_' . $question_counter . '_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . $question_media_add_button . '</button>'; |
|
906 | + $html .= '<button id="question_' . $question_counter . '_media_button_delete" class="delete_media_file_button button-secondary ' . $question_media_delete_class . '">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>'; |
|
907 | + $html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>'; |
|
908 | + $html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>'; |
|
909 | + $html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />'; |
|
910 | + $html .= '</div>'; |
|
911 | + |
|
912 | + $html .= '</div>'; |
|
913 | + |
|
914 | + $html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter ); |
|
915 | + |
|
916 | + $html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />'; |
|
917 | 917 | $html .= '<input type="hidden" name="question_id" class="row_question_id" id="question_' . $question_counter . '_id" value="' . $question_id . '" />'; |
918 | 918 | |
919 | 919 | if( 'quiz' == $context ) { |
920 | - $html .= '<div class="update-question">'; |
|
921 | - $html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> '; |
|
922 | - $html .= '<a title="' . esc_attr( __( 'Update Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_table_save button button-highlighted">' . esc_html( __( 'Update', 'woothemes-sensei' ) ) . '</a>'; |
|
923 | - $html .= '</div>'; |
|
924 | - } |
|
920 | + $html .= '<div class="update-question">'; |
|
921 | + $html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> '; |
|
922 | + $html .= '<a title="' . esc_attr( __( 'Update Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_table_save button button-highlighted">' . esc_html( __( 'Update', 'woothemes-sensei' ) ) . '</a>'; |
|
923 | + $html .= '</div>'; |
|
924 | + } |
|
925 | 925 | |
926 | - $html .= '</td>'; |
|
926 | + $html .= '</td>'; |
|
927 | 927 | $html .= '</tr>'; |
928 | 928 | } |
929 | 929 | |
@@ -944,20 +944,20 @@ discard block |
||
944 | 944 | $question_cats = get_terms( 'question-category', array( 'hide_empty' => false ) ); |
945 | 945 | |
946 | 946 | if( 'quiz' == $context ) { |
947 | - $html .= '<h2 class="nav-tab-wrapper add-question-tabs">'; |
|
948 | - $html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question' , 'woothemes-sensei' ) . '</a>'; |
|
949 | - $html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions' , 'woothemes-sensei' ) . '</a>'; |
|
950 | - if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) && ! Sensei()->teacher->is_admin_teacher() ) { |
|
951 | - $html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions' , 'woothemes-sensei' ) . '</a>'; |
|
952 | - } |
|
953 | - $html .= '</h2>'; |
|
954 | - } |
|
947 | + $html .= '<h2 class="nav-tab-wrapper add-question-tabs">'; |
|
948 | + $html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question' , 'woothemes-sensei' ) . '</a>'; |
|
949 | + $html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions' , 'woothemes-sensei' ) . '</a>'; |
|
950 | + if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) && ! Sensei()->teacher->is_admin_teacher() ) { |
|
951 | + $html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions' , 'woothemes-sensei' ) . '</a>'; |
|
952 | + } |
|
953 | + $html .= '</h2>'; |
|
954 | + } |
|
955 | 955 | |
956 | - $html .= '<div class="tab-content" id="tab-new-content">'; |
|
956 | + $html .= '<div class="tab-content" id="tab-new-content">'; |
|
957 | 957 | |
958 | - if( 'quiz' == $context ) { |
|
959 | - $html .= '<p><em>' . sprintf( __( 'Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>'; |
|
960 | - } |
|
958 | + if( 'quiz' == $context ) { |
|
959 | + $html .= '<p><em>' . sprintf( __( 'Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>'; |
|
960 | + } |
|
961 | 961 | |
962 | 962 | $html .= '<div class="question">'; |
963 | 963 | $html .= '<div class="question_required_fields">'; |
@@ -999,18 +999,18 @@ discard block |
||
999 | 999 | |
1000 | 1000 | // Random order |
1001 | 1001 | $html .= '<p class="add_question_random_order">'; |
1002 | - $html .= '<label for="add_random_order"><input type="checkbox" name="random_order" class="random_order" id="add_random_order" value="yes" checked="checked" /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>'; |
|
1003 | - $html .= '</p>'; |
|
1002 | + $html .= '<label for="add_random_order"><input type="checkbox" name="random_order" class="random_order" id="add_random_order" value="yes" checked="checked" /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>'; |
|
1003 | + $html .= '</p>'; |
|
1004 | 1004 | |
1005 | - // Question media |
|
1005 | + // Question media |
|
1006 | 1006 | $html .= '<p>'; |
1007 | - $html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>'; |
|
1008 | - $html .= '<button id="question_add_new_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . __( 'Add file', 'woothemes-sensei' ) . '</button>'; |
|
1009 | - $html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>'; |
|
1010 | - $html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>'; |
|
1011 | - $html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>'; |
|
1012 | - $html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />'; |
|
1013 | - $html .= '</p>'; |
|
1007 | + $html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>'; |
|
1008 | + $html .= '<button id="question_add_new_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . __( 'Add file', 'woothemes-sensei' ) . '</button>'; |
|
1009 | + $html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>'; |
|
1010 | + $html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>'; |
|
1011 | + $html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>'; |
|
1012 | + $html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />'; |
|
1013 | + $html .= '</p>'; |
|
1014 | 1014 | |
1015 | 1015 | $html .= '</div>'; |
1016 | 1016 | $html .= '</div>'; |
@@ -1021,19 +1021,19 @@ discard block |
||
1021 | 1021 | |
1022 | 1022 | if( 'quiz' == $context ) { |
1023 | 1023 | $html .= '<div class="add-question">'; |
1024 | - $html .= '<a title="' . esc_attr( __( 'Add Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="add_question_save button button-primary button-highlighted">' . esc_html( __( 'Add Question', 'woothemes-sensei' ) ) . '</a>'; |
|
1025 | - $html .= '</div>'; |
|
1026 | - } |
|
1024 | + $html .= '<a title="' . esc_attr( __( 'Add Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="add_question_save button button-primary button-highlighted">' . esc_html( __( 'Add Question', 'woothemes-sensei' ) ) . '</a>'; |
|
1025 | + $html .= '</div>'; |
|
1026 | + } |
|
1027 | 1027 | |
1028 | - $html .= '</div>'; |
|
1028 | + $html .= '</div>'; |
|
1029 | 1029 | |
1030 | - if( 'quiz' == $context ) { |
|
1030 | + if( 'quiz' == $context ) { |
|
1031 | 1031 | |
1032 | - $html .= '<div class="tab-content hidden" id="tab-existing-content">'; |
|
1032 | + $html .= '<div class="tab-content hidden" id="tab-existing-content">'; |
|
1033 | 1033 | |
1034 | - $html .= '<p><em>' . sprintf( __( 'Add an existing question to this quiz from the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>'; |
|
1034 | + $html .= '<p><em>' . sprintf( __( 'Add an existing question to this quiz from the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>'; |
|
1035 | 1035 | |
1036 | - $html .= '<div id="existing-filters" class="alignleft actions"> |
|
1036 | + $html .= '<div id="existing-filters" class="alignleft actions"> |
|
1037 | 1037 | <select id="existing-status"> |
1038 | 1038 | <option value="all">' . __( 'All', 'woothemes-sensei' ) . '</option> |
1039 | 1039 | <option value="unused">' . __( 'Unused', 'woothemes-sensei' ) . '</option> |
@@ -1041,23 +1041,23 @@ discard block |
||
1041 | 1041 | </select> |
1042 | 1042 | <select id="existing-type"> |
1043 | 1043 | <option value="">' . __( 'All Types', 'woothemes-sensei' ) . '</option>'; |
1044 | - foreach ( $question_types as $type => $label ) { |
|
1044 | + foreach ( $question_types as $type => $label ) { |
|
1045 | 1045 | $html .= '<option value="' . esc_attr( $type ) . '">' . esc_html( $label ) . '</option>'; |
1046 | 1046 | } |
1047 | - $html .= '</select> |
|
1047 | + $html .= '</select> |
|
1048 | 1048 | <select id="existing-category"> |
1049 | 1049 | <option value="">' . __( 'All Categories', 'woothemes-sensei' ) . '</option>'; |
1050 | - foreach( $question_cats as $cat ) { |
|
1050 | + foreach( $question_cats as $cat ) { |
|
1051 | 1051 | $html .= '<option value="' . esc_attr( $cat->slug ) . '">' . esc_html( $cat->name ) . '</option>'; |
1052 | 1052 | } |
1053 | - $html .= '</select> |
|
1053 | + $html .= '</select> |
|
1054 | 1054 | <input type="text" id="existing-search" placeholder="' . __( 'Search', 'woothemes-sensei' ) . '" /> |
1055 | 1055 | <a class="button" id="existing-filter-button">' . __( 'Filter', 'woothemes-sensei' ) . '</a> |
1056 | 1056 | </div>'; |
1057 | 1057 | |
1058 | - $html .= '<table id="existing-table" class="widefat">'; |
|
1058 | + $html .= '<table id="existing-table" class="widefat">'; |
|
1059 | 1059 | |
1060 | - $html .= '<thead> |
|
1060 | + $html .= '<thead> |
|
1061 | 1061 | <tr> |
1062 | 1062 | <th scope="col" class="column-cb check-column"><input type="checkbox" /></th> |
1063 | 1063 | <th scope="col">' . __( 'Question', 'woothemes-sensei' ) . '</th> |
@@ -1085,28 +1085,28 @@ discard block |
||
1085 | 1085 | |
1086 | 1086 | $html .= '</tbody>'; |
1087 | 1087 | |
1088 | - $html .= '</table>'; |
|
1088 | + $html .= '</table>'; |
|
1089 | 1089 | |
1090 | - $next_class = ''; |
|
1091 | - if( $questions['count'] <= 10 ) { |
|
1092 | - $next_class = 'hidden'; |
|
1093 | - } |
|
1090 | + $next_class = ''; |
|
1091 | + if( $questions['count'] <= 10 ) { |
|
1092 | + $next_class = 'hidden'; |
|
1093 | + } |
|
1094 | 1094 | |
1095 | - $html .= '<div id="existing-pagination">'; |
|
1096 | - $html .= '<input type="hidden" id="existing-page" value="1" />'; |
|
1097 | - $html .= '<a class="prev no-paging">← ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' →</a>'; |
|
1098 | - $html .= '</div>'; |
|
1095 | + $html .= '<div id="existing-pagination">'; |
|
1096 | + $html .= '<input type="hidden" id="existing-page" value="1" />'; |
|
1097 | + $html .= '<a class="prev no-paging">← ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' →</a>'; |
|
1098 | + $html .= '</div>'; |
|
1099 | 1099 | |
1100 | - $html .= '<div class="existing-actions">'; |
|
1101 | - $html .= '<a title="' . esc_attr( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '" class="add_existing_save button button-primary button-highlighted">' . esc_html( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '</a></p>'; |
|
1102 | - $html .= '</div>'; |
|
1100 | + $html .= '<div class="existing-actions">'; |
|
1101 | + $html .= '<a title="' . esc_attr( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '" class="add_existing_save button button-primary button-highlighted">' . esc_html( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '</a></p>'; |
|
1102 | + $html .= '</div>'; |
|
1103 | 1103 | |
1104 | - $html .= '</div>'; |
|
1104 | + $html .= '</div>'; |
|
1105 | 1105 | |
1106 | - if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) { |
|
1107 | - $html .= '<div class="tab-content hidden" id="tab-multiple-content">'; |
|
1106 | + if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) { |
|
1107 | + $html .= '<div class="tab-content hidden" id="tab-multiple-content">'; |
|
1108 | 1108 | |
1109 | - $html .= '<p><em>' . sprintf( __( 'Add any number of questions from a specified category. Edit your question categories %1$shere%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit-tags.php?taxonomy=question-category&post_type=question' ) . '">', '</a>' ) . '</em></p>'; |
|
1109 | + $html .= '<p><em>' . sprintf( __( 'Add any number of questions from a specified category. Edit your question categories %1$shere%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit-tags.php?taxonomy=question-category&post_type=question' ) . '">', '</a>' ) . '</em></p>'; |
|
1110 | 1110 | |
1111 | 1111 | $html .= '<p><select id="add-multiple-question-category-options" name="multiple_category" class="chosen_select widefat question-category-select">' . "\n"; |
1112 | 1112 | $html .= '<option value="">' . __( 'Select a Question Category', 'woothemes-sensei' ) . '</option>' . "\n"; |
@@ -1119,7 +1119,7 @@ discard block |
||
1119 | 1119 | |
1120 | 1120 | $html .= '<a title="' . esc_attr( __( 'Add Question(s)', 'woothemes-sensei' ) ) . '" class="add_multiple_save button button-primary button-highlighted">' . esc_html( __( 'Add Question(s)', 'woothemes-sensei' ) ) . '</a></p>'; |
1121 | 1121 | |
1122 | - $html .= '</div>'; |
|
1122 | + $html .= '</div>'; |
|
1123 | 1123 | } |
1124 | 1124 | } |
1125 | 1125 | |
@@ -1192,14 +1192,14 @@ discard block |
||
1192 | 1192 | |
1193 | 1193 | $qry = new WP_Query( $args ); |
1194 | 1194 | |
1195 | - /** |
|
1196 | - * Filter existing questions query |
|
1197 | - * |
|
1198 | - * @since 1.8.0 |
|
1199 | - * |
|
1200 | - * @param WP_Query $wp_query |
|
1201 | - */ |
|
1202 | - $qry = apply_filters( 'sensei_existing_questions_query_results', $qry ); |
|
1195 | + /** |
|
1196 | + * Filter existing questions query |
|
1197 | + * |
|
1198 | + * @since 1.8.0 |
|
1199 | + * |
|
1200 | + * @param WP_Query $wp_query |
|
1201 | + */ |
|
1202 | + $qry = apply_filters( 'sensei_existing_questions_query_results', $qry ); |
|
1203 | 1203 | |
1204 | 1204 | $questions['questions'] = $qry->posts; |
1205 | 1205 | $questions['count'] = intval( $qry->found_posts ); |
@@ -1214,14 +1214,14 @@ discard block |
||
1214 | 1214 | |
1215 | 1215 | if( ! $question_id ) { |
1216 | 1216 | |
1217 | - return; |
|
1217 | + return; |
|
1218 | 1218 | |
1219 | - } |
|
1219 | + } |
|
1220 | 1220 | |
1221 | 1221 | $existing_class = ''; |
1222 | 1222 | if( $row % 2 ) { |
1223 | - $existing_class = 'alternate'; |
|
1224 | - } |
|
1223 | + $existing_class = 'alternate'; |
|
1224 | + } |
|
1225 | 1225 | |
1226 | 1226 | $question_type = Sensei()->question->get_question_type( $question_id ); |
1227 | 1227 | |
@@ -1355,67 +1355,67 @@ discard block |
||
1355 | 1355 | } |
1356 | 1356 | } |
1357 | 1357 | |
1358 | - // Calculate total wrong answers available (defaults to 4) |
|
1359 | - $total_wrong = 0; |
|
1360 | - if( $question_id ) { |
|
1361 | - $total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true ); |
|
1362 | - } |
|
1363 | - if( 0 == intval( $total_wrong ) ) { |
|
1364 | - $total_wrong = 1; |
|
1365 | - } |
|
1358 | + // Calculate total wrong answers available (defaults to 4) |
|
1359 | + $total_wrong = 0; |
|
1360 | + if( $question_id ) { |
|
1361 | + $total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true ); |
|
1362 | + } |
|
1363 | + if( 0 == intval( $total_wrong ) ) { |
|
1364 | + $total_wrong = 1; |
|
1365 | + } |
|
1366 | 1366 | |
1367 | - // Setup Wrong Answer HTML |
|
1368 | - foreach ( $wrong_answers as $i => $answer ){ |
|
1367 | + // Setup Wrong Answer HTML |
|
1368 | + foreach ( $wrong_answers as $i => $answer ){ |
|
1369 | 1369 | |
1370 | - $answer_id = $this->get_answer_id( $answer ); |
|
1371 | - $wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ; |
|
1372 | - $wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ; |
|
1373 | - $wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>'; |
|
1374 | - if( $question_id ) { |
|
1370 | + $answer_id = $this->get_answer_id( $answer ); |
|
1371 | + $wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ; |
|
1372 | + $wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ; |
|
1373 | + $wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>'; |
|
1374 | + if( $question_id ) { |
|
1375 | 1375 | |
1376 | - $answers[ $answer_id ] = $wrong_answer; |
|
1376 | + $answers[ $answer_id ] = $wrong_answer; |
|
1377 | 1377 | |
1378 | - } else { |
|
1378 | + } else { |
|
1379 | 1379 | |
1380 | - $answers[] = $wrong_answer; |
|
1380 | + $answers[] = $wrong_answer; |
|
1381 | 1381 | |
1382 | - } |
|
1382 | + } |
|
1383 | 1383 | |
1384 | - } // end for each |
|
1384 | + } // end for each |
|
1385 | 1385 | |
1386 | - $answers_sorted = $answers; |
|
1387 | - if( $question_id && count( $answer_order ) > 0 ) { |
|
1388 | - $answers_sorted = array(); |
|
1389 | - foreach( $answer_order as $answer_id ) { |
|
1390 | - if( isset( $answers[ $answer_id ] ) ) { |
|
1391 | - $answers_sorted[ $answer_id ] = $answers[ $answer_id ]; |
|
1392 | - unset( $answers[ $answer_id ] ); |
|
1393 | - } |
|
1394 | - } |
|
1386 | + $answers_sorted = $answers; |
|
1387 | + if( $question_id && count( $answer_order ) > 0 ) { |
|
1388 | + $answers_sorted = array(); |
|
1389 | + foreach( $answer_order as $answer_id ) { |
|
1390 | + if( isset( $answers[ $answer_id ] ) ) { |
|
1391 | + $answers_sorted[ $answer_id ] = $answers[ $answer_id ]; |
|
1392 | + unset( $answers[ $answer_id ] ); |
|
1393 | + } |
|
1394 | + } |
|
1395 | 1395 | |
1396 | - if( count( $answers ) > 0 ) { |
|
1397 | - foreach( $answers as $id => $answer ) { |
|
1398 | - $answers_sorted[ $id ] = $answer; |
|
1399 | - } |
|
1400 | - } |
|
1401 | - } |
|
1396 | + if( count( $answers ) > 0 ) { |
|
1397 | + foreach( $answers as $id => $answer ) { |
|
1398 | + $answers_sorted[ $id ] = $answer; |
|
1399 | + } |
|
1400 | + } |
|
1401 | + } |
|
1402 | 1402 | |
1403 | 1403 | foreach( $answers_sorted as $id => $answer ) { |
1404 | - $html .= $answer; |
|
1405 | - } |
|
1404 | + $html .= $answer; |
|
1405 | + } |
|
1406 | 1406 | |
1407 | - $html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />'; |
|
1408 | - $html .= '<span class="hidden right_answer_count">' . $total_right . '</span>'; |
|
1409 | - $html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>'; |
|
1407 | + $html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />'; |
|
1408 | + $html .= '<span class="hidden right_answer_count">' . $total_right . '</span>'; |
|
1409 | + $html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>'; |
|
1410 | 1410 | |
1411 | - $html .= '<div class="add_answer_options">'; |
|
1412 | - $html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>'; |
|
1413 | - $html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>'; |
|
1414 | - $html .= '</div>'; |
|
1411 | + $html .= '<div class="add_answer_options">'; |
|
1412 | + $html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>'; |
|
1413 | + $html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>'; |
|
1414 | + $html .= '</div>'; |
|
1415 | 1415 | |
1416 | - $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' ); |
|
1416 | + $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' ); |
|
1417 | 1417 | |
1418 | - $html .= '</div>'; |
|
1418 | + $html .= '</div>'; |
|
1419 | 1419 | break; |
1420 | 1420 | case 'boolean': |
1421 | 1421 | $html .= '<div class="question_boolean_fields ' . $question_class . '">'; |
@@ -1428,7 +1428,7 @@ discard block |
||
1428 | 1428 | $html .= '<label for="question_' . $question_id . '_boolean_true"><input id="question_' . $question_id . '_boolean_true" type="radio" name="' . $field_name . '" value="true" '. checked( $right_answer, 'true', false ) . ' /> ' . __( 'True', 'woothemes-sensei' ) . '</label>'; |
1429 | 1429 | $html .= '<label for="question_' . $question_id . '_boolean_false"><input id="question_' . $question_id . '_boolean_false" type="radio" name="' . $field_name . '" value="false" '. checked( $right_answer, 'false', false ) . ' /> ' . __( 'False', 'woothemes-sensei' ) . '</label>'; |
1430 | 1430 | |
1431 | - $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' ); |
|
1431 | + $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' ); |
|
1432 | 1432 | |
1433 | 1433 | $html .= '</div>'; |
1434 | 1434 | break; |
@@ -1503,17 +1503,17 @@ discard block |
||
1503 | 1503 | |
1504 | 1504 | public function quiz_panel_question_feedback( $question_counter = 0, $question_id = 0, $question_type = '' ) { |
1505 | 1505 | |
1506 | - // default field name |
|
1507 | - $field_name = 'answer_feedback'; |
|
1508 | - if( 'boolean' == $question_type ){ |
|
1506 | + // default field name |
|
1507 | + $field_name = 'answer_feedback'; |
|
1508 | + if( 'boolean' == $question_type ){ |
|
1509 | 1509 | |
1510 | - $field_name = 'answer_feedback_boolean'; |
|
1510 | + $field_name = 'answer_feedback_boolean'; |
|
1511 | 1511 | |
1512 | - }elseif( 'multiple-choice' == $question_type ){ |
|
1512 | + }elseif( 'multiple-choice' == $question_type ){ |
|
1513 | 1513 | |
1514 | - $field_name = 'answer_feedback_multiple_choice'; |
|
1514 | + $field_name = 'answer_feedback_multiple_choice'; |
|
1515 | 1515 | |
1516 | - }// end if |
|
1516 | + }// end if |
|
1517 | 1517 | |
1518 | 1518 | if( $question_counter ) { |
1519 | 1519 | $field_name = 'answer_' . $question_counter . '_feedback'; |
@@ -1718,15 +1718,15 @@ discard block |
||
1718 | 1718 | $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; |
1719 | 1719 | |
1720 | 1720 | // Load the lessons script |
1721 | - wp_enqueue_media(); |
|
1721 | + wp_enqueue_media(); |
|
1722 | 1722 | wp_enqueue_script( 'sensei-lesson-metadata', Sensei()->plugin_url . 'assets/js/lesson-metadata' . $suffix . '.js', array( 'jquery', 'sensei-core-select2' ,'jquery-ui-sortable' ), Sensei()->version, true ); |
1723 | 1723 | wp_enqueue_script( 'sensei-lesson-chosen', Sensei()->plugin_url . 'assets/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true ); |
1724 | 1724 | wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery' . $suffix . '.js', array( 'jquery', 'sensei-lesson-chosen' ), Sensei()->version, true ); |
1725 | 1725 | |
1726 | - // Load the bulk edit screen script |
|
1727 | - if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) { |
|
1728 | - wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true); |
|
1729 | - } |
|
1726 | + // Load the bulk edit screen script |
|
1727 | + if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) { |
|
1728 | + wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true); |
|
1729 | + } |
|
1730 | 1730 | |
1731 | 1731 | // Localise script |
1732 | 1732 | $translation_strings = array( 'right_colon' => __( 'Right:', 'woothemes-sensei' ), 'wrong_colon' => __( 'Wrong:', 'woothemes-sensei' ), 'add_file' => __( 'Add file', 'woothemes-sensei' ), 'change_file' => __( 'Change file', 'woothemes-sensei' ), 'confirm_remove' => __( 'Are you sure you want to remove this question?', 'woothemes-sensei' ), 'confirm_remove_multiple' => __( 'Are you sure you want to remove these questions?', 'woothemes-sensei' ), 'too_many_for_cat' => __( 'You have selected more questions than this category contains - please reduce the number of questions that you are adding.', 'woothemes-sensei' ) ); |
@@ -1827,7 +1827,7 @@ discard block |
||
1827 | 1827 | $nonce = esc_html( $_POST['lesson_add_course_nonce'] ); |
1828 | 1828 | } // End If Statement |
1829 | 1829 | if ( ! wp_verify_nonce( $nonce, 'lesson_add_course_nonce' ) |
1830 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
1830 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
1831 | 1831 | die(''); |
1832 | 1832 | } // End If Statement |
1833 | 1833 | // Parse POST data |
@@ -1856,7 +1856,7 @@ discard block |
||
1856 | 1856 | $nonce = esc_html( $_POST['lesson_update_question_nonce'] ); |
1857 | 1857 | } // End If Statement |
1858 | 1858 | if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_nonce' ) |
1859 | - || ! current_user_can( 'edit_questions' )) { |
|
1859 | + || ! current_user_can( 'edit_questions' )) { |
|
1860 | 1860 | |
1861 | 1861 | die(''); |
1862 | 1862 | |
@@ -1909,7 +1909,7 @@ discard block |
||
1909 | 1909 | } // End If Statement |
1910 | 1910 | |
1911 | 1911 | if( ! wp_verify_nonce( $nonce, 'lesson_add_multiple_questions_nonce' ) |
1912 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
1912 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
1913 | 1913 | die( $return ); |
1914 | 1914 | } // End If Statement |
1915 | 1915 | |
@@ -1965,7 +1965,7 @@ discard block |
||
1965 | 1965 | } // End If Statement |
1966 | 1966 | |
1967 | 1967 | if( ! wp_verify_nonce( $nonce, 'lesson_remove_multiple_questions_nonce' ) |
1968 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
1968 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
1969 | 1969 | die(''); |
1970 | 1970 | } // End If Statement |
1971 | 1971 | |
@@ -2012,7 +2012,7 @@ discard block |
||
2012 | 2012 | } // End If Statement |
2013 | 2013 | |
2014 | 2014 | if( ! wp_verify_nonce( $nonce, 'lesson_add_existing_questions_nonce' ) |
2015 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
2015 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
2016 | 2016 | die(''); |
2017 | 2017 | } // End If Statement |
2018 | 2018 | |
@@ -2037,12 +2037,12 @@ discard block |
||
2037 | 2037 | |
2038 | 2038 | $quizzes = get_post_meta( $question_id, '_quiz_id', false ); |
2039 | 2039 | if( ! in_array( $quiz_id, $quizzes ) ) { |
2040 | - add_post_meta( $question_id, '_quiz_id', $quiz_id, false ); |
|
2040 | + add_post_meta( $question_id, '_quiz_id', $quiz_id, false ); |
|
2041 | 2041 | $lesson_id = get_post_meta( $quiz_id, '_quiz_lesson', true ); |
2042 | 2042 | update_post_meta( $lesson_id, '_quiz_has_questions', '1' ); |
2043 | - } |
|
2043 | + } |
|
2044 | 2044 | |
2045 | - add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count ); |
|
2045 | + add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count ); |
|
2046 | 2046 | $question_type = Sensei()->question->get_question_type( $question_id ); |
2047 | 2047 | |
2048 | 2048 | $return .= $this->quiz_panel_question( $question_type, $question_count, $question_id ); |
@@ -2064,7 +2064,7 @@ discard block |
||
2064 | 2064 | } // End If Statement |
2065 | 2065 | |
2066 | 2066 | if ( ! wp_verify_nonce( $nonce, 'lesson_update_grade_type_nonce' ) |
2067 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
2067 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
2068 | 2068 | |
2069 | 2069 | die(''); |
2070 | 2070 | |
@@ -2084,8 +2084,8 @@ discard block |
||
2084 | 2084 | $nonce = esc_html( $_POST['lesson_update_question_order_nonce'] ); |
2085 | 2085 | } // End If Statement |
2086 | 2086 | |
2087 | - if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_nonce' ) |
|
2088 | - ||! current_user_can( 'edit_lessons' ) ) { |
|
2087 | + if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_nonce' ) |
|
2088 | + ||! current_user_can( 'edit_lessons' ) ) { |
|
2089 | 2089 | die(''); |
2090 | 2090 | } // End If Statement |
2091 | 2091 | |
@@ -2111,7 +2111,7 @@ discard block |
||
2111 | 2111 | $nonce = esc_html( $_POST['lesson_update_question_order_random_nonce'] ); |
2112 | 2112 | } // End If Statement |
2113 | 2113 | if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_random_nonce' ) |
2114 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
2114 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
2115 | 2115 | |
2116 | 2116 | die(''); |
2117 | 2117 | |
@@ -2161,34 +2161,34 @@ discard block |
||
2161 | 2161 | $post_content = $course_content; |
2162 | 2162 | // Course Query Arguments |
2163 | 2163 | $post_type_args = array( 'post_content' => $post_content, |
2164 | - 'post_status' => $post_status, |
|
2165 | - 'post_title' => $post_title, |
|
2166 | - 'post_type' => $post_type |
|
2167 | - ); |
|
2164 | + 'post_status' => $post_status, |
|
2165 | + 'post_title' => $post_title, |
|
2166 | + 'post_type' => $post_type |
|
2167 | + ); |
|
2168 | 2168 | // Only save if there is a valid title |
2169 | 2169 | if ( $post_title != '' ) { |
2170 | - // Check for prerequisite courses & product id |
|
2171 | - $course_prerequisite_id = absint( $data[ 'course_prerequisite' ] ); |
|
2172 | - $course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] ); |
|
2173 | - $course_category_id = absint( $data[ 'course_category' ] ); |
|
2174 | - if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; } |
|
2175 | - // Insert or Update the Lesson Quiz |
|
2176 | - if ( 0 < $course_id ) { |
|
2177 | - $post_type_args[ 'ID' ] = $course_id; |
|
2178 | - $course_id = wp_update_post($post_type_args); |
|
2179 | - update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id ); |
|
2180 | - update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id ); |
|
2181 | - if ( 0 < $course_category_id ) { |
|
2182 | - wp_set_object_terms( $course_id, $course_category_id, 'course-category' ); |
|
2183 | - } // End If Statement |
|
2184 | - } else { |
|
2185 | - $course_id = wp_insert_post($post_type_args); |
|
2186 | - add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id ); |
|
2187 | - add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id ); |
|
2188 | - if ( 0 < $course_category_id ) { |
|
2189 | - wp_set_object_terms( $course_id, $course_category_id, 'course-category' ); |
|
2190 | - } // End If Statement |
|
2191 | - } // End If Statement |
|
2170 | + // Check for prerequisite courses & product id |
|
2171 | + $course_prerequisite_id = absint( $data[ 'course_prerequisite' ] ); |
|
2172 | + $course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] ); |
|
2173 | + $course_category_id = absint( $data[ 'course_category' ] ); |
|
2174 | + if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; } |
|
2175 | + // Insert or Update the Lesson Quiz |
|
2176 | + if ( 0 < $course_id ) { |
|
2177 | + $post_type_args[ 'ID' ] = $course_id; |
|
2178 | + $course_id = wp_update_post($post_type_args); |
|
2179 | + update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id ); |
|
2180 | + update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id ); |
|
2181 | + if ( 0 < $course_category_id ) { |
|
2182 | + wp_set_object_terms( $course_id, $course_category_id, 'course-category' ); |
|
2183 | + } // End If Statement |
|
2184 | + } else { |
|
2185 | + $course_id = wp_insert_post($post_type_args); |
|
2186 | + add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id ); |
|
2187 | + add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id ); |
|
2188 | + if ( 0 < $course_category_id ) { |
|
2189 | + wp_set_object_terms( $course_id, $course_category_id, 'course-category' ); |
|
2190 | + } // End If Statement |
|
2191 | + } // End If Statement |
|
2192 | 2192 | } // End If Statement |
2193 | 2193 | // Check that the insert or update saved by testing the post id |
2194 | 2194 | if ( 0 < $course_id ) { |
@@ -2279,17 +2279,17 @@ discard block |
||
2279 | 2279 | $answer_feedback = ''; |
2280 | 2280 | if ( isset( $data[ 'answer_feedback_boolean' ] ) && !empty( $data[ 'answer_feedback_boolean' ] ) ) { |
2281 | 2281 | |
2282 | - $answer_feedback = $data[ 'answer_feedback_boolean' ]; |
|
2282 | + $answer_feedback = $data[ 'answer_feedback_boolean' ]; |
|
2283 | 2283 | |
2284 | 2284 | }elseif( isset( $data[ 'answer_feedback_multiple_choice' ] ) && !empty( $data[ 'answer_feedback_multiple_choice' ] ) ){ |
2285 | 2285 | |
2286 | - $answer_feedback = $data[ 'answer_feedback_multiple_choice' ]; |
|
2286 | + $answer_feedback = $data[ 'answer_feedback_multiple_choice' ]; |
|
2287 | 2287 | |
2288 | - }elseif( isset( $data[ 'answer_feedback' ] ) ){ |
|
2288 | + }elseif( isset( $data[ 'answer_feedback' ] ) ){ |
|
2289 | 2289 | |
2290 | - $answer_feedback = $data[ 'answer_feedback' ]; |
|
2290 | + $answer_feedback = $data[ 'answer_feedback' ]; |
|
2291 | 2291 | |
2292 | - } // End If Statement |
|
2292 | + } // End If Statement |
|
2293 | 2293 | |
2294 | 2294 | $post_title = $question_text; |
2295 | 2295 | $post_author = $data[ 'post_author' ]; |
@@ -2304,10 +2304,10 @@ discard block |
||
2304 | 2304 | } |
2305 | 2305 | // Question Query Arguments |
2306 | 2306 | $post_type_args = array( 'post_content' => $post_content, |
2307 | - 'post_status' => $post_status, |
|
2308 | - 'post_title' => $post_title, |
|
2309 | - 'post_type' => $post_type |
|
2310 | - ); |
|
2307 | + 'post_status' => $post_status, |
|
2308 | + 'post_title' => $post_title, |
|
2309 | + 'post_type' => $post_type |
|
2310 | + ); |
|
2311 | 2311 | |
2312 | 2312 | // Remove empty values and reindex the array |
2313 | 2313 | if ( is_array( $question_right_answers ) && 0 < count($question_right_answers) ) { |
@@ -2343,14 +2343,14 @@ discard block |
||
2343 | 2343 | if ( $post_title != '' ) { |
2344 | 2344 | |
2345 | 2345 | // Get Quiz ID for the question |
2346 | - $quiz_id = $data['quiz_id']; |
|
2346 | + $quiz_id = $data['quiz_id']; |
|
2347 | 2347 | |
2348 | - // Get question media |
|
2348 | + // Get question media |
|
2349 | 2349 | $question_media = $data['question_media']; |
2350 | 2350 | |
2351 | - // Get answer order |
|
2352 | - $answer_order = ''; |
|
2353 | - if( isset( $data['answer_order'] ) ) { |
|
2351 | + // Get answer order |
|
2352 | + $answer_order = ''; |
|
2353 | + if( isset( $data['answer_order'] ) ) { |
|
2354 | 2354 | $answer_order = $data['answer_order']; |
2355 | 2355 | } |
2356 | 2356 | |
@@ -2360,38 +2360,38 @@ discard block |
||
2360 | 2360 | $random_order = $data['random_order']; |
2361 | 2361 | } |
2362 | 2362 | |
2363 | - // Insert or Update the question |
|
2364 | - if ( 0 < $question_id ) { |
|
2365 | - |
|
2366 | - $post_type_args[ 'ID' ] = $question_id; |
|
2367 | - $question_id = wp_update_post( $post_type_args ); |
|
2368 | - |
|
2369 | - // Update poast meta |
|
2370 | - if( 'quiz' == $context ) { |
|
2371 | - $quizzes = get_post_meta( $question_id, '_quiz_id', false ); |
|
2372 | - if( ! in_array( $quiz_id, $quizzes ) ) { |
|
2373 | - add_post_meta( $question_id, '_quiz_id', $quiz_id, false ); |
|
2374 | - } |
|
2375 | - } |
|
2376 | - |
|
2377 | - update_post_meta( $question_id, '_question_grade', $question_grade ); |
|
2378 | - update_post_meta( $question_id, '_question_right_answer', $question_right_answer ); |
|
2379 | - update_post_meta( $question_id, '_right_answer_count', $right_answer_count ); |
|
2380 | - update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers ); |
|
2381 | - update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count ); |
|
2382 | - update_post_meta( $question_id, '_question_media', $question_media ); |
|
2383 | - update_post_meta( $question_id, '_answer_order', $answer_order ); |
|
2384 | - update_post_meta( $question_id, '_random_order', $random_order ); |
|
2385 | - |
|
2386 | - if( 'quiz' != $context ) { |
|
2387 | - wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false ); |
|
2388 | - } |
|
2363 | + // Insert or Update the question |
|
2364 | + if ( 0 < $question_id ) { |
|
2365 | + |
|
2366 | + $post_type_args[ 'ID' ] = $question_id; |
|
2367 | + $question_id = wp_update_post( $post_type_args ); |
|
2368 | + |
|
2369 | + // Update poast meta |
|
2370 | + if( 'quiz' == $context ) { |
|
2371 | + $quizzes = get_post_meta( $question_id, '_quiz_id', false ); |
|
2372 | + if( ! in_array( $quiz_id, $quizzes ) ) { |
|
2373 | + add_post_meta( $question_id, '_quiz_id', $quiz_id, false ); |
|
2374 | + } |
|
2375 | + } |
|
2376 | + |
|
2377 | + update_post_meta( $question_id, '_question_grade', $question_grade ); |
|
2378 | + update_post_meta( $question_id, '_question_right_answer', $question_right_answer ); |
|
2379 | + update_post_meta( $question_id, '_right_answer_count', $right_answer_count ); |
|
2380 | + update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers ); |
|
2381 | + update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count ); |
|
2382 | + update_post_meta( $question_id, '_question_media', $question_media ); |
|
2383 | + update_post_meta( $question_id, '_answer_order', $answer_order ); |
|
2384 | + update_post_meta( $question_id, '_random_order', $random_order ); |
|
2385 | + |
|
2386 | + if( 'quiz' != $context ) { |
|
2387 | + wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false ); |
|
2388 | + } |
|
2389 | 2389 | // Don't store empty value, no point |
2390 | 2390 | if ( !empty($answer_feedback) ) { |
2391 | 2391 | update_post_meta( $question_id, '_answer_feedback', $answer_feedback ); |
2392 | 2392 | } |
2393 | 2393 | |
2394 | - } else { |
|
2394 | + } else { |
|
2395 | 2395 | $question_id = wp_insert_post( $post_type_args ); |
2396 | 2396 | $question_count = intval( $data['question_count'] ); |
2397 | 2397 | ++$question_count; |
@@ -2404,29 +2404,29 @@ discard block |
||
2404 | 2404 | } |
2405 | 2405 | |
2406 | 2406 | if( isset( $question_grade ) ) { |
2407 | - add_post_meta( $question_id, '_question_grade', $question_grade ); |
|
2408 | - } |
|
2409 | - add_post_meta( $question_id, '_question_right_answer', $question_right_answer ); |
|
2410 | - add_post_meta( $question_id, '_right_answer_count', $right_answer_count ); |
|
2411 | - add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers ); |
|
2412 | - add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count ); |
|
2413 | - add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count ); |
|
2414 | - add_post_meta( $question_id, '_question_media', $question_media ); |
|
2415 | - add_post_meta( $question_id, '_answer_order', $answer_order ); |
|
2416 | - add_post_meta( $question_id, '_random_order', $random_order ); |
|
2407 | + add_post_meta( $question_id, '_question_grade', $question_grade ); |
|
2408 | + } |
|
2409 | + add_post_meta( $question_id, '_question_right_answer', $question_right_answer ); |
|
2410 | + add_post_meta( $question_id, '_right_answer_count', $right_answer_count ); |
|
2411 | + add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers ); |
|
2412 | + add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count ); |
|
2413 | + add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count ); |
|
2414 | + add_post_meta( $question_id, '_question_media', $question_media ); |
|
2415 | + add_post_meta( $question_id, '_answer_order', $answer_order ); |
|
2416 | + add_post_meta( $question_id, '_random_order', $random_order ); |
|
2417 | 2417 | // Don't store empty value, no point |
2418 | 2418 | if ( !empty($answer_feedback) ) { |
2419 | 2419 | add_post_meta( $question_id, '_answer_feedback', $answer_feedback ); |
2420 | 2420 | } |
2421 | 2421 | |
2422 | - // Set the post terms for question-type |
|
2423 | - wp_set_post_terms( $question_id, array( $question_type ), 'question-type' ); |
|
2422 | + // Set the post terms for question-type |
|
2423 | + wp_set_post_terms( $question_id, array( $question_type ), 'question-type' ); |
|
2424 | 2424 | |
2425 | - if( $question_category ) { |
|
2426 | - wp_set_post_terms( $question_id, array( $question_category ), 'question-category' ); |
|
2427 | - } |
|
2425 | + if( $question_category ) { |
|
2426 | + wp_set_post_terms( $question_id, array( $question_category ), 'question-category' ); |
|
2427 | + } |
|
2428 | 2428 | |
2429 | - } // End If Statement |
|
2429 | + } // End If Statement |
|
2430 | 2430 | } // End If Statement |
2431 | 2431 | // Check that the insert or update saved by testing the post id |
2432 | 2432 | if ( 0 < $question_id ) { |
@@ -2475,7 +2475,7 @@ discard block |
||
2475 | 2475 | public function lesson_complexities() { |
2476 | 2476 | |
2477 | 2477 | // V2 - make filter for this array |
2478 | - $lesson_complexities = array( 'easy' => __( 'Easy', 'woothemes-sensei' ), |
|
2478 | + $lesson_complexities = array( 'easy' => __( 'Easy', 'woothemes-sensei' ), |
|
2479 | 2479 | 'std' => __( 'Standard', 'woothemes-sensei' ), |
2480 | 2480 | 'hard' => __( 'Hard', 'woothemes-sensei' ) |
2481 | 2481 | ); |
@@ -2542,14 +2542,14 @@ discard block |
||
2542 | 2542 | $post_args = array( 'post_type' => 'quiz', |
2543 | 2543 | 'posts_per_page' => 1, |
2544 | 2544 | 'orderby' => 'title', |
2545 | - 'order' => 'DESC', |
|
2546 | - 'post_parent' => $lesson_id, |
|
2547 | - 'post_status' => $post_status, |
|
2545 | + 'order' => 'DESC', |
|
2546 | + 'post_parent' => $lesson_id, |
|
2547 | + 'post_status' => $post_status, |
|
2548 | 2548 | 'suppress_filters' => 0, |
2549 | 2549 | 'fields' => $fields |
2550 | 2550 | ); |
2551 | 2551 | $posts_array = get_posts( $post_args ); |
2552 | - $quiz_id = array_shift($posts_array); |
|
2552 | + $quiz_id = array_shift($posts_array); |
|
2553 | 2553 | |
2554 | 2554 | return $quiz_id; |
2555 | 2555 | } // End lesson_quizzes() |
@@ -2557,34 +2557,34 @@ discard block |
||
2557 | 2557 | |
2558 | 2558 | /** |
2559 | 2559 | * Fetches all the questions for a quiz depending on certain conditions. |
2560 | - * |
|
2561 | - * Determine which questions should be shown depending on: |
|
2562 | - * - admin/teacher selected questions to be shown |
|
2563 | - * - questions shown to a user previously (saved as asked questions) |
|
2564 | - * - limit number of questions lesson setting |
|
2565 | 2560 | * |
2566 | - * @since 1.0 |
|
2561 | + * Determine which questions should be shown depending on: |
|
2562 | + * - admin/teacher selected questions to be shown |
|
2563 | + * - questions shown to a user previously (saved as asked questions) |
|
2564 | + * - limit number of questions lesson setting |
|
2565 | + * |
|
2566 | + * @since 1.0 |
|
2567 | 2567 | * @param int $quiz_id (default: 0) |
2568 | 2568 | * @param string $post_status (default: 'publish') |
2569 | 2569 | * @param string $orderby (default: 'meta_value_num title') |
2570 | 2570 | * @param string $order (default: 'ASC') |
2571 | - * |
|
2571 | + * |
|
2572 | 2572 | * @return array $questions { $question type WP_Post } |
2573 | 2573 | */ |
2574 | 2574 | public function lesson_quiz_questions( $quiz_id = 0, $post_status = 'any', $orderby = 'meta_value_num title', $order = 'ASC' ) { |
2575 | 2575 | |
2576 | 2576 | $quiz_id = (string) $quiz_id; |
2577 | - $quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id ); |
|
2577 | + $quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id ); |
|
2578 | 2578 | |
2579 | - // setup the user id |
|
2580 | - if( is_admin() ) { |
|
2581 | - $user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ; |
|
2582 | - } else { |
|
2583 | - $user_id = get_current_user_id(); |
|
2584 | - } |
|
2579 | + // setup the user id |
|
2580 | + if( is_admin() ) { |
|
2581 | + $user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ; |
|
2582 | + } else { |
|
2583 | + $user_id = get_current_user_id(); |
|
2584 | + } |
|
2585 | 2585 | |
2586 | - // get the users current status on the lesson |
|
2587 | - $user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id ); |
|
2586 | + // get the users current status on the lesson |
|
2587 | + $user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id ); |
|
2588 | 2588 | |
2589 | 2589 | // Set the default question order if it has not already been set for this quiz |
2590 | 2590 | $this->set_default_question_order( $quiz_id ); |
@@ -2614,14 +2614,14 @@ discard block |
||
2614 | 2614 | 'suppress_filters' => 0 |
2615 | 2615 | ); |
2616 | 2616 | |
2617 | - //query the questions |
|
2617 | + //query the questions |
|
2618 | 2618 | $questions_query = new WP_Query( $question_query_args ); |
2619 | 2619 | |
2620 | - // Set return array to initially include all items |
|
2621 | - $questions = $questions_query->posts; |
|
2620 | + // Set return array to initially include all items |
|
2621 | + $questions = $questions_query->posts; |
|
2622 | 2622 | |
2623 | - // set the questions array that will be manipulated within this function |
|
2624 | - $questions_array = $questions_query->posts; |
|
2623 | + // set the questions array that will be manipulated within this function |
|
2624 | + $questions_array = $questions_query->posts; |
|
2625 | 2625 | |
2626 | 2626 | // If viewing quiz on frontend or in grading then only single questions must be shown |
2627 | 2627 | $selected_questions = false; |
@@ -2734,36 +2734,36 @@ discard block |
||
2734 | 2734 | } |
2735 | 2735 | } |
2736 | 2736 | |
2737 | - // Save the questions that will be asked for the current user |
|
2738 | - // this happens only once per user/quiz, unless the user resets the quiz |
|
2739 | - if( ! is_admin() ){ |
|
2737 | + // Save the questions that will be asked for the current user |
|
2738 | + // this happens only once per user/quiz, unless the user resets the quiz |
|
2739 | + if( ! is_admin() ){ |
|
2740 | 2740 | |
2741 | - if( $user_lesson_status ) { |
|
2741 | + if( $user_lesson_status ) { |
|
2742 | 2742 | |
2743 | - $questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true); |
|
2744 | - if ( empty($questions_asked) && $user_lesson_status) { |
|
2743 | + $questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true); |
|
2744 | + if ( empty($questions_asked) && $user_lesson_status) { |
|
2745 | 2745 | |
2746 | - $questions_asked = array(); |
|
2747 | - foreach ($questions as $question) { |
|
2746 | + $questions_asked = array(); |
|
2747 | + foreach ($questions as $question) { |
|
2748 | 2748 | |
2749 | - $questions_asked[] = $question->ID; |
|
2749 | + $questions_asked[] = $question->ID; |
|
2750 | 2750 | |
2751 | - } |
|
2751 | + } |
|
2752 | 2752 | |
2753 | - // save the questions asked id |
|
2754 | - $questions_asked_csv = implode(',', $questions_asked); |
|
2755 | - update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_csv); |
|
2753 | + // save the questions asked id |
|
2754 | + $questions_asked_csv = implode(',', $questions_asked); |
|
2755 | + update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_csv); |
|
2756 | 2756 | |
2757 | - } |
|
2758 | - } |
|
2759 | - } |
|
2757 | + } |
|
2758 | + } |
|
2759 | + } |
|
2760 | 2760 | |
2761 | - /** |
|
2762 | - * Filter the questions returned by Sensei_Lesson::lessons_quiz_questions |
|
2763 | - * |
|
2764 | - * @hooked Sensei_Teacher::allow_teacher_access_to_questions |
|
2765 | - * @since 1.8.0 |
|
2766 | - */ |
|
2761 | + /** |
|
2762 | + * Filter the questions returned by Sensei_Lesson::lessons_quiz_questions |
|
2763 | + * |
|
2764 | + * @hooked Sensei_Teacher::allow_teacher_access_to_questions |
|
2765 | + * @since 1.8.0 |
|
2766 | + */ |
|
2767 | 2767 | return apply_filters( 'sensei_lesson_quiz_questions', $questions, $quiz_id ); |
2768 | 2768 | |
2769 | 2769 | } // End lesson_quiz_questions() |
@@ -2867,7 +2867,7 @@ discard block |
||
2867 | 2867 | // Display Image Placeholder if none |
2868 | 2868 | if ( Sensei()->settings->settings[ 'placeholder_images_enable' ] ) { |
2869 | 2869 | |
2870 | - $img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' ); |
|
2870 | + $img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' ); |
|
2871 | 2871 | |
2872 | 2872 | } // End If Statement |
2873 | 2873 | |
@@ -2879,418 +2879,418 @@ discard block |
||
2879 | 2879 | |
2880 | 2880 | } // End lesson_image() |
2881 | 2881 | |
2882 | - /** |
|
2883 | - * Ooutpu the lesson image |
|
2884 | - * |
|
2885 | - * @since 1.9.0 |
|
2886 | - * @param integer $lesson_id |
|
2887 | - */ |
|
2888 | - public static function the_lesson_image( $lesson_id = 0 ){ |
|
2882 | + /** |
|
2883 | + * Ooutpu the lesson image |
|
2884 | + * |
|
2885 | + * @since 1.9.0 |
|
2886 | + * @param integer $lesson_id |
|
2887 | + */ |
|
2888 | + public static function the_lesson_image( $lesson_id = 0 ){ |
|
2889 | 2889 | |
2890 | - echo Sensei()->lesson->lesson_image( $lesson_id ); |
|
2890 | + echo Sensei()->lesson->lesson_image( $lesson_id ); |
|
2891 | 2891 | |
2892 | - } |
|
2892 | + } |
|
2893 | 2893 | |
2894 | 2894 | /** |
2895 | 2895 | * Returns the the lesson excerpt. |
2896 | 2896 | * |
2897 | 2897 | * @param WP_Post $lesson |
2898 | - * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop() |
|
2898 | + * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop() |
|
2899 | 2899 | * @return string |
2900 | 2900 | */ |
2901 | 2901 | public static function lesson_excerpt( $lesson = null, $add_p_tags = true ) { |
2902 | 2902 | $html = ''; |
2903 | 2903 | if ( is_a( $lesson, 'WP_Post' ) && 'lesson' == $lesson->post_type ) { |
2904 | 2904 | |
2905 | - $excerpt = $lesson->post_excerpt; |
|
2905 | + $excerpt = $lesson->post_excerpt; |
|
2906 | 2906 | |
2907 | - // if $add_p_tags true wrap with <p> else return the excerpt as is |
|
2908 | - $html = $add_p_tags ? wpautop( $excerpt ) : $excerpt; |
|
2907 | + // if $add_p_tags true wrap with <p> else return the excerpt as is |
|
2908 | + $html = $add_p_tags ? wpautop( $excerpt ) : $excerpt; |
|
2909 | 2909 | |
2910 | 2910 | } |
2911 | 2911 | return apply_filters( 'sensei_lesson_excerpt', $html ); |
2912 | 2912 | |
2913 | 2913 | } // End lesson_excerpt() |
2914 | 2914 | |
2915 | - /** |
|
2916 | - * Returns the course for a given lesson |
|
2917 | - * |
|
2918 | - * @since 1.7.4 |
|
2919 | - * @access public |
|
2920 | - * |
|
2921 | - * @param int $lesson_id |
|
2922 | - * @return int|bool $course_id or bool when nothing is found. |
|
2923 | - */ |
|
2924 | - public function get_course_id( $lesson_id ){ |
|
2925 | - |
|
2926 | - if( ! isset( $lesson_id ) || empty( $lesson_id ) |
|
2927 | - || 'lesson' != get_post_type( $lesson_id ) ){ |
|
2928 | - return false; |
|
2929 | - } |
|
2930 | - |
|
2931 | - $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true); |
|
2932 | - |
|
2933 | - // make sure the course id is valid |
|
2934 | - if( empty( $lesson_course_id ) |
|
2935 | - || is_array( $lesson_course_id ) |
|
2936 | - || intval( $lesson_course_id ) < 1 |
|
2937 | - || 'course' != get_post_type( $lesson_course_id ) ){ |
|
2938 | - |
|
2939 | - return false; |
|
2940 | - |
|
2941 | - } |
|
2942 | - |
|
2943 | - return $lesson_course_id; |
|
2944 | - |
|
2945 | - }// en get_course_id |
|
2946 | - |
|
2947 | - /** |
|
2948 | - * Add the admin all lessons screen edit options. |
|
2949 | - * |
|
2950 | - * The fields in this function work for both quick and bulk edit. The ID attributes is used |
|
2951 | - * by bulk edit javascript in the front end to retrieve the new values set byt the user. Then |
|
2952 | - * name attribute is will be used by the quick edit and submitted via standard POST. This |
|
2953 | - * will use this classes save_post_meta function to save the new field data. |
|
2954 | - * |
|
2955 | - * @hooked quick_edit_custom_box |
|
2956 | - * @hooked bulk_edit_custom_box |
|
2957 | - * |
|
2958 | - * @since 1.8.0 |
|
2959 | - * |
|
2960 | - * @param string $column_name |
|
2961 | - * @param string $post_type |
|
2962 | - * @return void |
|
2963 | - */ |
|
2964 | - public function all_lessons_edit_fields( $column_name, $post_type ) { |
|
2965 | - |
|
2966 | - // only show these options ont he lesson post type edit screen |
|
2967 | - if( 'lesson' != $post_type || 'lesson-course' != $column_name |
|
2968 | - || ! current_user_can( 'edit_lessons' ) ) { |
|
2969 | - return; |
|
2970 | - } |
|
2971 | - |
|
2972 | - ?> |
|
2915 | + /** |
|
2916 | + * Returns the course for a given lesson |
|
2917 | + * |
|
2918 | + * @since 1.7.4 |
|
2919 | + * @access public |
|
2920 | + * |
|
2921 | + * @param int $lesson_id |
|
2922 | + * @return int|bool $course_id or bool when nothing is found. |
|
2923 | + */ |
|
2924 | + public function get_course_id( $lesson_id ){ |
|
2925 | + |
|
2926 | + if( ! isset( $lesson_id ) || empty( $lesson_id ) |
|
2927 | + || 'lesson' != get_post_type( $lesson_id ) ){ |
|
2928 | + return false; |
|
2929 | + } |
|
2930 | + |
|
2931 | + $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true); |
|
2932 | + |
|
2933 | + // make sure the course id is valid |
|
2934 | + if( empty( $lesson_course_id ) |
|
2935 | + || is_array( $lesson_course_id ) |
|
2936 | + || intval( $lesson_course_id ) < 1 |
|
2937 | + || 'course' != get_post_type( $lesson_course_id ) ){ |
|
2938 | + |
|
2939 | + return false; |
|
2940 | + |
|
2941 | + } |
|
2942 | + |
|
2943 | + return $lesson_course_id; |
|
2944 | + |
|
2945 | + }// en get_course_id |
|
2946 | + |
|
2947 | + /** |
|
2948 | + * Add the admin all lessons screen edit options. |
|
2949 | + * |
|
2950 | + * The fields in this function work for both quick and bulk edit. The ID attributes is used |
|
2951 | + * by bulk edit javascript in the front end to retrieve the new values set byt the user. Then |
|
2952 | + * name attribute is will be used by the quick edit and submitted via standard POST. This |
|
2953 | + * will use this classes save_post_meta function to save the new field data. |
|
2954 | + * |
|
2955 | + * @hooked quick_edit_custom_box |
|
2956 | + * @hooked bulk_edit_custom_box |
|
2957 | + * |
|
2958 | + * @since 1.8.0 |
|
2959 | + * |
|
2960 | + * @param string $column_name |
|
2961 | + * @param string $post_type |
|
2962 | + * @return void |
|
2963 | + */ |
|
2964 | + public function all_lessons_edit_fields( $column_name, $post_type ) { |
|
2965 | + |
|
2966 | + // only show these options ont he lesson post type edit screen |
|
2967 | + if( 'lesson' != $post_type || 'lesson-course' != $column_name |
|
2968 | + || ! current_user_can( 'edit_lessons' ) ) { |
|
2969 | + return; |
|
2970 | + } |
|
2971 | + |
|
2972 | + ?> |
|
2973 | 2973 | <fieldset class="sensei-edit-field-set inline-edit-lesson"> |
2974 | 2974 | <div class="sensei-inline-edit-col column-<?php echo $column_name ?>"> |
2975 | 2975 | <?php |
2976 | - echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>'; |
|
2977 | - // create a nonce field to be used as a security measure when saving the data |
|
2978 | - wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' ); |
|
2979 | - wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce' ); |
|
2980 | - |
|
2981 | - // unchanged option - we need this in because |
|
2982 | - // the default option in bulk edit should not be empty. If it is |
|
2983 | - // the user will erase data they didn't want to touch. |
|
2984 | - $no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --'; |
|
2985 | - |
|
2986 | - // |
|
2987 | - //course selection |
|
2988 | - // |
|
2989 | - $courses = WooThemes_Sensei_Course::get_all_courses(); |
|
2990 | - $course_options = array(); |
|
2991 | - if ( count( $courses ) > 0 ) { |
|
2992 | - foreach ($courses as $course ){ |
|
2993 | - $course_options[ $course->ID ] = get_the_title( $course->ID ); |
|
2994 | - } |
|
2995 | - } |
|
2996 | - //pre-append the no change option |
|
2997 | - $course_options['-1']= $no_change_text; |
|
2998 | - $course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' ); |
|
2999 | - $course_field = Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes ); |
|
3000 | - echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'), $course_field ); |
|
3001 | - |
|
3002 | - // |
|
3003 | - // lesson complexity selection |
|
3004 | - // |
|
3005 | - $lesson_complexities = $this->lesson_complexities(); |
|
3006 | - //pre-append the no change option |
|
3007 | - $lesson_complexities['-1']= $no_change_text; |
|
3008 | - $complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' '); |
|
3009 | - $complexity_filed = Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes ); |
|
3010 | - echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'), $complexity_filed ); |
|
3011 | - |
|
3012 | - ?> |
|
2976 | + echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>'; |
|
2977 | + // create a nonce field to be used as a security measure when saving the data |
|
2978 | + wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' ); |
|
2979 | + wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce' ); |
|
2980 | + |
|
2981 | + // unchanged option - we need this in because |
|
2982 | + // the default option in bulk edit should not be empty. If it is |
|
2983 | + // the user will erase data they didn't want to touch. |
|
2984 | + $no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --'; |
|
2985 | + |
|
2986 | + // |
|
2987 | + //course selection |
|
2988 | + // |
|
2989 | + $courses = WooThemes_Sensei_Course::get_all_courses(); |
|
2990 | + $course_options = array(); |
|
2991 | + if ( count( $courses ) > 0 ) { |
|
2992 | + foreach ($courses as $course ){ |
|
2993 | + $course_options[ $course->ID ] = get_the_title( $course->ID ); |
|
2994 | + } |
|
2995 | + } |
|
2996 | + //pre-append the no change option |
|
2997 | + $course_options['-1']= $no_change_text; |
|
2998 | + $course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' ); |
|
2999 | + $course_field = Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes ); |
|
3000 | + echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'), $course_field ); |
|
3001 | + |
|
3002 | + // |
|
3003 | + // lesson complexity selection |
|
3004 | + // |
|
3005 | + $lesson_complexities = $this->lesson_complexities(); |
|
3006 | + //pre-append the no change option |
|
3007 | + $lesson_complexities['-1']= $no_change_text; |
|
3008 | + $complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' '); |
|
3009 | + $complexity_filed = Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes ); |
|
3010 | + echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'), $complexity_filed ); |
|
3011 | + |
|
3012 | + ?> |
|
3013 | 3013 | |
3014 | 3014 | <h4><?php _e('Quiz Settings', 'woothemes-sensei'); ?> </h4> |
3015 | 3015 | |
3016 | 3016 | <?php |
3017 | 3017 | |
3018 | - // |
|
3019 | - // Lesson require pass to complete |
|
3020 | - // |
|
3021 | - $pass_required_options = array( |
|
3022 | - '-1' => $no_change_text, |
|
3023 | - '0' => __('No','woothemes'), |
|
3024 | - '1' => __('Yes','woothemes'), |
|
3025 | - ); |
|
3026 | - |
|
3027 | - $pass_required_select_attributes = array( 'name'=> 'pass_required', |
|
3028 | - 'id'=> 'sensei-edit-lesson-pass-required', |
|
3029 | - 'class'=>' ' ); |
|
3030 | - $require_pass_field = Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false ); |
|
3031 | - echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'), $require_pass_field ); |
|
3032 | - |
|
3033 | - // |
|
3034 | - // Quiz pass percentage |
|
3035 | - // |
|
3036 | - $quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />'; |
|
3037 | - echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field ); |
|
3038 | - |
|
3039 | - // |
|
3040 | - // Enable quiz reset button |
|
3041 | - // |
|
3042 | - $quiz_reset_select__options = array( |
|
3043 | - '-1' => $no_change_text, |
|
3044 | - '0' => __('No','woothemes'), |
|
3045 | - '1' => __('Yes','woothemes'), |
|
3046 | - ); |
|
3047 | - $quiz_reset_name_id = 'sensei-edit-enable-quiz-reset'; |
|
3048 | - $quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' ); |
|
3049 | - $quiz_reset_field = Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false ); |
|
3050 | - echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field ); |
|
3051 | - |
|
3052 | - ?> |
|
3018 | + // |
|
3019 | + // Lesson require pass to complete |
|
3020 | + // |
|
3021 | + $pass_required_options = array( |
|
3022 | + '-1' => $no_change_text, |
|
3023 | + '0' => __('No','woothemes'), |
|
3024 | + '1' => __('Yes','woothemes'), |
|
3025 | + ); |
|
3026 | + |
|
3027 | + $pass_required_select_attributes = array( 'name'=> 'pass_required', |
|
3028 | + 'id'=> 'sensei-edit-lesson-pass-required', |
|
3029 | + 'class'=>' ' ); |
|
3030 | + $require_pass_field = Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false ); |
|
3031 | + echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'), $require_pass_field ); |
|
3032 | + |
|
3033 | + // |
|
3034 | + // Quiz pass percentage |
|
3035 | + // |
|
3036 | + $quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />'; |
|
3037 | + echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field ); |
|
3038 | + |
|
3039 | + // |
|
3040 | + // Enable quiz reset button |
|
3041 | + // |
|
3042 | + $quiz_reset_select__options = array( |
|
3043 | + '-1' => $no_change_text, |
|
3044 | + '0' => __('No','woothemes'), |
|
3045 | + '1' => __('Yes','woothemes'), |
|
3046 | + ); |
|
3047 | + $quiz_reset_name_id = 'sensei-edit-enable-quiz-reset'; |
|
3048 | + $quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' ); |
|
3049 | + $quiz_reset_field = Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false ); |
|
3050 | + echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field ); |
|
3051 | + |
|
3052 | + ?> |
|
3053 | 3053 | </div> |
3054 | 3054 | </fieldset> |
3055 | 3055 | <?php |
3056 | - }// all_lessons_edit_fields |
|
3057 | - |
|
3058 | - /** |
|
3059 | - * Create the html for the edit field |
|
3060 | - * |
|
3061 | - * Wraps the passed in field and title combination with the correct html. |
|
3062 | - * |
|
3063 | - * @since 1.8.0 |
|
3064 | - * |
|
3065 | - * @param string $title that will stand to the left of the field. |
|
3066 | - * @param string $field type markup for the field that must be wrapped. |
|
3067 | - * @return string $field_html |
|
3068 | - */ |
|
3069 | - public function generate_all_lessons_edit_field( $title ,$field ){ |
|
3070 | - |
|
3071 | - $html = ''; |
|
3072 | - $html = '<div class="inline-edit-group" >'; |
|
3073 | - $html .= '<span class="title">'. $title .'</span> '; |
|
3074 | - $html .= '<span class="input-text-wrap">'; |
|
3075 | - $html .= $field; |
|
3076 | - $html .= '</span>'; |
|
3077 | - $html .= '</label></div>'; |
|
3078 | - |
|
3079 | - return $html ; |
|
3080 | - |
|
3081 | - }//end generate_all_lessons_edit_field |
|
3082 | - |
|
3083 | - /** |
|
3084 | - * Respond to the ajax call from the bulk edit save function. This comes |
|
3085 | - * from the admin all lesson screen. |
|
3086 | - * |
|
3087 | - * @since 1.8.0 |
|
3088 | - * @return void |
|
3089 | - */ |
|
3090 | - function save_all_lessons_edit_fields() { |
|
3091 | - |
|
3092 | - // verify all the data before attempting to save |
|
3093 | - if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' ) |
|
3094 | - || empty( $_POST[ 'post_ids' ] ) || ! is_array( $_POST[ 'post_ids' ] ) ) { |
|
3095 | - die(); |
|
3096 | - } |
|
3097 | - |
|
3098 | - // get our variables |
|
3099 | - $new_course = sanitize_text_field( $_POST['sensei_edit_lesson_course'] ); |
|
3100 | - $new_complexity = sanitize_text_field( $_POST['sensei_edit_complexity'] ); |
|
3101 | - $new_pass_required = sanitize_text_field( $_POST['sensei_edit_pass_required'] ); |
|
3102 | - $new_pass_percentage = sanitize_text_field( $_POST['sensei_edit_pass_percentage'] ); |
|
3103 | - $new_enable_quiz_reset = sanitize_text_field( $_POST['sensei_edit_enable_quiz_reset'] ); |
|
3104 | - // store the values for all selected posts |
|
3105 | - foreach( $_POST[ 'post_ids' ] as $lesson_id ) { |
|
3106 | - |
|
3107 | - // get the quiz id needed for the quiz meta |
|
3108 | - $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id ); |
|
3109 | - |
|
3110 | - // do not save the items if the value is -1 as this |
|
3111 | - // means it was not changed |
|
3112 | - |
|
3113 | - // update lesson course |
|
3114 | - if( -1 != $new_course ){ |
|
3115 | - update_post_meta( $lesson_id, '_lesson_course', $new_course ); |
|
3116 | - } |
|
3117 | - // update lesson complexity |
|
3118 | - if( -1 != $new_complexity ){ |
|
3119 | - update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity ); |
|
3120 | - } |
|
3121 | - |
|
3122 | - // Quiz Related settings |
|
3123 | - if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) { |
|
3124 | - |
|
3125 | - // update pass required |
|
3126 | - if (-1 != $new_pass_required) { |
|
3127 | - |
|
3128 | - $checked = $new_pass_required ? 'on' : ''; |
|
3129 | - update_post_meta($quiz_id, '_pass_required', $checked); |
|
3130 | - unset( $checked ); |
|
3131 | - } |
|
3056 | + }// all_lessons_edit_fields |
|
3057 | + |
|
3058 | + /** |
|
3059 | + * Create the html for the edit field |
|
3060 | + * |
|
3061 | + * Wraps the passed in field and title combination with the correct html. |
|
3062 | + * |
|
3063 | + * @since 1.8.0 |
|
3064 | + * |
|
3065 | + * @param string $title that will stand to the left of the field. |
|
3066 | + * @param string $field type markup for the field that must be wrapped. |
|
3067 | + * @return string $field_html |
|
3068 | + */ |
|
3069 | + public function generate_all_lessons_edit_field( $title ,$field ){ |
|
3070 | + |
|
3071 | + $html = ''; |
|
3072 | + $html = '<div class="inline-edit-group" >'; |
|
3073 | + $html .= '<span class="title">'. $title .'</span> '; |
|
3074 | + $html .= '<span class="input-text-wrap">'; |
|
3075 | + $html .= $field; |
|
3076 | + $html .= '</span>'; |
|
3077 | + $html .= '</label></div>'; |
|
3078 | + |
|
3079 | + return $html ; |
|
3080 | + |
|
3081 | + }//end generate_all_lessons_edit_field |
|
3132 | 3082 | |
3133 | - // update pass percentage |
|
3134 | - if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){ |
|
3083 | + /** |
|
3084 | + * Respond to the ajax call from the bulk edit save function. This comes |
|
3085 | + * from the admin all lesson screen. |
|
3086 | + * |
|
3087 | + * @since 1.8.0 |
|
3088 | + * @return void |
|
3089 | + */ |
|
3090 | + function save_all_lessons_edit_fields() { |
|
3135 | 3091 | |
3136 | - update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage); |
|
3092 | + // verify all the data before attempting to save |
|
3093 | + if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' ) |
|
3094 | + || empty( $_POST[ 'post_ids' ] ) || ! is_array( $_POST[ 'post_ids' ] ) ) { |
|
3095 | + die(); |
|
3096 | + } |
|
3137 | 3097 | |
3138 | - } |
|
3098 | + // get our variables |
|
3099 | + $new_course = sanitize_text_field( $_POST['sensei_edit_lesson_course'] ); |
|
3100 | + $new_complexity = sanitize_text_field( $_POST['sensei_edit_complexity'] ); |
|
3101 | + $new_pass_required = sanitize_text_field( $_POST['sensei_edit_pass_required'] ); |
|
3102 | + $new_pass_percentage = sanitize_text_field( $_POST['sensei_edit_pass_percentage'] ); |
|
3103 | + $new_enable_quiz_reset = sanitize_text_field( $_POST['sensei_edit_enable_quiz_reset'] ); |
|
3104 | + // store the values for all selected posts |
|
3105 | + foreach( $_POST[ 'post_ids' ] as $lesson_id ) { |
|
3139 | 3106 | |
3140 | - // |
|
3141 | - // update enable quiz reset |
|
3142 | - // |
|
3143 | - if (-1 != $new_enable_quiz_reset ) { |
|
3107 | + // get the quiz id needed for the quiz meta |
|
3108 | + $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id ); |
|
3144 | 3109 | |
3145 | - $checked = $new_enable_quiz_reset ? 'on' : '' ; |
|
3146 | - update_post_meta($quiz_id, '_enable_quiz_reset', $checked); |
|
3147 | - unset( $checked ); |
|
3110 | + // do not save the items if the value is -1 as this |
|
3111 | + // means it was not changed |
|
3148 | 3112 | |
3149 | - } |
|
3113 | + // update lesson course |
|
3114 | + if( -1 != $new_course ){ |
|
3115 | + update_post_meta( $lesson_id, '_lesson_course', $new_course ); |
|
3116 | + } |
|
3117 | + // update lesson complexity |
|
3118 | + if( -1 != $new_complexity ){ |
|
3119 | + update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity ); |
|
3120 | + } |
|
3150 | 3121 | |
3122 | + // Quiz Related settings |
|
3123 | + if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) { |
|
3151 | 3124 | |
3152 | - } // end if quiz |
|
3125 | + // update pass required |
|
3126 | + if (-1 != $new_pass_required) { |
|
3153 | 3127 | |
3154 | - }// end for each |
|
3128 | + $checked = $new_pass_required ? 'on' : ''; |
|
3129 | + update_post_meta($quiz_id, '_pass_required', $checked); |
|
3130 | + unset( $checked ); |
|
3131 | + } |
|
3155 | 3132 | |
3156 | - die(); |
|
3133 | + // update pass percentage |
|
3134 | + if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){ |
|
3157 | 3135 | |
3158 | - } // end save_all_lessons_edit_fields |
|
3136 | + update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage); |
|
3159 | 3137 | |
3160 | - /** |
|
3161 | - * Loading the quick edit fields defaults. |
|
3162 | - * |
|
3163 | - * This function will localise the default values along with the script that will |
|
3164 | - * add these values to the inputs. |
|
3165 | - * |
|
3166 | - * NOTE: this function runs for each row in the edit column |
|
3167 | - * |
|
3168 | - * @since 1.8.0 |
|
3169 | - * @return void |
|
3170 | - */ |
|
3171 | - public function set_quick_edit_admin_defaults( $column_name, $post_id ){ |
|
3138 | + } |
|
3172 | 3139 | |
3173 | - if( 'lesson-course' != $column_name ){ |
|
3174 | - return; |
|
3175 | - } |
|
3176 | - // load the script |
|
3177 | - $suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; |
|
3178 | - wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true ); |
|
3140 | + // |
|
3141 | + // update enable quiz reset |
|
3142 | + // |
|
3143 | + if (-1 != $new_enable_quiz_reset ) { |
|
3179 | 3144 | |
3180 | - // setup the values for all meta fields |
|
3181 | - $data = array(); |
|
3182 | - foreach( $this->meta_fields as $field ){ |
|
3145 | + $checked = $new_enable_quiz_reset ? 'on' : '' ; |
|
3146 | + update_post_meta($quiz_id, '_enable_quiz_reset', $checked); |
|
3147 | + unset( $checked ); |
|
3183 | 3148 | |
3184 | - $data[$field] = get_post_meta( $post_id, '_'.$field, true ); |
|
3149 | + } |
|
3185 | 3150 | |
3186 | - } |
|
3187 | - // add quiz meta fields |
|
3188 | - $quiz_id = Sensei()->lesson->lesson_quizzes( $post_id ); |
|
3189 | - foreach( Sensei()->quiz->meta_fields as $field ){ |
|
3190 | 3151 | |
3191 | - $data[$field] = get_post_meta( $quiz_id, '_'.$field, true ); |
|
3152 | + } // end if quiz |
|
3192 | 3153 | |
3193 | - } |
|
3154 | + }// end for each |
|
3194 | 3155 | |
3195 | - wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data ); |
|
3156 | + die(); |
|
3196 | 3157 | |
3197 | - }// end quick edit admin defaults |
|
3158 | + } // end save_all_lessons_edit_fields |
|
3198 | 3159 | |
3199 | - /** |
|
3200 | - * Filter the classes for lessons on the single course page. |
|
3201 | - * |
|
3202 | - * Adds the nesecary classes depending on the user data |
|
3203 | - * |
|
3204 | - * @since 1.9.0 |
|
3205 | - * @param array $classes |
|
3206 | - * @return array $classes |
|
3207 | - */ |
|
3208 | - public static function single_course_lessons_classes( $classes ){ |
|
3160 | + /** |
|
3161 | + * Loading the quick edit fields defaults. |
|
3162 | + * |
|
3163 | + * This function will localise the default values along with the script that will |
|
3164 | + * add these values to the inputs. |
|
3165 | + * |
|
3166 | + * NOTE: this function runs for each row in the edit column |
|
3167 | + * |
|
3168 | + * @since 1.8.0 |
|
3169 | + * @return void |
|
3170 | + */ |
|
3171 | + public function set_quick_edit_admin_defaults( $column_name, $post_id ){ |
|
3172 | + |
|
3173 | + if( 'lesson-course' != $column_name ){ |
|
3174 | + return; |
|
3175 | + } |
|
3176 | + // load the script |
|
3177 | + $suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; |
|
3178 | + wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true ); |
|
3179 | + |
|
3180 | + // setup the values for all meta fields |
|
3181 | + $data = array(); |
|
3182 | + foreach( $this->meta_fields as $field ){ |
|
3183 | + |
|
3184 | + $data[$field] = get_post_meta( $post_id, '_'.$field, true ); |
|
3185 | + |
|
3186 | + } |
|
3187 | + // add quiz meta fields |
|
3188 | + $quiz_id = Sensei()->lesson->lesson_quizzes( $post_id ); |
|
3189 | + foreach( Sensei()->quiz->meta_fields as $field ){ |
|
3190 | + |
|
3191 | + $data[$field] = get_post_meta( $quiz_id, '_'.$field, true ); |
|
3192 | + |
|
3193 | + } |
|
3194 | + |
|
3195 | + wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data ); |
|
3196 | + |
|
3197 | + }// end quick edit admin defaults |
|
3198 | + |
|
3199 | + /** |
|
3200 | + * Filter the classes for lessons on the single course page. |
|
3201 | + * |
|
3202 | + * Adds the nesecary classes depending on the user data |
|
3203 | + * |
|
3204 | + * @since 1.9.0 |
|
3205 | + * @param array $classes |
|
3206 | + * @return array $classes |
|
3207 | + */ |
|
3208 | + public static function single_course_lessons_classes( $classes ){ |
|
3209 | 3209 | |
3210 | - if( is_singular('course') ){ |
|
3210 | + if( is_singular('course') ){ |
|
3211 | 3211 | |
3212 | - global $post; |
|
3213 | - $course_id = $post->ID; |
|
3212 | + global $post; |
|
3213 | + $course_id = $post->ID; |
|
3214 | 3214 | |
3215 | - $lesson_classes = array( 'course', 'post' ); |
|
3216 | - if ( is_user_logged_in() ) { |
|
3215 | + $lesson_classes = array( 'course', 'post' ); |
|
3216 | + if ( is_user_logged_in() ) { |
|
3217 | 3217 | |
3218 | - // Check if Lesson is complete |
|
3219 | - $single_lesson_complete = Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() ); |
|
3220 | - if ( $single_lesson_complete ) { |
|
3218 | + // Check if Lesson is complete |
|
3219 | + $single_lesson_complete = Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() ); |
|
3220 | + if ( $single_lesson_complete ) { |
|
3221 | 3221 | |
3222 | - $lesson_classes[] = 'lesson-completed'; |
|
3222 | + $lesson_classes[] = 'lesson-completed'; |
|
3223 | 3223 | |
3224 | - } // End If Statement |
|
3224 | + } // End If Statement |
|
3225 | 3225 | |
3226 | - } // End If Statement |
|
3226 | + } // End If Statement |
|
3227 | 3227 | |
3228 | - $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() ); |
|
3229 | - if ( Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) { |
|
3228 | + $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() ); |
|
3229 | + if ( Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) { |
|
3230 | 3230 | |
3231 | - $lesson_classes[] = 'lesson-preview'; |
|
3231 | + $lesson_classes[] = 'lesson-preview'; |
|
3232 | 3232 | |
3233 | - } |
|
3233 | + } |
|
3234 | 3234 | |
3235 | - $classes = array_merge( $classes, $lesson_classes ); |
|
3235 | + $classes = array_merge( $classes, $lesson_classes ); |
|
3236 | 3236 | |
3237 | - } |
|
3237 | + } |
|
3238 | 3238 | |
3239 | - return $classes; |
|
3239 | + return $classes; |
|
3240 | 3240 | |
3241 | - }// end single_course_lessons_classes |
|
3241 | + }// end single_course_lessons_classes |
|
3242 | 3242 | |
3243 | - /** |
|
3244 | - * Output the lesson meta for the given lesson |
|
3245 | - * |
|
3246 | - * @since 1.9.0 |
|
3247 | - * @param $lesson_id |
|
3248 | - */ |
|
3249 | - public static function the_lesson_meta( $lesson_id ){ |
|
3243 | + /** |
|
3244 | + * Output the lesson meta for the given lesson |
|
3245 | + * |
|
3246 | + * @since 1.9.0 |
|
3247 | + * @param $lesson_id |
|
3248 | + */ |
|
3249 | + public static function the_lesson_meta( $lesson_id ){ |
|
3250 | 3250 | |
3251 | - global $wp_query; |
|
3252 | - $loop_lesson_number = $wp_query->current_post + 1; |
|
3251 | + global $wp_query; |
|
3252 | + $loop_lesson_number = $wp_query->current_post + 1; |
|
3253 | 3253 | |
3254 | - $course_id = Sensei()->lesson->get_course_id( $lesson_id ); |
|
3255 | - $single_lesson_complete = false; |
|
3256 | - $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() ); |
|
3254 | + $course_id = Sensei()->lesson->get_course_id( $lesson_id ); |
|
3255 | + $single_lesson_complete = false; |
|
3256 | + $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() ); |
|
3257 | 3257 | |
3258 | - // Get Lesson data |
|
3259 | - $complexity_array = Sensei()->lesson->lesson_complexities(); |
|
3258 | + // Get Lesson data |
|
3259 | + $complexity_array = Sensei()->lesson->lesson_complexities(); |
|
3260 | 3260 | |
3261 | - $lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true ); |
|
3262 | - if ( '' != $lesson_complexity ) { |
|
3261 | + $lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true ); |
|
3262 | + if ( '' != $lesson_complexity ) { |
|
3263 | 3263 | |
3264 | - $lesson_complexity = $complexity_array[$lesson_complexity]; |
|
3264 | + $lesson_complexity = $complexity_array[$lesson_complexity]; |
|
3265 | 3265 | |
3266 | - } |
|
3267 | - $user_info = get_userdata( absint( get_post()->post_author ) ); |
|
3268 | - $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id); |
|
3269 | - $preview_label = ''; |
|
3270 | - if ( $is_preview && !$is_user_taking_course ) { |
|
3266 | + } |
|
3267 | + $user_info = get_userdata( absint( get_post()->post_author ) ); |
|
3268 | + $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id); |
|
3269 | + $preview_label = ''; |
|
3270 | + if ( $is_preview && !$is_user_taking_course ) { |
|
3271 | 3271 | |
3272 | - $preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id); |
|
3273 | - $preview_label = '<span class="preview-heading">' . $preview_label . '</span>'; |
|
3272 | + $preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id); |
|
3273 | + $preview_label = '<span class="preview-heading">' . $preview_label . '</span>'; |
|
3274 | 3274 | |
3275 | - } |
|
3275 | + } |
|
3276 | 3276 | |
3277 | 3277 | |
3278 | - $count_markup= ''; |
|
3279 | - /** |
|
3280 | - * Filter for if you want the $lesson_count to show next to the lesson. |
|
3281 | - * |
|
3282 | - * @since 1.0 |
|
3283 | - * @param bool default false. |
|
3284 | - */ |
|
3285 | - if( apply_filters( 'sensei_show_lesson_numbers', false ) ) { |
|
3278 | + $count_markup= ''; |
|
3279 | + /** |
|
3280 | + * Filter for if you want the $lesson_count to show next to the lesson. |
|
3281 | + * |
|
3282 | + * @since 1.0 |
|
3283 | + * @param bool default false. |
|
3284 | + */ |
|
3285 | + if( apply_filters( 'sensei_show_lesson_numbers', false ) ) { |
|
3286 | 3286 | |
3287 | - $count_markup = '<span class="lesson-number">' . $loop_lesson_number. '</span>'; |
|
3287 | + $count_markup = '<span class="lesson-number">' . $loop_lesson_number. '</span>'; |
|
3288 | 3288 | |
3289 | - } |
|
3289 | + } |
|
3290 | 3290 | |
3291 | - $heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) ); |
|
3291 | + $heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) ); |
|
3292 | 3292 | |
3293 | - ?> |
|
3293 | + ?> |
|
3294 | 3294 | <header> |
3295 | 3295 | <h2> |
3296 | 3296 | <a href="<?php echo esc_url_raw( get_permalink( $lesson_id ) ) ?>" |
@@ -3303,40 +3303,40 @@ discard block |
||
3303 | 3303 | |
3304 | 3304 | <?php |
3305 | 3305 | |
3306 | - $meta_html = ''; |
|
3307 | - $user_lesson_status = Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() ); |
|
3306 | + $meta_html = ''; |
|
3307 | + $user_lesson_status = Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() ); |
|
3308 | 3308 | |
3309 | - $lesson_length = get_post_meta( $lesson_id, '_lesson_length', true ); |
|
3310 | - if ( '' != $lesson_length ) { |
|
3309 | + $lesson_length = get_post_meta( $lesson_id, '_lesson_length', true ); |
|
3310 | + if ( '' != $lesson_length ) { |
|
3311 | 3311 | |
3312 | - $meta_html .= '<span class="lesson-length">' . __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>'; |
|
3312 | + $meta_html .= '<span class="lesson-length">' . __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>'; |
|
3313 | 3313 | |
3314 | - } |
|
3314 | + } |
|
3315 | 3315 | |
3316 | - if ( Sensei()->settings->get( 'lesson_author' ) ) { |
|
3316 | + if ( Sensei()->settings->get( 'lesson_author' ) ) { |
|
3317 | 3317 | |
3318 | - $meta_html .= '<span class="lesson-author">' . __( 'Author: ', 'woothemes-sensei' ) . '<a href="' . get_author_posts_url( absint( get_post()->post_author ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>'; |
|
3318 | + $meta_html .= '<span class="lesson-author">' . __( 'Author: ', 'woothemes-sensei' ) . '<a href="' . get_author_posts_url( absint( get_post()->post_author ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>'; |
|
3319 | 3319 | |
3320 | - } // End If Statement |
|
3321 | - if ( '' != $lesson_complexity ) { |
|
3320 | + } // End If Statement |
|
3321 | + if ( '' != $lesson_complexity ) { |
|
3322 | 3322 | |
3323 | - $meta_html .= '<span class="lesson-complexity">' . __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>'; |
|
3323 | + $meta_html .= '<span class="lesson-complexity">' . __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>'; |
|
3324 | 3324 | |
3325 | - } |
|
3325 | + } |
|
3326 | 3326 | |
3327 | - if ( $single_lesson_complete ) { |
|
3327 | + if ( $single_lesson_complete ) { |
|
3328 | 3328 | |
3329 | - $meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>'; |
|
3329 | + $meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>'; |
|
3330 | 3330 | |
3331 | - } elseif ( $user_lesson_status ) { |
|
3331 | + } elseif ( $user_lesson_status ) { |
|
3332 | 3332 | |
3333 | - $meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>'; |
|
3333 | + $meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>'; |
|
3334 | 3334 | |
3335 | - } // End If Statement |
|
3335 | + } // End If Statement |
|
3336 | 3336 | |
3337 | - echo $meta_html; |
|
3337 | + echo $meta_html; |
|
3338 | 3338 | |
3339 | - ?> |
|
3339 | + ?> |
|
3340 | 3340 | |
3341 | 3341 | </p> <!-- lesson meta --> |
3342 | 3342 | |
@@ -3344,132 +3344,132 @@ discard block |
||
3344 | 3344 | |
3345 | 3345 | <?php |
3346 | 3346 | |
3347 | - } // end the_lesson_meta |
|
3347 | + } // end the_lesson_meta |
|
3348 | 3348 | |
3349 | - /** |
|
3350 | - * Output the lessons thumbnail |
|
3351 | - * |
|
3352 | - * 1.9.0 |
|
3353 | - * |
|
3354 | - * @param $lesson_id |
|
3355 | - */ |
|
3356 | - public static function the_lesson_thumbnail( $lesson_id ){ |
|
3349 | + /** |
|
3350 | + * Output the lessons thumbnail |
|
3351 | + * |
|
3352 | + * 1.9.0 |
|
3353 | + * |
|
3354 | + * @param $lesson_id |
|
3355 | + */ |
|
3356 | + public static function the_lesson_thumbnail( $lesson_id ){ |
|
3357 | 3357 | |
3358 | - if( empty( $lesson_id ) ){ |
|
3358 | + if( empty( $lesson_id ) ){ |
|
3359 | 3359 | |
3360 | - $lesson_id = get_the_ID(); |
|
3360 | + $lesson_id = get_the_ID(); |
|
3361 | 3361 | |
3362 | - } |
|
3362 | + } |
|
3363 | 3363 | |
3364 | - if( 'lesson' != get_post_type( $lesson_id ) ){ |
|
3365 | - return; |
|
3366 | - } |
|
3364 | + if( 'lesson' != get_post_type( $lesson_id ) ){ |
|
3365 | + return; |
|
3366 | + } |
|
3367 | 3367 | |
3368 | - echo Sensei()->lesson->lesson_image( $lesson_id ); |
|
3369 | - } |
|
3368 | + echo Sensei()->lesson->lesson_image( $lesson_id ); |
|
3369 | + } |
|
3370 | 3370 | |
3371 | 3371 | |
3372 | - /** |
|
3373 | - * Alter the sensei lesson excerpt. |
|
3374 | - * |
|
3375 | - * @since 1.9.0 |
|
3376 | - * @param string $excerpt |
|
3377 | - * @return string $excerpt |
|
3378 | - */ |
|
3379 | - public static function alter_the_lesson_excerpt( $excerpt ) { |
|
3372 | + /** |
|
3373 | + * Alter the sensei lesson excerpt. |
|
3374 | + * |
|
3375 | + * @since 1.9.0 |
|
3376 | + * @param string $excerpt |
|
3377 | + * @return string $excerpt |
|
3378 | + */ |
|
3379 | + public static function alter_the_lesson_excerpt( $excerpt ) { |
|
3380 | 3380 | |
3381 | - if ('lesson' == get_post_type(get_the_ID())){ |
|
3381 | + if ('lesson' == get_post_type(get_the_ID())){ |
|
3382 | 3382 | |
3383 | - // remove this hooks to avoid an infinite loop. |
|
3384 | - remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') ); |
|
3383 | + // remove this hooks to avoid an infinite loop. |
|
3384 | + remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') ); |
|
3385 | 3385 | |
3386 | - return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) ); |
|
3387 | - } |
|
3386 | + return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) ); |
|
3387 | + } |
|
3388 | 3388 | |
3389 | - return $excerpt; |
|
3389 | + return $excerpt; |
|
3390 | 3390 | |
3391 | - }// end the_lesson_excerpt |
|
3391 | + }// end the_lesson_excerpt |
|
3392 | 3392 | |
3393 | - /** |
|
3394 | - * Returns the lesson prerequisite for the given lesson id. |
|
3395 | - * |
|
3396 | - * @since 1.9.0 |
|
3397 | - * |
|
3398 | - * @param $current_lesson_id |
|
3399 | - * @return mixed | bool | int $prerequisite_lesson_id or false |
|
3400 | - */ |
|
3401 | - public static function get_lesson_prerequisite_id( $current_lesson_id ){ |
|
3393 | + /** |
|
3394 | + * Returns the lesson prerequisite for the given lesson id. |
|
3395 | + * |
|
3396 | + * @since 1.9.0 |
|
3397 | + * |
|
3398 | + * @param $current_lesson_id |
|
3399 | + * @return mixed | bool | int $prerequisite_lesson_id or false |
|
3400 | + */ |
|
3401 | + public static function get_lesson_prerequisite_id( $current_lesson_id ){ |
|
3402 | 3402 | |
3403 | - $prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true ); |
|
3403 | + $prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true ); |
|
3404 | 3404 | |
3405 | - // set ti to false if not a valid prerequisite lesson id |
|
3406 | - if( empty( $prerequisite_lesson_id ) |
|
3407 | - || 'lesson' != get_post_type( $prerequisite_lesson_id ) |
|
3408 | - || $prerequisite_lesson_id == $current_lesson_id ) { |
|
3405 | + // set ti to false if not a valid prerequisite lesson id |
|
3406 | + if( empty( $prerequisite_lesson_id ) |
|
3407 | + || 'lesson' != get_post_type( $prerequisite_lesson_id ) |
|
3408 | + || $prerequisite_lesson_id == $current_lesson_id ) { |
|
3409 | 3409 | |
3410 | - $prerequisite_lesson_id = false; |
|
3410 | + $prerequisite_lesson_id = false; |
|
3411 | 3411 | |
3412 | - } |
|
3412 | + } |
|
3413 | 3413 | |
3414 | - return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id ); |
|
3414 | + return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id ); |
|
3415 | 3415 | |
3416 | - } |
|
3416 | + } |
|
3417 | 3417 | |
3418 | - /** |
|
3419 | - * This function requires that you pass in the lesson you would like to check for |
|
3420 | - * a pre-requisite and not the pre-requisite. It will check if the |
|
3421 | - * lesson has a pre-requiste and then check if it is completed. |
|
3422 | - * |
|
3423 | - * @since 1.9.0 |
|
3424 | - * |
|
3425 | - * @param $lesson_id |
|
3426 | - * @param $user_id |
|
3427 | - * @return bool |
|
3428 | - */ |
|
3429 | - public static function is_prerequisite_complete( $lesson_id, $user_id ){ |
|
3418 | + /** |
|
3419 | + * This function requires that you pass in the lesson you would like to check for |
|
3420 | + * a pre-requisite and not the pre-requisite. It will check if the |
|
3421 | + * lesson has a pre-requiste and then check if it is completed. |
|
3422 | + * |
|
3423 | + * @since 1.9.0 |
|
3424 | + * |
|
3425 | + * @param $lesson_id |
|
3426 | + * @param $user_id |
|
3427 | + * @return bool |
|
3428 | + */ |
|
3429 | + public static function is_prerequisite_complete( $lesson_id, $user_id ){ |
|
3430 | 3430 | |
3431 | - if( empty( $lesson_id ) || empty( $user_id ) |
|
3432 | - || 'lesson' != get_post_type( $lesson_id ) |
|
3433 | - || ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){ |
|
3431 | + if( empty( $lesson_id ) || empty( $user_id ) |
|
3432 | + || 'lesson' != get_post_type( $lesson_id ) |
|
3433 | + || ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){ |
|
3434 | 3434 | |
3435 | - return false; |
|
3435 | + return false; |
|
3436 | 3436 | |
3437 | - } |
|
3437 | + } |
|
3438 | 3438 | |
3439 | - $pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id ); |
|
3439 | + $pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id ); |
|
3440 | 3440 | |
3441 | - // not a valid pre-requisite so pre-requisite is completed |
|
3442 | - if( 'lesson' != get_post_type( $pre_requisite_id ) |
|
3443 | - || ! is_numeric( $pre_requisite_id ) ){ |
|
3441 | + // not a valid pre-requisite so pre-requisite is completed |
|
3442 | + if( 'lesson' != get_post_type( $pre_requisite_id ) |
|
3443 | + || ! is_numeric( $pre_requisite_id ) ){ |
|
3444 | 3444 | |
3445 | - return true; |
|
3445 | + return true; |
|
3446 | 3446 | |
3447 | - } |
|
3447 | + } |
|
3448 | 3448 | |
3449 | - return Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id ); |
|
3449 | + return Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id ); |
|
3450 | 3450 | |
3451 | - }// end is_prerequisite_complete |
|
3451 | + }// end is_prerequisite_complete |
|
3452 | 3452 | |
3453 | - /** |
|
3454 | - * Show the user not taking course message if it is the case |
|
3455 | - * |
|
3456 | - * @since 1.9.0 |
|
3457 | - */ |
|
3458 | - public static function user_not_taking_course_message(){ |
|
3453 | + /** |
|
3454 | + * Show the user not taking course message if it is the case |
|
3455 | + * |
|
3456 | + * @since 1.9.0 |
|
3457 | + */ |
|
3458 | + public static function user_not_taking_course_message(){ |
|
3459 | 3459 | |
3460 | - $lesson_id = get_the_ID(); |
|
3460 | + $lesson_id = get_the_ID(); |
|
3461 | 3461 | |
3462 | - if( 'lesson' != get_post_type( $lesson_id ) ){ |
|
3463 | - return; |
|
3464 | - } |
|
3462 | + if( 'lesson' != get_post_type( $lesson_id ) ){ |
|
3463 | + return; |
|
3464 | + } |
|
3465 | 3465 | |
3466 | - $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id ); |
|
3467 | - $pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() ); |
|
3468 | - $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true ); |
|
3469 | - $user_taking_course = Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() ); |
|
3466 | + $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id ); |
|
3467 | + $pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() ); |
|
3468 | + $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true ); |
|
3469 | + $user_taking_course = Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() ); |
|
3470 | 3470 | |
3471 | - if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) { |
|
3472 | - ?> |
|
3471 | + if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) { |
|
3472 | + ?> |
|
3473 | 3473 | |
3474 | 3474 | <div class="sensei-message alert"> |
3475 | 3475 | <?php echo Sensei()->permissions_message['message']; ?> |
@@ -3477,46 +3477,46 @@ discard block |
||
3477 | 3477 | |
3478 | 3478 | <?php |
3479 | 3479 | |
3480 | - }// end if |
|
3480 | + }// end if |
|
3481 | 3481 | |
3482 | - } // end user_not_taking_course_message |
|
3482 | + } // end user_not_taking_course_message |
|
3483 | 3483 | |
3484 | - /** |
|
3485 | - * Outputs the lessons course signup lingk |
|
3486 | - * |
|
3487 | - * This hook runs inside the single lesson page. |
|
3488 | - * |
|
3489 | - * @since 1.9.0 |
|
3490 | - */ |
|
3491 | - public static function course_signup_link( ){ |
|
3484 | + /** |
|
3485 | + * Outputs the lessons course signup lingk |
|
3486 | + * |
|
3487 | + * This hook runs inside the single lesson page. |
|
3488 | + * |
|
3489 | + * @since 1.9.0 |
|
3490 | + */ |
|
3491 | + public static function course_signup_link( ){ |
|
3492 | 3492 | |
3493 | - $course_id = Sensei()->lesson->get_course_id( get_the_ID() ); |
|
3493 | + $course_id = Sensei()->lesson->get_course_id( get_the_ID() ); |
|
3494 | 3494 | |
3495 | - if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) { |
|
3495 | + if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) { |
|
3496 | 3496 | |
3497 | - return; |
|
3497 | + return; |
|
3498 | 3498 | |
3499 | - } |
|
3500 | - ?> |
|
3499 | + } |
|
3500 | + ?> |
|
3501 | 3501 | |
3502 | 3502 | <section class="course-signup lesson-meta"> |
3503 | 3503 | |
3504 | 3504 | <?php |
3505 | - $wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true ); |
|
3505 | + $wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true ); |
|
3506 | 3506 | |
3507 | - if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) { |
|
3507 | + if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) { |
|
3508 | 3508 | |
3509 | - global $current_user; |
|
3510 | - if( is_user_logged_in() ) { |
|
3511 | - wp_get_current_user(); |
|
3509 | + global $current_user; |
|
3510 | + if( is_user_logged_in() ) { |
|
3511 | + wp_get_current_user(); |
|
3512 | 3512 | |
3513 | - $course_purchased = Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id ); |
|
3513 | + $course_purchased = Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id ); |
|
3514 | 3514 | |
3515 | - if( $course_purchased ) { |
|
3515 | + if( $course_purchased ) { |
|
3516 | 3516 | |
3517 | - $prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true ); |
|
3518 | - $course_link = '<a href="' . esc_url( get_permalink( $prereq_course_id ) ) . '" title="' . esc_attr( get_the_title( $prereq_course_id ) ) . '">' . __( 'the previous course', 'woothemes-sensei' ) . '</a>'; |
|
3519 | - ?> |
|
3517 | + $prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true ); |
|
3518 | + $course_link = '<a href="' . esc_url( get_permalink( $prereq_course_id ) ) . '" title="' . esc_attr( get_the_title( $prereq_course_id ) ) . '">' . __( 'the previous course', 'woothemes-sensei' ) . '</a>'; |
|
3519 | + ?> |
|
3520 | 3520 | <div class="sensei-message info"> |
3521 | 3521 | |
3522 | 3522 | <?php echo sprintf( __( 'Please complete %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); ?> |
@@ -3528,14 +3528,14 @@ discard block |
||
3528 | 3528 | <div class="sensei-message info"> |
3529 | 3529 | |
3530 | 3530 | <?php |
3531 | - $course_link = '<a href="' . esc_url( get_permalink( $course_id ) ) |
|
3532 | - . '"title="' . __( 'Sign Up', 'woothemes-sensei' ) |
|
3533 | - . '">' . __( 'course', 'woothemes-sensei' ) |
|
3534 | - . '</a>'; |
|
3531 | + $course_link = '<a href="' . esc_url( get_permalink( $course_id ) ) |
|
3532 | + . '"title="' . __( 'Sign Up', 'woothemes-sensei' ) |
|
3533 | + . '">' . __( 'course', 'woothemes-sensei' ) |
|
3534 | + . '</a>'; |
|
3535 | 3535 | |
3536 | - echo sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); |
|
3536 | + echo sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); |
|
3537 | 3537 | |
3538 | - ?> |
|
3538 | + ?> |
|
3539 | 3539 | |
3540 | 3540 | </div> |
3541 | 3541 | <?php } ?> |
@@ -3552,14 +3552,14 @@ discard block |
||
3552 | 3552 | |
3553 | 3553 | <div class="sensei-message info"> |
3554 | 3554 | <?php |
3555 | - $course_link = '<a href="' |
|
3556 | - . esc_url( get_permalink( $course_id ) ) |
|
3557 | - . '" title="' . __( 'Sign Up', 'woothemes-sensei' ) |
|
3558 | - . '">' . __( 'course', 'woothemes-sensei' ) |
|
3559 | - . '</a>'; |
|
3560 | - |
|
3561 | - echo sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); |
|
3562 | - ?> |
|
3555 | + $course_link = '<a href="' |
|
3556 | + . esc_url( get_permalink( $course_id ) ) |
|
3557 | + . '" title="' . __( 'Sign Up', 'woothemes-sensei' ) |
|
3558 | + . '">' . __( 'course', 'woothemes-sensei' ) |
|
3559 | + . '</a>'; |
|
3560 | + |
|
3561 | + echo sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); |
|
3562 | + ?> |
|
3563 | 3563 | </div> |
3564 | 3564 | |
3565 | 3565 | <?php endif; ?> |
@@ -3569,75 +3569,75 @@ discard block |
||
3569 | 3569 | </section> |
3570 | 3570 | |
3571 | 3571 | <?php |
3572 | - }// end course_signup_link |
|
3572 | + }// end course_signup_link |
|
3573 | 3573 | |
3574 | - /** |
|
3575 | - * Show a message telling the user to complete the previous message if they haven't done so yet |
|
3576 | - * |
|
3577 | - * @since 1.9.0 |
|
3578 | - */ |
|
3579 | - public static function prerequisite_complete_message(){ |
|
3574 | + /** |
|
3575 | + * Show a message telling the user to complete the previous message if they haven't done so yet |
|
3576 | + * |
|
3577 | + * @since 1.9.0 |
|
3578 | + */ |
|
3579 | + public static function prerequisite_complete_message(){ |
|
3580 | 3580 | |
3581 | - $lesson_prerequisite = WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() ); |
|
3582 | - $lesson_has_pre_requisite = $lesson_prerequisite > 0; |
|
3583 | - if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete( get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) { |
|
3581 | + $lesson_prerequisite = WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() ); |
|
3582 | + $lesson_has_pre_requisite = $lesson_prerequisite > 0; |
|
3583 | + if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete( get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) { |
|
3584 | 3584 | |
3585 | - $prerequisite_lesson_link = '<a href="' . esc_url( get_permalink( $lesson_prerequisite ) ) . '" title="' . esc_attr( sprintf( __( 'You must first complete: %1$s', 'woothemes-sensei' ), get_the_title( $lesson_prerequisite ) ) ) . '">' . get_the_title( $lesson_prerequisite ). '</a>'; |
|
3586 | - echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link ); |
|
3585 | + $prerequisite_lesson_link = '<a href="' . esc_url( get_permalink( $lesson_prerequisite ) ) . '" title="' . esc_attr( sprintf( __( 'You must first complete: %1$s', 'woothemes-sensei' ), get_the_title( $lesson_prerequisite ) ) ) . '">' . get_the_title( $lesson_prerequisite ). '</a>'; |
|
3586 | + echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link ); |
|
3587 | 3587 | |
3588 | - } |
|
3588 | + } |
|
3589 | 3589 | |
3590 | - } |
|
3590 | + } |
|
3591 | 3591 | |
3592 | - /** |
|
3593 | - * Deprecate the sensei_lesson_archive_header hook but keep it |
|
3594 | - * active for backwards compatibility. |
|
3595 | - * |
|
3596 | - * @deprecated since 1.9.0 |
|
3597 | - */ |
|
3598 | - public static function deprecate_sensei_lesson_archive_header_hook(){ |
|
3592 | + /** |
|
3593 | + * Deprecate the sensei_lesson_archive_header hook but keep it |
|
3594 | + * active for backwards compatibility. |
|
3595 | + * |
|
3596 | + * @deprecated since 1.9.0 |
|
3597 | + */ |
|
3598 | + public static function deprecate_sensei_lesson_archive_header_hook(){ |
|
3599 | 3599 | |
3600 | - sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before'); |
|
3600 | + sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before'); |
|
3601 | 3601 | |
3602 | - } |
|
3602 | + } |
|
3603 | 3603 | |
3604 | - /** |
|
3605 | - * Outputs the the lesson archive header. |
|
3606 | - * |
|
3607 | - * @since 1.9.0 |
|
3608 | - * @return void |
|
3609 | - */ |
|
3610 | - public function the_archive_header( ) { |
|
3604 | + /** |
|
3605 | + * Outputs the the lesson archive header. |
|
3606 | + * |
|
3607 | + * @since 1.9.0 |
|
3608 | + * @return void |
|
3609 | + */ |
|
3610 | + public function the_archive_header( ) { |
|
3611 | 3611 | |
3612 | - $before_html = '<header class="archive-header"><h1>'; |
|
3613 | - $after_html = '</h1></header>'; |
|
3614 | - $html = $before_html . __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html; |
|
3612 | + $before_html = '<header class="archive-header"><h1>'; |
|
3613 | + $after_html = '</h1></header>'; |
|
3614 | + $html = $before_html . __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html; |
|
3615 | 3615 | |
3616 | - echo apply_filters( 'sensei_lesson_archive_title', $html ); |
|
3616 | + echo apply_filters( 'sensei_lesson_archive_title', $html ); |
|
3617 | 3617 | |
3618 | - } // sensei_course_archive_header() |
|
3618 | + } // sensei_course_archive_header() |
|
3619 | 3619 | |
3620 | - /** |
|
3621 | - * Output the title for the single lesson page |
|
3622 | - * |
|
3623 | - * @global $post |
|
3624 | - * @since 1.9.0 |
|
3625 | - */ |
|
3626 | - public static function the_title(){ |
|
3620 | + /** |
|
3621 | + * Output the title for the single lesson page |
|
3622 | + * |
|
3623 | + * @global $post |
|
3624 | + * @since 1.9.0 |
|
3625 | + */ |
|
3626 | + public static function the_title(){ |
|
3627 | 3627 | |
3628 | - global $post; |
|
3628 | + global $post; |
|
3629 | 3629 | |
3630 | - ?> |
|
3630 | + ?> |
|
3631 | 3631 | <header> |
3632 | 3632 | |
3633 | 3633 | <h1> |
3634 | 3634 | |
3635 | 3635 | <?php |
3636 | - /** |
|
3637 | - * Filter documented in class-sensei-messages.php the_title |
|
3638 | - */ |
|
3639 | - echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type ); |
|
3640 | - ?> |
|
3636 | + /** |
|
3637 | + * Filter documented in class-sensei-messages.php the_title |
|
3638 | + */ |
|
3639 | + echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type ); |
|
3640 | + ?> |
|
3641 | 3641 | |
3642 | 3642 | </h1> |
3643 | 3643 | |
@@ -3645,68 +3645,68 @@ discard block |
||
3645 | 3645 | |
3646 | 3646 | <?php |
3647 | 3647 | |
3648 | - }//the_title |
|
3648 | + }//the_title |
|
3649 | 3649 | |
3650 | - /** |
|
3651 | - * Flush the rewrite rules for a lesson post type |
|
3652 | - * |
|
3653 | - * @since 1.9.0 |
|
3654 | - * |
|
3655 | - * @param $post_id |
|
3656 | - */ |
|
3657 | - public static function flush_rewrite_rules( $post_id ){ |
|
3650 | + /** |
|
3651 | + * Flush the rewrite rules for a lesson post type |
|
3652 | + * |
|
3653 | + * @since 1.9.0 |
|
3654 | + * |
|
3655 | + * @param $post_id |
|
3656 | + */ |
|
3657 | + public static function flush_rewrite_rules( $post_id ){ |
|
3658 | 3658 | |
3659 | - if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ |
|
3659 | + if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ |
|
3660 | 3660 | |
3661 | - return; |
|
3661 | + return; |
|
3662 | 3662 | |
3663 | - } |
|
3663 | + } |
|
3664 | 3664 | |
3665 | 3665 | |
3666 | - if( 'lesson' == get_post_type( $post_id ) ){ |
|
3666 | + if( 'lesson' == get_post_type( $post_id ) ){ |
|
3667 | 3667 | |
3668 | - Sensei()->initiate_rewrite_rules_flush(); |
|
3668 | + Sensei()->initiate_rewrite_rules_flush(); |
|
3669 | 3669 | |
3670 | - } |
|
3670 | + } |
|
3671 | 3671 | |
3672 | - } |
|
3672 | + } |
|
3673 | 3673 | |
3674 | - /** |
|
3675 | - * Output the quiz specific buttons and messaging on the single lesson page |
|
3676 | - * |
|
3677 | - * |
|
3678 | - * @since 1.0.0 moved here from frontend class |
|
3679 | - * |
|
3680 | - * @param int $lesson_id |
|
3681 | - * @param int $user_id |
|
3682 | - */ |
|
3683 | - public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) { |
|
3674 | + /** |
|
3675 | + * Output the quiz specific buttons and messaging on the single lesson page |
|
3676 | + * |
|
3677 | + * |
|
3678 | + * @since 1.0.0 moved here from frontend class |
|
3679 | + * |
|
3680 | + * @param int $lesson_id |
|
3681 | + * @param int $user_id |
|
3682 | + */ |
|
3683 | + public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) { |
|
3684 | 3684 | |
3685 | 3685 | |
3686 | - $lesson_id = empty( $lesson_id ) ? get_the_ID() : $lesson_id; |
|
3687 | - $user_id = empty( $lesson_id ) ? get_current_user_id() : $user_id; |
|
3688 | - $lesson_prerequisite = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true ); |
|
3689 | - $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true ); |
|
3690 | - $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id ); |
|
3691 | - $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id ); |
|
3692 | - $show_actions = is_user_logged_in() ? true : false; |
|
3686 | + $lesson_id = empty( $lesson_id ) ? get_the_ID() : $lesson_id; |
|
3687 | + $user_id = empty( $lesson_id ) ? get_current_user_id() : $user_id; |
|
3688 | + $lesson_prerequisite = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true ); |
|
3689 | + $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true ); |
|
3690 | + $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id ); |
|
3691 | + $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id ); |
|
3692 | + $show_actions = is_user_logged_in() ? true : false; |
|
3693 | 3693 | |
3694 | - if( intval( $lesson_prerequisite ) > 0 ) { |
|
3694 | + if( intval( $lesson_prerequisite ) > 0 ) { |
|
3695 | 3695 | |
3696 | - // If the user hasn't completed the prereq then hide the current actions |
|
3697 | - $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id ); |
|
3696 | + // If the user hasn't completed the prereq then hide the current actions |
|
3697 | + $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id ); |
|
3698 | 3698 | |
3699 | - } |
|
3700 | - ?> |
|
3699 | + } |
|
3700 | + ?> |
|
3701 | 3701 | |
3702 | 3702 | <footer> |
3703 | 3703 | |
3704 | 3704 | <?php |
3705 | - if( $show_actions && $quiz_id && Sensei()->access_settings() ) { |
|
3705 | + if( $show_actions && $quiz_id && Sensei()->access_settings() ) { |
|
3706 | 3706 | |
3707 | - $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true ); |
|
3708 | - if( $has_quiz_questions ) { |
|
3709 | - ?> |
|
3707 | + $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true ); |
|
3708 | + if( $has_quiz_questions ) { |
|
3709 | + ?> |
|
3710 | 3710 | |
3711 | 3711 | <p> |
3712 | 3712 | |
@@ -3721,105 +3721,105 @@ discard block |
||
3721 | 3721 | </p> |
3722 | 3722 | |
3723 | 3723 | <?php |
3724 | - } |
|
3724 | + } |
|
3725 | 3725 | |
3726 | - } // End If Statement |
|
3726 | + } // End If Statement |
|
3727 | 3727 | |
3728 | - if ( $show_actions && ! $has_user_completed_lesson ) { |
|
3728 | + if ( $show_actions && ! $has_user_completed_lesson ) { |
|
3729 | 3729 | |
3730 | - sensei_complete_lesson_button(); |
|
3730 | + sensei_complete_lesson_button(); |
|
3731 | 3731 | |
3732 | - } elseif( $show_actions ) { |
|
3732 | + } elseif( $show_actions ) { |
|
3733 | 3733 | |
3734 | - sensei_reset_lesson_button(); |
|
3734 | + sensei_reset_lesson_button(); |
|
3735 | 3735 | |
3736 | - } // End If Statement |
|
3737 | - ?> |
|
3736 | + } // End If Statement |
|
3737 | + ?> |
|
3738 | 3738 | |
3739 | 3739 | </footer> |
3740 | 3740 | |
3741 | 3741 | <?php |
3742 | - } // End sensei_lesson_quiz_meta() |
|
3742 | + } // End sensei_lesson_quiz_meta() |
|
3743 | 3743 | |
3744 | - /** |
|
3745 | - * Show the lesson comments. This should be used in the loop. |
|
3746 | - * |
|
3747 | - * @since 1.9.0 |
|
3748 | - */ |
|
3749 | - public static function output_comments(){ |
|
3744 | + /** |
|
3745 | + * Show the lesson comments. This should be used in the loop. |
|
3746 | + * |
|
3747 | + * @since 1.9.0 |
|
3748 | + */ |
|
3749 | + public static function output_comments(){ |
|
3750 | 3750 | |
3751 | - if( ! is_user_logged_in() ){ |
|
3752 | - return; |
|
3753 | - } |
|
3751 | + if( ! is_user_logged_in() ){ |
|
3752 | + return; |
|
3753 | + } |
|
3754 | 3754 | |
3755 | - $pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() ); |
|
3756 | - $course_id = Sensei()->lesson->get_course_id( get_the_ID() ); |
|
3757 | - $allow_comments = Sensei()->settings->settings[ 'lesson_comments' ]; |
|
3758 | - $user_taking_course = Sensei_Utils::user_started_course($course_id ); |
|
3755 | + $pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() ); |
|
3756 | + $course_id = Sensei()->lesson->get_course_id( get_the_ID() ); |
|
3757 | + $allow_comments = Sensei()->settings->settings[ 'lesson_comments' ]; |
|
3758 | + $user_taking_course = Sensei_Utils::user_started_course($course_id ); |
|
3759 | 3759 | |
3760 | - $lesson_allow_comments = $allow_comments && $pre_requisite_complete && $user_taking_course; |
|
3760 | + $lesson_allow_comments = $allow_comments && $pre_requisite_complete && $user_taking_course; |
|
3761 | 3761 | |
3762 | - if ( $lesson_allow_comments || is_singular( 'sensei_message' ) ) { |
|
3762 | + if ( $lesson_allow_comments || is_singular( 'sensei_message' ) ) { |
|
3763 | 3763 | |
3764 | - comments_template(); |
|
3764 | + comments_template(); |
|
3765 | 3765 | |
3766 | - } // End If Statement |
|
3766 | + } // End If Statement |
|
3767 | 3767 | |
3768 | - } //output_comments |
|
3768 | + } //output_comments |
|
3769 | 3769 | |
3770 | - /** |
|
3771 | - * Display the leeson quiz status if it should be shown |
|
3772 | - * |
|
3773 | - * @param int $lesson_id defaults to the global lesson id |
|
3774 | - * @param int $user_id defaults to the current user id |
|
3775 | - * |
|
3776 | - * @since 1.9.0 |
|
3777 | - */ |
|
3778 | - public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){ |
|
3770 | + /** |
|
3771 | + * Display the leeson quiz status if it should be shown |
|
3772 | + * |
|
3773 | + * @param int $lesson_id defaults to the global lesson id |
|
3774 | + * @param int $user_id defaults to the current user id |
|
3775 | + * |
|
3776 | + * @since 1.9.0 |
|
3777 | + */ |
|
3778 | + public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){ |
|
3779 | 3779 | |
3780 | - $lesson_id = empty( $lesson_id ) ? get_the_ID() : $lesson_id; |
|
3781 | - $user_id = empty( $lesson_id ) ? get_current_user_id() : $user_id; |
|
3782 | - $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true ); |
|
3783 | - $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id ); |
|
3784 | - $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id ); |
|
3780 | + $lesson_id = empty( $lesson_id ) ? get_the_ID() : $lesson_id; |
|
3781 | + $user_id = empty( $lesson_id ) ? get_current_user_id() : $user_id; |
|
3782 | + $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true ); |
|
3783 | + $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id ); |
|
3784 | + $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id ); |
|
3785 | 3785 | |
3786 | 3786 | |
3787 | - if ( $quiz_id && is_user_logged_in() |
|
3788 | - && Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) { |
|
3787 | + if ( $quiz_id && is_user_logged_in() |
|
3788 | + && Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) { |
|
3789 | 3789 | |
3790 | - $no_quiz_count = 0; |
|
3791 | - $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true ); |
|
3790 | + $no_quiz_count = 0; |
|
3791 | + $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true ); |
|
3792 | 3792 | |
3793 | - // Display lesson quiz status message |
|
3794 | - if ( $has_user_completed_lesson || $has_quiz_questions ) { |
|
3795 | - $status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true ); |
|
3796 | - echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>'; |
|
3797 | - if( $has_quiz_questions ) { |
|
3798 | - // echo $status['extra']; |
|
3799 | - } // End If Statement |
|
3800 | - } // End If Statement |
|
3793 | + // Display lesson quiz status message |
|
3794 | + if ( $has_user_completed_lesson || $has_quiz_questions ) { |
|
3795 | + $status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true ); |
|
3796 | + echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>'; |
|
3797 | + if( $has_quiz_questions ) { |
|
3798 | + // echo $status['extra']; |
|
3799 | + } // End If Statement |
|
3800 | + } // End If Statement |
|
3801 | 3801 | |
3802 | - } |
|
3802 | + } |
|
3803 | 3803 | |
3804 | - } |
|
3804 | + } |
|
3805 | 3805 | |
3806 | - /** |
|
3807 | - * On the lesson archive limit the number of words the show up if the access settings are enabled |
|
3808 | - * |
|
3809 | - * @since 1.9.0 |
|
3810 | - * @param $content |
|
3811 | - * @return string |
|
3812 | - */ |
|
3813 | - public static function limit_archive_content ( $content ){ |
|
3806 | + /** |
|
3807 | + * On the lesson archive limit the number of words the show up if the access settings are enabled |
|
3808 | + * |
|
3809 | + * @since 1.9.0 |
|
3810 | + * @param $content |
|
3811 | + * @return string |
|
3812 | + */ |
|
3813 | + public static function limit_archive_content ( $content ){ |
|
3814 | 3814 | |
3815 | - if( is_archive('lesson') && Sensei()->settings->get('access_permission') ){ |
|
3815 | + if( is_archive('lesson') && Sensei()->settings->get('access_permission') ){ |
|
3816 | 3816 | |
3817 | - return wp_trim_words( $content, $num_words = 30, $more = '…' ); |
|
3818 | - } |
|
3817 | + return wp_trim_words( $content, $num_words = 30, $more = '…' ); |
|
3818 | + } |
|
3819 | 3819 | |
3820 | - return $content; |
|
3820 | + return $content; |
|
3821 | 3821 | |
3822 | - } // end limit_archive_content |
|
3822 | + } // end limit_archive_content |
|
3823 | 3823 | |
3824 | 3824 | } // End Class |
3825 | 3825 |