Completed
Push — master ( 7d92ba...201c1b )
by Dwain
05:05
created
apigen/hook-docs.php 2 patches
Doc Comments   +3 added lines patch added patch discarded remove patch
@@ -10,6 +10,9 @@
 block discarded – undo
10 10
 	private static $found_files            = array();
11 11
 	private static $custom_hooks_found     = '';
12 12
 
13
+	/**
14
+	 * @param string $pattern
15
+	 */
13 16
 	private static function get_files( $pattern, $flags = 0, $path = '' ) {
14 17
 
15 18
 	    if ( ! $path && ( $dir = dirname( $pattern ) ) != '.' ) {
Please login to merge, or discard this patch.
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -12,20 +12,20 @@  discard block
 block discarded – undo
12 12
 
13 13
 	private static function get_files( $pattern, $flags = 0, $path = '' ) {
14 14
 
15
-	    if ( ! $path && ( $dir = dirname( $pattern ) ) != '.' ) {
15
+		if ( ! $path && ( $dir = dirname( $pattern ) ) != '.' ) {
16 16
 
17
-	        if ($dir == '\\' || $dir == '/') { $dir = ''; } // End IF Statement
17
+			if ($dir == '\\' || $dir == '/') { $dir = ''; } // End IF Statement
18 18
 
19
-	        return self::get_files(basename( $pattern ), $flags, $dir . '/' );
19
+			return self::get_files(basename( $pattern ), $flags, $dir . '/' );
20 20
 
21
-	    } // End IF Statement
21
+		} // End IF Statement
22 22
 
23
-	    $paths = glob( $path . '*', GLOB_ONLYDIR | GLOB_NOSORT );
24
-	    $files = glob( $path . $pattern, $flags );
23
+		$paths = glob( $path . '*', GLOB_ONLYDIR | GLOB_NOSORT );
24
+		$files = glob( $path . $pattern, $flags );
25 25
 
26
-	    if ( is_array( $paths ) ) {
27
-		    foreach ( $paths as $p ) {
28
-			    $found_files = array();
26
+		if ( is_array( $paths ) ) {
27
+			foreach ( $paths as $p ) {
28
+				$found_files = array();
29 29
 		   		$retrieved_files = (array) self::get_files( $pattern, $flags, $p . '/' );
30 30
 		   		foreach ( $retrieved_files as $file ) {
31 31
 			   		if ( ! in_array( $file, self::$found_files ) )
@@ -38,10 +38,10 @@  discard block
 block discarded – undo
38 38
 		   			$files = array_merge( $files, $found_files );
39 39
 		   		}
40 40
 
41
-		    } // End FOREACH Loop
42
-	    }
43
-	    return $files;
44
-    }
41
+			} // End FOREACH Loop
42
+		}
43
+		return $files;
44
+	}
45 45
 
46 46
 	private static function get_hook_link( $hook, $details = array() ) {
47 47
 		if ( ! empty( $details['class'] ) ) {
@@ -126,7 +126,7 @@  discard block
 block discarded – undo
126 126
 									if ( isset( self::$custom_hooks_found[ $hook ] ) ) {
127 127
 										self::$custom_hooks_found[ $hook ]['file'][] = self::$current_file;
128 128
 									} else {
129
-    									self::$custom_hooks_found[ $hook ] = array(
129
+										self::$custom_hooks_found[ $hook ] = array(
130 130
 											'line'     => $token[2],
131 131
 											'class'    => $current_class,
132 132
 											'function' => $current_function,
Please login to merge, or discard this patch.
includes/class-sensei-analysis.php 2 patches
Doc Comments   +8 added lines, -1 removed lines patch added patch discarded remove patch
@@ -21,6 +21,7 @@  discard block
 block discarded – undo
21 21
 	/**
22 22
 	 * Constructor
23 23
 	 * @since  1.0.0
24
+	 * @param string $file
24 25
 	 * @return  void
25 26
 	 */
26 27
 	public function __construct ( $file ) {
@@ -215,6 +216,7 @@  discard block
 block discarded – undo
215 216
 	/**
216 217
 	 * An individual users' profile view for analysis, showing their Courses
217 218
 	 * @since  1.2.0
219
+	 * @param integer $user_id
218 220
 	 * @return void
219 221
 	 */
220 222
 	public function analysis_user_profile_view( $user_id ) {
@@ -242,6 +244,7 @@  discard block
 block discarded – undo
242 244
 	/**
243 245
 	 * An individual Course view for analysis, showing the Courses Lessons
244 246
 	 * @since  1.2.0
247
+	 * @param integer $course_id
245 248
 	 * @return void
246 249
 	 */
247 250
 	public function analysis_course_view( $course_id ) {
@@ -269,6 +272,8 @@  discard block
 block discarded – undo
269 272
 	/**
270 273
 	 * An individual Course view for analysis, showing a specific Learners Lessons
271 274
 	 * @since  1.2.0
275
+	 * @param integer $course_id
276
+	 * @param integer $user_id
272 277
 	 * @return void
273 278
 	 */
274 279
 	public function analysis_user_course_view( $course_id, $user_id ) {
@@ -296,6 +301,7 @@  discard block
 block discarded – undo
296 301
 	/**
297 302
 	 * An individual Course view for analysis, showing all the Learners
298 303
 	 * @since  1.2.0
304
+	 * @param integer $course_id
299 305
 	 * @return void
300 306
 	 */
301 307
 	public function analysis_course_users_view( $course_id ) {
@@ -323,6 +329,7 @@  discard block
 block discarded – undo
323 329
 	/**
324 330
 	 * An individual Lesson view for analysis, showing all the Learners
325 331
 	 * @since  1.2.0
332
+	 * @param integer $lesson_id
326 333
 	 * @return void
327 334
 	 */
328 335
 	public function analysis_lesson_users_view( $lesson_id ) {
@@ -633,7 +640,7 @@  discard block
 block discarded – undo
633 640
 	/**
634 641
 	 * Write array data to CSV
635 642
 	 * @since  1.2.0
636
-	 * @param  array  $report_array data array
643
+	 * @param  array  $report_data data array
637 644
 	 * @return void
638 645
 	 */
639 646
 	public function report_write_download( $report_data = array() ) {
Please login to merge, or discard this patch.
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -55,7 +55,7 @@  discard block
 block discarded – undo
55 55
 
56 56
 		if ( current_user_can( 'manage_sensei_grades' ) ) {
57 57
 
58
-            add_submenu_page( 'sensei', __('Analysis', 'woothemes-sensei'),  __('Analysis', 'woothemes-sensei') , 'manage_sensei_grades', 'sensei_analysis', array( $this, 'analysis_page' ) );
58
+			add_submenu_page( 'sensei', __('Analysis', 'woothemes-sensei'),  __('Analysis', 'woothemes-sensei') , 'manage_sensei_grades', 'sensei_analysis', array( $this, 'analysis_page' ) );
59 59
 
60 60
 		}
61 61
 
@@ -105,7 +105,7 @@  discard block
 block discarded – undo
105 105
 									'analysis-lesson'
106 106
 									);
107 107
 		foreach ( $classes_to_load as $class_file ) {
108
-            Sensei()->load_class( $class_file );
108
+			Sensei()->load_class( $class_file );
109 109
 		} // End For Loop
110 110
 	} // End load_data_table_files()
111 111
 
@@ -443,7 +443,7 @@  discard block
 block discarded – undo
443 443
 
444 444
 			$user_id = intval( $_GET['user_id'] );
445 445
 			$url = esc_url( add_query_arg( array( 'page' => $this->page_slug, 'user' => $user_id ), admin_url( 'admin.php' ) ) );
446
-            $user_name = Sensei()->learners->get_learner_full_name( $user_id );
446
+			$user_name = Sensei()->learners->get_learner_full_name( $user_id );
447 447
 			$title .= sprintf( '&nbsp;&nbsp;<span class="user-title">&gt;&nbsp;&nbsp;<a href="%s">%s</a></span>', $url, $user_name );
448 448
 
449 449
 		} // End If Statement
@@ -464,8 +464,8 @@  discard block
 block discarded – undo
464 464
 			$user_id = intval( $_GET['user_id'] );
465 465
 			$user_data = get_userdata( $user_id );
466 466
 			$url = add_query_arg( array( 'page' => $this->page_slug, 'user_id' => $user_id ), admin_url( 'admin.php' ) );
467
-            $user_name = Sensei()->learners->get_learner_full_name( $user_id );
468
-            $title .= sprintf( '&nbsp;&nbsp;<span class="user-title">&gt;&nbsp;&nbsp;<a href="%s">%s</a></span>', $url, $user_name );
467
+			$user_name = Sensei()->learners->get_learner_full_name( $user_id );
468
+			$title .= sprintf( '&nbsp;&nbsp;<span class="user-title">&gt;&nbsp;&nbsp;<a href="%s">%s</a></span>', $url, $user_name );
469 469
 			$title .= sprintf( '&nbsp;&nbsp;<span class="user-title">&gt;&nbsp;&nbsp;<a href="%s">%s</a></span>', esc_url( $url ), $user_data->display_name );
470 470
 		} // End If Statement
471 471
 		if ( isset( $_GET['course_id'] ) ) { 
Please login to merge, or discard this patch.
includes/class-sensei-course.php 2 patches
Doc Comments   +1 added lines, -3 removed lines patch added patch discarded remove patch
@@ -372,7 +372,7 @@  discard block
 block discarded – undo
372 372
 	 *
373 373
 	 * @access public
374 374
 	 * @param int $post_id
375
-	 * @return void
375
+	 * @return integer|null
376 376
 	 */
377 377
 	public function meta_box_save ( $post_id ) {
378 378
 		global $post, $messages;
@@ -848,7 +848,6 @@  discard block
 block discarded – undo
848 848
 	 * course_count function.
849 849
 	 *
850 850
 	 * @access public
851
-	 * @param array $exclude (default: array())
852 851
 	 * @param string $post_status (default: 'publish')
853 852
 	 * @return int
854 853
 	 */
@@ -1159,7 +1158,6 @@  discard block
 block discarded – undo
1159 1158
      *
1160 1159
 	 * @since  1.4.0
1161 1160
 	 * @param  object  $user   Queried user object
1162
-	 * @param  boolean $manage Whether the user has permission to manage the courses
1163 1161
 	 * @return string          HTML displayng course data
1164 1162
 	 */
1165 1163
 	public function load_user_courses_content( $user = false ) {
Please login to merge, or discard this patch.
Indentation   +1385 added lines, -1385 removed lines patch added patch discarded remove patch
@@ -13,21 +13,21 @@  discard block
 block discarded – undo
13 13
  * @since 1.0.0
14 14
  */
15 15
 class Sensei_Course {
16
-    /**
17
-     * @var $token
18
-     */
16
+	/**
17
+	 * @var $token
18
+	 */
19 19
 	public $token;
20 20
 
21
-    /**
22
-     * @var array $meta_fields
23
-     */
21
+	/**
22
+	 * @var array $meta_fields
23
+	 */
24 24
 	public $meta_fields;
25 25
 
26
-    /**
27
-     * @var string|bool $my_courses_page reference to the sites
28
-     * my courses page, false if none was set
29
-     */
30
-    public  $my_courses_page;
26
+	/**
27
+	 * @var string|bool $my_courses_page reference to the sites
28
+	 * my courses page, false if none was set
29
+	 */
30
+	public  $my_courses_page;
31 31
 
32 32
 	/**
33 33
 	 * Constructor.
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
 		// Admin actions
40 40
 		if ( is_admin() ) {
41 41
 			// Metabox functions
42
-            add_action( 'add_meta_boxes', array( $this, 'meta_box_setup' ), 20 );
42
+			add_action( 'add_meta_boxes', array( $this, 'meta_box_setup' ), 20 );
43 43
 			add_action( 'save_post', array( $this, 'meta_box_save' ) );
44 44
 			// Custom Write Panel Columns
45 45
 			add_filter( 'manage_edit-course_columns', array( $this, 'add_column_headings' ), 10, 1 );
@@ -55,47 +55,47 @@  discard block
 block discarded – undo
55 55
 		// Update course completion upon grading of a quiz
56 56
 		add_action( 'sensei_user_quiz_grade', array( $this, 'update_status_after_quiz_submission' ), 10, 2 );
57 57
 
58
-        // show the progress bar ont he single course page
59
-        add_action( 'sensei_single_course_content_inside_before' , array( $this, 'the_progress_statement' ), 15 );
60
-        add_action( 'sensei_single_course_content_inside_before' , array( $this, 'the_progress_meter' ), 16 );
58
+		// show the progress bar ont he single course page
59
+		add_action( 'sensei_single_course_content_inside_before' , array( $this, 'the_progress_statement' ), 15 );
60
+		add_action( 'sensei_single_course_content_inside_before' , array( $this, 'the_progress_meter' ), 16 );
61 61
 
62
-        // provide an option to block all emails related to a selected course
63
-        add_filter( 'sensei_send_emails', array( $this, 'block_notification_emails' ) );
64
-        add_action( 'save_post', array( $this, 'save_course_notification_meta_box' ) );
62
+		// provide an option to block all emails related to a selected course
63
+		add_filter( 'sensei_send_emails', array( $this, 'block_notification_emails' ) );
64
+		add_action( 'save_post', array( $this, 'save_course_notification_meta_box' ) );
65 65
 
66
-        // preview lessons on the course content
67
-        add_action( 'sensei_course_content_inside_after',array( $this, 'the_course_free_lesson_preview' ) );
66
+		// preview lessons on the course content
67
+		add_action( 'sensei_course_content_inside_after',array( $this, 'the_course_free_lesson_preview' ) );
68 68
 
69
-        // the course meta
70
-        add_action('sensei_course_content_inside_before', array( $this, 'the_course_meta' ) );
69
+		// the course meta
70
+		add_action('sensei_course_content_inside_before', array( $this, 'the_course_meta' ) );
71 71
 
72
-        // backwards compatible template hooks
73
-        add_action('sensei_course_content_inside_before', array( $this, 'content_before_backwards_compatibility_hooks' ));
74
-        add_action('sensei_loop_course_before', array( $this,'loop_before_backwards_compatibility_hooks' ) );
72
+		// backwards compatible template hooks
73
+		add_action('sensei_course_content_inside_before', array( $this, 'content_before_backwards_compatibility_hooks' ));
74
+		add_action('sensei_loop_course_before', array( $this,'loop_before_backwards_compatibility_hooks' ) );
75 75
 
76
-        // add the user status on the course to the markup as a class
77
-        add_filter('post_class', array( __CLASS__ , 'add_course_user_status_class' ), 20, 3 );
76
+		// add the user status on the course to the markup as a class
77
+		add_filter('post_class', array( __CLASS__ , 'add_course_user_status_class' ), 20, 3 );
78 78
 
79
-        //filter the course query in Sensei specific instances
80
-        add_filter( 'pre_get_posts', array( __CLASS__, 'course_query_filter' ) );
79
+		//filter the course query in Sensei specific instances
80
+		add_filter( 'pre_get_posts', array( __CLASS__, 'course_query_filter' ) );
81 81
 
82
-        //attache the sorting to the course archive
83
-        add_action ( 'sensei_archive_before_course_loop' , array( 'Sensei_Course', 'course_archive_sorting' ) );
82
+		//attache the sorting to the course archive
83
+		add_action ( 'sensei_archive_before_course_loop' , array( 'Sensei_Course', 'course_archive_sorting' ) );
84 84
 
85
-        //attach the filter links to the course archive
86
-        add_action ( 'sensei_archive_before_course_loop' , array( 'Sensei_Course', 'course_archive_filters' ) );
85
+		//attach the filter links to the course archive
86
+		add_action ( 'sensei_archive_before_course_loop' , array( 'Sensei_Course', 'course_archive_filters' ) );
87 87
 
88
-        //filter the course query when featured filter is applied
89
-        add_filter( 'pre_get_posts',  array( __CLASS__, 'course_archive_featured_filter'));
88
+		//filter the course query when featured filter is applied
89
+		add_filter( 'pre_get_posts',  array( __CLASS__, 'course_archive_featured_filter'));
90 90
 
91
-        // handle the order by title post submission
92
-        add_filter( 'pre_get_posts',  array( __CLASS__, 'course_archive_order_by_title'));
91
+		// handle the order by title post submission
92
+		add_filter( 'pre_get_posts',  array( __CLASS__, 'course_archive_order_by_title'));
93 93
 
94
-        // ensure the course category page respects the manual order set for courses
95
-        add_filter( 'pre_get_posts',  array( __CLASS__, 'alter_course_category_order'));
94
+		// ensure the course category page respects the manual order set for courses
95
+		add_filter( 'pre_get_posts',  array( __CLASS__, 'alter_course_category_order'));
96 96
 
97
-        // flush rewrite rules when saving a course
98
-        add_action('save_post', array( 'Sensei_Course', 'flush_rewrite_rules' ) );
97
+		// flush rewrite rules when saving a course
98
+		add_action('save_post', array( 'Sensei_Course', 'flush_rewrite_rules' ) );
99 99
 
100 100
 	} // End __construct()
101 101
 
@@ -148,13 +148,13 @@  discard block
 block discarded – undo
148 148
 		add_meta_box( 'course-video', __( 'Course Video', 'woothemes-sensei' ), array( $this, 'course_video_meta_box_content' ), $this->token, 'normal', 'default' );
149 149
 		// Add Meta Box for Course Lessons
150 150
 		add_meta_box( 'course-lessons', __( 'Course Lessons', 'woothemes-sensei' ), array( $this, 'course_lessons_meta_box_content' ), $this->token, 'normal', 'default' );
151
-        // Add Meta Box to link to Manage Learners
152
-        add_meta_box( 'course-manage', __( 'Course Management', 'woothemes-sensei' ), array( $this, 'course_manage_meta_box_content' ), $this->token, 'side', 'default' );
153
-        // Remove "Custom Settings" meta box.
151
+		// Add Meta Box to link to Manage Learners
152
+		add_meta_box( 'course-manage', __( 'Course Management', 'woothemes-sensei' ), array( $this, 'course_manage_meta_box_content' ), $this->token, 'side', 'default' );
153
+		// Remove "Custom Settings" meta box.
154 154
 		remove_meta_box( 'woothemes-settings', $this->token, 'normal' );
155 155
 
156
-        // add Disable email notification box
157
-        add_meta_box( 'course-notifications', __( 'Course Notifications', 'woothemes-sensei' ), array( $this, 'course_notification_meta_box_content' ), 'course', 'normal', 'default' );
156
+		// add Disable email notification box
157
+		add_meta_box( 'course-notifications', __( 'Course Notifications', 'woothemes-sensei' ), array( $this, 'course_notification_meta_box_content' ), 'course', 'normal', 'default' );
158 158
 
159 159
 	} // End meta_box_setup()
160 160
 
@@ -172,10 +172,10 @@  discard block
 block discarded – undo
172 172
 		$post_args = array(	'post_type' 		=> array( 'product', 'product_variation' ),
173 173
 							'posts_per_page' 		=> -1,
174 174
 							'orderby'         	=> 'title',
175
-    						'order'           	=> 'DESC',
176
-    						'exclude' 			=> $post->ID,
177
-    						'post_status'		=> array( 'publish', 'private', 'draft' ),
178
-    						'tax_query'			=> array(
175
+							'order'           	=> 'DESC',
176
+							'exclude' 			=> $post->ID,
177
+							'post_status'		=> array( 'publish', 'private', 'draft' ),
178
+							'tax_query'			=> array(
179 179
 								array(
180 180
 									'taxonomy'	=> 'product_type',
181 181
 									'field'		=> 'slug',
@@ -203,21 +203,21 @@  discard block
 block discarded – undo
203 203
 						$product_object = get_product( $post_item->ID );
204 204
 						$parent_id = wp_get_post_parent_id( $post_item->ID );
205 205
 
206
-                        if( sensei_check_woocommerce_version( '2.1' ) ) {
206
+						if( sensei_check_woocommerce_version( '2.1' ) ) {
207 207
 							$formatted_variation = wc_get_formatted_variation( $product_object->variation_data, true );
208 208
 
209 209
 						} else {
210
-                            // fall back to pre wc 2.1
210
+							// fall back to pre wc 2.1
211 211
 							$formatted_variation = woocommerce_get_formatted_variation( $product_object->variation_data, true );
212 212
 
213 213
 						}
214 214
 
215
-                        $product_name = ucwords( $formatted_variation );
216
-                        if( empty( $product_name ) ){
215
+						$product_name = ucwords( $formatted_variation );
216
+						if( empty( $product_name ) ){
217 217
 
218
-                            $product_name = __( 'Variation #', 'woothemes-sensei' ) . $product_object->variation_id;
218
+							$product_name = __( 'Variation #', 'woothemes-sensei' ) . $product_object->variation_id;
219 219
 
220
-                        }
220
+						}
221 221
 
222 222
 					} else {
223 223
 
@@ -267,7 +267,7 @@  discard block
 block discarded – undo
267 267
 
268 268
 			} else {
269 269
 
270
-                $html .= '<p>' . "\n";
270
+				$html .= '<p>' . "\n";
271 271
 					$html .= esc_html( __( 'No products exist yet.', 'woothemes-sensei' ) ) . "\n";
272 272
 				$html .= '</p>'."\n";
273 273
 
@@ -293,8 +293,8 @@  discard block
 block discarded – undo
293 293
 		$post_args = array(	'post_type' 		=> 'course',
294 294
 							'posts_per_page' 		=> -1,
295 295
 							'orderby'         	=> 'title',
296
-    						'order'           	=> 'DESC',
297
-    						'exclude' 			=> $post->ID,
296
+							'order'           	=> 'DESC',
297
+							'exclude' 			=> $post->ID,
298 298
 							'suppress_filters' 	=> 0
299 299
 							);
300 300
 		$posts_array = get_posts( $post_args );
@@ -335,7 +335,7 @@  discard block
 block discarded – undo
335 335
 
336 336
 		$checked = '';
337 337
 		if ( isset( $course_featured ) && ( '' != $course_featured ) ) {
338
-	 	    $checked = checked( 'featured', $course_featured, false );
338
+	 		$checked = checked( 'featured', $course_featured, false );
339 339
 	 	} // End If Statement
340 340
 
341 341
 	 	$html .= '<input type="checkbox" name="course_featured" value="featured" ' . $checked . '>&nbsp;' . __( 'Feature this course', 'woothemes-sensei' ) . '<br>';
@@ -430,8 +430,8 @@  discard block
 block discarded – undo
430 430
 			$new_meta_value = ( isset( $_POST[$post_key] ) ? sanitize_html_class( $_POST[$post_key] ) : '' );
431 431
 		} // End If Statement
432 432
 
433
-        // update field with the new value
434
-        return update_post_meta( $post_id, $meta_key, $new_meta_value );
433
+		// update field with the new value
434
+		return update_post_meta( $post_id, $meta_key, $new_meta_value );
435 435
 
436 436
 	} // End save_post_meta()
437 437
 
@@ -455,8 +455,8 @@  discard block
 block discarded – undo
455 455
 
456 456
 		$html = '';
457 457
 		$html .= '<input type="hidden" name="' . esc_attr( 'woo_' . $this->token . '_noonce' ) . '" id="'
458
-                 . esc_attr( 'woo_' . $this->token . '_noonce' )
459
-                 . '" value="' . esc_attr( wp_create_nonce( plugin_basename(__FILE__) ) ) . '" />';
458
+				 . esc_attr( 'woo_' . $this->token . '_noonce' )
459
+				 . '" value="' . esc_attr( wp_create_nonce( plugin_basename(__FILE__) ) ) . '" />';
460 460
 
461 461
 		if ( count( $posts_array ) > 0 ) {
462 462
 
@@ -477,8 +477,8 @@  discard block
 block discarded – undo
477 477
 			$html .= '<p>' . esc_html( __( 'No lessons exist yet for this course.', 'woothemes-sensei' ) ) . "\n";
478 478
 
479 479
 				$html .= '<a href="' . admin_url( 'post-new.php?post_type=lesson' . $course_id )
480
-                         . '" title="' . esc_attr( __( 'Add a Lesson', 'woothemes-sensei' ) ) . '">'
481
-                         . __( 'Please add some.', 'woothemes-sensei' ) . '</a>' . "\n";
480
+						 . '" title="' . esc_attr( __( 'Add a Lesson', 'woothemes-sensei' ) ) . '">'
481
+						 . __( 'Please add some.', 'woothemes-sensei' ) . '</a>' . "\n";
482 482
 
483 483
 			$html .= '</p>'."\n";
484 484
 		} // End If Statement
@@ -487,29 +487,29 @@  discard block
 block discarded – undo
487 487
 
488 488
 	} // End course_lessons_meta_box_content()
489 489
 
490
-    /**
491
-     * course_manage_meta_box_content function.
492
-     *
493
-     * @since 1.9.0
494
-     * @access public
495
-     * @return void
496
-     */
490
+	/**
491
+	 * course_manage_meta_box_content function.
492
+	 *
493
+	 * @since 1.9.0
494
+	 * @access public
495
+	 * @return void
496
+	 */
497 497
 
498
-    public function course_manage_meta_box_content () {
499
-        global $post;
498
+	public function course_manage_meta_box_content () {
499
+		global $post;
500 500
         
501
-        $manage_url = esc_url( add_query_arg( array( 'page' => 'sensei_learners', 'course_id' => $post->ID, 'view' => 'learners' ), admin_url( 'admin.php') ) );
501
+		$manage_url = esc_url( add_query_arg( array( 'page' => 'sensei_learners', 'course_id' => $post->ID, 'view' => 'learners' ), admin_url( 'admin.php') ) );
502 502
 
503
-        $grading_url = esc_url( add_query_arg( array( 'page' => 'sensei_grading', 'course_id' => $post->ID, 'view' => 'learners' ), admin_url( 'admin.php') ) );
503
+		$grading_url = esc_url( add_query_arg( array( 'page' => 'sensei_grading', 'course_id' => $post->ID, 'view' => 'learners' ), admin_url( 'admin.php') ) );
504 504
 
505 505
 
506
-        echo "<ul><li><a href='$manage_url'>".__("Manage Learners", 'woothemes-sensei')."</a></li>";
506
+		echo "<ul><li><a href='$manage_url'>".__("Manage Learners", 'woothemes-sensei')."</a></li>";
507 507
 
508
-        echo "<li><a href='$grading_url'>".__("Manage Grading", 'woothemes-sensei')."</a></li></ul>";
508
+		echo "<li><a href='$grading_url'>".__("Manage Grading", 'woothemes-sensei')."</a></li></ul>";
509 509
 
510 510
 
511 511
 
512
-    } // End course_manage_meta_box_content()
512
+	} // End course_manage_meta_box_content()
513 513
 
514 514
 	/**
515 515
 	 * Add column headings to the "lesson" post list screen.
@@ -650,92 +650,92 @@  discard block
 block discarded – undo
650 650
 			} // End If Statement
651 651
 		} // End If Statement
652 652
 
653
-        $stored_order = get_option( 'sensei_course_order', '' );
654
-        $order = 'ASC';
655
-        $orderby = 'menu_order';
656
-        if( empty( $stored_order ) ){
653
+		$stored_order = get_option( 'sensei_course_order', '' );
654
+		$order = 'ASC';
655
+		$orderby = 'menu_order';
656
+		if( empty( $stored_order ) ){
657 657
 
658
-            $order = 'DESC';
659
-            $orderby = 'date';
658
+			$order = 'DESC';
659
+			$orderby = 'date';
660 660
 
661
-        }
661
+		}
662 662
 
663 663
 		switch ($type) {
664 664
 
665 665
 			case 'usercourses':
666 666
 				$post_args = array(	'post_type' 		=> 'course',
667 667
 									'orderby'         	=> $orderby,
668
-    								'order'           	=> $order,
669
-    								'post_status'      	=> 'publish',
670
-    								'include'			=> $includes,
671
-    								'exclude'			=> $excludes,
672
-    								'suppress_filters' 	=> 0
668
+									'order'           	=> $order,
669
+									'post_status'      	=> 'publish',
670
+									'include'			=> $includes,
671
+									'exclude'			=> $excludes,
672
+									'suppress_filters' 	=> 0
673 673
 									);
674 674
 				break;
675 675
 			case 'freecourses':
676 676
 
677
-                $post_args = array(
678
-                    'post_type' 		=> 'course',
679
-                    'orderby'         	=> $orderby,
680
-                    'order'           	=> $order,
681
-                    'post_status'      	=> 'publish',
682
-                    'exclude'			=> $excludes,
683
-                    'suppress_filters' 	=> 0
684
-                );
685
-                // Sub Query to get all WooCommerce Products that have Zero price
686
-                $post_args['meta_query'] = Sensei_WC::get_free_courses_meta_query_args();
677
+				$post_args = array(
678
+					'post_type' 		=> 'course',
679
+					'orderby'         	=> $orderby,
680
+					'order'           	=> $order,
681
+					'post_status'      	=> 'publish',
682
+					'exclude'			=> $excludes,
683
+					'suppress_filters' 	=> 0
684
+				);
685
+				// Sub Query to get all WooCommerce Products that have Zero price
686
+				$post_args['meta_query'] = Sensei_WC::get_free_courses_meta_query_args();
687 687
 
688
-                break;
688
+				break;
689 689
 
690 690
 			case 'paidcourses':
691 691
 
692
-                $post_args = array(
693
-                    'post_type' 		=> 'course',
694
-                    'orderby'         	=> $orderby,
695
-                    'order'           	=> $order,
696
-                    'post_status'      	=> 'publish',
697
-                    'exclude'			=> $excludes,
698
-                    'suppress_filters' 	=> 0
699
-                );
692
+				$post_args = array(
693
+					'post_type' 		=> 'course',
694
+					'orderby'         	=> $orderby,
695
+					'order'           	=> $order,
696
+					'post_status'      	=> 'publish',
697
+					'exclude'			=> $excludes,
698
+					'suppress_filters' 	=> 0
699
+				);
700 700
 
701
-                // Sub Query to get all WooCommerce Products that have price greater than zero
702
-                $post_args['meta_query'] = Sensei_WC::get_paid_courses_meta_query_args();
701
+				// Sub Query to get all WooCommerce Products that have price greater than zero
702
+				$post_args['meta_query'] = Sensei_WC::get_paid_courses_meta_query_args();
703 703
 
704 704
 				break;
705 705
 
706 706
 			case 'featuredcourses':
707
-                $post_args = array(	'post_type' 		=> 'course',
708
-                                    'orderby'         	=> $orderby,
709
-                                    'order'           	=> $order,
710
-    								'post_status'      	=> 'publish',
711
-    								'meta_value' 		=> 'featured',
712
-    								'meta_key' 			=> '_course_featured',
713
-    								'meta_compare' 		=> '=',
714
-    								'exclude'			=> $excludes,
715
-    								'suppress_filters' 	=> 0
707
+				$post_args = array(	'post_type' 		=> 'course',
708
+									'orderby'         	=> $orderby,
709
+									'order'           	=> $order,
710
+									'post_status'      	=> 'publish',
711
+									'meta_value' 		=> 'featured',
712
+									'meta_key' 			=> '_course_featured',
713
+									'meta_compare' 		=> '=',
714
+									'exclude'			=> $excludes,
715
+									'suppress_filters' 	=> 0
716 716
 									);
717 717
 				break;
718 718
 			default:
719 719
 				$post_args = array(	'post_type' 		=> 'course',
720
-                                    'orderby'         	=> $orderby,
721
-                                    'order'           	=> $order,
722
-    								'post_status'      	=> 'publish',
723
-    								'exclude'			=> $excludes,
724
-    								'suppress_filters' 	=> 0
720
+									'orderby'         	=> $orderby,
721
+									'order'           	=> $order,
722
+									'post_status'      	=> 'publish',
723
+									'exclude'			=> $excludes,
724
+									'suppress_filters' 	=> 0
725 725
 									);
726 726
 				break;
727 727
 
728 728
 		}
729 729
 
730
-        $post_args['posts_per_page'] = $amount;
731
-        $paged = $wp_query->get( 'paged' );
732
-        $post_args['paged'] = empty( $paged) ? 1 : $paged;
730
+		$post_args['posts_per_page'] = $amount;
731
+		$paged = $wp_query->get( 'paged' );
732
+		$post_args['paged'] = empty( $paged) ? 1 : $paged;
733 733
 
734
-        if( 'newcourses' == $type ){
734
+		if( 'newcourses' == $type ){
735 735
 
736
-            $post_args[ 'orderby' ] = 'date';
737
-            $post_args[ 'order' ] = 'DESC';
738
-        }
736
+			$post_args[ 'orderby' ] = 'date';
737
+			$post_args[ 'order' ] = 'DESC';
738
+		}
739 739
 
740 740
 		return $post_args;
741 741
 	}
@@ -745,22 +745,22 @@  discard block
 block discarded – undo
745 745
 	 * course_image function.
746 746
 	 *
747 747
 	 * Outputs the courses image, or first image from a lesson within a course
748
-     *
749
-     * Will echo the image unless return true is specified.
748
+	 *
749
+	 * Will echo the image unless return true is specified.
750 750
 	 *
751 751
 	 * @access public
752 752
 	 * @param int | WP_Post $course_id (default: 0)
753 753
 	 * @param string $width (default: '100')
754 754
 	 * @param string $height (default: '100')
755
-     * @param bool $return default false
756
-     *
755
+	 * @param bool $return default false
756
+	 *
757 757
 	 * @return string | void
758 758
 	 */
759 759
 	public function course_image( $course_id = 0, $width = '100', $height = '100', $return = false ) {
760 760
 
761
-        if( is_a( $course_id, 'WP_Post' ) ){
762
-            $course_id = $course_id->ID;
763
-        }
761
+		if( is_a( $course_id, 'WP_Post' ) ){
762
+			$course_id = $course_id->ID;
763
+		}
764 764
 
765 765
 		$html = '';
766 766
 
@@ -817,7 +817,7 @@  discard block
 block discarded – undo
817 817
  				// Display Image Placeholder if none
818 818
 				if ( Sensei()->settings->get( 'placeholder_images_enable' ) ) {
819 819
 
820
-                    $img_url = apply_filters( 'sensei_course_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
820
+					$img_url = apply_filters( 'sensei_course_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
821 821
 
822 822
 				} // End If Statement
823 823
 
@@ -831,15 +831,15 @@  discard block
 block discarded – undo
831 831
 
832 832
 		} // End If Statement
833 833
 
834
-        if( $return ){
834
+		if( $return ){
835 835
 
836
-            return $html;
836
+			return $html;
837 837
 
838
-        }else{
838
+		}else{
839 839
 
840
-            echo $html;
840
+			echo $html;
841 841
 
842
-        }
842
+		}
843 843
 
844 844
 	} // End course_image()
845 845
 
@@ -883,9 +883,9 @@  discard block
 block discarded – undo
883 883
 	 */
884 884
 	public function course_lessons( $course_id = 0, $post_status = 'publish', $fields = 'all' ) {
885 885
 
886
-        if( is_a( $course_id, 'WP_Post' ) ){
887
-            $course_id = $course_id->ID;
888
-        }
886
+		if( is_a( $course_id, 'WP_Post' ) ){
887
+			$course_id = $course_id->ID;
888
+		}
889 889
 
890 890
 		$post_args = array(	'post_type'         => 'lesson',
891 891
 							'posts_per_page'       => -1,
@@ -901,67 +901,67 @@  discard block
 block discarded – undo
901 901
 							'suppress_filters'  => 0,
902 902
 							);
903 903
 		$query_results = new WP_Query( $post_args );
904
-        $lessons = $query_results->posts;
905
-
906
-        // re order the lessons. This could not be done via the OR meta query as there may be lessons
907
-        // with the course order for a different course and this should not be included. It could also not
908
-        // be done via the AND meta query as it excludes lesson that does not have the _order_$course_id but
909
-        // that have been added to the course.
910
-        if( count( $lessons) > 1  ){
911
-
912
-            foreach( $lessons as $lesson ){
913
-
914
-                $order = intval( get_post_meta( $lesson->ID, '_order_'. $course_id, true ) );
915
-                // for lessons with no order set it to be 10000 so that it show up at the end
916
-                $lesson->course_order = $order ? $order : 100000;
917
-            }
918
-
919
-            uasort( $lessons, array( $this, '_short_course_lessons_callback' )   );
920
-        }
921
-
922
-        /**
923
-         * Filter runs inside Sensei_Course::course_lessons function
924
-         *
925
-         * Returns all lessons for a given course
926
-         *
927
-         * @param array $lessons
928
-         * @param int $course_id
929
-         */
930
-        $lessons = apply_filters( 'sensei_course_get_lessons', $lessons, $course_id  );
931
-
932
-        //return the requested fields
933
-        // runs after the sensei_course_get_lessons filter so the filter always give an array of lesson
934
-        // objects
935
-        if( 'ids' == $fields ) {
936
-            $lesson_objects = $lessons;
937
-            $lessons = array();
938
-
939
-            foreach ($lesson_objects as $lesson) {
940
-                $lessons[] = $lesson->ID;
941
-            }
942
-        }
943
-
944
-        return $lessons;
904
+		$lessons = $query_results->posts;
905
+
906
+		// re order the lessons. This could not be done via the OR meta query as there may be lessons
907
+		// with the course order for a different course and this should not be included. It could also not
908
+		// be done via the AND meta query as it excludes lesson that does not have the _order_$course_id but
909
+		// that have been added to the course.
910
+		if( count( $lessons) > 1  ){
911
+
912
+			foreach( $lessons as $lesson ){
913
+
914
+				$order = intval( get_post_meta( $lesson->ID, '_order_'. $course_id, true ) );
915
+				// for lessons with no order set it to be 10000 so that it show up at the end
916
+				$lesson->course_order = $order ? $order : 100000;
917
+			}
918
+
919
+			uasort( $lessons, array( $this, '_short_course_lessons_callback' )   );
920
+		}
921
+
922
+		/**
923
+		 * Filter runs inside Sensei_Course::course_lessons function
924
+		 *
925
+		 * Returns all lessons for a given course
926
+		 *
927
+		 * @param array $lessons
928
+		 * @param int $course_id
929
+		 */
930
+		$lessons = apply_filters( 'sensei_course_get_lessons', $lessons, $course_id  );
931
+
932
+		//return the requested fields
933
+		// runs after the sensei_course_get_lessons filter so the filter always give an array of lesson
934
+		// objects
935
+		if( 'ids' == $fields ) {
936
+			$lesson_objects = $lessons;
937
+			$lessons = array();
938
+
939
+			foreach ($lesson_objects as $lesson) {
940
+				$lessons[] = $lesson->ID;
941
+			}
942
+		}
943
+
944
+		return $lessons;
945 945
 
946 946
 	} // End course_lessons()
947 947
 
948
-    /**
949
-     * Used for the uasort in $this->course_lessons()
950
-     * @since 1.8.0
951
-     * @access protected
952
-     *
953
-     * @param array $lesson_1
954
-     * @param array $lesson_2
955
-     * @return int
956
-     */
957
-    protected function _short_course_lessons_callback( $lesson_1, $lesson_2 ){
948
+	/**
949
+	 * Used for the uasort in $this->course_lessons()
950
+	 * @since 1.8.0
951
+	 * @access protected
952
+	 *
953
+	 * @param array $lesson_1
954
+	 * @param array $lesson_2
955
+	 * @return int
956
+	 */
957
+	protected function _short_course_lessons_callback( $lesson_1, $lesson_2 ){
958 958
 
959
-        if ( $lesson_1->course_order == $lesson_2->course_order ) {
960
-            return 0;
961
-        }
959
+		if ( $lesson_1->course_order == $lesson_2->course_order ) {
960
+			return 0;
961
+		}
962 962
 
963
-        return ($lesson_1->course_order < $lesson_2->course_order) ? -1 : 1;
964
-    }
963
+		return ($lesson_1->course_order < $lesson_2->course_order) ? -1 : 1;
964
+	}
965 965
 
966 966
 	/**
967 967
 	 * Fetch all quiz ids in a course
@@ -1024,15 +1024,15 @@  discard block
 block discarded – undo
1024 1024
 	 */
1025 1025
 	public function course_author_lesson_count( $author_id = 0, $course_id = 0 ) {
1026 1026
 
1027
-        $lesson_args = array(	'post_type' 		=> 'lesson',
1027
+		$lesson_args = array(	'post_type' 		=> 'lesson',
1028 1028
 								'posts_per_page' 		=> -1,
1029
-		    					'author'         	=> $author_id,
1030
-		    					'meta_key'        	=> '_lesson_course',
1031
-    							'meta_value'      	=> $course_id,
1032
-    	    					'post_status'      	=> 'publish',
1033
-    	    					'suppress_filters' 	=> 0,
1029
+								'author'         	=> $author_id,
1030
+								'meta_key'        	=> '_lesson_course',
1031
+								'meta_value'      	=> $course_id,
1032
+								'post_status'      	=> 'publish',
1033
+								'suppress_filters' 	=> 0,
1034 1034
 								'fields'            => 'ids', // less data to retrieve
1035
-		    				);
1035
+							);
1036 1036
 		$lessons_array = get_posts( $lesson_args );
1037 1037
 		$count = count( $lessons_array );
1038 1038
 		return $count;
@@ -1050,17 +1050,17 @@  discard block
 block discarded – undo
1050 1050
 
1051 1051
 		$lesson_args = array(	'post_type' 		=> 'lesson',
1052 1052
 								'posts_per_page' 		=> -1,
1053
-		    					'meta_key'        	=> '_lesson_course',
1054
-    							'meta_value'      	=> $course_id,
1055
-    	    					'post_status'      	=> 'publish',
1056
-    	    					'suppress_filters' 	=> 0,
1053
+								'meta_key'        	=> '_lesson_course',
1054
+								'meta_value'      	=> $course_id,
1055
+								'post_status'      	=> 'publish',
1056
+								'suppress_filters' 	=> 0,
1057 1057
 								'fields'            => 'ids', // less data to retrieve
1058
-		    				);
1058
+							);
1059 1059
 		$lessons_array = get_posts( $lesson_args );
1060 1060
 
1061
-        $count = count( $lessons_array );
1061
+		$count = count( $lessons_array );
1062 1062
 
1063
-        return $count;
1063
+		return $count;
1064 1064
 
1065 1065
 	} // End course_lesson_count()
1066 1066
 
@@ -1075,9 +1075,9 @@  discard block
 block discarded – undo
1075 1075
 
1076 1076
 		$lesson_args = array(	'post_type' 		=> 'lesson',
1077 1077
 								'posts_per_page' 		=> -1,
1078
-    	    					'post_status'      	=> 'publish',
1079
-    	    					'suppress_filters' 	=> 0,
1080
-    	    					'meta_query' => array(
1078
+								'post_status'      	=> 'publish',
1079
+								'suppress_filters' 	=> 0,
1080
+								'meta_query' => array(
1081 1081
 									array(
1082 1082
 										'key' => '_lesson_course',
1083 1083
 										'value' => $course_id
@@ -1088,12 +1088,12 @@  discard block
 block discarded – undo
1088 1088
 									)
1089 1089
 								),
1090 1090
 								'fields'            => 'ids', // less data to retrieve
1091
-		    				);
1091
+							);
1092 1092
 		$lessons_array = get_posts( $lesson_args );
1093 1093
 
1094 1094
 		$count = count( $lessons_array );
1095 1095
 
1096
-        return $count;
1096
+		return $count;
1097 1097
 
1098 1098
 	} // End course_lesson_count()
1099 1099
 
@@ -1112,8 +1112,8 @@  discard block
 block discarded – undo
1112 1112
 			$post_args = array(	'post_type' 		=> 'course',
1113 1113
 								'posts_per_page' 		=> -1,
1114 1114
 								'meta_key'        	=> '_course_woocommerce_product',
1115
-	    						'meta_value'      	=> $product_id,
1116
-	    						'post_status'       => 'publish',
1115
+								'meta_value'      	=> $product_id,
1116
+								'post_status'       => 'publish',
1117 1117
 								'suppress_filters' 	=> 0,
1118 1118
 								'orderby' 			=> 'menu_order date',
1119 1119
 								'order' 			=> 'ASC',
@@ -1154,9 +1154,9 @@  discard block
 block discarded – undo
1154 1154
 
1155 1155
 	/**
1156 1156
 	 * load_user_courses_content generates HTML for user's active & completed courses
1157
-     *
1158
-     * This function also ouputs the html so no need to echo the content.
1159
-     *
1157
+	 *
1158
+	 * This function also ouputs the html so no need to echo the content.
1159
+	 *
1160 1160
 	 * @since  1.4.0
1161 1161
 	 * @param  object  $user   Queried user object
1162 1162
 	 * @param  boolean $manage Whether the user has permission to manage the courses
@@ -1165,17 +1165,17 @@  discard block
 block discarded – undo
1165 1165
 	public function load_user_courses_content( $user = false ) {
1166 1166
 		global $course, $my_courses_page, $my_courses_section;
1167 1167
 
1168
-        if( ! isset( Sensei()->settings->settings[ 'learner_profile_show_courses' ] )
1169
-            || ! Sensei()->settings->settings[ 'learner_profile_show_courses' ] ) {
1168
+		if( ! isset( Sensei()->settings->settings[ 'learner_profile_show_courses' ] )
1169
+			|| ! Sensei()->settings->settings[ 'learner_profile_show_courses' ] ) {
1170 1170
 
1171
-            // do not show the content if the settings doesn't allow for it
1172
-            return;
1171
+			// do not show the content if the settings doesn't allow for it
1172
+			return;
1173 1173
 
1174
-        }
1174
+		}
1175 1175
 
1176
-        $manage = ( $user->ID == get_current_user_id() ) ? true : false;
1176
+		$manage = ( $user->ID == get_current_user_id() ) ? true : false;
1177 1177
 
1178
-        do_action( 'sensei_before_learner_course_content', $user );
1178
+		do_action( 'sensei_before_learner_course_content', $user );
1179 1179
 
1180 1180
 		// Build Output HTML
1181 1181
 		$complete_html = $active_html = '';
@@ -1190,7 +1190,7 @@  discard block
 block discarded – undo
1190 1190
 			// Logic for Active and Completed Courses
1191 1191
 			$per_page = 20;
1192 1192
 			if ( isset( Sensei()->settings->settings[ 'my_course_amount' ] )
1193
-                && ( 0 < absint( Sensei()->settings->settings[ 'my_course_amount' ] ) ) ) {
1193
+				&& ( 0 < absint( Sensei()->settings->settings[ 'my_course_amount' ] ) ) ) {
1194 1194
 
1195 1195
 				$per_page = absint( Sensei()->settings->settings[ 'my_course_amount' ] );
1196 1196
 
@@ -1236,111 +1236,111 @@  discard block
 block discarded – undo
1236 1236
 					}
1237 1237
 				}
1238 1238
 
1239
-			    // Get Course Categories
1240
-			    $category_output = get_the_term_list( $course_item->ID, 'course-category', '', ', ', '' );
1239
+				// Get Course Categories
1240
+				$category_output = get_the_term_list( $course_item->ID, 'course-category', '', ', ', '' );
1241 1241
 
1242
-                $active_html .= '<article class="' . esc_attr( join( ' ', get_post_class( array( 'course', 'post' ), $course_item->ID ) ) ) . '">';
1242
+				$active_html .= '<article class="' . esc_attr( join( ' ', get_post_class( array( 'course', 'post' ), $course_item->ID ) ) ) . '">';
1243 1243
 
1244
-                // Image
1245
-                $active_html .= Sensei()->course->course_image( absint( $course_item->ID ), '100','100', true );
1244
+				// Image
1245
+				$active_html .= Sensei()->course->course_image( absint( $course_item->ID ), '100','100', true );
1246 1246
 
1247
-                // Title
1248
-                $active_html .= '<header>';
1247
+				// Title
1248
+				$active_html .= '<header>';
1249 1249
 
1250
-                $active_html .= '<h2><a href="' . esc_url( get_permalink( absint( $course_item->ID ) ) ) . '" title="' . esc_attr( $course_item->post_title ) . '">' . esc_html( $course_item->post_title ) . '</a></h2>';
1250
+				$active_html .= '<h2><a href="' . esc_url( get_permalink( absint( $course_item->ID ) ) ) . '" title="' . esc_attr( $course_item->post_title ) . '">' . esc_html( $course_item->post_title ) . '</a></h2>';
1251 1251
 
1252
-                $active_html .= '</header>';
1252
+				$active_html .= '</header>';
1253 1253
 
1254
-                $active_html .= '<section class="entry">';
1254
+				$active_html .= '<section class="entry">';
1255 1255
 
1256
-                $active_html .= '<p class="sensei-course-meta">';
1256
+				$active_html .= '<p class="sensei-course-meta">';
1257 1257
 
1258
-                // Author
1259
-                $user_info = get_userdata( absint( $course_item->post_author ) );
1260
-                if ( isset( Sensei()->settings->settings[ 'course_author' ] )
1261
-                    && ( Sensei()->settings->settings[ 'course_author' ] ) ) {
1258
+				// Author
1259
+				$user_info = get_userdata( absint( $course_item->post_author ) );
1260
+				if ( isset( Sensei()->settings->settings[ 'course_author' ] )
1261
+					&& ( Sensei()->settings->settings[ 'course_author' ] ) ) {
1262 1262
 
1263
-                    $active_html .= '<span class="course-author">'
1264
-                        . __( 'by ', 'woothemes-sensei' )
1265
-                        . '<a href="' . esc_url( get_author_posts_url( absint( $course_item->post_author ) ) )
1266
-                        . '" title="' . esc_attr( $user_info->display_name ) . '">'
1267
-                        . esc_html( $user_info->display_name )
1268
-                        . '</a></span>';
1263
+					$active_html .= '<span class="course-author">'
1264
+						. __( 'by ', 'woothemes-sensei' )
1265
+						. '<a href="' . esc_url( get_author_posts_url( absint( $course_item->post_author ) ) )
1266
+						. '" title="' . esc_attr( $user_info->display_name ) . '">'
1267
+						. esc_html( $user_info->display_name )
1268
+						. '</a></span>';
1269 1269
 
1270
-                } // End If Statement
1270
+				} // End If Statement
1271 1271
 
1272
-                // Lesson count for this author
1273
-                $lesson_count = Sensei()->course->course_lesson_count( absint( $course_item->ID ) );
1274
-                // Handle Division by Zero
1275
-                if ( 0 == $lesson_count ) {
1272
+				// Lesson count for this author
1273
+				$lesson_count = Sensei()->course->course_lesson_count( absint( $course_item->ID ) );
1274
+				// Handle Division by Zero
1275
+				if ( 0 == $lesson_count ) {
1276 1276
 
1277
-                    $lesson_count = 1;
1277
+					$lesson_count = 1;
1278 1278
 
1279
-                } // End If Statement
1280
-                $active_html .= '<span class="course-lesson-count">' . $lesson_count . '&nbsp;' .  __( 'Lessons', 'woothemes-sensei' ) . '</span>';
1281
-                // Course Categories
1282
-                if ( '' != $category_output ) {
1279
+				} // End If Statement
1280
+				$active_html .= '<span class="course-lesson-count">' . $lesson_count . '&nbsp;' .  __( 'Lessons', 'woothemes-sensei' ) . '</span>';
1281
+				// Course Categories
1282
+				if ( '' != $category_output ) {
1283 1283
 
1284
-                    $active_html .= '<span class="course-category">' . sprintf( __( 'in %s', 'woothemes-sensei' ), $category_output ) . '</span>';
1284
+					$active_html .= '<span class="course-category">' . sprintf( __( 'in %s', 'woothemes-sensei' ), $category_output ) . '</span>';
1285 1285
 
1286
-                } // End If Statement
1287
-                $active_html .= '<span class="course-lesson-progress">' . sprintf( __( '%1$d of %2$d lessons completed', 'woothemes-sensei' ) , $lessons_completed, $lesson_count  ) . '</span>';
1286
+				} // End If Statement
1287
+				$active_html .= '<span class="course-lesson-progress">' . sprintf( __( '%1$d of %2$d lessons completed', 'woothemes-sensei' ) , $lessons_completed, $lesson_count  ) . '</span>';
1288 1288
 
1289
-                $active_html .= '</p>';
1289
+				$active_html .= '</p>';
1290 1290
 
1291
-                $active_html .= '<p class="course-excerpt">' . $course_item->post_excerpt . '</p>';
1291
+				$active_html .= '<p class="course-excerpt">' . $course_item->post_excerpt . '</p>';
1292 1292
 
1293 1293
 
1294 1294
 
1295
-                $progress_percentage = abs( round( ( doubleval( $lessons_completed ) * 100 ) / ( $lesson_count ), 0 ) );
1295
+				$progress_percentage = abs( round( ( doubleval( $lessons_completed ) * 100 ) / ( $lesson_count ), 0 ) );
1296 1296
 
1297
-                $active_html .= $this->get_progress_meter( $progress_percentage );
1297
+				$active_html .= $this->get_progress_meter( $progress_percentage );
1298 1298
 
1299
-                $active_html .= '</section>';
1299
+				$active_html .= '</section>';
1300 1300
 
1301
-                if( is_user_logged_in() ) {
1301
+				if( is_user_logged_in() ) {
1302 1302
 
1303
-                    $active_html .= '<section class="entry-actions">';
1303
+					$active_html .= '<section class="entry-actions">';
1304 1304
 
1305
-                    $active_html .= '<form method="POST" action="' . esc_url( remove_query_arg( array( 'active_page', 'completed_page' ) ) ) . '">';
1305
+					$active_html .= '<form method="POST" action="' . esc_url( remove_query_arg( array( 'active_page', 'completed_page' ) ) ) . '">';
1306 1306
 
1307
-                    $active_html .= '<input type="hidden" name="' . esc_attr( 'woothemes_sensei_complete_course_noonce' ) . '" id="' . esc_attr( 'woothemes_sensei_complete_course_noonce' ) . '" value="' . esc_attr( wp_create_nonce( 'woothemes_sensei_complete_course_noonce' ) ) . '" />';
1307
+					$active_html .= '<input type="hidden" name="' . esc_attr( 'woothemes_sensei_complete_course_noonce' ) . '" id="' . esc_attr( 'woothemes_sensei_complete_course_noonce' ) . '" value="' . esc_attr( wp_create_nonce( 'woothemes_sensei_complete_course_noonce' ) ) . '" />';
1308 1308
 
1309
-                    $active_html .= '<input type="hidden" name="course_complete_id" id="course-complete-id" value="' . esc_attr( absint( $course_item->ID ) ) . '" />';
1309
+					$active_html .= '<input type="hidden" name="course_complete_id" id="course-complete-id" value="' . esc_attr( absint( $course_item->ID ) ) . '" />';
1310 1310
 
1311
-                    if ( 0 < absint( count( $course_lessons ) ) && Sensei()->settings->settings['course_completion'] == 'complete' ) {
1311
+					if ( 0 < absint( count( $course_lessons ) ) && Sensei()->settings->settings['course_completion'] == 'complete' ) {
1312 1312
 
1313
-                        $active_html .= '<span><input name="course_complete" type="submit" class="course-complete" value="'
1314
-                            .  __( 'Mark as Complete', 'woothemes-sensei' ) . '"/> </span>';
1313
+						$active_html .= '<span><input name="course_complete" type="submit" class="course-complete" value="'
1314
+							.  __( 'Mark as Complete', 'woothemes-sensei' ) . '"/> </span>';
1315 1315
 
1316
-                    } // End If Statement
1316
+					} // End If Statement
1317 1317
 
1318
-                    $course_purchased = false;
1319
-                    if ( Sensei_WC::is_woocommerce_active() ) {
1318
+					$course_purchased = false;
1319
+					if ( Sensei_WC::is_woocommerce_active() ) {
1320 1320
 
1321
-                        // Get the product ID
1322
-                        $wc_post_id = get_post_meta( absint( $course_item->ID ), '_course_woocommerce_product', true );
1323
-                        if ( 0 < $wc_post_id ) {
1321
+						// Get the product ID
1322
+						$wc_post_id = get_post_meta( absint( $course_item->ID ), '_course_woocommerce_product', true );
1323
+						if ( 0 < $wc_post_id ) {
1324 1324
 
1325
-                            $course_purchased = Sensei_WC::has_customer_bought_product(  $user->ID, $wc_post_id );
1325
+							$course_purchased = Sensei_WC::has_customer_bought_product(  $user->ID, $wc_post_id );
1326 1326
 
1327
-                        } // End If Statement
1327
+						} // End If Statement
1328 1328
 
1329
-                    } // End If Statement
1329
+					} // End If Statement
1330 1330
 
1331
-                    if ( false == $course_purchased ) {
1331
+					if ( false == $course_purchased ) {
1332 1332
 
1333
-                        $active_html .= '<span><input name="course_complete" type="submit" class="course-delete" value="'
1334
-                            .  __( 'Delete Course', 'woothemes-sensei' ) . '"/></span>';
1333
+						$active_html .= '<span><input name="course_complete" type="submit" class="course-delete" value="'
1334
+							.  __( 'Delete Course', 'woothemes-sensei' ) . '"/></span>';
1335 1335
 
1336
-                    } // End If Statement
1336
+					} // End If Statement
1337 1337
 
1338
-                    $active_html .= '</form>';
1338
+					$active_html .= '</form>';
1339 1339
 
1340
-                    $active_html .= '</section>';
1341
-                }
1340
+					$active_html .= '</section>';
1341
+				}
1342 1342
 
1343
-                $active_html .= '</article>';
1343
+				$active_html .= '</article>';
1344 1344
 			}
1345 1345
 
1346 1346
 			// Active pagination
@@ -1380,49 +1380,49 @@  discard block
 block discarded – undo
1380 1380
 			foreach ( $completed_courses as $course_item ) {
1381 1381
 				$course = $course_item;
1382 1382
 
1383
-			    // Get Course Categories
1384
-			    $category_output = get_the_term_list( $course_item->ID, 'course-category', '', ', ', '' );
1383
+				// Get Course Categories
1384
+				$category_output = get_the_term_list( $course_item->ID, 'course-category', '', ', ', '' );
1385 1385
 
1386
-		    	$complete_html .= '<article class="' . join( ' ', get_post_class( array( 'course', 'post' ), $course_item->ID ) ) . '">';
1386
+				$complete_html .= '<article class="' . join( ' ', get_post_class( array( 'course', 'post' ), $course_item->ID ) ) . '">';
1387 1387
 
1388
-		    	    // Image
1389
-		    		$complete_html .= Sensei()->course->course_image( absint( $course_item->ID ),100, 100, true );
1388
+					// Image
1389
+					$complete_html .= Sensei()->course->course_image( absint( $course_item->ID ),100, 100, true );
1390 1390
 
1391
-		    		// Title
1392
-		    		$complete_html .= '<header>';
1391
+					// Title
1392
+					$complete_html .= '<header>';
1393 1393
 
1394
-		    		    $complete_html .= '<h2><a href="' . esc_url( get_permalink( absint( $course_item->ID ) ) ) . '" title="' . esc_attr( $course_item->post_title ) . '">' . esc_html( $course_item->post_title ) . '</a></h2>';
1394
+						$complete_html .= '<h2><a href="' . esc_url( get_permalink( absint( $course_item->ID ) ) ) . '" title="' . esc_attr( $course_item->post_title ) . '">' . esc_html( $course_item->post_title ) . '</a></h2>';
1395 1395
 
1396
-		    		$complete_html .= '</header>';
1396
+					$complete_html .= '</header>';
1397 1397
 
1398
-		    		$complete_html .= '<section class="entry">';
1398
+					$complete_html .= '<section class="entry">';
1399 1399
 
1400
-		    			$complete_html .= '<p class="sensei-course-meta">';
1400
+						$complete_html .= '<p class="sensei-course-meta">';
1401 1401
 
1402
-		    		    	// Author
1403
-		    		    	$user_info = get_userdata( absint( $course_item->post_author ) );
1404
-		    		    	if ( isset( Sensei()->settings->settings[ 'course_author' ] ) && ( Sensei()->settings->settings[ 'course_author' ] ) ) {
1405
-		    		    		$complete_html .= '<span class="course-author">' . __( 'by ', 'woothemes-sensei' ) . '<a href="' . esc_url( get_author_posts_url( absint( $course_item->post_author ) ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>';
1406
-		    		    	} // End If Statement
1402
+							// Author
1403
+							$user_info = get_userdata( absint( $course_item->post_author ) );
1404
+							if ( isset( Sensei()->settings->settings[ 'course_author' ] ) && ( Sensei()->settings->settings[ 'course_author' ] ) ) {
1405
+								$complete_html .= '<span class="course-author">' . __( 'by ', 'woothemes-sensei' ) . '<a href="' . esc_url( get_author_posts_url( absint( $course_item->post_author ) ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>';
1406
+							} // End If Statement
1407 1407
 
1408
-		    		    	// Lesson count for this author
1409
-		    		    	$complete_html .= '<span class="course-lesson-count">'
1410
-                                . Sensei()->course->course_lesson_count( absint( $course_item->ID ) )
1411
-                                . '&nbsp;' .  __( 'Lessons', 'woothemes-sensei' )
1412
-                                . '</span>';
1408
+							// Lesson count for this author
1409
+							$complete_html .= '<span class="course-lesson-count">'
1410
+								. Sensei()->course->course_lesson_count( absint( $course_item->ID ) )
1411
+								. '&nbsp;' .  __( 'Lessons', 'woothemes-sensei' )
1412
+								. '</span>';
1413 1413
 
1414
-		    		    	// Course Categories
1415
-		    		    	if ( '' != $category_output ) {
1414
+							// Course Categories
1415
+							if ( '' != $category_output ) {
1416 1416
 
1417
-		    		    		$complete_html .= '<span class="course-category">' . sprintf( __( 'in %s', 'woothemes-sensei' ), $category_output ) . '</span>';
1417
+								$complete_html .= '<span class="course-category">' . sprintf( __( 'in %s', 'woothemes-sensei' ), $category_output ) . '</span>';
1418 1418
 
1419
-		    		    	} // End If Statement
1419
+							} // End If Statement
1420 1420
 
1421 1421
 						$complete_html .= '</p>';
1422 1422
 
1423 1423
 						$complete_html .= '<p class="course-excerpt">' . $course_item->post_excerpt . '</p>';
1424 1424
 
1425
-                        $complete_html .= $this->get_progress_meter( 100 );
1425
+						$complete_html .= $this->get_progress_meter( 100 );
1426 1426
 
1427 1427
 						if( $manage ) {
1428 1428
 							$has_quizzes = Sensei()->course->course_quizzes( $course_item->ID, true );
@@ -1435,9 +1435,9 @@  discard block
 block discarded – undo
1435 1435
 								if( $has_quizzes ) {
1436 1436
 
1437 1437
 									$results_link = '<a class="button view-results" href="'
1438
-                                        . Sensei()->course_results->get_permalink( $course_item->ID )
1439
-                                        . '">' . __( 'View results', 'woothemes-sensei' )
1440
-                                        . '</a>';
1438
+										. Sensei()->course_results->get_permalink( $course_item->ID )
1439
+										. '">' . __( 'View results', 'woothemes-sensei' )
1440
+										. '</a>';
1441 1441
 								}
1442 1442
 								$complete_html .= apply_filters( 'sensei_results_links', $results_link );
1443 1443
 								$complete_html .= '</p>';
@@ -1445,9 +1445,9 @@  discard block
 block discarded – undo
1445 1445
 							}
1446 1446
 						}
1447 1447
 
1448
-		    		$complete_html .= '</section>';
1448
+					$complete_html .= '</section>';
1449 1449
 
1450
-		    	$complete_html .= '</article>';
1450
+				$complete_html .= '</article>';
1451 1451
 			}
1452 1452
 
1453 1453
 			// Active pagination
@@ -1522,16 +1522,16 @@  discard block
 block discarded – undo
1522 1522
 		    <?php do_action( 'sensei_before_active_user_courses' ); ?>
1523 1523
 
1524 1524
 		    <?php
1525
-            $course_page_url = Sensei_Course::get_courses_page_url();
1526
-            ?>
1525
+			$course_page_url = Sensei_Course::get_courses_page_url();
1526
+			?>
1527 1527
 
1528 1528
 		    <div id="active-courses">
1529 1529
 
1530 1530
 		    	<?php if ( '' != $active_html ) {
1531 1531
 
1532
-		    		echo $active_html;
1532
+					echo $active_html;
1533 1533
 
1534
-		    	} else { ?>
1534
+				} else { ?>
1535 1535
 
1536 1536
 		    		<div class="sensei-message info">
1537 1537
 
@@ -1557,9 +1557,9 @@  discard block
 block discarded – undo
1557 1557
 
1558 1558
 		    	<?php if ( '' != $complete_html ) {
1559 1559
 
1560
-		    		echo $complete_html;
1560
+					echo $complete_html;
1561 1561
 
1562
-		    	} else { ?>
1562
+				} else { ?>
1563 1563
 
1564 1564
 		    		<div class="sensei-message info">
1565 1565
 
@@ -1578,366 +1578,366 @@  discard block
 block discarded – undo
1578 1578
 		<?php do_action( 'sensei_after_user_courses' ); ?>
1579 1579
 
1580 1580
 		<?php
1581
-        echo ob_get_clean();
1581
+		echo ob_get_clean();
1582 1582
 
1583
-        do_action( 'sensei_after_learner_course_content', $user );
1583
+		do_action( 'sensei_after_learner_course_content', $user );
1584 1584
 
1585 1585
 	} // end load_user_courses_content
1586 1586
 
1587
-    /**
1588
-     * Returns a list of all courses
1589
-     *
1590
-     * @since 1.8.0
1591
-     * @return array $courses{
1592
-     *  @type $course WP_Post
1593
-     * }
1594
-     */
1595
-    public static function get_all_courses(){
1596
-
1597
-        $args = array(
1598
-               'post_type' => 'course',
1599
-                'posts_per_page' 		=> -1,
1600
-                'orderby'         	=> 'title',
1601
-                'order'           	=> 'ASC',
1602
-                'post_status'      	=> 'any',
1603
-                'suppress_filters' 	=> 0,
1604
-        );
1605
-
1606
-        $wp_query_obj =  new WP_Query( $args );
1607
-
1608
-        /**
1609
-         * sensei_get_all_courses filter
1610
-         *
1611
-         * This filter runs inside Sensei_Course::get_all_courses.
1612
-         *
1613
-         * @param array $courses{
1614
-         *  @type WP_Post
1615
-         * }
1616
-         * @param array $attributes
1617
-         */
1618
-        return apply_filters( 'sensei_get_all_courses' , $wp_query_obj->posts );
1619
-
1620
-    }// end get_all_courses
1621
-
1622
-    /**
1623
-     * Generate the course meter component
1624
-     *
1625
-     * @since 1.8.0
1626
-     * @param int $progress_percentage 0 - 100
1627
-     * @return string $progress_bar_html
1628
-     */
1629
-    public function get_progress_meter( $progress_percentage ){
1630
-
1631
-        if ( 50 < $progress_percentage ) {
1632
-            $class = ' green';
1633
-        } elseif ( 25 <= $progress_percentage && 50 >= $progress_percentage ) {
1634
-            $class = ' orange';
1635
-        } else {
1636
-            $class = ' red';
1637
-        }
1638
-        $progress_bar_html = '<div class="meter' . esc_attr( $class ) . '"><span style="width: ' . $progress_percentage . '%">' . round( $progress_percentage ) . '%</span></div>';
1639
-
1640
-        return $progress_bar_html;
1641
-
1642
-    }// end get_progress_meter
1643
-
1644
-    /**
1645
-     * Generate a statement that tells users
1646
-     * how far they are in the course.
1647
-     *
1648
-     * @param int $course_id
1649
-     * @param int $user_id
1650
-     *
1651
-     * @return string $statement_html
1652
-     */
1653
-    public function get_progress_statement( $course_id, $user_id ){
1654
-
1655
-        if( empty( $course_id ) || empty( $user_id )
1656
-        || ! WooThemes_Sensei_Utils::user_started_course( $course_id, $user_id ) ){
1657
-            return '';
1658
-        }
1659
-
1660
-        $completed = count( $this->get_completed_lesson_ids( $course_id, $user_id ) );
1661
-        $total_lessons = count( $this->course_lessons( $course_id ) );
1662
-
1663
-        $statement = sprintf( _n('Currently completed %s lesson of %s in total', 'Currently completed %s lessons of %s in total', $completed, 'woothemes-sensei'), $completed, $total_lessons );
1664
-
1665
-        /**
1666
-         * Filter the course completion statement.
1667
-         * Default Currently completed $var lesson($plural) of $var in total
1668
-         *
1669
-         * @param string $statement
1670
-         */
1671
-        return apply_filters( 'sensei_course_completion_statement', $statement );
1672
-
1673
-    }// end generate_progress_statement
1674
-
1675
-    /**
1676
-     * Output the course progress statement
1677
-     *
1678
-     * @param $course_id
1679
-     * @return void
1680
-     */
1681
-    public function the_progress_statement( $course_id = 0, $user_id = 0 ){
1682
-        if( empty( $course_id ) ){
1683
-            global $post;
1684
-            $course_id = $post->ID;
1685
-        }
1686
-
1687
-        if( empty( $user_id ) ){
1688
-            $user_id = get_current_user_id();
1689
-        }
1690
-
1691
-        echo '<span class="progress statement  course-completion-rate">' . $this->get_progress_statement( $course_id, $user_id  ) . '</span>';
1692
-    }
1693
-
1694
-    /**
1695
-     * Output the course progress bar
1696
-     *
1697
-     * @param $course_id
1698
-     * @return void
1699
-     */
1700
-    public function the_progress_meter( $course_id = 0, $user_id = 0 ){
1701
-
1702
-        if( empty( $course_id ) ){
1703
-            global $post;
1704
-            $course_id = $post->ID;
1705
-        }
1706
-
1707
-        if( empty( $user_id ) ){
1708
-            $user_id = get_current_user_id();
1709
-        }
1710
-
1711
-        if( 'course' != get_post_type( $course_id ) || ! get_userdata( $user_id )
1712
-            || ! WooThemes_Sensei_Utils::user_started_course( $course_id ,$user_id ) ){
1713
-            return;
1714
-        }
1715
-        $percentage_completed = $this->get_completion_percentage( $course_id, $user_id );
1716
-
1717
-        echo $this->get_progress_meter( $percentage_completed );
1718
-
1719
-    }// end the_progress_meter
1720
-
1721
-    /**
1722
-     * Checks how many lessons are completed
1723
-     *
1724
-     * @since 1.8.0
1725
-     *
1726
-     * @param int $course_id
1727
-     * @param int $user_id
1728
-     * @return array $completed_lesson_ids
1729
-     */
1730
-    public function get_completed_lesson_ids( $course_id, $user_id = 0 ){
1731
-
1732
-        if( !( intval( $user_id ) ) > 0 ){
1733
-            $user_id = get_current_user_id();
1734
-        }
1587
+	/**
1588
+	 * Returns a list of all courses
1589
+	 *
1590
+	 * @since 1.8.0
1591
+	 * @return array $courses{
1592
+	 *  @type $course WP_Post
1593
+	 * }
1594
+	 */
1595
+	public static function get_all_courses(){
1596
+
1597
+		$args = array(
1598
+			   'post_type' => 'course',
1599
+				'posts_per_page' 		=> -1,
1600
+				'orderby'         	=> 'title',
1601
+				'order'           	=> 'ASC',
1602
+				'post_status'      	=> 'any',
1603
+				'suppress_filters' 	=> 0,
1604
+		);
1605
+
1606
+		$wp_query_obj =  new WP_Query( $args );
1607
+
1608
+		/**
1609
+		 * sensei_get_all_courses filter
1610
+		 *
1611
+		 * This filter runs inside Sensei_Course::get_all_courses.
1612
+		 *
1613
+		 * @param array $courses{
1614
+		 *  @type WP_Post
1615
+		 * }
1616
+		 * @param array $attributes
1617
+		 */
1618
+		return apply_filters( 'sensei_get_all_courses' , $wp_query_obj->posts );
1619
+
1620
+	}// end get_all_courses
1621
+
1622
+	/**
1623
+	 * Generate the course meter component
1624
+	 *
1625
+	 * @since 1.8.0
1626
+	 * @param int $progress_percentage 0 - 100
1627
+	 * @return string $progress_bar_html
1628
+	 */
1629
+	public function get_progress_meter( $progress_percentage ){
1630
+
1631
+		if ( 50 < $progress_percentage ) {
1632
+			$class = ' green';
1633
+		} elseif ( 25 <= $progress_percentage && 50 >= $progress_percentage ) {
1634
+			$class = ' orange';
1635
+		} else {
1636
+			$class = ' red';
1637
+		}
1638
+		$progress_bar_html = '<div class="meter' . esc_attr( $class ) . '"><span style="width: ' . $progress_percentage . '%">' . round( $progress_percentage ) . '%</span></div>';
1639
+
1640
+		return $progress_bar_html;
1641
+
1642
+	}// end get_progress_meter
1643
+
1644
+	/**
1645
+	 * Generate a statement that tells users
1646
+	 * how far they are in the course.
1647
+	 *
1648
+	 * @param int $course_id
1649
+	 * @param int $user_id
1650
+	 *
1651
+	 * @return string $statement_html
1652
+	 */
1653
+	public function get_progress_statement( $course_id, $user_id ){
1654
+
1655
+		if( empty( $course_id ) || empty( $user_id )
1656
+		|| ! WooThemes_Sensei_Utils::user_started_course( $course_id, $user_id ) ){
1657
+			return '';
1658
+		}
1659
+
1660
+		$completed = count( $this->get_completed_lesson_ids( $course_id, $user_id ) );
1661
+		$total_lessons = count( $this->course_lessons( $course_id ) );
1662
+
1663
+		$statement = sprintf( _n('Currently completed %s lesson of %s in total', 'Currently completed %s lessons of %s in total', $completed, 'woothemes-sensei'), $completed, $total_lessons );
1664
+
1665
+		/**
1666
+		 * Filter the course completion statement.
1667
+		 * Default Currently completed $var lesson($plural) of $var in total
1668
+		 *
1669
+		 * @param string $statement
1670
+		 */
1671
+		return apply_filters( 'sensei_course_completion_statement', $statement );
1672
+
1673
+	}// end generate_progress_statement
1674
+
1675
+	/**
1676
+	 * Output the course progress statement
1677
+	 *
1678
+	 * @param $course_id
1679
+	 * @return void
1680
+	 */
1681
+	public function the_progress_statement( $course_id = 0, $user_id = 0 ){
1682
+		if( empty( $course_id ) ){
1683
+			global $post;
1684
+			$course_id = $post->ID;
1685
+		}
1686
+
1687
+		if( empty( $user_id ) ){
1688
+			$user_id = get_current_user_id();
1689
+		}
1690
+
1691
+		echo '<span class="progress statement  course-completion-rate">' . $this->get_progress_statement( $course_id, $user_id  ) . '</span>';
1692
+	}
1693
+
1694
+	/**
1695
+	 * Output the course progress bar
1696
+	 *
1697
+	 * @param $course_id
1698
+	 * @return void
1699
+	 */
1700
+	public function the_progress_meter( $course_id = 0, $user_id = 0 ){
1701
+
1702
+		if( empty( $course_id ) ){
1703
+			global $post;
1704
+			$course_id = $post->ID;
1705
+		}
1706
+
1707
+		if( empty( $user_id ) ){
1708
+			$user_id = get_current_user_id();
1709
+		}
1710
+
1711
+		if( 'course' != get_post_type( $course_id ) || ! get_userdata( $user_id )
1712
+			|| ! WooThemes_Sensei_Utils::user_started_course( $course_id ,$user_id ) ){
1713
+			return;
1714
+		}
1715
+		$percentage_completed = $this->get_completion_percentage( $course_id, $user_id );
1716
+
1717
+		echo $this->get_progress_meter( $percentage_completed );
1718
+
1719
+	}// end the_progress_meter
1720
+
1721
+	/**
1722
+	 * Checks how many lessons are completed
1723
+	 *
1724
+	 * @since 1.8.0
1725
+	 *
1726
+	 * @param int $course_id
1727
+	 * @param int $user_id
1728
+	 * @return array $completed_lesson_ids
1729
+	 */
1730
+	public function get_completed_lesson_ids( $course_id, $user_id = 0 ){
1731
+
1732
+		if( !( intval( $user_id ) ) > 0 ){
1733
+			$user_id = get_current_user_id();
1734
+		}
1735
+
1736
+		$completed_lesson_ids = array();
1737
+
1738
+		$course_lessons = $this->course_lessons( $course_id );
1739
+
1740
+		foreach( $course_lessons as $lesson ){
1741
+
1742
+			$is_lesson_completed = WooThemes_Sensei_Utils::user_completed_lesson( $lesson->ID, $user_id );
1743
+			if( $is_lesson_completed ){
1744
+				$completed_lesson_ids[] = $lesson->ID;
1745
+			}
1746
+
1747
+		}
1748
+
1749
+		return $completed_lesson_ids;
1750
+
1751
+	}// end get_completed_lesson_ids
1752
+
1753
+	/**
1754
+	 * Calculate the perceantage completed in the course
1755
+	 *
1756
+	 * @since 1.8.0
1757
+	 *
1758
+	 * @param int $course_id
1759
+	 * @param int $user_id
1760
+	 * @return int $percentage
1761
+	 */
1762
+	public function get_completion_percentage( $course_id, $user_id = 0 ){
1763
+
1764
+		if( !( intval( $user_id ) ) > 0 ){
1765
+			$user_id = get_current_user_id();
1766
+		}
1735 1767
 
1736
-        $completed_lesson_ids = array();
1768
+		$completed = count( $this->get_completed_lesson_ids( $course_id, $user_id ) );
1737 1769
 
1738
-        $course_lessons = $this->course_lessons( $course_id );
1770
+		if( ! (  $completed  > 0 ) ){
1771
+			return 0;
1772
+		}
1739 1773
 
1740
-        foreach( $course_lessons as $lesson ){
1774
+		$total_lessons = count( $this->course_lessons( $course_id ) );
1775
+		$percentage = $completed / $total_lessons * 100;
1741 1776
 
1742
-            $is_lesson_completed = WooThemes_Sensei_Utils::user_completed_lesson( $lesson->ID, $user_id );
1743
-            if( $is_lesson_completed ){
1744
-                $completed_lesson_ids[] = $lesson->ID;
1745
-            }
1746
-
1747
-        }
1748
-
1749
-        return $completed_lesson_ids;
1777
+		/**
1778
+		 *
1779
+		 * Filter the percentage returned for a users course.
1780
+		 *
1781
+		 * @param $percentage
1782
+		 * @param $course_id
1783
+		 * @param $user_id
1784
+		 * @since 1.8.0
1785
+		 */
1786
+		return apply_filters( 'sensei_course_completion_percentage', $percentage, $course_id, $user_id );
1750 1787
 
1751
-    }// end get_completed_lesson_ids
1788
+	}// end get_completed_lesson_ids
1752 1789
 
1753
-    /**
1754
-     * Calculate the perceantage completed in the course
1755
-     *
1756
-     * @since 1.8.0
1757
-     *
1758
-     * @param int $course_id
1759
-     * @param int $user_id
1760
-     * @return int $percentage
1761
-     */
1762
-    public function get_completion_percentage( $course_id, $user_id = 0 ){
1763
-
1764
-        if( !( intval( $user_id ) ) > 0 ){
1765
-            $user_id = get_current_user_id();
1766
-        }
1767
-
1768
-        $completed = count( $this->get_completed_lesson_ids( $course_id, $user_id ) );
1769
-
1770
-        if( ! (  $completed  > 0 ) ){
1771
-            return 0;
1772
-        }
1773
-
1774
-        $total_lessons = count( $this->course_lessons( $course_id ) );
1775
-        $percentage = $completed / $total_lessons * 100;
1776
-
1777
-        /**
1778
-         *
1779
-         * Filter the percentage returned for a users course.
1780
-         *
1781
-         * @param $percentage
1782
-         * @param $course_id
1783
-         * @param $user_id
1784
-         * @since 1.8.0
1785
-         */
1786
-        return apply_filters( 'sensei_course_completion_percentage', $percentage, $course_id, $user_id );
1790
+	/**
1791
+	 * Block email notifications for the specific courses
1792
+	 * that the user disabled the notifications.
1793
+	 *
1794
+	 * @since 1.8.0
1795
+	 * @param $should_send
1796
+	 * @return bool
1797
+	 */
1798
+	public function block_notification_emails( $should_send ){
1799
+		global $sensei_email_data;
1800
+		$email = $sensei_email_data;
1787 1801
 
1788
-    }// end get_completed_lesson_ids
1802
+		$course_id = '';
1789 1803
 
1790
-    /**
1791
-     * Block email notifications for the specific courses
1792
-     * that the user disabled the notifications.
1793
-     *
1794
-     * @since 1.8.0
1795
-     * @param $should_send
1796
-     * @return bool
1797
-     */
1798
-    public function block_notification_emails( $should_send ){
1799
-        global $sensei_email_data;
1800
-        $email = $sensei_email_data;
1804
+		if( isset( $email['course_id'] ) ){
1801 1805
 
1802
-        $course_id = '';
1806
+			$course_id = $email['course_id'];
1803 1807
 
1804
-        if( isset( $email['course_id'] ) ){
1808
+		}elseif( isset( $email['lesson_id'] ) ){
1805 1809
 
1806
-            $course_id = $email['course_id'];
1810
+			$course_id = Sensei()->lesson->get_course_id( $email['lesson_id'] );
1807 1811
 
1808
-        }elseif( isset( $email['lesson_id'] ) ){
1812
+		}elseif( isset( $email['quiz_id'] ) ){
1809 1813
 
1810
-            $course_id = Sensei()->lesson->get_course_id( $email['lesson_id'] );
1814
+			$lesson_id = Sensei()->quiz->get_lesson_id( $email['quiz_id'] );
1815
+			$course_id = Sensei()->lesson->get_course_id( $lesson_id );
1811 1816
 
1812
-        }elseif( isset( $email['quiz_id'] ) ){
1817
+		}
1813 1818
 
1814
-            $lesson_id = Sensei()->quiz->get_lesson_id( $email['quiz_id'] );
1815
-            $course_id = Sensei()->lesson->get_course_id( $lesson_id );
1819
+		if( !empty( $course_id ) && 'course'== get_post_type( $course_id ) ) {
1816 1820
 
1817
-        }
1821
+			$course_emails_disabled = get_post_meta($course_id, 'disable_notification', true);
1818 1822
 
1819
-        if( !empty( $course_id ) && 'course'== get_post_type( $course_id ) ) {
1823
+			if ($course_emails_disabled) {
1820 1824
 
1821
-            $course_emails_disabled = get_post_meta($course_id, 'disable_notification', true);
1825
+				return false;
1822 1826
 
1823
-            if ($course_emails_disabled) {
1827
+			}
1824 1828
 
1825
-                return false;
1829
+		}// end if
1826 1830
 
1827
-            }
1831
+		return $should_send;
1832
+	}// end block_notification_emails
1828 1833
 
1829
-        }// end if
1834
+	/**
1835
+	 * Render the course notification setting meta box
1836
+	 *
1837
+	 * @since 1.8.0
1838
+	 * @param $course
1839
+	 */
1840
+	public function course_notification_meta_box_content( $course ){
1830 1841
 
1831
-        return $should_send;
1832
-    }// end block_notification_emails
1842
+		$checked = get_post_meta( $course->ID , 'disable_notification', true );
1833 1843
 
1834
-    /**
1835
-     * Render the course notification setting meta box
1836
-     *
1837
-     * @since 1.8.0
1838
-     * @param $course
1839
-     */
1840
-    public function course_notification_meta_box_content( $course ){
1844
+		// generate checked html
1845
+		$checked_html = '';
1846
+		if( $checked ){
1847
+			$checked_html = 'checked="checked"';
1848
+		}
1849
+		wp_nonce_field( 'update-course-notification-setting','_sensei_course_notification' );
1841 1850
 
1842
-        $checked = get_post_meta( $course->ID , 'disable_notification', true );
1851
+		echo '<input id="disable_sensei_course_notification" '.$checked_html .' type="checkbox" name="disable_sensei_course_notification" >';
1852
+		echo '<label for="disable_sensei_course_notification">'.__('Disable notifications on this course ?', 'woothemes-sensei'). '</label>';
1843 1853
 
1844
-        // generate checked html
1845
-        $checked_html = '';
1846
-        if( $checked ){
1847
-            $checked_html = 'checked="checked"';
1848
-        }
1849
-        wp_nonce_field( 'update-course-notification-setting','_sensei_course_notification' );
1854
+	}// end course_notification_meta_box_content
1850 1855
 
1851
-        echo '<input id="disable_sensei_course_notification" '.$checked_html .' type="checkbox" name="disable_sensei_course_notification" >';
1852
-        echo '<label for="disable_sensei_course_notification">'.__('Disable notifications on this course ?', 'woothemes-sensei'). '</label>';
1853
-
1854
-    }// end course_notification_meta_box_content
1855
-
1856
-    /**
1857
-     * Store the setting for the course notification setting.
1858
-     *
1859
-     * @hooked int save_post
1860
-     * @since 1.8.0
1861
-     *
1862
-     * @param $course_id
1863
-     */
1864
-    public function save_course_notification_meta_box( $course_id ){
1856
+	/**
1857
+	 * Store the setting for the course notification setting.
1858
+	 *
1859
+	 * @hooked int save_post
1860
+	 * @since 1.8.0
1861
+	 *
1862
+	 * @param $course_id
1863
+	 */
1864
+	public function save_course_notification_meta_box( $course_id ){
1865 1865
 
1866
-        if( !isset( $_POST['_sensei_course_notification']  )
1867
-            || ! wp_verify_nonce( $_POST['_sensei_course_notification'], 'update-course-notification-setting' ) ){
1868
-            return;
1869
-        }
1866
+		if( !isset( $_POST['_sensei_course_notification']  )
1867
+			|| ! wp_verify_nonce( $_POST['_sensei_course_notification'], 'update-course-notification-setting' ) ){
1868
+			return;
1869
+		}
1870 1870
 
1871
-        if( isset( $_POST['disable_sensei_course_notification'] ) && 'on'== $_POST['disable_sensei_course_notification']  ) {
1872
-            $new_val = true;
1873
-        }else{
1874
-            $new_val = false;
1875
-        }
1871
+		if( isset( $_POST['disable_sensei_course_notification'] ) && 'on'== $_POST['disable_sensei_course_notification']  ) {
1872
+			$new_val = true;
1873
+		}else{
1874
+			$new_val = false;
1875
+		}
1876 1876
 
1877
-       update_post_meta( $course_id , 'disable_notification', $new_val );
1877
+	   update_post_meta( $course_id , 'disable_notification', $new_val );
1878 1878
 
1879
-    }// end save notification meta box
1879
+	}// end save notification meta box
1880 1880
 
1881
-    /**
1882
-     * Backwards compatibility hooks added to ensure that
1883
-     * plugins and other parts of sensei still works.
1884
-     *
1885
-     * This function hooks into `sensei_course_content_inside_before`
1886
-     *
1887
-     * @since 1.9
1888
-     *
1889
-     * @param WP_Post $post
1890
-     */
1891
-    public function content_before_backwards_compatibility_hooks( $post ){
1881
+	/**
1882
+	 * Backwards compatibility hooks added to ensure that
1883
+	 * plugins and other parts of sensei still works.
1884
+	 *
1885
+	 * This function hooks into `sensei_course_content_inside_before`
1886
+	 *
1887
+	 * @since 1.9
1888
+	 *
1889
+	 * @param WP_Post $post
1890
+	 */
1891
+	public function content_before_backwards_compatibility_hooks( $post ){
1892 1892
 
1893
-        if( has_action( 'sensei_course_image' ) ){
1893
+		if( has_action( 'sensei_course_image' ) ){
1894 1894
 
1895
-            _doing_it_wrong('sensei_course_image','This action has been retired: . Please use sensei_course_content_inside_before instead.', '1.9' );
1896
-            do_action('sensei_course_image', $post->ID );
1895
+			_doing_it_wrong('sensei_course_image','This action has been retired: . Please use sensei_course_content_inside_before instead.', '1.9' );
1896
+			do_action('sensei_course_image', $post->ID );
1897 1897
 
1898
-        }
1898
+		}
1899 1899
 
1900
-        if( has_action( 'sensei_course_archive_course_title' ) ){
1900
+		if( has_action( 'sensei_course_archive_course_title' ) ){
1901 1901
 
1902
-            _doing_it_wrong('sensei_course_archive_course_title','This action has been retired: . Please use sensei_course_content_inside_before instead.', '1.9' );
1903
-            do_action('sensei_course_archive_course_title', $post );
1902
+			_doing_it_wrong('sensei_course_archive_course_title','This action has been retired: . Please use sensei_course_content_inside_before instead.', '1.9' );
1903
+			do_action('sensei_course_archive_course_title', $post );
1904 1904
 
1905
-        }
1905
+		}
1906 1906
 
1907
-    }
1907
+	}
1908 1908
 
1909
-    /**
1910
-     * Backwards compatibility hooks that should be hooked into sensei_loop_course_before
1911
-     *
1912
-     * hooked into 'sensei_loop_course_before'
1913
-     *
1914
-     * @since 1.9
1915
-     *
1916
-     * @global WP_Post $post
1917
-     */
1918
-    public  function loop_before_backwards_compatibility_hooks( ){
1919
-
1920
-        global $post;
1921
-        sensei_do_deprecated_action( 'sensei_course_archive_header','1.9.0','sensei_course_content_inside_before', $post->post_type  );
1922
-
1923
-    }
1924
-
1925
-    /**
1926
-     * Output a link to view course. The button text is different depending on the amount of preview lesson available.
1927
-     *
1928
-     * hooked into 'sensei_course_content_inside_after'
1929
-     *
1930
-     * @since 1.9.0
1931
-     *
1932
-     * @param WP_Post $course
1933
-     */
1934
-    public function the_course_free_lesson_preview( $course ){
1935
-        // Meta data
1936
-        $preview_lesson_count = intval( Sensei()->course->course_lesson_preview_count( $course->ID ) );
1937
-        $is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $course->ID, get_current_user_id() );
1938
-
1939
-        if ( 0 < $preview_lesson_count && !$is_user_taking_course ) {
1940
-            ?>
1909
+	/**
1910
+	 * Backwards compatibility hooks that should be hooked into sensei_loop_course_before
1911
+	 *
1912
+	 * hooked into 'sensei_loop_course_before'
1913
+	 *
1914
+	 * @since 1.9
1915
+	 *
1916
+	 * @global WP_Post $post
1917
+	 */
1918
+	public  function loop_before_backwards_compatibility_hooks( ){
1919
+
1920
+		global $post;
1921
+		sensei_do_deprecated_action( 'sensei_course_archive_header','1.9.0','sensei_course_content_inside_before', $post->post_type  );
1922
+
1923
+	}
1924
+
1925
+	/**
1926
+	 * Output a link to view course. The button text is different depending on the amount of preview lesson available.
1927
+	 *
1928
+	 * hooked into 'sensei_course_content_inside_after'
1929
+	 *
1930
+	 * @since 1.9.0
1931
+	 *
1932
+	 * @param WP_Post $course
1933
+	 */
1934
+	public function the_course_free_lesson_preview( $course ){
1935
+		// Meta data
1936
+		$preview_lesson_count = intval( Sensei()->course->course_lesson_preview_count( $course->ID ) );
1937
+		$is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $course->ID, get_current_user_id() );
1938
+
1939
+		if ( 0 < $preview_lesson_count && !$is_user_taking_course ) {
1940
+			?>
1941 1941
             <p class="sensei-free-lessons">
1942 1942
                 <a href="<?php echo get_permalink(); ?>">
1943 1943
                     <?php _e( 'Preview this course', 'woothemes-sensei' ) ?>
@@ -1946,22 +1946,22 @@  discard block
 block discarded – undo
1946 1946
             </p>
1947 1947
 
1948 1948
         <?php
1949
-        }
1950
-    }
1949
+		}
1950
+	}
1951 1951
 
1952
-    /**
1953
-     * Add course mata to the course meta hook
1954
-     *
1955
-     * @since 1.9.0
1956
-     * @param WP_Post $course
1957
-     */
1958
-    public function the_course_meta( $course ){
1959
-        echo '<p class="sensei-course-meta">';
1952
+	/**
1953
+	 * Add course mata to the course meta hook
1954
+	 *
1955
+	 * @since 1.9.0
1956
+	 * @param WP_Post $course
1957
+	 */
1958
+	public function the_course_meta( $course ){
1959
+		echo '<p class="sensei-course-meta">';
1960 1960
 
1961
-        $category_output = get_the_term_list( $course->ID, 'course-category', '', ', ', '' );
1962
-        $author_display_name = get_the_author_meta( 'display_name', $course->post_author  );
1961
+		$category_output = get_the_term_list( $course->ID, 'course-category', '', ', ', '' );
1962
+		$author_display_name = get_the_author_meta( 'display_name', $course->post_author  );
1963 1963
 
1964
-        if ( isset( Sensei()->settings->settings[ 'course_author' ] ) && ( Sensei()->settings->settings[ 'course_author' ] ) ) {?>
1964
+		if ( isset( Sensei()->settings->settings[ 'course_author' ] ) && ( Sensei()->settings->settings[ 'course_author' ] ) ) {?>
1965 1965
 
1966 1966
             <span class="course-author"><?php _e( 'by ', 'woothemes-sensei' ); ?>
1967 1967
 
@@ -1979,59 +1979,59 @@  discard block
 block discarded – undo
1979 1979
 
1980 1980
         <?php } // End If Statement
1981 1981
 
1982
-        // number of completed lessons
1983
-        if( is_user_logged_in() ){
1984
-            $completed = count( $this->get_completed_lesson_ids( $course->ID, get_current_user_id() ) );
1985
-            $lesson_count = count( $this->course_lessons( $course->ID ) );
1986
-            echo '<span class="course-lesson-progress">' . sprintf( __( '%1$d of %2$d lessons completed', 'woothemes-sensei' ) , $completed, $lesson_count  ) . '</span>';
1987
-        }
1982
+		// number of completed lessons
1983
+		if( is_user_logged_in() ){
1984
+			$completed = count( $this->get_completed_lesson_ids( $course->ID, get_current_user_id() ) );
1985
+			$lesson_count = count( $this->course_lessons( $course->ID ) );
1986
+			echo '<span class="course-lesson-progress">' . sprintf( __( '%1$d of %2$d lessons completed', 'woothemes-sensei' ) , $completed, $lesson_count  ) . '</span>';
1987
+		}
1988 1988
 
1989
-        sensei_simple_course_price( $course->ID );
1989
+		sensei_simple_course_price( $course->ID );
1990 1990
 
1991
-        echo '</p>';
1992
-    } // end the course meta
1991
+		echo '</p>';
1992
+	} // end the course meta
1993 1993
 
1994
-    /**
1995
-     * Filter the classes attached to a post types for courses
1996
-     * and add a status class for when the user is logged in.
1997
-     *
1998
-     * @param $classes
1999
-     * @param $class
2000
-     * @param $post_id
2001
-     *
2002
-     * @return array $classes
2003
-     */
2004
-    public static function add_course_user_status_class( $classes, $class, $course_id ){
1994
+	/**
1995
+	 * Filter the classes attached to a post types for courses
1996
+	 * and add a status class for when the user is logged in.
1997
+	 *
1998
+	 * @param $classes
1999
+	 * @param $class
2000
+	 * @param $post_id
2001
+	 *
2002
+	 * @return array $classes
2003
+	 */
2004
+	public static function add_course_user_status_class( $classes, $class, $course_id ){
2005 2005
 
2006
-        if( 'course' == get_post_type( $course_id )  &&  is_user_logged_in() ){
2006
+		if( 'course' == get_post_type( $course_id )  &&  is_user_logged_in() ){
2007 2007
 
2008
-            if( WooThemes_Sensei_Utils::user_completed_course( $course_id, get_current_user_id() ) ){
2008
+			if( WooThemes_Sensei_Utils::user_completed_course( $course_id, get_current_user_id() ) ){
2009 2009
 
2010
-                $classes[] = 'user-status-completed';
2010
+				$classes[] = 'user-status-completed';
2011 2011
 
2012
-            }else{
2012
+			}else{
2013 2013
 
2014
-                $classes[] = 'user-status-active';
2014
+				$classes[] = 'user-status-active';
2015 2015
 
2016
-            }
2016
+			}
2017 2017
 
2018
-        }
2018
+		}
2019 2019
 
2020
-        return $classes;
2020
+		return $classes;
2021 2021
 
2022
-    }// end add_course_user_status_class
2022
+	}// end add_course_user_status_class
2023 2023
 
2024
-    /**
2025
-     * Prints out the course action buttons links
2026
-     *
2027
-     * - complete course
2028
-     * - delete course
2029
-     *
2030
-     * @param WP_Post $course
2031
-     */
2032
-    public static function the_course_action_buttons( $course ){
2024
+	/**
2025
+	 * Prints out the course action buttons links
2026
+	 *
2027
+	 * - complete course
2028
+	 * - delete course
2029
+	 *
2030
+	 * @param WP_Post $course
2031
+	 */
2032
+	public static function the_course_action_buttons( $course ){
2033 2033
 
2034
-        if( is_user_logged_in() ) { ?>
2034
+		if( is_user_logged_in() ) { ?>
2035 2035
 
2036 2036
             <section class="entry-actions">
2037 2037
                 <form method="POST" action="<?php  echo esc_url( remove_query_arg( array( 'active_page', 'completed_page' ) ) ); ?>">
@@ -2050,32 +2050,32 @@  discard block
 block discarded – undo
2050 2050
 
2051 2051
                    <?php  } // End If Statement
2052 2052
 
2053
-                    $course_purchased = false;
2054
-                    if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() ) {
2055
-                        // Get the product ID
2056
-                        $wc_post_id = get_post_meta( intval( $course->ID ), '_course_woocommerce_product', true );
2057
-                        if ( 0 < $wc_post_id ) {
2053
+					$course_purchased = false;
2054
+					if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() ) {
2055
+						// Get the product ID
2056
+						$wc_post_id = get_post_meta( intval( $course->ID ), '_course_woocommerce_product', true );
2057
+						if ( 0 < $wc_post_id ) {
2058 2058
 
2059
-                            $user = wp_get_current_user();
2060
-                            $course_purchased = WooThemes_Sensei_Utils::sensei_customer_bought_product( $user->user_email, $user->ID, $wc_post_id );
2059
+							$user = wp_get_current_user();
2060
+							$course_purchased = WooThemes_Sensei_Utils::sensei_customer_bought_product( $user->user_email, $user->ID, $wc_post_id );
2061 2061
 
2062
-                        } // End If Statement
2063
-                    } // End If Statement
2062
+						} // End If Statement
2063
+					} // End If Statement
2064 2064
 
2065
-                    if ( ! $course_purchased && ! WooThemes_Sensei_Utils::user_completed_course( $course->ID, get_current_user_id() ) ) {?>
2065
+					if ( ! $course_purchased && ! WooThemes_Sensei_Utils::user_completed_course( $course->ID, get_current_user_id() ) ) {?>
2066 2066
 
2067 2067
                         <span><input name="course_complete" type="submit" class="course-delete" value="<?php echo __( 'Delete Course', 'woothemes-sensei' ); ?>"/></span>
2068 2068
 
2069 2069
                     <?php } // End If Statement
2070 2070
 
2071
-                    $has_quizzes = Sensei()->course->course_quizzes( $course->ID, true );
2072
-                    $results_link = '';
2073
-                    if( $has_quizzes ){
2074
-                        $results_link = '<a class="button view-results" href="' . Sensei()->course_results->get_permalink( $course->ID ) . '">' . __( 'View results', 'woothemes-sensei' ) . '</a>';
2075
-                    }
2071
+					$has_quizzes = Sensei()->course->course_quizzes( $course->ID, true );
2072
+					$results_link = '';
2073
+					if( $has_quizzes ){
2074
+						$results_link = '<a class="button view-results" href="' . Sensei()->course_results->get_permalink( $course->ID ) . '">' . __( 'View results', 'woothemes-sensei' ) . '</a>';
2075
+					}
2076 2076
 
2077
-                    // Output only if there is content to display
2078
-                    if ( has_filter( 'sensei_results_links' ) || $has_quizzes ) { ?>
2077
+					// Output only if there is content to display
2078
+					if ( has_filter( 'sensei_results_links' ) || $has_quizzes ) { ?>
2079 2079
 
2080 2080
                         <p class="sensei-results-links">
2081 2081
                             <?php echo apply_filters( 'sensei_results_links', $results_link ); ?>
@@ -2087,440 +2087,440 @@  discard block
 block discarded – undo
2087 2087
 
2088 2088
         <?php  }// end if is user logged in
2089 2089
 
2090
-    }// end the_course_action_buttons
2091
-
2092
-    /**
2093
-     * This function alter the main query on the course archive page.
2094
-     * This also gives Sensei specific filters that allows variables to be altered specifically on the course archive.
2095
-     *
2096
-     * This function targets only the course archives and the my courses page. Shortcodes can set their own
2097
-     * query parameters via the arguments.
2098
-     *
2099
-     * This function is hooked into pre_get_posts filter
2100
-     *
2101
-     * @since 1.9.0
2102
-     *
2103
-     * @param WP_Query $query
2104
-     * @return WP_Query $query
2105
-     */
2106
-    public static function course_query_filter( $query ){
2107
-
2108
-        // exit early for no course queries and admin queries
2109
-        if( is_admin( ) || 'course' != $query->get( 'post_type' ) ){
2110
-            return $query;
2111
-        }
2112
-
2113
-        global $post; // used to get the current page id for my courses
2114
-
2115
-        // for the course archive page
2116
-        if( $query->is_main_query() && is_post_type_archive('course') )
2117
-        {
2118
-
2119
-            $query->set( 'posts_per_page', apply_filters( 'sensei_archive_courses_per_page', get_option( 'posts_per_page' ) ) );
2120
-
2121
-        }
2122
-        // for the my courses page
2123
-        elseif( is_page() && Sensei()->settings->get( 'my_course_page' ) == $post->ID  )
2124
-        {
2125
-
2126
-            $query->set( 'posts_per_page', apply_filters( 'sensei_my_courses_per_page', get_option( 'posts_per_page' ) ) );
2127
-
2128
-        }
2129
-
2130
-        return $query;
2131
-
2132
-    }// end course_query_filter
2133
-
2134
-    /**
2135
-     * Determine the class of the course loop
2136
-     *
2137
-     * This will output .first or .last and .course-item-number-x
2138
-     *
2139
-     * @return array $extra_classes
2140
-     * @since 1.9.0
2141
-     */
2142
-    public static function get_course_loop_content_class ()
2143
-    {
2144
-
2145
-        global $sensei_course_loop;
2146
-
2147
-
2148
-        if( !isset( $sensei_course_loop ) ){
2149
-            $sensei_course_loop = array();
2150
-        }
2151
-
2152
-        if (!isset($sensei_course_loop['counter'])) {
2153
-            $sensei_course_loop['counter'] = 0;
2154
-        }
2155
-
2156
-        if (!isset($sensei_course_loop['columns'])) {
2157
-            $sensei_course_loop['columns'] = self::get_loop_number_of_columns();
2158
-        }
2159
-
2160
-        // increment the counter
2161
-        $sensei_course_loop['counter']++;
2162
-
2163
-        $extra_classes = array();
2164
-        if( 0 == ( $sensei_course_loop['counter'] - 1 ) % $sensei_course_loop['columns'] || 1 == $sensei_course_loop['columns']  ){
2165
-            $extra_classes[] = 'first';
2166
-        }
2167
-
2168
-        if( 0 == $sensei_course_loop['counter'] % $sensei_course_loop['columns']  ){
2169
-            $extra_classes[] = 'last';
2170
-        }
2171
-
2172
-        // add the item number to the classes as well.
2173
-        $extra_classes[] = 'loop-item-number-'. $sensei_course_loop['counter'];
2174
-
2175
-        /**
2176
-         * Filter the course loop class the fires in the  in get_course_loop_content_class function
2177
-         * which is called from the course loop content-course.php
2178
-         *
2179
-         * @since 1.9.0
2180
-         *
2181
-         * @param array $extra_classes
2182
-         * @param WP_Post $loop_current_course
2183
-         */
2184
-        return apply_filters( 'sensei_course_loop_content_class', $extra_classes ,get_post() );
2185
-
2186
-    }// end get_course_loop_class
2187
-
2188
-    /**
2189
-     * Get the number of columns set for Sensei courses
2190
-     *
2191
-     * @since 1.9.0
2192
-     * @return mixed|void
2193
-     */
2194
-    public static function get_loop_number_of_columns(){
2195
-
2196
-        /**
2197
-         * Filter the number of columns on the course archive page.
2198
-         *
2199
-         * @since 1.9.0
2200
-         * @param int $number_of_columns default 1
2201
-         */
2202
-        return apply_filters('sensei_course_loop_number_of_columns', 1);
2203
-
2204
-    }
2205
-
2206
-    /**
2207
-     * Output the course archive filter markup
2208
-     *
2209
-     * hooked into sensei_loop_course_before
2210
-     *
2211
-     * @since 1.9.0
2212
-     * @param
2213
-     */
2214
-    public static function course_archive_sorting( $query ){
2215
-
2216
-        // don't show on category pages and other pages
2217
-        if( ! is_archive(  'course ') || is_tax('course-category') ){
2218
-            return;
2219
-        }
2220
-
2221
-        /**
2222
-         * Filter the sensei archive course order by values
2223
-         *
2224
-         * @since 1.9.0
2225
-         * @param array $options {
2226
-         *  @type string $option_value
2227
-         *  @type string $option_string
2228
-         * }
2229
-         */
2230
-        $course_order_by_options = apply_filters( 'sensei_archive_course_order_by_options', array(
2231
-            "newness"     => __( "Sort by newest first", "woothemes-sensei"),
2232
-            "title"       => __( "Sort by title A-Z", "woothemes-sensei" ),
2233
-        ));
2234
-
2235
-        // setup the currently selected item
2236
-        $selected = 'newness';
2237
-        if( isset( $_GET['orderby'] ) ){
2238
-
2239
-            $selected =  $_GET[ 'orderby' ];
2240
-
2241
-        }
2242
-
2243
-        ?>
2090
+	}// end the_course_action_buttons
2091
+
2092
+	/**
2093
+	 * This function alter the main query on the course archive page.
2094
+	 * This also gives Sensei specific filters that allows variables to be altered specifically on the course archive.
2095
+	 *
2096
+	 * This function targets only the course archives and the my courses page. Shortcodes can set their own
2097
+	 * query parameters via the arguments.
2098
+	 *
2099
+	 * This function is hooked into pre_get_posts filter
2100
+	 *
2101
+	 * @since 1.9.0
2102
+	 *
2103
+	 * @param WP_Query $query
2104
+	 * @return WP_Query $query
2105
+	 */
2106
+	public static function course_query_filter( $query ){
2107
+
2108
+		// exit early for no course queries and admin queries
2109
+		if( is_admin( ) || 'course' != $query->get( 'post_type' ) ){
2110
+			return $query;
2111
+		}
2112
+
2113
+		global $post; // used to get the current page id for my courses
2114
+
2115
+		// for the course archive page
2116
+		if( $query->is_main_query() && is_post_type_archive('course') )
2117
+		{
2118
+
2119
+			$query->set( 'posts_per_page', apply_filters( 'sensei_archive_courses_per_page', get_option( 'posts_per_page' ) ) );
2120
+
2121
+		}
2122
+		// for the my courses page
2123
+		elseif( is_page() && Sensei()->settings->get( 'my_course_page' ) == $post->ID  )
2124
+		{
2125
+
2126
+			$query->set( 'posts_per_page', apply_filters( 'sensei_my_courses_per_page', get_option( 'posts_per_page' ) ) );
2127
+
2128
+		}
2129
+
2130
+		return $query;
2131
+
2132
+	}// end course_query_filter
2133
+
2134
+	/**
2135
+	 * Determine the class of the course loop
2136
+	 *
2137
+	 * This will output .first or .last and .course-item-number-x
2138
+	 *
2139
+	 * @return array $extra_classes
2140
+	 * @since 1.9.0
2141
+	 */
2142
+	public static function get_course_loop_content_class ()
2143
+	{
2144
+
2145
+		global $sensei_course_loop;
2146
+
2147
+
2148
+		if( !isset( $sensei_course_loop ) ){
2149
+			$sensei_course_loop = array();
2150
+		}
2151
+
2152
+		if (!isset($sensei_course_loop['counter'])) {
2153
+			$sensei_course_loop['counter'] = 0;
2154
+		}
2155
+
2156
+		if (!isset($sensei_course_loop['columns'])) {
2157
+			$sensei_course_loop['columns'] = self::get_loop_number_of_columns();
2158
+		}
2159
+
2160
+		// increment the counter
2161
+		$sensei_course_loop['counter']++;
2162
+
2163
+		$extra_classes = array();
2164
+		if( 0 == ( $sensei_course_loop['counter'] - 1 ) % $sensei_course_loop['columns'] || 1 == $sensei_course_loop['columns']  ){
2165
+			$extra_classes[] = 'first';
2166
+		}
2167
+
2168
+		if( 0 == $sensei_course_loop['counter'] % $sensei_course_loop['columns']  ){
2169
+			$extra_classes[] = 'last';
2170
+		}
2171
+
2172
+		// add the item number to the classes as well.
2173
+		$extra_classes[] = 'loop-item-number-'. $sensei_course_loop['counter'];
2174
+
2175
+		/**
2176
+		 * Filter the course loop class the fires in the  in get_course_loop_content_class function
2177
+		 * which is called from the course loop content-course.php
2178
+		 *
2179
+		 * @since 1.9.0
2180
+		 *
2181
+		 * @param array $extra_classes
2182
+		 * @param WP_Post $loop_current_course
2183
+		 */
2184
+		return apply_filters( 'sensei_course_loop_content_class', $extra_classes ,get_post() );
2185
+
2186
+	}// end get_course_loop_class
2187
+
2188
+	/**
2189
+	 * Get the number of columns set for Sensei courses
2190
+	 *
2191
+	 * @since 1.9.0
2192
+	 * @return mixed|void
2193
+	 */
2194
+	public static function get_loop_number_of_columns(){
2195
+
2196
+		/**
2197
+		 * Filter the number of columns on the course archive page.
2198
+		 *
2199
+		 * @since 1.9.0
2200
+		 * @param int $number_of_columns default 1
2201
+		 */
2202
+		return apply_filters('sensei_course_loop_number_of_columns', 1);
2203
+
2204
+	}
2205
+
2206
+	/**
2207
+	 * Output the course archive filter markup
2208
+	 *
2209
+	 * hooked into sensei_loop_course_before
2210
+	 *
2211
+	 * @since 1.9.0
2212
+	 * @param
2213
+	 */
2214
+	public static function course_archive_sorting( $query ){
2215
+
2216
+		// don't show on category pages and other pages
2217
+		if( ! is_archive(  'course ') || is_tax('course-category') ){
2218
+			return;
2219
+		}
2220
+
2221
+		/**
2222
+		 * Filter the sensei archive course order by values
2223
+		 *
2224
+		 * @since 1.9.0
2225
+		 * @param array $options {
2226
+		 *  @type string $option_value
2227
+		 *  @type string $option_string
2228
+		 * }
2229
+		 */
2230
+		$course_order_by_options = apply_filters( 'sensei_archive_course_order_by_options', array(
2231
+			"newness"     => __( "Sort by newest first", "woothemes-sensei"),
2232
+			"title"       => __( "Sort by title A-Z", "woothemes-sensei" ),
2233
+		));
2234
+
2235
+		// setup the currently selected item
2236
+		$selected = 'newness';
2237
+		if( isset( $_GET['orderby'] ) ){
2238
+
2239
+			$selected =  $_GET[ 'orderby' ];
2240
+
2241
+		}
2242
+
2243
+		?>
2244 2244
 
2245 2245
         <form class="sensei-ordering" name="sensei-course-order" action="<?php echo WooThemes_Sensei_Utils::get_current_url(); ?>" method="POST">
2246 2246
             <select name="course-orderby" class="orderby">
2247 2247
                 <?php
2248
-                foreach( $course_order_by_options as $value => $text ){
2248
+				foreach( $course_order_by_options as $value => $text ){
2249 2249
 
2250
-                    echo '<option value="'. $value . ' "' . selected( $selected, $value, false ) . '>'. $text. '</option>';
2250
+					echo '<option value="'. $value . ' "' . selected( $selected, $value, false ) . '>'. $text. '</option>';
2251 2251
 
2252
-                }
2253
-                ?>
2252
+				}
2253
+				?>
2254 2254
             </select>
2255 2255
         </form>
2256 2256
 
2257 2257
     <?php
2258
-    }// end course archive filters
2259
-
2260
-    /**
2261
-     * Output the course archive filter markup
2262
-     *
2263
-     * hooked into sensei_loop_course_before
2264
-     *
2265
-     * @since 1.9.0
2266
-     * @param
2267
-     */
2268
-    public static function course_archive_filters( $query ){
2269
-
2270
-        // don't show on category pages
2271
-        if( is_tax('course-category') ){
2272
-            return;
2273
-        }
2274
-
2275
-        /**
2276
-         * filter the course archive filter buttons
2277
-         *
2278
-         * @since 1.9.0
2279
-         * @param array $filters{
2280
-         *   @type array ( $id, $url , $title )
2281
-         * }
2282
-         *
2283
-         */
2284
-        $filters = apply_filters( 'sensei_archive_course_filter_by_options', array(
2285
-            array( 'id' => 'all', 'url' => self::get_courses_page_url(), 'title'=> __( 'All', 'woothemes-sensei' ) ),
2286
-            array( 'id' => 'featured', 'url' => add_query_arg( array( 'course_filter'=>'featured'), self::get_courses_page_url()  ), 'title'=> __( 'Featured', 'woothemes-sensei' ) ),
2287
-        ));
2288
-
2289
-
2290
-        ?>
2258
+	}// end course archive filters
2259
+
2260
+	/**
2261
+	 * Output the course archive filter markup
2262
+	 *
2263
+	 * hooked into sensei_loop_course_before
2264
+	 *
2265
+	 * @since 1.9.0
2266
+	 * @param
2267
+	 */
2268
+	public static function course_archive_filters( $query ){
2269
+
2270
+		// don't show on category pages
2271
+		if( is_tax('course-category') ){
2272
+			return;
2273
+		}
2274
+
2275
+		/**
2276
+		 * filter the course archive filter buttons
2277
+		 *
2278
+		 * @since 1.9.0
2279
+		 * @param array $filters{
2280
+		 *   @type array ( $id, $url , $title )
2281
+		 * }
2282
+		 *
2283
+		 */
2284
+		$filters = apply_filters( 'sensei_archive_course_filter_by_options', array(
2285
+			array( 'id' => 'all', 'url' => self::get_courses_page_url(), 'title'=> __( 'All', 'woothemes-sensei' ) ),
2286
+			array( 'id' => 'featured', 'url' => add_query_arg( array( 'course_filter'=>'featured'), self::get_courses_page_url()  ), 'title'=> __( 'Featured', 'woothemes-sensei' ) ),
2287
+		));
2288
+
2289
+
2290
+		?>
2291 2291
         <ul class="sensei-course-filters clearfix" >
2292 2292
             <?php
2293 2293
 
2294
-            //determine the current active url
2295
-            $current_url = WooThemes_Sensei_Utils::get_current_url();
2294
+			//determine the current active url
2295
+			$current_url = WooThemes_Sensei_Utils::get_current_url();
2296 2296
 
2297
-            foreach( $filters as $filter ) {
2297
+			foreach( $filters as $filter ) {
2298 2298
 
2299
-                $active_class =  $current_url == $filter['url'] ? ' class="active" ' : '';
2299
+				$active_class =  $current_url == $filter['url'] ? ' class="active" ' : '';
2300 2300
 
2301
-                echo '<li><a '. $active_class .' id="'. $filter['id'] .'" href="'. esc_url( $filter['url'] ).'" >'. $filter['title']  .'</a></li>';
2301
+				echo '<li><a '. $active_class .' id="'. $filter['id'] .'" href="'. esc_url( $filter['url'] ).'" >'. $filter['title']  .'</a></li>';
2302 2302
 
2303
-            }
2304
-            ?>
2303
+			}
2304
+			?>
2305 2305
 
2306 2306
         </ul>
2307 2307
 
2308 2308
         <?php
2309 2309
 
2310
-    }
2310
+	}
2311 2311
 
2312
-    /**
2313
-     * if the featured link is clicked on the course archive page
2314
-     * filter the courses returned to only show those featured
2315
-     *
2316
-     * Hooked into pre_get_posts
2317
-     *
2318
-     * @since 1.9.0
2319
-     * @param WP_Query $query
2320
-     * @return WP_Query $query
2321
-     */
2322
-    public static function course_archive_featured_filter( $query ){
2323
-
2324
-        if( isset ( $_GET[ 'course_filter' ] ) && 'featured'== $_GET['course_filter'] && $query->is_main_query()  ){
2325
-            //setup meta query for featured courses
2326
-            $query->set( 'meta_value', 'featured'  );
2327
-            $query->set( 'meta_key', '_course_featured'  );
2328
-            $query->set( 'meta_compare', '='  );
2329
-        }
2330
-
2331
-        return $query;
2332
-    }
2333
-
2334
-    /**
2335
-     * if the course order drop down is changed
2336
-     *
2337
-     * Hooked into pre_get_posts
2338
-     *
2339
-     * @since 1.9.0
2340
-     * @param WP_Query $query
2341
-     * @return WP_Query $query
2342
-     */
2343
-    public static function course_archive_order_by_title( $query ){
2344
-
2345
-        if( isset ( $_POST[ 'course-orderby' ] ) && 'title '== $_POST['course-orderby']
2346
-            && 'course'== $query->get('post_type') && $query->is_main_query()  ){
2347
-            // setup the order by title for this query
2348
-            $query->set( 'orderby', 'title'  );
2349
-            $query->set( 'order', 'ASC'  );
2350
-        }
2351
-
2352
-        return $query;
2353
-    }
2354
-
2355
-
2356
-    /**
2357
-     * Get the link to the courses page. This will be the course post type archive
2358
-     * page link or the page the user set in their settings
2359
-     *
2360
-     * @since 1.9.0
2361
-     * @return string $course_page_url
2362
-     */
2363
-    public static function get_courses_page_url(){
2364
-
2365
-        $course_page_id = intval( Sensei()->settings->settings[ 'course_page' ] );
2366
-        $course_page_url = empty( $course_page_id ) ? get_post_type_archive_link('course') : get_permalink( $course_page_id );
2312
+	/**
2313
+	 * if the featured link is clicked on the course archive page
2314
+	 * filter the courses returned to only show those featured
2315
+	 *
2316
+	 * Hooked into pre_get_posts
2317
+	 *
2318
+	 * @since 1.9.0
2319
+	 * @param WP_Query $query
2320
+	 * @return WP_Query $query
2321
+	 */
2322
+	public static function course_archive_featured_filter( $query ){
2367 2323
 
2368
-        return $course_page_url;
2369
-
2370
-    }// get_course_url
2324
+		if( isset ( $_GET[ 'course_filter' ] ) && 'featured'== $_GET['course_filter'] && $query->is_main_query()  ){
2325
+			//setup meta query for featured courses
2326
+			$query->set( 'meta_value', 'featured'  );
2327
+			$query->set( 'meta_key', '_course_featured'  );
2328
+			$query->set( 'meta_compare', '='  );
2329
+		}
2371 2330
 
2372
-    /**
2373
-     * Output the headers on the course archive page
2374
-     *
2375
-     * Hooked into the sensei_archive_title
2376
-     *
2377
-     * @since 1.9.0
2378
-     * @param string $query_type
2379
-     * @param string $before_html
2380
-     * @param string $after_html
2381
-     * @return void
2382
-     */
2383
-    public static function archive_header( $query_type ='' , $before_html='', $after_html =''  ){
2331
+		return $query;
2332
+	}
2384 2333
 
2385
-        if( ! is_post_type_archive('course') ){
2386
-            return;
2387
-        }
2334
+	/**
2335
+	 * if the course order drop down is changed
2336
+	 *
2337
+	 * Hooked into pre_get_posts
2338
+	 *
2339
+	 * @since 1.9.0
2340
+	 * @param WP_Query $query
2341
+	 * @return WP_Query $query
2342
+	 */
2343
+	public static function course_archive_order_by_title( $query ){
2388 2344
 
2389
-        // deprecated since 1.9.0
2390
-        sensei_do_deprecated_action('sensei_archive_title','1.9.0','sensei_archive_before_course_loop');
2345
+		if( isset ( $_POST[ 'course-orderby' ] ) && 'title '== $_POST['course-orderby']
2346
+			&& 'course'== $query->get('post_type') && $query->is_main_query()  ){
2347
+			// setup the order by title for this query
2348
+			$query->set( 'orderby', 'title'  );
2349
+			$query->set( 'order', 'ASC'  );
2350
+		}
2391 2351
 
2392
-        $html = '';
2352
+		return $query;
2353
+	}
2393 2354
 
2394
-        if( empty( $before_html ) ){
2395 2355
 
2396
-            $before_html = '<header class="archive-header"><h1>';
2356
+	/**
2357
+	 * Get the link to the courses page. This will be the course post type archive
2358
+	 * page link or the page the user set in their settings
2359
+	 *
2360
+	 * @since 1.9.0
2361
+	 * @return string $course_page_url
2362
+	 */
2363
+	public static function get_courses_page_url(){
2397 2364
 
2398
-        }
2365
+		$course_page_id = intval( Sensei()->settings->settings[ 'course_page' ] );
2366
+		$course_page_url = empty( $course_page_id ) ? get_post_type_archive_link('course') : get_permalink( $course_page_id );
2399 2367
 
2400
-        if( empty( $after_html ) ){
2368
+		return $course_page_url;
2401 2369
 
2402
-            $after_html = '</h1></header>';
2370
+	}// get_course_url
2403 2371
 
2404
-        }
2372
+	/**
2373
+	 * Output the headers on the course archive page
2374
+	 *
2375
+	 * Hooked into the sensei_archive_title
2376
+	 *
2377
+	 * @since 1.9.0
2378
+	 * @param string $query_type
2379
+	 * @param string $before_html
2380
+	 * @param string $after_html
2381
+	 * @return void
2382
+	 */
2383
+	public static function archive_header( $query_type ='' , $before_html='', $after_html =''  ){
2405 2384
 
2406
-        if ( is_tax( 'course-category' ) ) {
2385
+		if( ! is_post_type_archive('course') ){
2386
+			return;
2387
+		}
2407 2388
 
2408
-            global $wp_query;
2389
+		// deprecated since 1.9.0
2390
+		sensei_do_deprecated_action('sensei_archive_title','1.9.0','sensei_archive_before_course_loop');
2409 2391
 
2410
-            $taxonomy_obj = $wp_query->get_queried_object();
2411
-            $taxonomy_short_name = $taxonomy_obj->taxonomy;
2412
-            $taxonomy_raw_obj = get_taxonomy( $taxonomy_short_name );
2413
-            $title = sprintf( __( '%1$s Archives: %2$s', 'woothemes-sensei' ), $taxonomy_raw_obj->labels->name, $taxonomy_obj->name );
2414
-            echo apply_filters( 'course_category_archive_title', $before_html . $title . $after_html );
2415
-            return;
2392
+		$html = '';
2416 2393
 
2417
-        } // End If Statement
2394
+		if( empty( $before_html ) ){
2418 2395
 
2419
-        switch ( $query_type ) {
2420
-            case 'newcourses':
2421
-                $html .= $before_html . __( 'New Courses', 'woothemes-sensei' ) . $after_html;
2422
-                break;
2423
-            case 'featuredcourses':
2424
-                $html .= $before_html .  __( 'Featured Courses', 'woothemes-sensei' ) . $after_html;
2425
-                break;
2426
-            case 'freecourses':
2427
-                $html .= $before_html .  __( 'Free Courses', 'woothemes-sensei' ) . $after_html;
2428
-                break;
2429
-            case 'paidcourses':
2430
-                $html .= $before_html .  __( 'Paid Courses', 'woothemes-sensei' ) . $after_html;
2431
-                break;
2432
-            default:
2433
-                $html .= $before_html . __( 'Courses', 'woothemes-sensei' ) . $after_html;
2434
-                break;
2435
-        } // End Switch Statement
2396
+			$before_html = '<header class="archive-header"><h1>';
2436 2397
 
2437
-        echo apply_filters( 'course_archive_title', $html );
2398
+		}
2438 2399
 
2439
-    }//course_archive_header
2400
+		if( empty( $after_html ) ){
2440 2401
 
2402
+			$after_html = '</h1></header>';
2441 2403
 
2442
-    /**
2443
-     * Filter the single course content
2444
-     * taking into account if the user has access.
2445
-     *
2446
-     * @1.9.0
2447
-     *
2448
-     * @param string $content
2449
-     * @return string $content or $excerpt
2450
-     */
2451
-    public static function single_course_content( $content ){
2404
+		}
2452 2405
 
2453
-        if( ! is_singular('course') ){
2406
+		if ( is_tax( 'course-category' ) ) {
2454 2407
 
2455
-            return $content;
2408
+			global $wp_query;
2456 2409
 
2457
-        }
2410
+			$taxonomy_obj = $wp_query->get_queried_object();
2411
+			$taxonomy_short_name = $taxonomy_obj->taxonomy;
2412
+			$taxonomy_raw_obj = get_taxonomy( $taxonomy_short_name );
2413
+			$title = sprintf( __( '%1$s Archives: %2$s', 'woothemes-sensei' ), $taxonomy_raw_obj->labels->name, $taxonomy_obj->name );
2414
+			echo apply_filters( 'course_category_archive_title', $before_html . $title . $after_html );
2415
+			return;
2458 2416
 
2459
-        // Content Access Permissions
2460
-        $access_permission = false;
2417
+		} // End If Statement
2461 2418
 
2462
-        if ( ! Sensei()->settings->get('access_permission')  || sensei_all_access() ) {
2419
+		switch ( $query_type ) {
2420
+			case 'newcourses':
2421
+				$html .= $before_html . __( 'New Courses', 'woothemes-sensei' ) . $after_html;
2422
+				break;
2423
+			case 'featuredcourses':
2424
+				$html .= $before_html .  __( 'Featured Courses', 'woothemes-sensei' ) . $after_html;
2425
+				break;
2426
+			case 'freecourses':
2427
+				$html .= $before_html .  __( 'Free Courses', 'woothemes-sensei' ) . $after_html;
2428
+				break;
2429
+			case 'paidcourses':
2430
+				$html .= $before_html .  __( 'Paid Courses', 'woothemes-sensei' ) . $after_html;
2431
+				break;
2432
+			default:
2433
+				$html .= $before_html . __( 'Courses', 'woothemes-sensei' ) . $after_html;
2434
+				break;
2435
+		} // End Switch Statement
2463 2436
 
2464
-            $access_permission = true;
2437
+		echo apply_filters( 'course_archive_title', $html );
2465 2438
 
2466
-        } // End If Statement
2439
+	}//course_archive_header
2440
+
2441
+
2442
+	/**
2443
+	 * Filter the single course content
2444
+	 * taking into account if the user has access.
2445
+	 *
2446
+	 * @1.9.0
2447
+	 *
2448
+	 * @param string $content
2449
+	 * @return string $content or $excerpt
2450
+	 */
2451
+	public static function single_course_content( $content ){
2467 2452
 
2468
-        // Check if the user is taking the course
2469
-        $is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( get_the_ID(), get_current_user_id() );
2453
+		if( ! is_singular('course') ){
2470 2454
 
2471
-        if(WooThemes_Sensei_Utils::sensei_is_woocommerce_activated()) {
2455
+			return $content;
2472 2456
 
2473
-            $wc_post_id = get_post_meta( get_the_ID(), '_course_woocommerce_product', true );
2474
-            $product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
2457
+		}
2475 2458
 
2476
-            $has_product_attached = isset ( $product ) && is_object ( $product );
2459
+		// Content Access Permissions
2460
+		$access_permission = false;
2477 2461
 
2478
-        } else {
2462
+		if ( ! Sensei()->settings->get('access_permission')  || sensei_all_access() ) {
2479 2463
 
2480
-            $has_product_attached = false;
2464
+			$access_permission = true;
2481 2465
 
2482
-        }
2466
+		} // End If Statement
2483 2467
 
2484
-        if ( ( is_user_logged_in() && $is_user_taking_course )
2485
-            || ( $access_permission && !$has_product_attached)
2486
-            || 'full' == Sensei()->settings->get( 'course_single_content_display' ) ) {
2468
+		// Check if the user is taking the course
2469
+		$is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( get_the_ID(), get_current_user_id() );
2487 2470
 
2488
-            return $content;
2471
+		if(WooThemes_Sensei_Utils::sensei_is_woocommerce_activated()) {
2489 2472
 
2490
-        } else {
2473
+			$wc_post_id = get_post_meta( get_the_ID(), '_course_woocommerce_product', true );
2474
+			$product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
2491 2475
 
2492
-            return '<p class="course-excerpt">' . get_post(  get_the_ID() )->post_excerpt . '</p>';
2476
+			$has_product_attached = isset ( $product ) && is_object ( $product );
2493 2477
 
2494
-        }
2478
+		} else {
2495 2479
 
2496
-    }// end single_course_content
2480
+			$has_product_attached = false;
2497 2481
 
2498
-    /**
2499
-     * Output the the single course lessons title with markup.
2500
-     *
2501
-     * @since 1.9.0
2502
-     */
2503
-    public static function the_course_lessons_title(){
2504
-        global $post;
2505
-        $none_module_lessons = Sensei()->modules->get_none_module_lessons( $post->ID  );
2506
-        $course_lessons = Sensei()->course->course_lessons( $post->ID );
2482
+		}
2507 2483
 
2508
-        // title should be Other Lessons if there are lessons belonging to models.
2509
-        $title = __('Other Lessons', 'woothemes-sensei');
2510
-        if( count( $course_lessons ) == count( $none_module_lessons )  ){
2484
+		if ( ( is_user_logged_in() && $is_user_taking_course )
2485
+			|| ( $access_permission && !$has_product_attached)
2486
+			|| 'full' == Sensei()->settings->get( 'course_single_content_display' ) ) {
2511 2487
 
2512
-            $title = __('Lessons', 'woothemes-sensei');
2488
+			return $content;
2513 2489
 
2514
-        }
2490
+		} else {
2515 2491
 
2516
-        /**
2517
-         * hook document in class-woothemes-sensei-message.php
2518
-         */
2519
-        $title = apply_filters( 'sensei_single_title', $title, $post->post_type );
2492
+			return '<p class="course-excerpt">' . get_post(  get_the_ID() )->post_excerpt . '</p>';
2520 2493
 
2521
-        ob_start(); // start capturing the following output.
2494
+		}
2522 2495
 
2523
-        ?>
2496
+	}// end single_course_content
2497
+
2498
+	/**
2499
+	 * Output the the single course lessons title with markup.
2500
+	 *
2501
+	 * @since 1.9.0
2502
+	 */
2503
+	public static function the_course_lessons_title(){
2504
+		global $post;
2505
+		$none_module_lessons = Sensei()->modules->get_none_module_lessons( $post->ID  );
2506
+		$course_lessons = Sensei()->course->course_lessons( $post->ID );
2507
+
2508
+		// title should be Other Lessons if there are lessons belonging to models.
2509
+		$title = __('Other Lessons', 'woothemes-sensei');
2510
+		if( count( $course_lessons ) == count( $none_module_lessons )  ){
2511
+
2512
+			$title = __('Lessons', 'woothemes-sensei');
2513
+
2514
+		}
2515
+
2516
+		/**
2517
+		 * hook document in class-woothemes-sensei-message.php
2518
+		 */
2519
+		$title = apply_filters( 'sensei_single_title', $title, $post->post_type );
2520
+
2521
+		ob_start(); // start capturing the following output.
2522
+
2523
+		?>
2524 2524
 
2525 2525
             <header>
2526 2526
                 <h2> <?php echo $title; ?> </h2>
@@ -2528,277 +2528,277 @@  discard block
 block discarded – undo
2528 2528
 
2529 2529
         <?php
2530 2530
 
2531
-        /**
2532
-         * Filter the title and markup that appears above the lessons on a single course
2533
-         * page.
2534
-         *
2535
-         * @since 1.9.0
2536
-         * @param string $lessons_title_html
2537
-         */
2538
-        echo apply_filters('the_course_lessons_title', ob_get_clean() ); // output and filter the captured output and stop capturing.
2539
-
2540
-    }// end the_course_lessons_title
2541
-
2542
-    /**
2543
-     * This function loads the global wp_query object with with lessons
2544
-     * of the current course. It is designed to be used on the single-course template
2545
-     * and expects the global post to be a singular course.
2546
-     *
2547
-     * This function excludes lessons belonging to modules as they are
2548
-     * queried separately.
2549
-     *
2550
-     * @since 1.9.0
2551
-     * @global $wp_query
2552
-     */
2553
-    public static function load_single_course_lessons_query(){
2531
+		/**
2532
+		 * Filter the title and markup that appears above the lessons on a single course
2533
+		 * page.
2534
+		 *
2535
+		 * @since 1.9.0
2536
+		 * @param string $lessons_title_html
2537
+		 */
2538
+		echo apply_filters('the_course_lessons_title', ob_get_clean() ); // output and filter the captured output and stop capturing.
2554 2539
 
2555
-        global $post, $wp_query;
2540
+	}// end the_course_lessons_title
2556 2541
 
2557
-        $course_id = $post->ID;
2558
-
2559
-        if( 'course' != get_post_type( $course_id ) ){
2560
-            return;
2561
-        }
2542
+	/**
2543
+	 * This function loads the global wp_query object with with lessons
2544
+	 * of the current course. It is designed to be used on the single-course template
2545
+	 * and expects the global post to be a singular course.
2546
+	 *
2547
+	 * This function excludes lessons belonging to modules as they are
2548
+	 * queried separately.
2549
+	 *
2550
+	 * @since 1.9.0
2551
+	 * @global $wp_query
2552
+	 */
2553
+	public static function load_single_course_lessons_query(){
2562 2554
 
2563
-        $course_lesson_query_args = array(
2564
-            'post_type'         => 'lesson',
2565
-            'posts_per_page'    => 500,
2566
-            'orderby'           => 'date',
2567
-            'order'             => 'ASC',
2568
-            'meta_query'        => array(
2569
-                array(
2570
-                    'key' => '_lesson_course',
2571
-                    'value' => intval( $course_id ),
2572
-                ),
2573
-            ),
2574
-            'post_status'       => 'public',
2575
-            'suppress_filters'  => 0,
2576
-        );
2555
+		global $post, $wp_query;
2577 2556
 
2578
-        // Exclude lessons belonging to modules as they are queried along with the modules.
2579
-        $modules = Sensei()->modules->get_course_modules( $course_id );
2580
-        if( !is_wp_error( $modules ) && ! empty( $modules ) && is_array( $modules ) ){
2557
+		$course_id = $post->ID;
2581 2558
 
2582
-            $terms_ids = array();
2583
-            foreach( $modules as $term ){
2559
+		if( 'course' != get_post_type( $course_id ) ){
2560
+			return;
2561
+		}
2584 2562
 
2585
-                $terms_ids[] = $term->term_id;
2563
+		$course_lesson_query_args = array(
2564
+			'post_type'         => 'lesson',
2565
+			'posts_per_page'    => 500,
2566
+			'orderby'           => 'date',
2567
+			'order'             => 'ASC',
2568
+			'meta_query'        => array(
2569
+				array(
2570
+					'key' => '_lesson_course',
2571
+					'value' => intval( $course_id ),
2572
+				),
2573
+			),
2574
+			'post_status'       => 'public',
2575
+			'suppress_filters'  => 0,
2576
+		);
2577
+
2578
+		// Exclude lessons belonging to modules as they are queried along with the modules.
2579
+		$modules = Sensei()->modules->get_course_modules( $course_id );
2580
+		if( !is_wp_error( $modules ) && ! empty( $modules ) && is_array( $modules ) ){
2581
+
2582
+			$terms_ids = array();
2583
+			foreach( $modules as $term ){
2584
+
2585
+				$terms_ids[] = $term->term_id;
2586 2586
 
2587
-            }
2587
+			}
2588 2588
 
2589
-            $course_lesson_query_args[ 'tax_query'] = array(
2590
-                array(
2591
-                    'taxonomy' => 'module',
2592
-                    'field'    => 'id',
2593
-                    'terms'    => $terms_ids,
2594
-                    'operator' => 'NOT IN',
2595
-                ),
2596
-            );
2597
-        }
2589
+			$course_lesson_query_args[ 'tax_query'] = array(
2590
+				array(
2591
+					'taxonomy' => 'module',
2592
+					'field'    => 'id',
2593
+					'terms'    => $terms_ids,
2594
+					'operator' => 'NOT IN',
2595
+				),
2596
+			);
2597
+		}
2598 2598
 
2599
-        $wp_query = new WP_Query( $course_lesson_query_args );
2599
+		$wp_query = new WP_Query( $course_lesson_query_args );
2600 2600
 
2601
-    }// load_single_course_lessons
2601
+	}// load_single_course_lessons
2602 2602
 
2603
-    /**
2604
-     * Flush the rewrite rules for a course post type
2605
-     *
2606
-     * @since 1.9.0
2607
-     *
2608
-     * @param $post_id
2609
-     */
2610
-    public static function flush_rewrite_rules( $post_id ){
2603
+	/**
2604
+	 * Flush the rewrite rules for a course post type
2605
+	 *
2606
+	 * @since 1.9.0
2607
+	 *
2608
+	 * @param $post_id
2609
+	 */
2610
+	public static function flush_rewrite_rules( $post_id ){
2611 2611
 
2612
-        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
2612
+		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
2613 2613
 
2614
-            return;
2614
+			return;
2615 2615
 
2616
-        }
2616
+		}
2617 2617
 
2618 2618
 
2619
-        if( 'course' == get_post_type( $post_id )  ){
2619
+		if( 'course' == get_post_type( $post_id )  ){
2620 2620
 
2621
-            Sensei()->initiate_rewrite_rules_flush();
2621
+			Sensei()->initiate_rewrite_rules_flush();
2622 2622
 
2623
-        }
2623
+		}
2624 2624
 
2625
-    }
2625
+	}
2626 2626
 
2627
-    /**
2628
-     * Optionally return the full content on the single course pages
2629
-     * depending on the users course_single_content_display setting
2630
-     *
2631
-     * @since 1.9.0
2632
-     * @param $excerpt
2633
-     * @return string
2634
-     */
2635
-    public static function full_content_excerpt_override( $excerpt ){
2627
+	/**
2628
+	 * Optionally return the full content on the single course pages
2629
+	 * depending on the users course_single_content_display setting
2630
+	 *
2631
+	 * @since 1.9.0
2632
+	 * @param $excerpt
2633
+	 * @return string
2634
+	 */
2635
+	public static function full_content_excerpt_override( $excerpt ){
2636 2636
 
2637
-        if (   is_singular('course')  &&
2638
-                'full' == Sensei()->settings->get( 'course_single_content_display' ) ){
2637
+		if (   is_singular('course')  &&
2638
+				'full' == Sensei()->settings->get( 'course_single_content_display' ) ){
2639 2639
 
2640
-            return get_the_content();
2640
+			return get_the_content();
2641 2641
 
2642
-        } else {
2642
+		} else {
2643 2643
 
2644
-            return $excerpt;
2644
+			return $excerpt;
2645 2645
 
2646
-        }
2646
+		}
2647 2647
 
2648
-    }
2648
+	}
2649 2649
 
2650
-    /**
2651
-     * Output the course actions like start taking course, register, add to cart etc.
2652
-     *
2653
-     * @since 1.9.0
2654
-     */
2655
-    public static function the_course_enrolment_actions(){
2656
-        ?>
2650
+	/**
2651
+	 * Output the course actions like start taking course, register, add to cart etc.
2652
+	 *
2653
+	 * @since 1.9.0
2654
+	 */
2655
+	public static function the_course_enrolment_actions(){
2656
+		?>
2657 2657
         <section class="course-meta course-enrolment">
2658 2658
         <?php
2659
-        global  $post, $current_user;
2660
-        $is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $post->ID, $current_user->ID );
2661
-        if ( is_user_logged_in() && ! $is_user_taking_course ) {
2662
-
2663
-            // Get the product ID
2664
-            $wc_post_id = absint( get_post_meta( $post->ID, '_course_woocommerce_product', true ) );
2665
-
2666
-            // Check for woocommerce
2667
-            if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() && ( 0 < intval( $wc_post_id ) ) ) {
2668
-                sensei_wc_add_to_cart($post->ID);
2669
-            } else {
2670
-                sensei_start_course_form($post->ID);
2671
-            } // End If Statement
2672
-
2673
-        } elseif ( is_user_logged_in() ) {
2674
-
2675
-            // Check if course is completed
2676
-            $user_course_status = WooThemes_Sensei_Utils::user_course_status( $post->ID, $current_user->ID );
2677
-            $completed_course = WooThemes_Sensei_Utils::user_completed_course( $user_course_status );
2678
-            // Success message
2679
-            if ( $completed_course ) { ?>
2659
+		global  $post, $current_user;
2660
+		$is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $post->ID, $current_user->ID );
2661
+		if ( is_user_logged_in() && ! $is_user_taking_course ) {
2662
+
2663
+			// Get the product ID
2664
+			$wc_post_id = absint( get_post_meta( $post->ID, '_course_woocommerce_product', true ) );
2665
+
2666
+			// Check for woocommerce
2667
+			if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() && ( 0 < intval( $wc_post_id ) ) ) {
2668
+				sensei_wc_add_to_cart($post->ID);
2669
+			} else {
2670
+				sensei_start_course_form($post->ID);
2671
+			} // End If Statement
2672
+
2673
+		} elseif ( is_user_logged_in() ) {
2674
+
2675
+			// Check if course is completed
2676
+			$user_course_status = WooThemes_Sensei_Utils::user_course_status( $post->ID, $current_user->ID );
2677
+			$completed_course = WooThemes_Sensei_Utils::user_completed_course( $user_course_status );
2678
+			// Success message
2679
+			if ( $completed_course ) { ?>
2680 2680
                 <div class="status completed"><?php  _e( 'Completed', 'woothemes-sensei' ); ?></div>
2681 2681
                 <?php
2682
-                $has_quizzes = Sensei()->course->course_quizzes( $post->ID, true );
2683
-                if( has_filter( 'sensei_results_links' ) || $has_quizzes ) { ?>
2682
+				$has_quizzes = Sensei()->course->course_quizzes( $post->ID, true );
2683
+				if( has_filter( 'sensei_results_links' ) || $has_quizzes ) { ?>
2684 2684
                     <p class="sensei-results-links">
2685 2685
                         <?php
2686
-                        $results_link = '';
2687
-                        if( $has_quizzes ) {
2688
-                            $results_link = '<a class="view-results" href="' . Sensei()->course_results->get_permalink( $post->ID ) . '">' .  __( 'View results', 'woothemes-sensei' ) . '</a>';
2689
-                        }
2690
-                        $results_link = apply_filters( 'sensei_results_links', $results_link );
2691
-                        echo $results_link;
2692
-                        ?></p>
2686
+						$results_link = '';
2687
+						if( $has_quizzes ) {
2688
+							$results_link = '<a class="view-results" href="' . Sensei()->course_results->get_permalink( $post->ID ) . '">' .  __( 'View results', 'woothemes-sensei' ) . '</a>';
2689
+						}
2690
+						$results_link = apply_filters( 'sensei_results_links', $results_link );
2691
+						echo $results_link;
2692
+						?></p>
2693 2693
                 <?php } ?>
2694 2694
             <?php } else { ?>
2695 2695
                 <div class="status in-progress"><?php echo __( 'In Progress', 'woothemes-sensei' ); ?></div>
2696 2696
             <?php }
2697 2697
 
2698
-        } else {
2699
-            // Get the product ID
2700
-            $wc_post_id = absint( get_post_meta( $post->ID, '_course_woocommerce_product', true ) );
2701
-            // Check for woocommerce
2702
-            if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() && ( 0 < intval( $wc_post_id ) ) ) {
2698
+		} else {
2699
+			// Get the product ID
2700
+			$wc_post_id = absint( get_post_meta( $post->ID, '_course_woocommerce_product', true ) );
2701
+			// Check for woocommerce
2702
+			if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() && ( 0 < intval( $wc_post_id ) ) ) {
2703 2703
 
2704
-                sensei_wc_add_to_cart($post->ID);
2704
+				sensei_wc_add_to_cart($post->ID);
2705 2705
 
2706
-            } else {
2706
+			} else {
2707 2707
 
2708
-                if( get_option( 'users_can_register') ) {
2708
+				if( get_option( 'users_can_register') ) {
2709 2709
 
2710 2710
 
2711
-                    $my_courses_page_id = '';
2711
+					$my_courses_page_id = '';
2712 2712
 
2713
-                    /**
2714
-                     * Filter to force Sensei to output the default WordPress user
2715
-                     * registration link.
2716
-                     *
2717
-                     * @since 1.9.0
2718
-                     * @param bool $wp_register_link default false
2719
-                     */
2713
+					/**
2714
+					 * Filter to force Sensei to output the default WordPress user
2715
+					 * registration link.
2716
+					 *
2717
+					 * @since 1.9.0
2718
+					 * @param bool $wp_register_link default false
2719
+					 */
2720 2720
 
2721
-                    $wp_register_link = apply_filters('sensei_use_wp_register_link', false);
2721
+					$wp_register_link = apply_filters('sensei_use_wp_register_link', false);
2722 2722
 
2723
-                    $settings = Sensei()->settings->get_settings();
2724
-                    if( isset( $settings[ 'my_course_page' ] )
2725
-                        && 0 < intval( $settings[ 'my_course_page' ] ) ){
2723
+					$settings = Sensei()->settings->get_settings();
2724
+					if( isset( $settings[ 'my_course_page' ] )
2725
+						&& 0 < intval( $settings[ 'my_course_page' ] ) ){
2726 2726
 
2727
-                        $my_courses_page_id = $settings[ 'my_course_page' ];
2727
+						$my_courses_page_id = $settings[ 'my_course_page' ];
2728 2728
 
2729
-                    }
2729
+					}
2730 2730
 
2731
-                    // If a My Courses page was set in Settings, and 'sensei_use_wp_register_link'
2732
-                    // is false, link to My Courses. If not, link to default WordPress registration page.
2733
-                    if( !empty( $my_courses_page_id ) && $my_courses_page_id && !$wp_register_link){
2731
+					// If a My Courses page was set in Settings, and 'sensei_use_wp_register_link'
2732
+					// is false, link to My Courses. If not, link to default WordPress registration page.
2733
+					if( !empty( $my_courses_page_id ) && $my_courses_page_id && !$wp_register_link){
2734 2734
 
2735
-                        $my_courses_url = get_permalink( $my_courses_page_id  );
2736
-                        $register_link = '<a href="'.$my_courses_url. '">' . __('Register', 'woothemes-sensei') .'</a>';
2737
-                        echo '<div class="status register">' . $register_link . '</div>' ;
2735
+						$my_courses_url = get_permalink( $my_courses_page_id  );
2736
+						$register_link = '<a href="'.$my_courses_url. '">' . __('Register', 'woothemes-sensei') .'</a>';
2737
+						echo '<div class="status register">' . $register_link . '</div>' ;
2738 2738
 
2739
-                    } else{
2739
+					} else{
2740 2740
 
2741
-                        wp_register( '<div class="status register">', '</div>' );
2741
+						wp_register( '<div class="status register">', '</div>' );
2742 2742
 
2743
-                    }
2743
+					}
2744 2744
 
2745
-                } // end if user can register
2745
+				} // end if user can register
2746 2746
 
2747
-            } // End If Statement
2747
+			} // End If Statement
2748 2748
 
2749
-        } // End If Statement ?>
2749
+		} // End If Statement ?>
2750 2750
 
2751 2751
         </section><?php
2752 2752
 
2753
-    }// end the_course_enrolment_actions
2753
+	}// end the_course_enrolment_actions
2754 2754
 
2755
-    /**
2756
-     * Output the course video inside the loop.
2757
-     *
2758
-     * @since 1.9.0
2759
-     */
2760
-    public static function the_course_video(){
2755
+	/**
2756
+	 * Output the course video inside the loop.
2757
+	 *
2758
+	 * @since 1.9.0
2759
+	 */
2760
+	public static function the_course_video(){
2761 2761
 
2762
-        global $post;
2763
-        // Get the meta info
2764
-        $course_video_embed = get_post_meta( $post->ID, '_course_video_embed', true );
2762
+		global $post;
2763
+		// Get the meta info
2764
+		$course_video_embed = get_post_meta( $post->ID, '_course_video_embed', true );
2765 2765
 
2766
-        if ( 'http' == substr( $course_video_embed, 0, 4) ) {
2766
+		if ( 'http' == substr( $course_video_embed, 0, 4) ) {
2767 2767
 
2768
-            $course_video_embed = wp_oembed_get( esc_url( $course_video_embed ) );
2768
+			$course_video_embed = wp_oembed_get( esc_url( $course_video_embed ) );
2769 2769
 
2770
-        } // End If Statement
2770
+		} // End If Statement
2771 2771
 
2772
-        if ( '' != $course_video_embed ) { ?>
2772
+		if ( '' != $course_video_embed ) { ?>
2773 2773
 
2774 2774
             <div class="course-video">
2775 2775
                 <?php echo html_entity_decode($course_video_embed); ?>
2776 2776
             </div>
2777 2777
 
2778 2778
         <?php } // End If Statement
2779
-    }
2779
+	}
2780 2780
 
2781
-    /**
2782
-     * Output the title for the single lesson page
2783
-     *
2784
-     * @global $post
2785
-     * @since 1.9.0
2786
-     */
2787
-    public static function the_title(){
2781
+	/**
2782
+	 * Output the title for the single lesson page
2783
+	 *
2784
+	 * @global $post
2785
+	 * @since 1.9.0
2786
+	 */
2787
+	public static function the_title(){
2788 2788
 
2789
-        global $post;
2789
+		global $post;
2790 2790
 
2791
-        ?>
2791
+		?>
2792 2792
         <header>
2793 2793
 
2794 2794
             <h1>
2795 2795
 
2796 2796
                 <?php
2797
-                /**
2798
-                 * Filter documented in class-sensei-messages.php the_title
2799
-                 */
2800
-                echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
2801
-                ?>
2797
+				/**
2798
+				 * Filter documented in class-sensei-messages.php the_title
2799
+				 */
2800
+				echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
2801
+				?>
2802 2802
 
2803 2803
             </h1>
2804 2804
 
@@ -2806,111 +2806,111 @@  discard block
 block discarded – undo
2806 2806
 
2807 2807
         <?php
2808 2808
 
2809
-    }//the_title
2810
-
2811
-    /**
2812
-     * Show the title on the course category pages
2813
-     *
2814
-     * @since 1.9.0
2815
-     */
2816
-    public static function course_category_title(){
2817
-
2818
-        if( ! is_tax( 'course-category' ) ){
2819
-            return;
2820
-        }
2821
-
2822
-        $category_slug = get_query_var('course-category');
2823
-        $term  = get_term_by('slug',$category_slug,'course-category');
2824
-
2825
-        if( ! empty($term) ){
2826
-
2827
-            $title = $term->name;
2828
-
2829
-        }else{
2830
-
2831
-            $title = 'Course Category';
2832
-
2833
-        }
2834
-
2835
-        $html = '<h2 class="sensei-category-title">';
2836
-        $html .= __('Category') . ' ' . $title;
2837
-        $html .= '</h2>';
2838
-
2839
-        echo apply_filters( 'course_category_title', $html , $term->term_id );
2840
-
2841
-    }// course_category_title
2842
-
2843
-    /**
2844
-     * Alter the course query to respect the order set for courses and apply
2845
-     * this on the course-category pages.
2846
-     *
2847
-     * @since 1.9.0
2848
-     *
2849
-     * @param WP_Query $query
2850
-     * @return WP_Query
2851
-     */
2852
-    public static function alter_course_category_order( $query ){
2853
-
2854
-        if( ! is_tax( 'course-category' ) || ! $query->is_main_query() ){
2855
-            return $query;
2856
-        }
2857
-
2858
-        $order = get_option( 'sensei_course_order', '' );
2859
-        if( !empty( $order )  ){
2860
-            $query->set('orderby', 'menu_order' );
2861
-            $query->set('order', 'ASC' );
2862
-        }
2863
-
2864
-        return $query;
2865
-
2866
-    }
2867
-
2868
-    /**
2869
-     * The very basic course query arguments
2870
-     * so we don't have to repeat this througout
2871
-     * the code base.
2872
-     *
2873
-     * Usage:
2874
-     * $args = Sensei_Course::get_default_query_args();
2875
-     * $args['custom_arg'] ='custom value';
2876
-     * $courses = get_posts( $args )
2877
-     *
2878
-     * @since 1.9.0
2879
-     *
2880
-     * @return array
2881
-     */
2882
-    public static function get_default_query_args(){
2883
-        return array(
2884
-            'post_type' 		=> 'course',
2885
-            'posts_per_page' 		=> 1000,
2886
-            'orderby'         	=> 'date',
2887
-            'order'           	=> 'DESC',
2888
-            'suppress_filters' 	=> 0
2889
-        );
2890
-    }
2891
-
2892
-    /**
2893
-     * Check if the prerequisite course is completed
2894
-     * Courses with no pre-requisite should always return true
2895
-     *
2896
-     * @since 1.9.0
2897
-     * @param $course_id
2898
-     * @return bool
2899
-     */
2900
-    public static function is_prerequisite_complete( $course_id ){
2901
-
2902
-        $course_prerequisite_id = get_post_meta( $course_id, '_course_prerequisite', true );
2903
-
2904
-        // if it has a pre requisite course check it
2905
-        if( ! empty(  $course_prerequisite_id ) ){
2906
-
2907
-            return Sensei_Utils::user_completed_course( $course_prerequisite_id, get_current_user_id() );
2908
-
2909
-        }
2910
-
2911
-        return true;
2912
-
2913
-    }// end is_prerequisite_complete
2809
+	}//the_title
2810
+
2811
+	/**
2812
+	 * Show the title on the course category pages
2813
+	 *
2814
+	 * @since 1.9.0
2815
+	 */
2816
+	public static function course_category_title(){
2817
+
2818
+		if( ! is_tax( 'course-category' ) ){
2819
+			return;
2820
+		}
2821
+
2822
+		$category_slug = get_query_var('course-category');
2823
+		$term  = get_term_by('slug',$category_slug,'course-category');
2824
+
2825
+		if( ! empty($term) ){
2826
+
2827
+			$title = $term->name;
2828
+
2829
+		}else{
2830
+
2831
+			$title = 'Course Category';
2832
+
2833
+		}
2834
+
2835
+		$html = '<h2 class="sensei-category-title">';
2836
+		$html .= __('Category') . ' ' . $title;
2837
+		$html .= '</h2>';
2838
+
2839
+		echo apply_filters( 'course_category_title', $html , $term->term_id );
2840
+
2841
+	}// course_category_title
2842
+
2843
+	/**
2844
+	 * Alter the course query to respect the order set for courses and apply
2845
+	 * this on the course-category pages.
2846
+	 *
2847
+	 * @since 1.9.0
2848
+	 *
2849
+	 * @param WP_Query $query
2850
+	 * @return WP_Query
2851
+	 */
2852
+	public static function alter_course_category_order( $query ){
2853
+
2854
+		if( ! is_tax( 'course-category' ) || ! $query->is_main_query() ){
2855
+			return $query;
2856
+		}
2857
+
2858
+		$order = get_option( 'sensei_course_order', '' );
2859
+		if( !empty( $order )  ){
2860
+			$query->set('orderby', 'menu_order' );
2861
+			$query->set('order', 'ASC' );
2862
+		}
2863
+
2864
+		return $query;
2865
+
2866
+	}
2867
+
2868
+	/**
2869
+	 * The very basic course query arguments
2870
+	 * so we don't have to repeat this througout
2871
+	 * the code base.
2872
+	 *
2873
+	 * Usage:
2874
+	 * $args = Sensei_Course::get_default_query_args();
2875
+	 * $args['custom_arg'] ='custom value';
2876
+	 * $courses = get_posts( $args )
2877
+	 *
2878
+	 * @since 1.9.0
2879
+	 *
2880
+	 * @return array
2881
+	 */
2882
+	public static function get_default_query_args(){
2883
+		return array(
2884
+			'post_type' 		=> 'course',
2885
+			'posts_per_page' 		=> 1000,
2886
+			'orderby'         	=> 'date',
2887
+			'order'           	=> 'DESC',
2888
+			'suppress_filters' 	=> 0
2889
+		);
2890
+	}
2891
+
2892
+	/**
2893
+	 * Check if the prerequisite course is completed
2894
+	 * Courses with no pre-requisite should always return true
2895
+	 *
2896
+	 * @since 1.9.0
2897
+	 * @param $course_id
2898
+	 * @return bool
2899
+	 */
2900
+	public static function is_prerequisite_complete( $course_id ){
2901
+
2902
+		$course_prerequisite_id = get_post_meta( $course_id, '_course_prerequisite', true );
2903
+
2904
+		// if it has a pre requisite course check it
2905
+		if( ! empty(  $course_prerequisite_id ) ){
2906
+
2907
+			return Sensei_Utils::user_completed_course( $course_prerequisite_id, get_current_user_id() );
2908
+
2909
+		}
2910
+
2911
+		return true;
2912
+
2913
+	}// end is_prerequisite_complete
2914 2914
 
2915 2915
 
2916 2916
 }// End Class
Please login to merge, or discard this patch.
includes/class-sensei-emails.php 2 patches
Doc Comments   +5 added lines, -1 removed lines patch added patch discarded remove patch
@@ -40,6 +40,7 @@  discard block
 block discarded – undo
40 40
 	 * Constructor for the email class hooks in all emails that can be sent.
41 41
 	 *
42 42
 	 * @access public
43
+	 * @param string $file
43 44
 	 * @return void
44 45
 	 */
45 46
 	function __construct( $file ) {
@@ -140,7 +141,7 @@  discard block
 block discarded – undo
140 141
 	 * Wraps a message in the sensei mail template.
141 142
 	 *
142 143
 	 * @access public
143
-	 * @param mixed $content
144
+	 * @param null|string $content
144 145
 	 * @return string
145 146
 	 */
146 147
 	function wrap_message( $content ) {
@@ -198,6 +199,9 @@  discard block
 block discarded – undo
198 199
 		remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
199 200
 	}
200 201
 
202
+	/**
203
+	 * @param string $email_template
204
+	 */
201 205
 	function get_content( $email_template ) {
202 206
 
203 207
 		$message = $this->load_template( $email_template );
Please login to merge, or discard this patch.
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -51,7 +51,7 @@  discard block
 block discarded – undo
51 51
 		add_action( 'sensei_course_status_updated', array( $this, 'learner_completed_course' ), 10, 4 );
52 52
 		add_action( 'sensei_course_status_updated', array( $this, 'teacher_completed_course' ), 10, 4 );
53 53
 		add_action( 'sensei_user_course_start', array( $this, 'teacher_started_course' ), 10, 2 );
54
-        add_action( 'sensei_user_lesson_end', array( $this, 'teacher_completed_lesson' ), 10, 2 );
54
+		add_action( 'sensei_user_lesson_end', array( $this, 'teacher_completed_lesson' ), 10, 2 );
55 55
 		add_action( 'sensei_user_quiz_submitted', array( $this, 'teacher_quiz_submitted' ), 10, 5 );
56 56
 		add_action( 'sensei_new_private_message', array( $this, 'teacher_new_message' ), 10, 1 );
57 57
 		add_action( 'sensei_private_message_reply', array( $this, 'new_message_reply' ), 10, 2 );
@@ -68,9 +68,9 @@  discard block
 block discarded – undo
68 68
 		$this->emails['learner-graded-quiz'] = include( 'emails/class-woothemes-sensei-email-learner-graded-quiz.php' );
69 69
 		$this->emails['learner-completed-course'] = include( 'emails/class-woothemes-sensei-email-learner-completed-course.php' );
70 70
 		$this->emails['teacher-completed-course'] = include( 'emails/class-woothemes-sensei-email-teacher-completed-course.php' );
71
-        $this->emails['teacher-started-course'] = include( 'emails/class-woothemes-sensei-email-teacher-started-course.php' );
72
-        $this->emails['teacher-completed-lesson'] = include( 'emails/class-woothemes-sensei-email-teacher-completed-lesson.php' );
73
-        $this->emails['teacher-quiz-submitted'] = include( 'emails/class-woothemes-sensei-email-teacher-quiz-submitted.php' );
71
+		$this->emails['teacher-started-course'] = include( 'emails/class-woothemes-sensei-email-teacher-started-course.php' );
72
+		$this->emails['teacher-completed-lesson'] = include( 'emails/class-woothemes-sensei-email-teacher-completed-lesson.php' );
73
+		$this->emails['teacher-quiz-submitted'] = include( 'emails/class-woothemes-sensei-email-teacher-quiz-submitted.php' );
74 74
 		$this->emails['teacher-new-message'] = include( 'emails/class-woothemes-sensei-email-teacher-new-message.php' );
75 75
 		$this->emails['new-message-reply'] = include( 'emails/class-woothemes-sensei-email-new-message-reply.php' );
76 76
 		$this->emails = apply_filters( 'sensei_email_classes', $this->emails );
@@ -177,20 +177,20 @@  discard block
 block discarded – undo
177 177
 		add_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ) );
178 178
 		add_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
179 179
 
180
-        // Send
181
-        $send_email = true;
180
+		// Send
181
+		$send_email = true;
182 182
 
183
-        /**
184
-         * Filter Sensei's ability to send out emails.
185
-         *
186
-         * @since 1.8.0
187
-         * @param bool $send_email default true
188
-         */
189
-        if( apply_filters('sensei_send_emails', $send_email,$to, $subject, $message )  ){
183
+		/**
184
+		 * Filter Sensei's ability to send out emails.
185
+		 *
186
+		 * @since 1.8.0
187
+		 * @param bool $send_email default true
188
+		 */
189
+		if( apply_filters('sensei_send_emails', $send_email,$to, $subject, $message )  ){
190 190
 
191
-            wp_mail( $to, $subject, $message, $headers, $attachments );
191
+			wp_mail( $to, $subject, $message, $headers, $attachments );
192 192
 
193
-        }
193
+		}
194 194
 
195 195
 		// Unhook filters
196 196
 		remove_filter( 'wp_mail_from', array( $this, 'get_from_address' ) );
@@ -332,33 +332,33 @@  discard block
 block discarded – undo
332 332
 		}
333 333
 	}
334 334
 
335
-    /**
336
-     * teacher_completed_lesson()
337
-     *
338
-     * Send email to teacher on student completing lesson
339
-     *
340
-     * @access public
341
-     * @return void
342
-     * @since 1.9.0
343
-     */
344
-    function teacher_completed_lesson( $learner_id = 0, $lesson_id = 0 ) {
345
-
346
-
347
-        $send = false;
348
-
349
-        if( isset( Sensei()->settings->settings[ 'email_teachers' ] ) ) {
350
-            if( in_array( 'teacher-completed-lesson', (array) Sensei()->settings->settings[ 'email_teachers' ]) ) {
351
-                $send = true;
352
-            }
353
-        } else {
354
-            $send = true;
355
-        }
356
-
357
-        if( $send ) {
358
-            $email = $this->emails['teacher-completed-lesson'];
359
-            $email->trigger( $learner_id, $lesson_id );
360
-        }
361
-    }
335
+	/**
336
+	 * teacher_completed_lesson()
337
+	 *
338
+	 * Send email to teacher on student completing lesson
339
+	 *
340
+	 * @access public
341
+	 * @return void
342
+	 * @since 1.9.0
343
+	 */
344
+	function teacher_completed_lesson( $learner_id = 0, $lesson_id = 0 ) {
345
+
346
+
347
+		$send = false;
348
+
349
+		if( isset( Sensei()->settings->settings[ 'email_teachers' ] ) ) {
350
+			if( in_array( 'teacher-completed-lesson', (array) Sensei()->settings->settings[ 'email_teachers' ]) ) {
351
+				$send = true;
352
+			}
353
+		} else {
354
+			$send = true;
355
+		}
356
+
357
+		if( $send ) {
358
+			$email = $this->emails['teacher-completed-lesson'];
359
+			$email->trigger( $learner_id, $lesson_id );
360
+		}
361
+	}
362 362
 
363 363
 	/**
364 364
 	 * Send email to teacher on quiz submission
Please login to merge, or discard this patch.
includes/class-sensei-frontend.php 2 patches
Doc Comments   +2 added lines, -3 removed lines patch added patch discarded remove patch
@@ -473,7 +473,6 @@  discard block
 block discarded – undo
473 473
 	 * Remove Sensei custom menu items depending on settings and logged in status.
474 474
 	 *
475 475
 	 * @access public
476
-	 * @param object $item
477 476
 	 * @return object $item
478 477
 	 */
479 478
 	public function sensei_wp_nav_menu_objects( $sorted_menu_items ) {
@@ -530,7 +529,7 @@  discard block
 block discarded – undo
530 529
      *
531 530
      * @deprecated since 1.9.0
532 531
 	 * @since  1.2.0
533
-	 * @return void
532
+	 * @return string|null
534 533
 	 */
535 534
 	function sensei_course_image( $course_id, $width = '100', $height = '100', $return = false ) {
536 535
 
@@ -551,7 +550,7 @@  discard block
 block discarded – undo
551 550
 	/**
552 551
 	 * sensei_lesson_image output for lesson image
553 552
 	 * @since  1.2.0
554
-	 * @return void
553
+	 * @return string|null
555 554
      * @deprecated since 1.9.0
556 555
 	 */
557 556
 	function sensei_lesson_image( $lesson_id, $width = '100', $height = '100', $return = false, $widget = false ) {
Please login to merge, or discard this patch.
Indentation   +290 added lines, -290 removed lines patch added patch discarded remove patch
@@ -71,10 +71,10 @@  discard block
 block discarded – undo
71 71
 		// Only show course & lesson excerpts in search results
72 72
 		add_filter( 'the_content', array( $this, 'sensei_search_results_excerpt' ) );
73 73
 
74
-        //Use WooCommerce filter to show admin bar to Teachers.
75
-        add_action( 'init', array( $this, 'sensei_show_admin_bar') );
74
+		//Use WooCommerce filter to show admin bar to Teachers.
75
+		add_action( 'init', array( $this, 'sensei_show_admin_bar') );
76 76
 
77
-        // Remove course from active courses if an order is cancelled or refunded
77
+		// Remove course from active courses if an order is cancelled or refunded
78 78
 		add_action( 'woocommerce_order_status_processing_to_cancelled', array( $this, 'remove_active_course' ), 10, 1 );
79 79
 		add_action( 'woocommerce_order_status_completed_to_cancelled', array( $this, 'remove_active_course' ), 10, 1 );
80 80
 		add_action( 'woocommerce_order_status_on-hold_to_cancelled', array( $this, 'remove_active_course' ), 10, 1 );
@@ -145,13 +145,13 @@  discard block
 block discarded – undo
145 145
 			wp_enqueue_script( $this->token . '-user-dashboard' );
146 146
 
147 147
 
148
-            // Course Archive javascript
149
-            if( is_post_type_archive( 'course' ) ){
148
+			// Course Archive javascript
149
+			if( is_post_type_archive( 'course' ) ){
150 150
 
151
-                wp_register_script( 'sensei-course-archive-js', esc_url( Sensei()->plugin_url . 'assets/js/frontend/course-archive' . $suffix . '.js' ), array( 'jquery' ), '1', true );
152
-                wp_enqueue_script( 'sensei-course-archive-js' );
151
+				wp_register_script( 'sensei-course-archive-js', esc_url( Sensei()->plugin_url . 'assets/js/frontend/course-archive' . $suffix . '.js' ), array( 'jquery' ), '1', true );
152
+				wp_enqueue_script( 'sensei-course-archive-js' );
153 153
 
154
-            }
154
+			}
155 155
 
156 156
 
157 157
 			// Allow additional scripts to be loaded
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 	/**
194 194
 	 * sensei_get_template_part function.
195 195
 	 *
196
-     * @deprecated sine 1.9.0
196
+	 * @deprecated sine 1.9.0
197 197
 	 * @access public
198 198
 	 * @param mixed $slug
199 199
 	 * @param string $name (default: '')
@@ -201,15 +201,15 @@  discard block
 block discarded – undo
201 201
 	 */
202 202
 	function sensei_get_template_part( $slug, $name = '' ) {
203 203
 
204
-        _deprecated_function( 'class-woothemes-sensei-frontend.php', '1.9.0', 'Sensei_Templates::get_part' );
205
-        return Sensei_Templates::get_part( $slug, $name );
204
+		_deprecated_function( 'class-woothemes-sensei-frontend.php', '1.9.0', 'Sensei_Templates::get_part' );
205
+		return Sensei_Templates::get_part( $slug, $name );
206 206
 
207 207
 	} // End sensei_get_template_part()
208 208
 
209 209
 	/**
210 210
 	 * sensei_get_template function.
211 211
 	 *
212
-     * @deprecated since 1.9.0
212
+	 * @deprecated since 1.9.0
213 213
 	 * @access public
214 214
 	 * @param mixed $template_name
215 215
 	 * @param array $args (default: array())
@@ -219,8 +219,8 @@  discard block
 block discarded – undo
219 219
 	 */
220 220
 	function sensei_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
221 221
 
222
-        _deprecated_function( 'sensei_get_template', '1.9.0', 'Sensei_Templates::get_template' );
223
-        return Sensei_Templates::get_template($template_name, $args, $template_path, $default_path  );
222
+		_deprecated_function( 'sensei_get_template', '1.9.0', 'Sensei_Templates::get_template' );
223
+		return Sensei_Templates::get_template($template_name, $args, $template_path, $default_path  );
224 224
 
225 225
 	} // End sensei_get_template()
226 226
 
@@ -236,33 +236,33 @@  discard block
 block discarded – undo
236 236
 	 */
237 237
 	function sensei_locate_template( $template_name, $template_path = '', $default_path = '' ) {
238 238
 
239
-        _deprecated_function( 'sensei_locate_template', '1.9.0', 'Sensei_Templates::locate_template' );
240
-        return Sensei_Templates::locate_template( $template_name, $template_path, $default_path );
239
+		_deprecated_function( 'sensei_locate_template', '1.9.0', 'Sensei_Templates::locate_template' );
240
+		return Sensei_Templates::locate_template( $template_name, $template_path, $default_path );
241 241
 
242 242
 	} // End sensei_locate_template()
243 243
 
244 244
 
245 245
 	/**
246 246
 	 * sensei_output_content_wrapper function.
247
-     *
247
+	 *
248 248
 	 * @access public
249 249
 	 * @return void
250 250
 	 */
251 251
 	function sensei_output_content_wrapper() {
252 252
 
253
-	    // backwards compatibility check for old location under the wrappers directory of the active theme
254
-        $backwards_compatible_wrapper_location =   array(
255
-            Sensei()->template_url . 'wrappers/wrapper-start.php',
256
-            'wrappers/wrapper-start.php'
257
-        );
253
+		// backwards compatibility check for old location under the wrappers directory of the active theme
254
+		$backwards_compatible_wrapper_location =   array(
255
+			Sensei()->template_url . 'wrappers/wrapper-start.php',
256
+			'wrappers/wrapper-start.php'
257
+		);
258 258
 
259
-        $template = locate_template( $backwards_compatible_wrapper_location );
260
-        if( !empty( $template ) ){
259
+		$template = locate_template( $backwards_compatible_wrapper_location );
260
+		if( !empty( $template ) ){
261 261
 
262
-            Sensei_Templates::get_template( 'wrappers/wrapper-start.php' );
263
-            return;
262
+			Sensei_Templates::get_template( 'wrappers/wrapper-start.php' );
263
+			return;
264 264
 
265
-        }
265
+		}
266 266
 
267 267
 		Sensei_Templates::get_template( 'globals/wrapper-start.php' );
268 268
 
@@ -271,25 +271,25 @@  discard block
 block discarded – undo
271 271
 
272 272
 	/**
273 273
 	 * sensei_output_content_wrapper_end function.
274
-     *
274
+	 *
275 275
 	 * @access public
276 276
 	 * @return void
277 277
 	 */
278 278
 	function sensei_output_content_wrapper_end() {
279 279
 
280
-	    // backwards compatibility check for old location under the wrappers directory of the active theme
281
-        $backwards_compatible_wrapper_location =   array(
282
-            Sensei()->template_url . 'wrappers/wrapper-end.php',
283
-            'wrappers/wrapper-end.php'
284
-        );
280
+		// backwards compatibility check for old location under the wrappers directory of the active theme
281
+		$backwards_compatible_wrapper_location =   array(
282
+			Sensei()->template_url . 'wrappers/wrapper-end.php',
283
+			'wrappers/wrapper-end.php'
284
+		);
285 285
 
286
-        $backwards_compatible_template = locate_template( $backwards_compatible_wrapper_location );
287
-        if( !empty( $backwards_compatible_template ) ){
286
+		$backwards_compatible_template = locate_template( $backwards_compatible_wrapper_location );
287
+		if( !empty( $backwards_compatible_template ) ){
288 288
 
289
-            Sensei_Templates::get_template( 'wrappers/wrapper-end.php' );
290
-            return;
289
+			Sensei_Templates::get_template( 'wrappers/wrapper-end.php' );
290
+			return;
291 291
 
292
-        }
292
+		}
293 293
 
294 294
 
295 295
 		Sensei_Templates::get_template( 'globals/wrapper-end.php' );
@@ -305,55 +305,55 @@  discard block
 block discarded – undo
305 305
 	 */
306 306
 	public static function load_content_pagination() {
307 307
 
308
-        if( is_singular('course') ) {
308
+		if( is_singular('course') ) {
309 309
 
310
-            // backwards compatibility check for old location under the wrappers directory of the active theme
311
-            $template = locate_template( array( Sensei()->template_url . 'wrappers/pagination-posts.php' ) );
312
-            if( !empty( $template ) ){
310
+			// backwards compatibility check for old location under the wrappers directory of the active theme
311
+			$template = locate_template( array( Sensei()->template_url . 'wrappers/pagination-posts.php' ) );
312
+			if( !empty( $template ) ){
313 313
 
314
-                Sensei_Templates::get_template( 'wrappers/pagination-posts.php' );
315
-                return;
314
+				Sensei_Templates::get_template( 'wrappers/pagination-posts.php' );
315
+				return;
316 316
 
317
-            }
317
+			}
318 318
 
319 319
 			Sensei_Templates::get_template( 'globals/pagination-posts.php' );
320 320
 
321 321
 		} elseif( is_singular('lesson') ) {
322 322
 
323
-		    // backwards compatibility check for old location under the wrappers directory of the active theme
324
-		    $template = locate_template( array( Sensei()->template_url . 'wrappers/pagination-lesson.php' ) );
325
-            if( !empty( $template ) ){
323
+			// backwards compatibility check for old location under the wrappers directory of the active theme
324
+			$template = locate_template( array( Sensei()->template_url . 'wrappers/pagination-lesson.php' ) );
325
+			if( !empty( $template ) ){
326 326
 
327
-                Sensei_Templates::get_template( 'wrappers/pagination-lesson.php' );
328
-                return;
327
+				Sensei_Templates::get_template( 'wrappers/pagination-lesson.php' );
328
+				return;
329 329
 
330
-            }
330
+			}
331 331
 
332 332
 			Sensei_Templates::get_template( 'globals/pagination-lesson.php' );
333 333
 
334 334
 		} elseif( is_singular('quiz') ) {
335 335
 
336
-		    // backwards compatibility check for old location under the wrappers directory of the active theme
337
-		    $template = locate_template( array( Sensei()->template_url . 'wrappers/pagination-quiz.php' ) );
338
-            if( !empty( $template ) ){
336
+			// backwards compatibility check for old location under the wrappers directory of the active theme
337
+			$template = locate_template( array( Sensei()->template_url . 'wrappers/pagination-quiz.php' ) );
338
+			if( !empty( $template ) ){
339 339
 
340
-                Sensei_Templates::get_template( 'wrappers/pagination-quiz.php' );
341
-                return;
340
+				Sensei_Templates::get_template( 'wrappers/pagination-quiz.php' );
341
+				return;
342 342
 
343
-            }
343
+			}
344 344
 
345 345
 			Sensei_Templates::get_template( 'globals/pagination-quiz.php' );
346 346
 
347 347
 		} else {
348 348
 
349
-            // backwards compatibility check for old location under the wrappers directory of the active theme
350
-            $template = locate_template( array( Sensei()->template_url . 'wrappers/pagination.php' ) );
351
-            if( !empty( $template ) ){
349
+			// backwards compatibility check for old location under the wrappers directory of the active theme
350
+			$template = locate_template( array( Sensei()->template_url . 'wrappers/pagination.php' ) );
351
+			if( !empty( $template ) ){
352 352
 
353
-                Sensei_Templates::get_template( 'wrappers/pagination.php' );
354
-                return;
353
+				Sensei_Templates::get_template( 'wrappers/pagination.php' );
354
+				return;
355 355
 
356
-            }
356
+			}
357 357
 
358 358
 			Sensei_Templates::get_template( 'globals/pagination.php' );
359 359
 
@@ -410,13 +410,13 @@  discard block
 block discarded – undo
410 410
 
411 411
 				case '#senseimymessages':
412 412
 					$item->url = $my_messages_url;
413
-                    // if no archive link exist for sensei_message
414
-                    // set it back to the place holder
415
-                    if( ! $item->url ){
413
+					// if no archive link exist for sensei_message
414
+					// set it back to the place holder
415
+					if( ! $item->url ){
416 416
 
417
-                        $item->url = '#senseimymessages';
417
+						$item->url = '#senseimymessages';
418 418
 
419
-                    }
419
+					}
420 420
 					break;
421 421
 
422 422
 				case '#senseilearnerprofile':
@@ -482,7 +482,7 @@  discard block
 block discarded – undo
482 482
 
483 483
 			// Remove the My Messages link for logged out users or if Private Messages are disabled
484 484
 			if( ! get_post_type_archive_link( 'sensei_message' )
485
-                && '#senseimymessages' == $item->url ) {
485
+				&& '#senseimymessages' == $item->url ) {
486 486
 
487 487
 				if ( !is_user_logged_in() || ( isset( Sensei()->settings->settings['messages_disable'] ) && Sensei()->settings->settings['messages_disable'] ) ) {
488 488
 
@@ -505,38 +505,38 @@  discard block
 block discarded – undo
505 505
 
506 506
 	// add category nicenames in body and post class
507 507
 	function sensei_search_results_classes($classes) {
508
-	    global $post;
509
-	    // Handle Search Classes for Courses, Lessons, and WC Products
510
-	    if ( isset( $post->post_type ) && ( ( 'course' == $post->post_type ) || ( 'lesson' == $post->post_type ) || ( 'product' == $post->post_type ) ) ) {
511
-	    	$classes[] = 'post';
508
+		global $post;
509
+		// Handle Search Classes for Courses, Lessons, and WC Products
510
+		if ( isset( $post->post_type ) && ( ( 'course' == $post->post_type ) || ( 'lesson' == $post->post_type ) || ( 'product' == $post->post_type ) ) ) {
511
+			$classes[] = 'post';
512 512
 		} // End If Statement
513
-	    return $classes;
513
+		return $classes;
514 514
 	} // End sensei_search_results_classes()
515 515
 
516
-    /**
517
-     * sensei_single_title output for single page title
518
-     * @since  1.1.0
519
-     * @return void
520
-     * @deprecate
521
-     */
522
-    function the_single_title() {
516
+	/**
517
+	 * sensei_single_title output for single page title
518
+	 * @since  1.1.0
519
+	 * @return void
520
+	 * @deprecate
521
+	 */
522
+	function the_single_title() {
523 523
 
524
-        _deprecated_function(' WooThemes_Sensei_Frontend::the_single_title', '1.9.0');
524
+		_deprecated_function(' WooThemes_Sensei_Frontend::the_single_title', '1.9.0');
525 525
 
526
-    } // End sensei_single_title()
526
+	} // End sensei_single_title()
527 527
 
528 528
 	/**
529 529
 	 * sensei_course_image output for course image Please use Sensei()->course->course_image instead.
530
-     *
531
-     * @deprecated since 1.9.0
530
+	 *
531
+	 * @deprecated since 1.9.0
532 532
 	 * @since  1.2.0
533 533
 	 * @return void
534 534
 	 */
535 535
 	function sensei_course_image( $course_id, $width = '100', $height = '100', $return = false ) {
536 536
 
537
-        trigger_error( 'Sensei Deprecated function: sensei_course_image since 1.9.0 . Please use Sensei()->course->course_image instead.');
537
+		trigger_error( 'Sensei Deprecated function: sensei_course_image since 1.9.0 . Please use Sensei()->course->course_image instead.');
538 538
 
539
-    	if ( $return ) {
539
+		if ( $return ) {
540 540
 
541 541
 			return Sensei()->course->course_image( $course_id, $width, $height );
542 542
 
@@ -552,19 +552,19 @@  discard block
 block discarded – undo
552 552
 	 * sensei_lesson_image output for lesson image
553 553
 	 * @since  1.2.0
554 554
 	 * @return void
555
-     * @deprecated since 1.9.0
555
+	 * @deprecated since 1.9.0
556 556
 	 */
557 557
 	function sensei_lesson_image( $lesson_id, $width = '100', $height = '100', $return = false, $widget = false ) {
558 558
 
559
-        if( $return ){
559
+		if( $return ){
560 560
 
561
-            return Sensei()->lesson->lesson_image( $lesson_id, $width, $height, $widget );
561
+			return Sensei()->lesson->lesson_image( $lesson_id, $width, $height, $widget );
562 562
 
563
-        }else{
563
+		}else{
564 564
 
565
-            echo Sensei()->lesson->lesson_image( $lesson_id, $width, $height, $widget );
565
+			echo Sensei()->lesson->lesson_image( $lesson_id, $width, $height, $widget );
566 566
 
567
-        }
567
+		}
568 568
 	} // End sensei_lesson_image()
569 569
 
570 570
 	function sensei_course_archive_pagination( $query ) {
@@ -591,21 +591,21 @@  discard block
 block discarded – undo
591 591
 	 *
592 592
 	 * @access public
593 593
 	 * @since  1.2.0
594
-     * @deprecated since 1.9.0 use WooThemes_Sensei_Course::archive_header
594
+	 * @deprecated since 1.9.0 use WooThemes_Sensei_Course::archive_header
595 595
 	 * @param string $query_type (default: '')
596 596
 	 * @return void
597 597
 	 */
598 598
 	function sensei_course_archive_header( $query_type = '', $before_html = '<header class="archive-header"><h1>', $after_html = '</h1></header>' ) {
599 599
 
600
-        trigger_error('This function sensei_course_archive_header has been depricated. Please use: WooThemes_Sensei_Course::course_archive_header ');
601
-        WooThemes_Sensei_Course::archive_header( '', '<header class="archive-header"><h1>', '</h1></header>' );
600
+		trigger_error('This function sensei_course_archive_header has been depricated. Please use: WooThemes_Sensei_Course::course_archive_header ');
601
+		WooThemes_Sensei_Course::archive_header( '', '<header class="archive-header"><h1>', '</h1></header>' );
602 602
 
603 603
 	} // sensei_course_archive_header()
604 604
 
605 605
 	/**
606 606
 	 * sensei_lesson_archive_header function.
607 607
 	 *
608
-     * @deprecated since 1.9.0
608
+	 * @deprecated since 1.9.0
609 609
 	 * @access public
610 610
 	 * @since  1.2.1
611 611
 	 * @param string $before_html
@@ -613,16 +613,16 @@  discard block
 block discarded – undo
613 613
 	 * @return void
614 614
 	 */
615 615
 	public function sensei_lesson_archive_header( $query_type = '', $before_html = '<header class="archive-header"><h1>', $after_html = '</h1></header>' ) {
616
-        _deprecated_function( 'WooThemes_Sensei_Frontend::sensei_lesson_archive_header', '1.9.0', 'WooThemes_Sensei_Lesson::the_archive_header' );
617
-        Sensei()->lesson->the_archive_header();
616
+		_deprecated_function( 'WooThemes_Sensei_Frontend::sensei_lesson_archive_header', '1.9.0', 'WooThemes_Sensei_Lesson::the_archive_header' );
617
+		Sensei()->lesson->the_archive_header();
618 618
 	} // sensei_course_archive_header()
619 619
 
620
-    /**
621
-     * @deprecated since 1.9.0
622
-     */
620
+	/**
621
+	 * @deprecated since 1.9.0
622
+	 */
623 623
 	public function sensei_message_archive_header( ){
624
-        _deprecated_function('Sensei_Frontend::sensei_message_archive_header','Please use: Sense');
625
-        return Sensei_Messages::get_archive_header();
624
+		_deprecated_function('Sensei_Frontend::sensei_message_archive_header','Please use: Sense');
625
+		return Sensei_Messages::get_archive_header();
626 626
 	} // sensei_message_archive_header()
627 627
 
628 628
 	/**
@@ -633,10 +633,10 @@  discard block
 block discarded – undo
633 633
 	function sensei_course_archive_course_title( $post_item ) {
634 634
 		if ( isset( $post_item->ID ) && ( 0 < $post_item->ID ) ) {
635 635
 			$post_id = absint( $post_item->ID );
636
-    		$post_title = $post_item->post_title;
636
+			$post_title = $post_item->post_title;
637 637
 		} else {
638 638
 			$post_id = get_the_ID();
639
-    		$post_title = get_the_title();
639
+			$post_title = get_the_title();
640 640
 		} // End If Statement
641 641
 		?><header><h2><a href="<?php echo get_permalink( $post_id ); ?>" title="<?php echo esc_attr( $post_title ); ?>"><?php echo $post_title; ?></a></h2></header><?php
642 642
 	} // End sensei_course_archive_course_title()
@@ -648,7 +648,7 @@  discard block
 block discarded – undo
648 648
 	 */
649 649
 	public function sensei_lesson_archive_lesson_title() {
650 650
 		$post_id = get_the_ID();
651
-    	$post_title = get_the_title();
651
+		$post_title = get_the_title();
652 652
 		?><header><h2><a href="<?php echo get_permalink( $post_id ); ?>" title="<?php echo esc_attr( $post_title ); ?>"><?php echo $post_title; ?></a></h2></header><?php
653 653
 	} // End sensei_lesson_archive_lesson_title()
654 654
 
@@ -665,9 +665,9 @@  discard block
 block discarded – undo
665 665
 
666 666
 		if( empty( $id )  ){
667 667
 
668
-            $id = get_the_ID();
668
+			$id = get_the_ID();
669 669
 
670
-        }
670
+		}
671 671
 
672 672
 		$sensei_breadcrumb_prefix = __( 'Back to: ', 'woothemes-sensei' );
673 673
 		$separator = apply_filters( 'sensei_breadcrumb_separator', '&gt;' );
@@ -680,32 +680,32 @@  discard block
 block discarded – undo
680 680
 				return;
681 681
 			}
682 682
 			$html .= '<a href="' . esc_url( get_permalink( $course_id ) ) . '" title="' . __( 'Back to the course', 'woothemes-sensei' ) . '">' . get_the_title( $course_id ) . '</a>';
683
-    	} // End If Statement
684
-    	// Quiz
683
+		} // End If Statement
684
+		// Quiz
685 685
 		if ( is_singular( 'quiz' ) && 0 < intval( $id ) ) {
686 686
 			$lesson_id = intval( get_post_meta( $id, '_quiz_lesson', true ) );
687 687
 			if( ! $lesson_id ) {
688 688
 				return;
689 689
 			}
690 690
 			 $html .= '<a href="' . esc_url( get_permalink( $lesson_id ) ) . '" title="' .  __( 'Back to the lesson', 'woothemes-sensei' ) . '">' . get_the_title( $lesson_id ) . '</a>';
691
-    	} // End If Statement
691
+		} // End If Statement
692 692
 
693
-    	// Allow other plugins to filter html
694
-    	$html = apply_filters ( 'sensei_breadcrumb_output', $html, $separator );
695
-    	$html .= '</section>';
693
+		// Allow other plugins to filter html
694
+		$html = apply_filters ( 'sensei_breadcrumb_output', $html, $separator );
695
+		$html .= '</section>';
696 696
 
697
-    	echo $html;
697
+		echo $html;
698 698
 	} // End sensei_breadcrumb()
699 699
 
700 700
 
701
-    /**
702
-     * @deprecated since 1.9.0 use WooThemes_Sensei_Lesson::course_signup_link instead
703
-     * @param int $course_id
704
-     */
701
+	/**
702
+	 * @deprecated since 1.9.0 use WooThemes_Sensei_Lesson::course_signup_link instead
703
+	 * @param int $course_id
704
+	 */
705 705
 	public function sensei_lesson_course_signup_link( $course_id = 0 ) {
706 706
 
707
-        _deprecated_function('sensei_lesson_course_signup_link', '1.9.0', 'WooThemes_Sensei_Lesson::course_signup_link' );
708
-        WooThemes_Sensei_Lesson::course_signup_link( get_the_ID() );
707
+		_deprecated_function('sensei_lesson_course_signup_link', '1.9.0', 'WooThemes_Sensei_Lesson::course_signup_link' );
708
+		WooThemes_Sensei_Lesson::course_signup_link( get_the_ID() );
709 709
 	}
710 710
 
711 711
 	public function lesson_tags_display( $lesson_id = 0 ) {
@@ -724,24 +724,24 @@  discard block
 block discarded – undo
724 724
 					?><section class="lesson-tags">
725 725
 		    			<?php printf( __( 'Lesson tags: %1$s', 'woothemes-sensei' ), $tag_list ); ?>
726 726
 		    		</section><?php
727
-		    	}
728
-	    	}
727
+				}
728
+			}
729 729
 		}
730 730
 	}
731 731
 
732 732
 	public function lesson_tag_archive_filter( $query ) {
733
-    	if( is_tax( 'lesson-tag' ) && $query->is_main_query() ) {
734
-    		// Limit to lessons only
735
-    		$query->set( 'post_type', 'lesson' );
733
+		if( is_tax( 'lesson-tag' ) && $query->is_main_query() ) {
734
+			// Limit to lessons only
735
+			$query->set( 'post_type', 'lesson' );
736 736
 
737
-    		// Set order of lessons
738
-    		$query->set( 'orderby', 'menu_order' );
739
-    		$query->set( 'order', 'ASC' );
737
+			// Set order of lessons
738
+			$query->set( 'orderby', 'menu_order' );
739
+			$query->set( 'order', 'ASC' );
740 740
 
741
-    	}
742
-    }
741
+		}
742
+	}
743 743
 
744
-    public function lesson_tag_archive_header( $title ) {
744
+	public function lesson_tag_archive_header( $title ) {
745 745
 		if( is_tax( 'lesson-tag' ) ) {
746 746
 			$title = sprintf( __( 'Lesson tag: %1$s', 'woothemes-sensei' ), apply_filters( 'sensei_lesson_tag_archive_title', get_queried_object()->name ) );
747 747
 		}
@@ -763,13 +763,13 @@  discard block
 block discarded – undo
763 763
 			$sanitized_submit = esc_html( $_POST['quiz_action'] );
764 764
 
765 765
 			switch ($sanitized_submit) {
766
-                case 'lesson-complete':
766
+				case 'lesson-complete':
767 767
 
768 768
 					WooThemes_Sensei_Utils::sensei_start_lesson( $post->ID, $current_user->ID, $complete = true );
769 769
 
770 770
 					break;
771 771
 
772
-                case 'lesson-reset':
772
+				case 'lesson-reset':
773 773
 
774 774
 					WooThemes_Sensei_Utils::sensei_remove_user_from_lesson( $post->ID, $current_user->ID );
775 775
 
@@ -880,13 +880,13 @@  discard block
 block discarded – undo
880 880
 		if ( 0 < intval( $post_id ) ) {
881 881
 			$lesson_video_embed = get_post_meta( $post_id, '_lesson_video_embed', true );
882 882
 			if ( 'http' == substr( $lesson_video_embed, 0, 4) ) {
883
-        		// V2 - make width and height a setting for video embed
884
-        		$lesson_video_embed = wp_oembed_get( esc_url( $lesson_video_embed )/*, array( 'width' => 100 , 'height' => 100)*/ );
885
-        	} // End If Statement
886
-        	if ( '' != $lesson_video_embed ) {
887
-        	?><div class="video"><?php echo html_entity_decode($lesson_video_embed); ?></div><?php
888
-        	} // End If Statement
889
-        } // End If Statement
883
+				// V2 - make width and height a setting for video embed
884
+				$lesson_video_embed = wp_oembed_get( esc_url( $lesson_video_embed )/*, array( 'width' => 100 , 'height' => 100)*/ );
885
+			} // End If Statement
886
+			if ( '' != $lesson_video_embed ) {
887
+			?><div class="video"><?php echo html_entity_decode($lesson_video_embed); ?></div><?php
888
+			} // End If Statement
889
+		} // End If Statement
890 890
 	} // End sensei_lesson_video()
891 891
 
892 892
 	public function sensei_complete_lesson_button() {
@@ -899,8 +899,8 @@  discard block
 block discarded – undo
899 899
 		$pass_required = true;
900 900
 		if( $quiz_id ) {
901 901
 			// Get quiz pass setting
902
-	    	$pass_required = get_post_meta( $quiz_id, '_pass_required', true );
903
-	    }
902
+			$pass_required = get_post_meta( $quiz_id, '_pass_required', true );
903
+		}
904 904
 		if( ! $quiz_id || ( $quiz_id && ! $pass_required ) ) {
905 905
 			?>
906 906
 			<form class="lesson_button_form" method="POST" action="<?php echo esc_url( get_permalink() ); ?>#lesson_complete">
@@ -935,10 +935,10 @@  discard block
 block discarded – undo
935 935
 		} // End If Statement
936 936
 	} // End sensei_reset_lesson_button()
937 937
 
938
-    public function sensei_lesson_quiz_meta( $post_id = 0, $user_id = 0 ) {
938
+	public function sensei_lesson_quiz_meta( $post_id = 0, $user_id = 0 ) {
939 939
 
940
-        _deprecated_function( 'sensei_lesson_quiz_meta', '1.9.0', 'Sensei_lesson::footer_quiz_call_to_action' );
941
-        Sensei_Lesson::footer_quiz_call_to_action();
940
+		_deprecated_function( 'sensei_lesson_quiz_meta', '1.9.0', 'Sensei_lesson::footer_quiz_call_to_action' );
941
+		Sensei_Lesson::footer_quiz_call_to_action();
942 942
 
943 943
 
944 944
 	} // End sensei_lesson_quiz_meta()
@@ -965,38 +965,38 @@  discard block
 block discarded – undo
965 965
         	</p>
966 966
         	<p class="course-excerpt"><?php the_excerpt(); ?></p>
967 967
         	<?php if ( 0 < $free_lesson_count ) {
968
-                $free_lessons = sprintf( __( 'You can access %d of this course\'s lessons for free', 'woothemes-sensei' ), $free_lesson_count ); ?>
968
+				$free_lessons = sprintf( __( 'You can access %d of this course\'s lessons for free', 'woothemes-sensei' ), $free_lesson_count ); ?>
969 969
                 <p class="sensei-free-lessons"><a href="<?php echo get_permalink( $post_id ); ?>"><?php _e( 'Preview this course', 'woothemes-sensei' ) ?></a> - <?php echo $free_lessons; ?></p>
970 970
             <?php } ?>
971 971
 		</section><?php
972 972
 	} // End sensei_course_archive_meta()
973 973
 
974
-    /**
975
-     * @deprecated since 1.9.0
976
-     */
974
+	/**
975
+	 * @deprecated since 1.9.0
976
+	 */
977 977
 	public function sensei_single_main_content() {
978
-	    _deprecated_function('Woothemes_Sensei_Frontend::sensei_single_main_content', '1.9.0');
978
+		_deprecated_function('Woothemes_Sensei_Frontend::sensei_single_main_content', '1.9.0');
979 979
 	} // End sensei_single_main_content()
980 980
 
981
-    /**
982
-    * @deprecated since 1.9.0
983
-    */
981
+	/**
982
+	 * @deprecated since 1.9.0
983
+	 */
984 984
 	public function sensei_lesson_archive_main_content() {
985
-        _deprecated_function('Sensei_Frontend::sensei_lesson_archive_main_content', '1.9.0', 'Please include loop-lesson.php directly');
985
+		_deprecated_function('Sensei_Frontend::sensei_lesson_archive_main_content', '1.9.0', 'Please include loop-lesson.php directly');
986 986
 	} // End sensei_lesson_archive_main_content()
987 987
 
988
-    /**
989
-    * @deprecated since 1.9.0
990
-    */
988
+	/**
989
+	 * @deprecated since 1.9.0
990
+	 */
991 991
 	public function sensei_message_archive_main_content() {
992 992
 		_deprecated_function( 'Sensei_Frontend::sensei_message_archive_main_content', 'This method is no longer needed' );
993 993
 	} // End sensei_lesson_archive_main_content()
994 994
 
995
-    /**
996
-    * @deprecated since 1.9.0
997
-    */
995
+	/**
996
+	 * @deprecated since 1.9.0
997
+	 */
998 998
 	public function sensei_no_permissions_main_content() {
999
-        _deprecated_function( 'Sensei_Frontend::sensei_no_permissions_main_content', 'This method is no longer needed' );
999
+		_deprecated_function( 'Sensei_Frontend::sensei_no_permissions_main_content', 'This method is no longer needed' );
1000 1000
 	} // End sensei_no_permissions_main_content()
1001 1001
 
1002 1002
 	public function sensei_course_category_main_content() {
@@ -1044,7 +1044,7 @@  discard block
 block discarded – undo
1044 1044
 				<div class="col-1">
1045 1045
 					<?php
1046 1046
 					// output the actual form markup
1047
-                    Sensei_Templates::get_template( 'user/login-form.php');
1047
+					Sensei_Templates::get_template( 'user/login-form.php');
1048 1048
 					?>
1049 1049
 				</div>
1050 1050
 
@@ -1125,12 +1125,12 @@  discard block
 block discarded – undo
1125 1125
 
1126 1126
 		//if this is a paid course
1127 1127
 		if ( WooThemes_Sensei_Utils::sensei_is_woocommerce_activated() ) {
1128
-    	    $wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
1129
-    	    if ( 0 < $wc_post_id ) {
1130
-    	    	$preview_text = __( ' (Free Preview)', 'woothemes-sensei' );
1131
-    	    } // End If Statement
1132
-    	}
1133
-    	return $preview_text;
1128
+			$wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
1129
+			if ( 0 < $wc_post_id ) {
1130
+				$preview_text = __( ' (Free Preview)', 'woothemes-sensei' );
1131
+			} // End If Statement
1132
+		}
1133
+		return $preview_text;
1134 1134
 	}
1135 1135
 
1136 1136
 	public function sensei_lesson_preview_title( $title = '', $id = 0 ) {
@@ -1162,8 +1162,8 @@  discard block
 block discarded – undo
1162 1162
 		$is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $post->ID, $current_user->ID );
1163 1163
 		// Handle user starting the course
1164 1164
 		if ( isset( $_POST['course_start'] )
1165
-		    && wp_verify_nonce( $_POST[ 'woothemes_sensei_start_course_noonce' ], 'woothemes_sensei_start_course_noonce' )
1166
-		    && !$is_user_taking_course ) {
1165
+			&& wp_verify_nonce( $_POST[ 'woothemes_sensei_start_course_noonce' ], 'woothemes_sensei_start_course_noonce' )
1166
+			&& !$is_user_taking_course ) {
1167 1167
 
1168 1168
 			// Start the course
1169 1169
 			$activity_logged = WooThemes_Sensei_Utils::user_start_course( $current_user->ID, $post->ID );
@@ -1182,35 +1182,35 @@  discard block
 block discarded – undo
1182 1182
 		} // End If Statement
1183 1183
 	} // End sensei_course_start()
1184 1184
 
1185
-    /**
1186
-     * @deprecated since 1.9.0
1187
-     */
1185
+	/**
1186
+	 * @deprecated since 1.9.0
1187
+	 */
1188 1188
 	public function sensei_course_meta() {
1189
-        _deprecated_function( 'Sensei_Frontend::sensei_course_meta', '1.9.0' , 'Sensei_Course::the_course_meta()' );
1190
-        Sensei()->course->the_course_meta( get_post() );
1189
+		_deprecated_function( 'Sensei_Frontend::sensei_course_meta', '1.9.0' , 'Sensei_Course::the_course_meta()' );
1190
+		Sensei()->course->the_course_meta( get_post() );
1191 1191
 	} // End sensei_course_meta()
1192 1192
 
1193
-    /**
1194
-     * @deprecated since 1.9.0
1195
-     */
1193
+	/**
1194
+	 * @deprecated since 1.9.0
1195
+	 */
1196 1196
 	public function sensei_course_meta_video() {
1197
-        _deprecated_function( 'Sensei_Frontend::sensei_course_meta_video', '1.9.0' , 'Sensei_Course::the_course_video()' );
1198
-        Sensei_Course::the_course_video();
1197
+		_deprecated_function( 'Sensei_Frontend::sensei_course_meta_video', '1.9.0' , 'Sensei_Course::the_course_video()' );
1198
+		Sensei_Course::the_course_video();
1199 1199
 	} // End sensei_course_meta_video()
1200 1200
 
1201
-    /**
1202
-     * This function shows the WooCommerce cart notice if the user has
1203
-     * added the current course to cart. It does not show if the user is already taking
1204
-     * the course.
1205
-     *
1206
-     * @since 1.0.2
1207
-     * @return void;
1208
-     */
1209
-    public function sensei_woocommerce_in_cart_message() {
1201
+	/**
1202
+	 * This function shows the WooCommerce cart notice if the user has
1203
+	 * added the current course to cart. It does not show if the user is already taking
1204
+	 * the course.
1205
+	 *
1206
+	 * @since 1.0.2
1207
+	 * @return void;
1208
+	 */
1209
+	public function sensei_woocommerce_in_cart_message() {
1210 1210
 		global $post, $woocommerce;
1211 1211
 
1212 1212
 		$wc_post_id = absint( get_post_meta( $post->ID, '_course_woocommerce_product', true ) );
1213
-        $user_course_status_id = WooThemes_Sensei_Utils::user_started_course($post->ID , get_current_user_id() );
1213
+		$user_course_status_id = WooThemes_Sensei_Utils::user_started_course($post->ID , get_current_user_id() );
1214 1214
 		if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
1215 1215
 
1216 1216
 			if ( sensei_check_if_product_is_in_cart( $wc_post_id ) ) {
@@ -1258,7 +1258,7 @@  discard block
 block discarded – undo
1258 1258
 				$item_id = $item['product_id'];
1259 1259
 			} 
1260 1260
 
1261
-            if ( $item_id > 0 ) {
1261
+			if ( $item_id > 0 ) {
1262 1262
 
1263 1263
 				$user_id = get_post_meta( $order_id, '_customer_user', true );
1264 1264
 
@@ -1338,15 +1338,15 @@  discard block
 block discarded – undo
1338 1338
 
1339 1339
 					$items = $order->get_items();
1340 1340
 					foreach( $items as $item ) {
1341
-                                            if (isset($item['variation_id']) && $item['variation_id'] > 0) {
1342
-                                                $item_id = $item['variation_id'];
1343
-                                                $product_type = 'variation';
1344
-                                            } else {
1345
-                                                $item_id = $item['product_id'];
1346
-                                            }
1341
+											if (isset($item['variation_id']) && $item['variation_id'] > 0) {
1342
+												$item_id = $item['variation_id'];
1343
+												$product_type = 'variation';
1344
+											} else {
1345
+												$item_id = $item['product_id'];
1346
+											}
1347 1347
 
1348
-                                            $product_ids[] = $item_id;
1349
-                                            }
1348
+											$product_ids[] = $item_id;
1349
+											}
1350 1350
 
1351 1351
 					$order_ids[] = $post_id;
1352 1352
 				}
@@ -1453,32 +1453,32 @@  discard block
 block discarded – undo
1453 1453
 
1454 1454
 				$items = $order->get_items();
1455 1455
 				foreach( $items as $item ) {
1456
-                    $product = wc_get_product( $item['product_id'] );
1456
+					$product = wc_get_product( $item['product_id'] );
1457 1457
 
1458
-                    // handle product bundles
1459
-                    if( $product->is_type('bundle') ){
1458
+					// handle product bundles
1459
+					if( $product->is_type('bundle') ){
1460 1460
 
1461
-                        $bundled_product = new WC_Product_Bundle( $product->id );
1462
-                        $bundled_items = $bundled_product->get_bundled_items();
1461
+						$bundled_product = new WC_Product_Bundle( $product->id );
1462
+						$bundled_items = $bundled_product->get_bundled_items();
1463 1463
 
1464
-                        foreach( $bundled_items as $item ){
1464
+						foreach( $bundled_items as $item ){
1465 1465
 
1466
-                            if( $item->product_id == $course_product_id ) {
1467
-                                WooThemes_Sensei_Utils::user_start_course( $user_id, $course_id );
1468
-                                return;
1469
-                            }
1466
+							if( $item->product_id == $course_product_id ) {
1467
+								WooThemes_Sensei_Utils::user_start_course( $user_id, $course_id );
1468
+								return;
1469
+							}
1470 1470
 
1471
-                        }
1471
+						}
1472 1472
 
1473
-                    } else {
1473
+					} else {
1474 1474
 
1475
-                    // handle regular products
1476
-                        if( $item['product_id'] == $course_product_id ) {
1477
-                            WooThemes_Sensei_Utils::user_start_course( $user_id, $course_id );
1478
-                            return;
1479
-                        }
1475
+					// handle regular products
1476
+						if( $item['product_id'] == $course_product_id ) {
1477
+							WooThemes_Sensei_Utils::user_start_course( $user_id, $course_id );
1478
+							return;
1479
+						}
1480 1480
 
1481
-                    }
1481
+					}
1482 1482
 				}
1483 1483
 			}
1484 1484
 
@@ -1510,22 +1510,22 @@  discard block
 block discarded – undo
1510 1510
 
1511 1511
 		//if not posted from the sensei login form let
1512 1512
 		// WordPress or any other party handle the failed request
1513
-	    if( ! isset( $_REQUEST['form'] ) || 'sensei-login' != $_REQUEST['form']  ){
1513
+		if( ! isset( $_REQUEST['form'] ) || 'sensei-login' != $_REQUEST['form']  ){
1514 1514
 
1515
-	    	return ;
1515
+			return ;
1516 1516
 
1517
-	    }
1517
+		}
1518 1518
 
1519 1519
 
1520
-    	// Get the reffering page, where did the post submission come from?
1521
-    	$referrer = add_query_arg('login', false, $_SERVER['HTTP_REFERER']);
1520
+		// Get the reffering page, where did the post submission come from?
1521
+		$referrer = add_query_arg('login', false, $_SERVER['HTTP_REFERER']);
1522 1522
 
1523 1523
    		 // if there's a valid referrer, and it's not the default log-in screen
1524
-	    if(!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')){
1525
-	        // let's append some information (login=failed) to the URL for the theme to use
1526
-	        wp_redirect( esc_url_raw( add_query_arg('login', 'failed',  $referrer) ) );
1527
-	    	exit;
1528
-    	}
1524
+		if(!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')){
1525
+			// let's append some information (login=failed) to the URL for the theme to use
1526
+			wp_redirect( esc_url_raw( add_query_arg('login', 'failed',  $referrer) ) );
1527
+			exit;
1528
+		}
1529 1529
 	}// End sensei_login_fail_redirect_to_front_end_login
1530 1530
 
1531 1531
 	/**
@@ -1537,47 +1537,47 @@  discard block
 block discarded – undo
1537 1537
 
1538 1538
 
1539 1539
 		// Check that it is a sensei login request and if it has a valid nonce
1540
-	    if(  isset( $_REQUEST['form'] ) && 'sensei-login' == $_REQUEST['form'] ) {
1540
+		if(  isset( $_REQUEST['form'] ) && 'sensei-login' == $_REQUEST['form'] ) {
1541 1541
 
1542
-	    	// Validate the login request nonce
1543
-		    if( !wp_verify_nonce( $_REQUEST['_wpnonce'], 'sensei-login' ) ){
1544
-		    	return;
1545
-		    }
1542
+			// Validate the login request nonce
1543
+			if( !wp_verify_nonce( $_REQUEST['_wpnonce'], 'sensei-login' ) ){
1544
+				return;
1545
+			}
1546 1546
 
1547 1547
 
1548
-		    //get the page where the sensei log form is located
1549
-		    $referrer = $_REQUEST['_wp_http_referer'];
1550
-		    //$redirect = $_REQUEST['_sensei_redirect'];
1548
+			//get the page where the sensei log form is located
1549
+			$referrer = $_REQUEST['_wp_http_referer'];
1550
+			//$redirect = $_REQUEST['_sensei_redirect'];
1551 1551
 
1552
-		    if ( ( isset( $_REQUEST['log'] ) && !empty( $_REQUEST['log'] ) )
1553
-		    	 && ( isset( $_REQUEST['pwd'] ) && !empty( $_REQUEST['pwd'] ) ) ){
1552
+			if ( ( isset( $_REQUEST['log'] ) && !empty( $_REQUEST['log'] ) )
1553
+				 && ( isset( $_REQUEST['pwd'] ) && !empty( $_REQUEST['pwd'] ) ) ){
1554 1554
 
1555
-		    	// when the user has entered a password or username do the sensei login
1556
-		    	$creds = array();
1555
+				// when the user has entered a password or username do the sensei login
1556
+				$creds = array();
1557 1557
 
1558
-		    	// check if the requests login is an email address
1559
-		    	if( is_email(  trim( $_REQUEST['log'] ) )  ){
1560
-		    		// query wordpress for the users details
1561
-		    		$user =	get_user_by( 'email', sanitize_email( $_REQUEST['log'] )  );
1558
+				// check if the requests login is an email address
1559
+				if( is_email(  trim( $_REQUEST['log'] ) )  ){
1560
+					// query wordpress for the users details
1561
+					$user =	get_user_by( 'email', sanitize_email( $_REQUEST['log'] )  );
1562 1562
 
1563
-		    		// validate the user object
1564
-		    		if( !$user ){
1563
+					// validate the user object
1564
+					if( !$user ){
1565 1565
 
1566
-		    			// the email doesnt exist
1567
-                        wp_redirect( esc_url_raw( add_query_arg('login', 'failed', $referrer) ) );
1568
-		        		exit;
1566
+						// the email doesnt exist
1567
+						wp_redirect( esc_url_raw( add_query_arg('login', 'failed', $referrer) ) );
1568
+						exit;
1569 1569
 
1570
-		    		}
1570
+					}
1571 1571
 
1572
-		    		//assigne the username to the creds array for further processing
1573
-		    		$creds['user_login'] =  $user->user_login ;
1572
+					//assigne the username to the creds array for further processing
1573
+					$creds['user_login'] =  $user->user_login ;
1574 1574
 
1575
-		    	}else{
1575
+				}else{
1576 1576
 
1577
-		    		// process this as a default username login
1578
-		    		$creds['user_login'] = sanitize_text_field( $_REQUEST['log'] ) ;
1577
+					// process this as a default username login
1578
+					$creds['user_login'] = sanitize_text_field( $_REQUEST['log'] ) ;
1579 1579
 
1580
-		    	}
1580
+				}
1581 1581
 
1582 1582
 				// get setup the rest of the creds array
1583 1583
 				$creds['user_password'] = sanitize_text_field( $_REQUEST['pwd'] );
@@ -1587,44 +1587,44 @@  discard block
 block discarded – undo
1587 1587
 				$user = wp_signon( $creds, false );
1588 1588
 
1589 1589
 				if ( is_wp_error($user) ){ // on login failure
1590
-                    wp_redirect( esc_url_raw( add_query_arg('login', 'failed', $referrer) ) );
1591
-                    exit;
1590
+					wp_redirect( esc_url_raw( add_query_arg('login', 'failed', $referrer) ) );
1591
+					exit;
1592 1592
 				}else{ // on login success
1593 1593
 
1594 1594
 					/**
1595
-					* change the redirect url programatically
1596
-					*
1597
-					* @since 1.6.1
1598
-					*
1599
-					* @param string $referrer the page where the current url wheresensei login form was posted from
1600
-					*/
1595
+					 * change the redirect url programatically
1596
+					 *
1597
+					 * @since 1.6.1
1598
+					 *
1599
+					 * @param string $referrer the page where the current url wheresensei login form was posted from
1600
+					 */
1601 1601
 
1602 1602
 					$success_redirect_url = apply_filters('sesei_login_success_redirect_url', remove_query_arg( 'login', $referrer ) );
1603 1603
 
1604 1604
 					wp_redirect( esc_url_raw( $success_redirect_url ) );
1605
-		        	exit;
1605
+					exit;
1606 1606
 
1607 1607
 				}	// end is_wp_error($user)
1608 1608
 
1609
-		    }else{ // if username or password is empty
1609
+			}else{ // if username or password is empty
1610 1610
 
1611
-                wp_redirect( esc_url_raw( add_query_arg('login', 'emptyfields', $referrer) ) );
1612
-		        exit;
1611
+				wp_redirect( esc_url_raw( add_query_arg('login', 'emptyfields', $referrer) ) );
1612
+				exit;
1613 1613
 
1614
-		    } // end if username $_REQUEST['log']  and password $_REQUEST['pwd'] is empty
1614
+			} // end if username $_REQUEST['log']  and password $_REQUEST['pwd'] is empty
1615 1615
 
1616
-	    	return ;
1616
+			return ;
1617 1617
 
1618
-	    }elseif( ( isset( $_GET['login'] ) ) ) {
1619
-	    	// else if this request is a redircect from a previously faile login request
1620
-	    	$this->login_message_process();
1618
+		}elseif( ( isset( $_GET['login'] ) ) ) {
1619
+			// else if this request is a redircect from a previously faile login request
1620
+			$this->login_message_process();
1621 1621
 
1622 1622
 			//exit the handle login request function
1623 1623
 			return;
1624
-	    }
1624
+		}
1625 1625
 
1626
-	    // if none of the above
1627
-	    return;
1626
+		// if none of the above
1627
+		return;
1628 1628
 
1629 1629
 	} // End  sensei_login_fail_redirect_to_front_end_login
1630 1630
 
@@ -1727,7 +1727,7 @@  discard block
 block discarded – undo
1727 1727
 	public function login_message_process(){
1728 1728
 
1729 1729
 
1730
-		    // setup the message variables
1730
+			// setup the message variables
1731 1731
 			$message = '';
1732 1732
 
1733 1733
 			//only output message if the url contains login=failed and login=emptyfields
@@ -1746,23 +1746,23 @@  discard block
 block discarded – undo
1746 1746
 	}// end login_message_process
1747 1747
 
1748 1748
 
1749
-    /**
1750
-     * sensei_show_admin_bar(). Use WooCommerce filter
1751
-     * to show admin bar to Teachers as well.
1752
-     *
1753
-     * @return void redirect
1754
-     *
1755
-     */
1749
+	/**
1750
+	 * sensei_show_admin_bar(). Use WooCommerce filter
1751
+	 * to show admin bar to Teachers as well.
1752
+	 *
1753
+	 * @return void redirect
1754
+	 *
1755
+	 */
1756 1756
 
1757
-    public function sensei_show_admin_bar () {
1757
+	public function sensei_show_admin_bar () {
1758 1758
 
1759
-        if (current_user_can('edit_courses')) {
1759
+		if (current_user_can('edit_courses')) {
1760 1760
 
1761
-            add_filter( 'woocommerce_disable_admin_bar', '__return_false', 10, 1);
1761
+			add_filter( 'woocommerce_disable_admin_bar', '__return_false', 10, 1);
1762 1762
 
1763
-        }
1763
+		}
1764 1764
 
1765
-    }
1765
+	}
1766 1766
 
1767 1767
 } // End Class
1768 1768
 
Please login to merge, or discard this patch.
includes/class-sensei-grading.php 2 patches
Doc Comments   +5 added lines, -4 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
 	 * Constructor
23 23
 	 * @since  1.3.0
24 24
      *
25
-     * @param $file
25
+     * @param string $file
26 26
 	 */
27 27
 	public function __construct ( $file ) {
28 28
 		$this->name = __( 'Grading', 'woothemes-sensei' );
@@ -330,6 +330,7 @@  discard block
 block discarded – undo
330 330
 	/**
331 331
 	 * Return array of valid statuses for either Course or Lesson
332 332
 	 * @since  1.7.0
333
+	 * @param string $type
333 334
 	 * @return array
334 335
 	 */
335 336
 	public function get_stati( $type ) {
@@ -529,7 +530,7 @@  discard block
 block discarded – undo
529 530
      * the grades as the Grader selected theme and saves the total grade and
530 531
      * individual question grades.
531 532
      *
532
-     * @return bool
533
+     * @return false|null
533 534
      */
534 535
     public function admin_process_grading_submission() {
535 536
 
@@ -906,8 +907,8 @@  discard block
 block discarded – undo
906 907
      * Grading logic specifically for the gap fill questions
907 908
      *
908 909
      * @since 1.9.0
909
-     * @param $question_id
910
-     * @param $user_answer
910
+     * @param integer $question_id
911
+     * @param string $user_answer
911 912
      *
912 913
      * @return bool | int false or the grade given to the user answer
913 914
      */
Please login to merge, or discard this patch.
Indentation   +326 added lines, -326 removed lines patch added patch discarded remove patch
@@ -21,8 +21,8 @@  discard block
 block discarded – undo
21 21
 	/**
22 22
 	 * Constructor
23 23
 	 * @since  1.3.0
24
-     *
25
-     * @param $file
24
+	 *
25
+	 * @param $file
26 26
 	 */
27 27
 	public function __construct ( $file ) {
28 28
 		$this->name = __( 'Grading', 'woothemes-sensei' );
@@ -284,7 +284,7 @@  discard block
 block discarded – undo
284 284
 		}
285 285
 		if ( isset( $_GET['user_id'] ) && 0 < intval( $_GET['user_id'] ) ) {
286 286
 
287
-            $user_name = Sensei()->learners->get_learner_full_name( $_GET['user_id'] );
287
+			$user_name = Sensei()->learners->get_learner_full_name( $_GET['user_id'] );
288 288
 			$title .= '&nbsp;&nbsp;<span class="user-title">&gt;&nbsp;&nbsp;' . $user_name . '</span>';
289 289
 
290 290
 		} // End If Statement
@@ -318,7 +318,7 @@  discard block
 block discarded – undo
318 318
 		}
319 319
 		if ( isset( $_GET['user'] ) && 0 < intval( $_GET['user'] ) ) {
320 320
 
321
-            $user_name = Sensei()->learners->get_learner_full_name( $_GET['user'] );
321
+			$user_name = Sensei()->learners->get_learner_full_name( $_GET['user'] );
322 322
 			$title .= '&nbsp;&nbsp;<span class="user-title">&gt;&nbsp;&nbsp;' . $user_name . '</span>';
323 323
 
324 324
 		} // End If Statement
@@ -367,15 +367,15 @@  discard block
 block discarded – undo
367 367
 	public function count_statuses( $args = array() ) {
368 368
 		global  $wpdb;
369 369
 
370
-        /**
371
-         * Filter fires inside Sensei_Grading::count_statuses
372
-         *
373
-         * Alter the the post_in array to determine which posts the
374
-         * comment query should be limited to.
375
-         * @since 1.8.0
376
-         * @param array $args
377
-         */
378
-        $args = apply_filters( 'sensei_count_statuses_args', $args );
370
+		/**
371
+		 * Filter fires inside Sensei_Grading::count_statuses
372
+		 *
373
+		 * Alter the the post_in array to determine which posts the
374
+		 * comment query should be limited to.
375
+		 * @since 1.8.0
376
+		 * @param array $args
377
+		 */
378
+		$args = apply_filters( 'sensei_count_statuses_args', $args );
379 379
 
380 380
 		if ( 'course' == $args['type'] ) {
381 381
 			$type = 'sensei_course_status';
@@ -387,7 +387,7 @@  discard block
 block discarded – undo
387 387
 
388 388
 		$query = "SELECT comment_approved, COUNT( * ) AS total FROM {$wpdb->comments} WHERE comment_type = %s ";
389 389
 
390
-        // Restrict to specific posts
390
+		// Restrict to specific posts
391 391
 		if ( isset( $args['post__in'] ) && !empty( $args['post__in'] ) && is_array( $args['post__in'] ) ) {
392 392
 			$query .= ' AND comment_post_ID IN (' . implode( ',', array_map( 'absint', $args['post__in'] ) ) . ')';
393 393
 		}
@@ -522,148 +522,148 @@  discard block
 block discarded – undo
522 522
 		return $html;
523 523
 	} // End lessons_drop_down_html()
524 524
 
525
-    /**
526
-     * The process grading function handles admin grading submissions.
527
-     *
528
-     * This function is hooked on to admin_init. It simply accepts
529
-     * the grades as the Grader selected theme and saves the total grade and
530
-     * individual question grades.
531
-     *
532
-     * @return bool
533
-     */
534
-    public function admin_process_grading_submission() {
525
+	/**
526
+	 * The process grading function handles admin grading submissions.
527
+	 *
528
+	 * This function is hooked on to admin_init. It simply accepts
529
+	 * the grades as the Grader selected theme and saves the total grade and
530
+	 * individual question grades.
531
+	 *
532
+	 * @return bool
533
+	 */
534
+	public function admin_process_grading_submission() {
535 535
 
536
-        // NEEDS REFACTOR/OPTIMISING, such as combining the various meta data stored against the sensei_user_answer entry
537
-        if( ! isset( $_POST['sensei_manual_grade'] )
538
-            || ! wp_verify_nonce( $_POST['_wp_sensei_manual_grading_nonce'], 'sensei_manual_grading' )
539
-            || ! isset( $_GET['quiz_id'] )
540
-            || $_GET['quiz_id'] != $_POST['sensei_manual_grade'] ) {
536
+		// NEEDS REFACTOR/OPTIMISING, such as combining the various meta data stored against the sensei_user_answer entry
537
+		if( ! isset( $_POST['sensei_manual_grade'] )
538
+			|| ! wp_verify_nonce( $_POST['_wp_sensei_manual_grading_nonce'], 'sensei_manual_grading' )
539
+			|| ! isset( $_GET['quiz_id'] )
540
+			|| $_GET['quiz_id'] != $_POST['sensei_manual_grade'] ) {
541 541
 
542
-            return false; //exit and do not grade
542
+			return false; //exit and do not grade
543 543
 
544
-        }
544
+		}
545 545
 
546
-        $quiz_id = $_GET['quiz_id'];
547
-        $user_id = $_GET['user'];
546
+		$quiz_id = $_GET['quiz_id'];
547
+		$user_id = $_GET['user'];
548 548
 
549 549
 
550
-        $questions = WooThemes_Sensei_Utils::sensei_get_quiz_questions( $quiz_id );
551
-        $quiz_lesson_id =  Sensei()->quiz->get_lesson_id( $quiz_id );
552
-        $quiz_grade = 0;
553
-        $count = 0;
554
-        $quiz_grade_total = $_POST['quiz_grade_total'];
555
-        $all_question_grades = array();
556
-        $all_answers_feedback = array();
550
+		$questions = WooThemes_Sensei_Utils::sensei_get_quiz_questions( $quiz_id );
551
+		$quiz_lesson_id =  Sensei()->quiz->get_lesson_id( $quiz_id );
552
+		$quiz_grade = 0;
553
+		$count = 0;
554
+		$quiz_grade_total = $_POST['quiz_grade_total'];
555
+		$all_question_grades = array();
556
+		$all_answers_feedback = array();
557 557
 
558
-        foreach( $questions as $question ) {
558
+		foreach( $questions as $question ) {
559 559
 
560
-            ++$count;
561
-            $question_id = $question->ID;
560
+			++$count;
561
+			$question_id = $question->ID;
562 562
 
563
-            if( isset( $_POST[ 'question_' . $question_id ] ) ) {
563
+			if( isset( $_POST[ 'question_' . $question_id ] ) ) {
564 564
 
565
-                $question_grade = 0;
566
-                if( $_POST[ 'question_' . $question_id ] == 'right' ) {
565
+				$question_grade = 0;
566
+				if( $_POST[ 'question_' . $question_id ] == 'right' ) {
567 567
 
568
-                    $question_grade = $_POST[ 'question_' . $question_id . '_grade' ];
568
+					$question_grade = $_POST[ 'question_' . $question_id . '_grade' ];
569 569
 
570
-                }
570
+				}
571 571
 
572
-                // add data to the array that will, after the loop, be stored on the lesson status
573
-                $all_question_grades[ $question_id ] = $question_grade;
572
+				// add data to the array that will, after the loop, be stored on the lesson status
573
+				$all_question_grades[ $question_id ] = $question_grade;
574 574
 
575
-                // tally up the total quiz grade
576
-                $quiz_grade += $question_grade;
575
+				// tally up the total quiz grade
576
+				$quiz_grade += $question_grade;
577 577
 
578
-            } // endif
578
+			} // endif
579 579
 
580
-            // Question answer feedback / notes
581
-            $question_feedback = '';
582
-            if( isset( $_POST[ 'questions_feedback' ][ $question_id ] ) ){
580
+			// Question answer feedback / notes
581
+			$question_feedback = '';
582
+			if( isset( $_POST[ 'questions_feedback' ][ $question_id ] ) ){
583 583
 
584
-                $question_feedback = wp_unslash( $_POST[ 'questions_feedback' ][ $question_id ] );
584
+				$question_feedback = wp_unslash( $_POST[ 'questions_feedback' ][ $question_id ] );
585 585
 
586
-            }
587
-            $all_answers_feedback[ $question_id ] = $question_feedback;
586
+			}
587
+			$all_answers_feedback[ $question_id ] = $question_feedback;
588 588
 
589
-        } // end for each $questions
589
+		} // end for each $questions
590 590
 
591
-        //store all question grades on the lesson status
592
-        Sensei()->quiz->set_user_grades( $all_question_grades, $quiz_lesson_id , $user_id );
591
+		//store all question grades on the lesson status
592
+		Sensei()->quiz->set_user_grades( $all_question_grades, $quiz_lesson_id , $user_id );
593 593
 
594
-        //store the feedback from grading
595
-        Sensei()->quiz->save_user_answers_feedback( $all_answers_feedback, $quiz_lesson_id , $user_id );
594
+		//store the feedback from grading
595
+		Sensei()->quiz->save_user_answers_feedback( $all_answers_feedback, $quiz_lesson_id , $user_id );
596 596
 
597
-        // $_POST['all_questions_graded'] is set when all questions have been graded
598
-        // in the class sensei grading user quiz -> display()
599
-        if( $_POST['all_questions_graded'] == 'yes' ) {
597
+		// $_POST['all_questions_graded'] is set when all questions have been graded
598
+		// in the class sensei grading user quiz -> display()
599
+		if( $_POST['all_questions_graded'] == 'yes' ) {
600 600
 
601
-            // set the users total quiz grade
601
+			// set the users total quiz grade
602 602
 			if ( 0 < intval( $quiz_grade_total ) ) {
603
-            $grade = abs( round( ( doubleval( $quiz_grade ) * 100 ) / ( $quiz_grade_total ), 2 ) );
603
+			$grade = abs( round( ( doubleval( $quiz_grade ) * 100 ) / ( $quiz_grade_total ), 2 ) );
604 604
 			}
605 605
 			else {
606 606
 				$grade = 0;
607 607
 			}
608
-            WooThemes_Sensei_Utils::sensei_grade_quiz( $quiz_id, $grade, $user_id );
609
-
610
-            // Duplicating what Frontend->sensei_complete_quiz() does
611
-            $pass_required = get_post_meta( $quiz_id, '_pass_required', true );
612
-            $quiz_passmark = abs( round( doubleval( get_post_meta( $quiz_id, '_quiz_passmark', true ) ), 2 ) );
613
-            $lesson_metadata = array();
614
-            if ( $pass_required ) {
615
-                // Student has reached the pass mark and lesson is complete
616
-                if ( $quiz_passmark <= $grade ) {
617
-                    $lesson_status = 'passed';
618
-                }
619
-                else {
620
-                    $lesson_status = 'failed';
621
-                } // End If Statement
622
-            }
623
-            // Student only has to partake the quiz
624
-            else {
625
-                $lesson_status = 'graded';
626
-            }
627
-            $lesson_metadata['grade'] = $grade; // Technically already set as part of "WooThemes_Sensei_Utils::sensei_grade_quiz()" above
608
+			WooThemes_Sensei_Utils::sensei_grade_quiz( $quiz_id, $grade, $user_id );
609
+
610
+			// Duplicating what Frontend->sensei_complete_quiz() does
611
+			$pass_required = get_post_meta( $quiz_id, '_pass_required', true );
612
+			$quiz_passmark = abs( round( doubleval( get_post_meta( $quiz_id, '_quiz_passmark', true ) ), 2 ) );
613
+			$lesson_metadata = array();
614
+			if ( $pass_required ) {
615
+				// Student has reached the pass mark and lesson is complete
616
+				if ( $quiz_passmark <= $grade ) {
617
+					$lesson_status = 'passed';
618
+				}
619
+				else {
620
+					$lesson_status = 'failed';
621
+				} // End If Statement
622
+			}
623
+			// Student only has to partake the quiz
624
+			else {
625
+				$lesson_status = 'graded';
626
+			}
627
+			$lesson_metadata['grade'] = $grade; // Technically already set as part of "WooThemes_Sensei_Utils::sensei_grade_quiz()" above
628 628
 
629
-            WooThemes_Sensei_Utils::update_lesson_status( $user_id, $quiz_lesson_id, $lesson_status, $lesson_metadata );
629
+			WooThemes_Sensei_Utils::update_lesson_status( $user_id, $quiz_lesson_id, $lesson_status, $lesson_metadata );
630 630
 
631
-            if(  in_array( $lesson_status, array( 'passed', 'graded'  ) ) ) {
631
+			if(  in_array( $lesson_status, array( 'passed', 'graded'  ) ) ) {
632 632
 
633
-                /**
634
-                 * Summary.
635
-                 *
636
-                 * Description.
637
-                 *
638
-                 * @since 1.7.0
639
-                 *
640
-                 * @param int  $user_id
641
-                 * @param int $quiz_lesson_id
642
-                 */
643
-                do_action( 'sensei_user_lesson_end', $user_id, $quiz_lesson_id );
633
+				/**
634
+				 * Summary.
635
+				 *
636
+				 * Description.
637
+				 *
638
+				 * @since 1.7.0
639
+				 *
640
+				 * @param int  $user_id
641
+				 * @param int $quiz_lesson_id
642
+				 */
643
+				do_action( 'sensei_user_lesson_end', $user_id, $quiz_lesson_id );
644 644
 
645
-            } // end if in_array
645
+			} // end if in_array
646 646
 
647
-        }// end if $_POST['all_que...
647
+		}// end if $_POST['all_que...
648 648
 
649
-        if( isset( $_POST['sensei_grade_next_learner'] ) && strlen( $_POST['sensei_grade_next_learner'] ) > 0 ) {
649
+		if( isset( $_POST['sensei_grade_next_learner'] ) && strlen( $_POST['sensei_grade_next_learner'] ) > 0 ) {
650 650
 
651
-            $load_url = add_query_arg( array( 'message' => 'graded' ) );
651
+			$load_url = add_query_arg( array( 'message' => 'graded' ) );
652 652
 
653
-        } elseif ( isset( $_POST['_wp_http_referer'] ) ) {
653
+		} elseif ( isset( $_POST['_wp_http_referer'] ) ) {
654 654
 
655
-            $load_url = add_query_arg( array( 'message' => 'graded' ), $_POST['_wp_http_referer'] );
655
+			$load_url = add_query_arg( array( 'message' => 'graded' ), $_POST['_wp_http_referer'] );
656 656
 
657
-        } else {
657
+		} else {
658 658
 
659
-            $load_url = add_query_arg( array( 'message' => 'graded' ) );
659
+			$load_url = add_query_arg( array( 'message' => 'graded' ) );
660 660
 
661
-        }
661
+		}
662 662
 
663
-        wp_safe_redirect( esc_url_raw( $load_url ) );
664
-        exit;
663
+		wp_safe_redirect( esc_url_raw( $load_url ) );
664
+		exit;
665 665
 
666
-    } // end admin_process_grading_submission
666
+	} // end admin_process_grading_submission
667 667
 
668 668
 	public function get_redirect_url() {
669 669
 		// Parse POST data
@@ -708,283 +708,283 @@  discard block
 block discarded – undo
708 708
 		} // End If Statement
709 709
 	} // End sensei_grading_notices()
710 710
 
711
-    /**
712
-     * Grade quiz automatically
713
-     *
714
-     * This function grades each question automatically if there all questions are auto gradable. If not
715
-     * the quiz will not be auto gradable.
716
-     *
717
-     * @since 1.7.4
718
-     *
719
-     * @param  integer $quiz_id         ID of quiz
720
-     * @param  array $submitted questions id ans answers {
721
-     *          @type int $question_id
722
-     *          @type mixed $answer
723
-     * }
724
-     * @param  integer $total_questions Total questions in quiz (not used)
725
-     * @param string $quiz_grade_type Optional defaults to auto
726
-     *
727
-     * @return int $quiz_grade total sum of all question grades
728
-     */
729
-    public static function grade_quiz_auto( $quiz_id = 0, $submitted = array(), $total_questions = 0, $quiz_grade_type = 'auto' ) {
730
-
731
-        if( ! ( intval( $quiz_id ) > 0 )  || ! $submitted
732
-            || $quiz_grade_type != 'auto' ) {
733
-            return false; // exit early
734
-        }
735
-
736
-
737
-        $user_id = get_current_user_id();
738
-        $lesson_id =  Sensei()->quiz->get_lesson_id(  $quiz_id ) ;
739
-        $quiz_autogradable = true;
740
-
741
-        /**
742
-         * Filter the types of question types that can be automatically graded.
743
-         *
744
-         * This filter fires inside the auto grade quiz function and provides you with the default list.
745
-         *
746
-         * @param array {
747
-         *      'multiple-choice',
748
-         *      'boolean',
749
-         *      'gap-fill'.
750
-         * }
751
-         */
752
-        $autogradable_question_types = apply_filters( 'sensei_autogradable_question_types', array( 'multiple-choice', 'boolean', 'gap-fill' ) );
753
-
754
-        $grade_total = 0;
755
-        $all_question_grades = array();
756
-        foreach( $submitted as $question_id => $answer ) {
757
-
758
-            // check if the question is autogradable, either by type, or because the grade is 0
759
-            $question_type = Sensei()->question->get_question_type( $question_id );
711
+	/**
712
+	 * Grade quiz automatically
713
+	 *
714
+	 * This function grades each question automatically if there all questions are auto gradable. If not
715
+	 * the quiz will not be auto gradable.
716
+	 *
717
+	 * @since 1.7.4
718
+	 *
719
+	 * @param  integer $quiz_id         ID of quiz
720
+	 * @param  array $submitted questions id ans answers {
721
+	 *          @type int $question_id
722
+	 *          @type mixed $answer
723
+	 * }
724
+	 * @param  integer $total_questions Total questions in quiz (not used)
725
+	 * @param string $quiz_grade_type Optional defaults to auto
726
+	 *
727
+	 * @return int $quiz_grade total sum of all question grades
728
+	 */
729
+	public static function grade_quiz_auto( $quiz_id = 0, $submitted = array(), $total_questions = 0, $quiz_grade_type = 'auto' ) {
730
+
731
+		if( ! ( intval( $quiz_id ) > 0 )  || ! $submitted
732
+			|| $quiz_grade_type != 'auto' ) {
733
+			return false; // exit early
734
+		}
735
+
736
+
737
+		$user_id = get_current_user_id();
738
+		$lesson_id =  Sensei()->quiz->get_lesson_id(  $quiz_id ) ;
739
+		$quiz_autogradable = true;
740
+
741
+		/**
742
+		 * Filter the types of question types that can be automatically graded.
743
+		 *
744
+		 * This filter fires inside the auto grade quiz function and provides you with the default list.
745
+		 *
746
+		 * @param array {
747
+		 *      'multiple-choice',
748
+		 *      'boolean',
749
+		 *      'gap-fill'.
750
+		 * }
751
+		 */
752
+		$autogradable_question_types = apply_filters( 'sensei_autogradable_question_types', array( 'multiple-choice', 'boolean', 'gap-fill' ) );
753
+
754
+		$grade_total = 0;
755
+		$all_question_grades = array();
756
+		foreach( $submitted as $question_id => $answer ) {
757
+
758
+			// check if the question is autogradable, either by type, or because the grade is 0
759
+			$question_type = Sensei()->question->get_question_type( $question_id );
760 760
 			$achievable_grade = Sensei()->question->get_question_grade( $question_id );
761 761
 			// Question has a zero grade, so skip grading
762 762
 			if ( 0 == $achievable_grade ) {
763 763
 				$all_question_grades[ $question_id ] = $achievable_grade;
764 764
 			}
765
-            elseif ( in_array( $question_type, $autogradable_question_types ) ) {
766
-                // Get user question grade
767
-                $question_grade = WooThemes_Sensei_Utils::sensei_grade_question_auto( $question_id, $question_type, $answer, $user_id );
768
-                $all_question_grades[ $question_id ] = $question_grade;
769
-                $grade_total += $question_grade;
765
+			elseif ( in_array( $question_type, $autogradable_question_types ) ) {
766
+				// Get user question grade
767
+				$question_grade = WooThemes_Sensei_Utils::sensei_grade_question_auto( $question_id, $question_type, $answer, $user_id );
768
+				$all_question_grades[ $question_id ] = $question_grade;
769
+				$grade_total += $question_grade;
770 770
 
771
-            } else {
771
+			} else {
772 772
 
773
-                // There is a question that cannot be autograded
774
-                $quiz_autogradable = false;
773
+				// There is a question that cannot be autograded
774
+				$quiz_autogradable = false;
775 775
 
776
-            } // end if in_array( $question_type...
776
+			} // end if in_array( $question_type...
777 777
 
778
-        }// end for each question
778
+		}// end for each question
779 779
 
780
-        // Only if the whole quiz was autogradable do we set a grade
781
-        if ( $quiz_autogradable ) {
780
+		// Only if the whole quiz was autogradable do we set a grade
781
+		if ( $quiz_autogradable ) {
782 782
 
783
-            $quiz_total = WooThemes_Sensei_Utils::sensei_get_quiz_total( $quiz_id );
783
+			$quiz_total = WooThemes_Sensei_Utils::sensei_get_quiz_total( $quiz_id );
784 784
 			// Check for zero total from grades
785 785
 			if ( 0 < $quiz_total ) {
786
-            $grade = abs( round( ( doubleval( $grade_total ) * 100 ) / ( $quiz_total ), 2 ) );
786
+			$grade = abs( round( ( doubleval( $grade_total ) * 100 ) / ( $quiz_total ), 2 ) );
787 787
 			}
788 788
 			else {
789 789
 				$grade = 0;
790 790
 			}
791
-            WooThemes_Sensei_Utils::sensei_grade_quiz( $quiz_id, $grade, $user_id, $quiz_grade_type );
791
+			WooThemes_Sensei_Utils::sensei_grade_quiz( $quiz_id, $grade, $user_id, $quiz_grade_type );
792 792
 
793
-        } else {
793
+		} else {
794 794
 
795
-            $grade = new WP_Error( 'autograde', __( 'This quiz is not able to be automatically graded.', 'woothemes-sensei' ) );
795
+			$grade = new WP_Error( 'autograde', __( 'This quiz is not able to be automatically graded.', 'woothemes-sensei' ) );
796 796
 
797
-        }
798
-
799
-        // store the auto gradable grades. If the quiz is not auto gradable the grades can be use as the default
800
-        // when doing manual grading.
801
-        Sensei()->quiz-> set_user_grades( $all_question_grades, $lesson_id, $user_id );
797
+		}
802 798
 
803
-        return $grade;
799
+		// store the auto gradable grades. If the quiz is not auto gradable the grades can be use as the default
800
+		// when doing manual grading.
801
+		Sensei()->quiz-> set_user_grades( $all_question_grades, $lesson_id, $user_id );
804 802
 
805
-    } // End grade_quiz_auto()
803
+		return $grade;
806 804
 
807
-    /**
808
-     * Grade question automatically
809
-     *
810
-     * This function checks the question typ and then grades it accordingly.
811
-     *
812
-     * @since 1.7.4
813
-     *
814
-     * @param integer $question_id
815
-     * @param string $question_type of the standard Sensei question types
816
-     * @param string $answer
817
-     * @param int $user_id
818
-     *
819
-     * @return int $question_grade
820
-     */
821
-    public static function grade_question_auto( $question_id = 0, $question_type = '', $answer = '', $user_id = 0 ) {
822
-
823
-        if( intval( $user_id ) == 0 ) {
824
-
825
-            $user_id = get_current_user_id();
826
-
827
-        }
828
-
829
-        if( ! ( intval( $question_id ) > 0 ) ) {
830
-
831
-            return false;
832
-
833
-        }
834
-
835
-
836
-        Sensei()->question->get_question_type( $question_id );
837
-
838
-        /**
839
-         * Applying a grade before the auto grading takes place.
840
-         *
841
-         * This filter is applied just before the question is auto graded. It fires in the context of a single question
842
-         * in the sensei_grade_question_auto function. It fires irrespective of the question type. If you return a value
843
-         * other than false the auto grade functionality will be ignored and your supplied grade will be user for this question.
844
-         *
845
-         * @param int $question_grade default false
846
-         * @param int $question_id
847
-         * @param string $question_type one of the Sensei question type.
848
-         * @param string $answer user supplied question answer
849
-         */
850
-        $question_grade = apply_filters( 'sensei_pre_grade_question_auto', false, $question_id, $question_type, $answer );
805
+	} // End grade_quiz_auto()
851 806
 
852
-        if ( false !== $question_grade ) {
807
+	/**
808
+	 * Grade question automatically
809
+	 *
810
+	 * This function checks the question typ and then grades it accordingly.
811
+	 *
812
+	 * @since 1.7.4
813
+	 *
814
+	 * @param integer $question_id
815
+	 * @param string $question_type of the standard Sensei question types
816
+	 * @param string $answer
817
+	 * @param int $user_id
818
+	 *
819
+	 * @return int $question_grade
820
+	 */
821
+	public static function grade_question_auto( $question_id = 0, $question_type = '', $answer = '', $user_id = 0 ) {
822
+
823
+		if( intval( $user_id ) == 0 ) {
824
+
825
+			$user_id = get_current_user_id();
826
+
827
+		}
828
+
829
+		if( ! ( intval( $question_id ) > 0 ) ) {
830
+
831
+			return false;
832
+
833
+		}
834
+
835
+
836
+		Sensei()->question->get_question_type( $question_id );
837
+
838
+		/**
839
+		 * Applying a grade before the auto grading takes place.
840
+		 *
841
+		 * This filter is applied just before the question is auto graded. It fires in the context of a single question
842
+		 * in the sensei_grade_question_auto function. It fires irrespective of the question type. If you return a value
843
+		 * other than false the auto grade functionality will be ignored and your supplied grade will be user for this question.
844
+		 *
845
+		 * @param int $question_grade default false
846
+		 * @param int $question_id
847
+		 * @param string $question_type one of the Sensei question type.
848
+		 * @param string $answer user supplied question answer
849
+		 */
850
+		$question_grade = apply_filters( 'sensei_pre_grade_question_auto', false, $question_id, $question_type, $answer );
853 851
 
854
-            return $question_grade;
852
+		if ( false !== $question_grade ) {
855 853
 
856
-        }
854
+			return $question_grade;
857 855
 
858
-        // auto grading core
859
-        if( in_array( $question_type ,  array( 'multiple-choice'  , 'boolean'  ) )   ){
856
+		}
860 857
 
861
-            $right_answer = (array) get_post_meta( $question_id, '_question_right_answer', true );
858
+		// auto grading core
859
+		if( in_array( $question_type ,  array( 'multiple-choice'  , 'boolean'  ) )   ){
862 860
 
863
-            if( 0 == get_magic_quotes_gpc() ) {
864
-                $answer = wp_unslash( $answer );
865
-            }
866
-            $answer = (array) $answer;
867
-            if ( is_array( $right_answer ) && count( $right_answer ) == count( $answer ) ) {
868
-                // Loop through all answers ensure none are 'missing'
869
-                $all_correct = true;
870
-                foreach ( $answer as $check_answer ) {
871
-                    if ( !in_array( $check_answer, $right_answer ) ) {
872
-                        $all_correct = false;
873
-                    }
874
-                }
875
-                // If all correct then grade
876
-                if ( $all_correct ) {
877
-                    $question_grade = Sensei()->question->get_question_grade( $question_id );
878
-                }
879
-            }
861
+			$right_answer = (array) get_post_meta( $question_id, '_question_right_answer', true );
880 862
 
881
-        } elseif( 'gap-fill' == $question_type ){
863
+			if( 0 == get_magic_quotes_gpc() ) {
864
+				$answer = wp_unslash( $answer );
865
+			}
866
+			$answer = (array) $answer;
867
+			if ( is_array( $right_answer ) && count( $right_answer ) == count( $answer ) ) {
868
+				// Loop through all answers ensure none are 'missing'
869
+				$all_correct = true;
870
+				foreach ( $answer as $check_answer ) {
871
+					if ( !in_array( $check_answer, $right_answer ) ) {
872
+						$all_correct = false;
873
+					}
874
+				}
875
+				// If all correct then grade
876
+				if ( $all_correct ) {
877
+					$question_grade = Sensei()->question->get_question_grade( $question_id );
878
+				}
879
+			}
882 880
 
883
-            $question_grade = self::grade_gap_fill_question( $question_id ,$answer );
881
+		} elseif( 'gap-fill' == $question_type ){
884 882
 
885
-        } else{
883
+			$question_grade = self::grade_gap_fill_question( $question_id ,$answer );
886 884
 
887
-            /**
888
-             * Grading questions that are not auto gradable.
889
-             *
890
-             * This filter is applied the context of ta single question within the sensei_grade_question_auto function.
891
-             * It fires for all other questions types. It does not apply to 'multiple-choice'  , 'boolean' and gap-fill.
892
-             *
893
-             * @param int $question_grade default zero
894
-             * @param int $question_id
895
-             * @param string $question_type one of the Sensei question type.
896
-             * @param string $answer user supplied question answer
897
-             */
898
-            $question_grade = ( int ) apply_filters( 'sensei_grade_question_auto', $question_grade, $question_id, $question_type, $answer );
885
+		} else{
899 886
 
900
-        } // end if $question_type
887
+			/**
888
+			 * Grading questions that are not auto gradable.
889
+			 *
890
+			 * This filter is applied the context of ta single question within the sensei_grade_question_auto function.
891
+			 * It fires for all other questions types. It does not apply to 'multiple-choice'  , 'boolean' and gap-fill.
892
+			 *
893
+			 * @param int $question_grade default zero
894
+			 * @param int $question_id
895
+			 * @param string $question_type one of the Sensei question type.
896
+			 * @param string $answer user supplied question answer
897
+			 */
898
+			$question_grade = ( int ) apply_filters( 'sensei_grade_question_auto', $question_grade, $question_id, $question_type, $answer );
901 899
 
902
-        return $question_grade;
903
-    } // end grade_question_auto
900
+		} // end if $question_type
904 901
 
905
-    /**
906
-     * Grading logic specifically for the gap fill questions
907
-     *
908
-     * @since 1.9.0
909
-     * @param $question_id
910
-     * @param $user_answer
911
-     *
912
-     * @return bool | int false or the grade given to the user answer
913
-     */
914
-    public static function grade_gap_fill_question( $question_id, $user_answer ){
902
+		return $question_grade;
903
+	} // end grade_question_auto
915 904
 
916
-        $right_answer = get_post_meta( $question_id, '_question_right_answer', true );
917
-        $gapfill_array = explode( '||', $right_answer );
905
+	/**
906
+	 * Grading logic specifically for the gap fill questions
907
+	 *
908
+	 * @since 1.9.0
909
+	 * @param $question_id
910
+	 * @param $user_answer
911
+	 *
912
+	 * @return bool | int false or the grade given to the user answer
913
+	 */
914
+	public static function grade_gap_fill_question( $question_id, $user_answer ){
918 915
 
919
-        if( 0 == get_magic_quotes_gpc() ) { // deprecated from PHP 5.4 but we still support PHP 5.2
920
-            $user_answer = wp_unslash( $user_answer );
921
-        }
916
+		$right_answer = get_post_meta( $question_id, '_question_right_answer', true );
917
+		$gapfill_array = explode( '||', $right_answer );
922 918
 
923
-        /**
924
-         * case sensitive grading filter
925
-         *
926
-         * alter the value simply use this code in your plugin or the themes functions.php
927
-         * add_filter( 'sensei_gap_fill_case_sensitive_grading','__return_true' );
928
-         *
929
-         * @param bool $do_case_sensitive_comparison default false.
930
-         *
931
-         * @since 1.9.0
932
-         */
933
-        $do_case_sensitive_comparison = apply_filters('sensei_gap_fill_case_sensitive_grading', false );
919
+		if( 0 == get_magic_quotes_gpc() ) { // deprecated from PHP 5.4 but we still support PHP 5.2
920
+			$user_answer = wp_unslash( $user_answer );
921
+		}
922
+
923
+		/**
924
+		 * case sensitive grading filter
925
+		 *
926
+		 * alter the value simply use this code in your plugin or the themes functions.php
927
+		 * add_filter( 'sensei_gap_fill_case_sensitive_grading','__return_true' );
928
+		 *
929
+		 * @param bool $do_case_sensitive_comparison default false.
930
+		 *
931
+		 * @since 1.9.0
932
+		 */
933
+		$do_case_sensitive_comparison = apply_filters('sensei_gap_fill_case_sensitive_grading', false );
934 934
 
935
-        if( $do_case_sensitive_comparison ){
935
+		if( $do_case_sensitive_comparison ){
936 936
 
937
-            // Case Sensitive Check that the 'gap' is "exactly" equal to the given answer
938
-            if ( trim(($gapfill_array[1])) == trim( $user_answer ) ) {
937
+			// Case Sensitive Check that the 'gap' is "exactly" equal to the given answer
938
+			if ( trim(($gapfill_array[1])) == trim( $user_answer ) ) {
939 939
 
940
-                return Sensei()->question->get_question_grade( $question_id );
940
+				return Sensei()->question->get_question_grade( $question_id );
941 941
 
942
-            } else if (@preg_match('/' . $gapfill_array[1] . '/i', null) !== FALSE) {
942
+			} else if (@preg_match('/' . $gapfill_array[1] . '/i', null) !== FALSE) {
943 943
 
944
-                if (preg_match('/' . $gapfill_array[1] . '/i', $user_answer)) {
944
+				if (preg_match('/' . $gapfill_array[1] . '/i', $user_answer)) {
945 945
 
946
-                    return Sensei()->question->get_question_grade($question_id);
946
+					return Sensei()->question->get_question_grade($question_id);
947 947
 
948
-                }else{
948
+				}else{
949 949
 
950
-                    return false;
950
+					return false;
951 951
 
952
-                }
952
+				}
953 953
 
954
-            }else{
954
+			}else{
955 955
 
956
-                return false;
956
+				return false;
957 957
 
958
-            }
958
+			}
959 959
 
960
-        }else{
960
+		}else{
961 961
 
962
-            // Case Sensitive Check that the 'gap' is "exactly" equal to the given answer
963
-            if ( trim(strtolower($gapfill_array[1])) == trim(strtolower( $user_answer )) ) {
962
+			// Case Sensitive Check that the 'gap' is "exactly" equal to the given answer
963
+			if ( trim(strtolower($gapfill_array[1])) == trim(strtolower( $user_answer )) ) {
964 964
 
965
-               return Sensei()->question->get_question_grade( $question_id );
965
+			   return Sensei()->question->get_question_grade( $question_id );
966 966
 
967
-            } else if (@preg_match('/' . $gapfill_array[1] . '/i', null) !== FALSE) {
967
+			} else if (@preg_match('/' . $gapfill_array[1] . '/i', null) !== FALSE) {
968 968
 
969
-                if (preg_match('/' . $gapfill_array[1] . '/i', $user_answer)) {
969
+				if (preg_match('/' . $gapfill_array[1] . '/i', $user_answer)) {
970 970
 
971
-                    return  Sensei()->question->get_question_grade( $question_id );
971
+					return  Sensei()->question->get_question_grade( $question_id );
972 972
 
973
-                }else{
973
+				}else{
974 974
 
975
-                    return false;
975
+					return false;
976 976
 
977
-                }
977
+				}
978 978
 
979
-            }else{
979
+			}else{
980 980
 
981
-                return false;
981
+				return false;
982 982
 
983
-            }
983
+			}
984 984
 
985
-        }
985
+		}
986 986
 
987
-    }
987
+	}
988 988
 
989 989
 } // End Class
990 990
 
Please login to merge, or discard this patch.
includes/class-sensei-learners.php 2 patches
Doc Comments   +1 added lines patch added patch discarded remove patch
@@ -21,6 +21,7 @@
 block discarded – undo
21 21
 	/**
22 22
 	 * Constructor
23 23
 	 * @since  1.6.0
24
+	 * @param string $file
24 25
 	 * @return  void
25 26
 	 */
26 27
 	public function __construct ( $file ) {
Please login to merge, or discard this patch.
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -79,17 +79,17 @@  discard block
 block discarded – undo
79 79
 
80 80
 		// Load Learners JS
81 81
 		wp_enqueue_script( 'sensei-learners-general',
82
-            Sensei()->plugin_url . 'assets/js/learners-general' . $suffix . '.js',
83
-                            array('jquery','select2','sensei-chosen-ajax' ), Sensei()->version, true );
82
+			Sensei()->plugin_url . 'assets/js/learners-general' . $suffix . '.js',
83
+							array('jquery','select2','sensei-chosen-ajax' ), Sensei()->version, true );
84 84
 
85 85
 		$data = array(
86 86
 			'remove_generic_confirm' => __( 'Are you sure you want to remove this user?', 'woothemes-sensei' ),
87 87
 			'remove_from_lesson_confirm' => __( 'Are you sure you want to remove the user from this lesson?', 'woothemes-sensei' ),
88 88
 			'remove_from_course_confirm' => __( 'Are you sure you want to remove the user from this course?', 'woothemes-sensei' ),
89
-            'remove_from_purchased_course_confirm' => __( 'Are you sure you want to remove the user from this course? This order associate with this will also be set to canceled.', 'woothemes-sensei' ),
89
+			'remove_from_purchased_course_confirm' => __( 'Are you sure you want to remove the user from this course? This order associate with this will also be set to canceled.', 'woothemes-sensei' ),
90 90
 			'remove_user_from_post_nonce' => wp_create_nonce( 'remove_user_from_post_nonce' ),
91
-            'search_users_nonce' => wp_create_nonce( 'search-users' ),
92
-            'selectplaceholder'=> __( 'Select Learner', 'woothemes-sensei' )
91
+			'search_users_nonce' => wp_create_nonce( 'search-users' ),
92
+			'selectplaceholder'=> __( 'Select Learner', 'woothemes-sensei' )
93 93
 		);
94 94
 
95 95
 		wp_localize_script( 'sensei-learners-general', 'woo_learners_general_data', $data );
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
 			$user_id = intval( $action_data['user_id'] );
275 275
 			$post_id = intval( $action_data['post_id'] );
276 276
 			$post_type = sanitize_text_field( $action_data['post_type'] );
277
-            $order_id = sanitize_text_field( $action_data['order_id'] );
277
+			$order_id = sanitize_text_field( $action_data['order_id'] );
278 278
 
279 279
 			$user = get_userdata( $user_id );
280 280
 
@@ -283,15 +283,15 @@  discard block
 block discarded – undo
283 283
 				case 'course':
284 284
 					$removed = WooThemes_Sensei_Utils::sensei_remove_user_from_course( $post_id, $user_id );
285 285
 
286
-                    if( ! empty( $order_id ) && Sensei_WC::is_woocommerce_active()  ){
286
+					if( ! empty( $order_id ) && Sensei_WC::is_woocommerce_active()  ){
287 287
 
288
-                        $order = new WC_Order($order_id);
288
+						$order = new WC_Order($order_id);
289 289
 
290
-                        if (!empty($order)) {
291
-                            $order->update_status( 'cancelled' );
292
-                        }
290
+						if (!empty($order)) {
291
+							$order->update_status( 'cancelled' );
292
+						}
293 293
 
294
-                    }
294
+					}
295 295
 
296 296
 				break;
297 297
 
@@ -336,19 +336,19 @@  discard block
 block discarded – undo
336 336
 
337 337
 		if ( $users ) {
338 338
 			foreach ( $users as $user ) {
339
-                $full_name = Sensei()->learners->get_learner_full_name( $user->ID );
339
+				$full_name = Sensei()->learners->get_learner_full_name( $user->ID );
340 340
 
341
-                if( trim($user->display_name ) == trim( $full_name ) ){
341
+				if( trim($user->display_name ) == trim( $full_name ) ){
342 342
 
343
-                    $name = $full_name;
343
+					$name = $full_name;
344 344
 
345
-                }else{
345
+				}else{
346 346
 
347
-                    $name = $full_name . ' ['. $user->display_name .']';
347
+					$name = $full_name . ' ['. $user->display_name .']';
348 348
 
349
-                }
349
+				}
350 350
 
351
-                $found_users[ $user->ID ] = $name  . ' (#' . $user->ID . ' &ndash; ' . sanitize_email( $user->user_email ) . ')';
351
+				$found_users[ $user->ID ] = $name  . ' (#' . $user->ID . ' &ndash; ' . sanitize_email( $user->user_email ) . ')';
352 352
 			}
353 353
 		}
354 354
 
@@ -392,7 +392,7 @@  discard block
 block discarded – undo
392 392
 			break;
393 393
 
394 394
 			case 'lesson':
395
-                $lesson_id = absint( $_POST['add_lesson_id'] );
395
+				$lesson_id = absint( $_POST['add_lesson_id'] );
396 396
 				$complete = false;
397 397
 				if( isset( $_POST['add_complete_lesson'] ) && 'yes' == $_POST['add_complete_lesson'] ) {
398 398
 					$complete = true;
@@ -452,49 +452,49 @@  discard block
 block discarded – undo
452 452
 		}
453 453
 	}
454 454
 
455
-    /**
456
-     * Return the full name and surname or the display name of the user.
457
-     *
458
-     * The user must have both name and surname otherwise display name will be returned.
459
-     *
460
-     * @since 1.8.0
461
-     *
462
-     * @param int $user_id | bool false for an invalid $user_id
463
-     *
464
-     * @return string $full_name
465
-     */
466
-    public function get_learner_full_name( $user_id ){
455
+	/**
456
+	 * Return the full name and surname or the display name of the user.
457
+	 *
458
+	 * The user must have both name and surname otherwise display name will be returned.
459
+	 *
460
+	 * @since 1.8.0
461
+	 *
462
+	 * @param int $user_id | bool false for an invalid $user_id
463
+	 *
464
+	 * @return string $full_name
465
+	 */
466
+	public function get_learner_full_name( $user_id ){
467 467
 
468
-        $full_name = '';
468
+		$full_name = '';
469 469
 
470
-        if( empty( $user_id ) || ! ( 0 < intval( $user_id ) )
471
-            || !( get_userdata( $user_id ) ) ){
472
-            return false;
473
-        }
470
+		if( empty( $user_id ) || ! ( 0 < intval( $user_id ) )
471
+			|| !( get_userdata( $user_id ) ) ){
472
+			return false;
473
+		}
474 474
 
475
-        // get the user details
476
-        $user = get_user_by( 'id', $user_id );
475
+		// get the user details
476
+		$user = get_user_by( 'id', $user_id );
477 477
 
478
-        if( ! empty( $user->first_name  ) && ! empty( $user->last_name  )  ){
478
+		if( ! empty( $user->first_name  ) && ! empty( $user->last_name  )  ){
479 479
 
480
-            $full_name = trim( $user->first_name   ) . ' ' . trim( $user->last_name  );
480
+			$full_name = trim( $user->first_name   ) . ' ' . trim( $user->last_name  );
481 481
 
482
-        }else{
482
+		}else{
483 483
 
484
-            $full_name =  $user->display_name;
484
+			$full_name =  $user->display_name;
485 485
 
486
-        }
486
+		}
487 487
 
488
-        /**
489
-         * Filter the user full name from the get_learner_full_name function.
490
-         *
491
-         * @since 1.8.0
492
-         * @param $full_name
493
-         * @param $user_id
494
-         */
495
-        return apply_filters( 'sensei_learner_full_name' , $full_name , $user_id );
488
+		/**
489
+		 * Filter the user full name from the get_learner_full_name function.
490
+		 *
491
+		 * @since 1.8.0
492
+		 * @param $full_name
493
+		 * @param $user_id
494
+		 */
495
+		return apply_filters( 'sensei_learner_full_name' , $full_name , $user_id );
496 496
 
497
-    } // end get_learner_full_name
497
+	} // end get_learner_full_name
498 498
 
499 499
 } // End Class
500 500
 
Please login to merge, or discard this patch.
includes/class-sensei-lesson.php 2 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -239,7 +239,7 @@  discard block
 block discarded – undo
239 239
 	 *
240 240
 	 * @access public
241 241
 	 * @param int $post_id
242
-	 * @return void
242
+	 * @return integer|null
243 243
 	 */
244 244
 	public function meta_box_save ( $post_id ) {
245 245
 
@@ -2418,7 +2418,7 @@  discard block
 block discarded – undo
2418 2418
 	 *
2419 2419
 	 * @access private
2420 2420
 	 * @param array $data (default: array())
2421
-	 * @return void
2421
+	 * @return boolean
2422 2422
 	 */
2423 2423
 	private function lesson_delete_question( $data = array() ) {
2424 2424
 
Please login to merge, or discard this patch.
Indentation   +1016 added lines, -1016 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 		// Setup meta fields for this post type
25 25
 		$this->meta_fields = array( 'lesson_prerequisite', 'lesson_course', 'lesson_preview', 'lesson_length', 'lesson_complexity', 'lesson_video_embed' );
26 26
 
27
-        $this->question_order = '';
27
+		$this->question_order = '';
28 28
 
29 29
 		// Admin actions
30 30
 		if ( is_admin() ) {
@@ -82,18 +82,18 @@  discard block
 block discarded – undo
82 82
 			add_action( 'wp_ajax_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) );
83 83
 			add_action( 'wp_ajax_nopriv_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) );
84 84
 
85
-            // output bulk edit fields
86
-            add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
87
-            add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
85
+			// output bulk edit fields
86
+			add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
87
+			add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
88 88
 
89
-            // load quick edit default values
90
-            add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2);
89
+			// load quick edit default values
90
+			add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2);
91 91
 
92
-            // save bulk edit fields
93
-            add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) );
92
+			// save bulk edit fields
93
+			add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) );
94 94
 
95
-            // flush rewrite rules when saving a lesson
96
-            add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) );
95
+			// flush rewrite rules when saving a lesson
96
+			add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) );
97 97
 
98 98
 		} else {
99 99
 			// Frontend actions
@@ -187,8 +187,8 @@  discard block
 block discarded – undo
187 187
 		$post_args = array(	'post_type' 		=> 'lesson',
188 188
 							'posts_per_page' 		=> -1,
189 189
 							'orderby'         	=> 'title',
190
-    						'order'           	=> 'ASC',
191
-    						'exclude' 			=> $post->ID,
190
+							'order'           	=> 'ASC',
191
+							'exclude' 			=> $post->ID,
192 192
 							'suppress_filters' 	=> 0
193 193
 							);
194 194
 		$posts_array = get_posts( $post_args );
@@ -224,7 +224,7 @@  discard block
 block discarded – undo
224 224
 
225 225
 		$checked = '';
226 226
 		if ( isset( $lesson_preview ) && ( '' != $lesson_preview ) ) {
227
-	 	    $checked = checked( 'preview', $lesson_preview, false );
227
+	 		$checked = checked( 'preview', $lesson_preview, false );
228 228
 	 	} // End If Statement
229 229
 
230 230
 	 	$html .= '<label for="lesson_preview">';
@@ -273,7 +273,7 @@  discard block
 block discarded – undo
273 273
 
274 274
 
275 275
 	/**
276
-     * Update the lesson quiz and all the post meta
276
+	 * Update the lesson quiz and all the post meta
277 277
 	 *
278 278
 	 * @access public
279 279
 	 * @return void
@@ -294,7 +294,7 @@  discard block
 block discarded – undo
294 294
 		}
295 295
 
296 296
 		// Temporarily disable the filter
297
-        remove_action( 'save_post', array( $this, 'quiz_update' ) );
297
+		remove_action( 'save_post', array( $this, 'quiz_update' ) );
298 298
 		// Save the Quiz
299 299
 		$quiz_id = $this->lesson_quizzes( $post_id, 'any');
300 300
 
@@ -309,11 +309,11 @@  discard block
 block discarded – undo
309 309
 
310 310
 		// Setup Query Arguments
311 311
 		$post_type_args = array(	'post_content' => $post_content,
312
-  		    						'post_status' => $post_status,
313
-  		    						'post_title' => $post_title,
314
-  		    						'post_type' => 'quiz',
315
-                                    'post_parent' => $post_id,
316
-  		    						);
312
+  									'post_status' => $post_status,
313
+  									'post_title' => $post_title,
314
+  									'post_type' => 'quiz',
315
+									'post_parent' => $post_id,
316
+  									);
317 317
 
318 318
 		$settings = $this->get_quiz_settings();
319 319
 
@@ -321,48 +321,48 @@  discard block
 block discarded – undo
321 321
 		if ( 0 < $quiz_id ) {
322 322
 			// Update the Quiz
323 323
 			$post_type_args[ 'ID' ] = $quiz_id;
324
-		    wp_update_post($post_type_args);
325
-
326
-		    // Update the post meta data
327
-		    update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
328
-
329
-		    foreach( $settings as $field ) {
330
-		    	if( 'random_question_order' != $field['id'] ) {
331
-			    	$value = $this->get_submitted_setting_value( $field );
332
-			    	if( isset( $value ) ) {
333
-			    		update_post_meta( $quiz_id, '_' . $field['id'], $value );
334
-			    	}
335
-			    }
336
-		    }
337
-
338
-		    // Set the post terms for quiz-type
339
-		    wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
324
+			wp_update_post($post_type_args);
325
+
326
+			// Update the post meta data
327
+			update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
328
+
329
+			foreach( $settings as $field ) {
330
+				if( 'random_question_order' != $field['id'] ) {
331
+					$value = $this->get_submitted_setting_value( $field );
332
+					if( isset( $value ) ) {
333
+						update_post_meta( $quiz_id, '_' . $field['id'], $value );
334
+					}
335
+				}
336
+			}
337
+
338
+			// Set the post terms for quiz-type
339
+			wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
340 340
 		} else {
341 341
 			// Create the Quiz
342
-		    $quiz_id = wp_insert_post($post_type_args);
343
-
344
-		    // Add the post meta data WP will add it if it doesn't exist
345
-            update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
346
-
347
-		    foreach( $settings as $field ) {
348
-		    	if( 'random_question_order' != $field['id'] ) {
349
-
350
-                    //ignore values not posted to avoid
351
-                    // overwriting with empty or default values
352
-                    // when the values are posted from bulk edit or quick edit
353
-                    if( !isset( $_POST[ $field['id'] ] ) ){
354
-                        continue;
355
-                    }
356
-
357
-			    	$value = $this->get_submitted_setting_value( $field );
358
-			    	if( isset( $value ) ) {
359
-			    		add_post_meta( $quiz_id, '_' . $field['id'], $value );
360
-			    	}
361
-			    }
362
-		    }
363
-
364
-		    // Set the post terms for quiz-type
365
-		    wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
342
+			$quiz_id = wp_insert_post($post_type_args);
343
+
344
+			// Add the post meta data WP will add it if it doesn't exist
345
+			update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
346
+
347
+			foreach( $settings as $field ) {
348
+				if( 'random_question_order' != $field['id'] ) {
349
+
350
+					//ignore values not posted to avoid
351
+					// overwriting with empty or default values
352
+					// when the values are posted from bulk edit or quick edit
353
+					if( !isset( $_POST[ $field['id'] ] ) ){
354
+						continue;
355
+					}
356
+
357
+					$value = $this->get_submitted_setting_value( $field );
358
+					if( isset( $value ) ) {
359
+						add_post_meta( $quiz_id, '_' . $field['id'], $value );
360
+					}
361
+				}
362
+			}
363
+
364
+			// Set the post terms for quiz-type
365
+			wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
366 366
 		} // End If Statement
367 367
 
368 368
 		// Add default lesson order meta value
@@ -384,7 +384,7 @@  discard block
 block discarded – undo
384 384
 		}
385 385
 
386 386
 		// Restore the previously disabled filter
387
-        add_action( 'save_post', array( $this, 'quiz_update' ) );
387
+		add_action( 'save_post', array( $this, 'quiz_update' ) );
388 388
 
389 389
 	} // End post_updated()
390 390
 
@@ -424,22 +424,22 @@  discard block
 block discarded – undo
424 424
 		// Get the meta key.
425 425
 		$meta_key = '_' . $post_key;
426 426
 
427
-        //ignore fields are not posted
427
+		//ignore fields are not posted
428 428
 
429
-        if( !isset( $_POST[ $post_key ] ) ){
429
+		if( !isset( $_POST[ $post_key ] ) ){
430 430
 
431
-            // except for lesson preview checkbox field
432
-            if( 'lesson_preview' == $post_key ){
431
+			// except for lesson preview checkbox field
432
+			if( 'lesson_preview' == $post_key ){
433 433
 
434
-                $_POST[ $post_key ] = '';
434
+				$_POST[ $post_key ] = '';
435 435
 
436
-            } else {
436
+			} else {
437 437
 
438
-                return false;
438
+				return false;
439 439
 
440
-            }
440
+			}
441 441
 
442
-        }
442
+		}
443 443
 
444 444
 		// Get the posted data and sanitize it for use as an HTML class.
445 445
 		if ( 'lesson_video_embed' == $post_key) {
@@ -448,10 +448,10 @@  discard block
 block discarded – undo
448 448
 			$new_meta_value = ( isset( $_POST[$post_key] ) ? sanitize_html_class( $_POST[$post_key] ) : '' );
449 449
 		} // End If Statement
450 450
 
451
-        // update field with the new value
452
-        if( -1 != $new_meta_value  ){
453
-            return update_post_meta( $post_id, $meta_key, $new_meta_value );
454
-        }
451
+		// update field with the new value
452
+		if( -1 != $new_meta_value  ){
453
+			return update_post_meta( $post_id, $meta_key, $new_meta_value );
454
+		}
455 455
 
456 456
 	} // End save_post_meta()
457 457
 
@@ -476,9 +476,9 @@  discard block
 block discarded – undo
476 476
 		$post_args = array(	'post_type' 		=> 'course',
477 477
 							'posts_per_page' 		=> -1,
478 478
 							'orderby'         	=> 'title',
479
-    						'order'           	=> 'ASC',
480
-    						'post_status'      	=> 'any',
481
-    						'suppress_filters' 	=> 0,
479
+							'order'           	=> 'ASC',
480
+							'post_status'      	=> 'any',
481
+							'suppress_filters' 	=> 0,
482 482
 							);
483 483
 		$posts_array = get_posts( $post_args );
484 484
 		// Buid the HTML to Output
@@ -486,20 +486,20 @@  discard block
 block discarded – undo
486 486
 		// Nonce
487 487
 		$html .= wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false  );
488 488
 
489
-        // Select the course for the lesson
490
-        $drop_down_args = array(
491
-            'name'=>'lesson_course',
492
-            'id' => 'lesson-course-options'
493
-        );
489
+		// Select the course for the lesson
490
+		$drop_down_args = array(
491
+			'name'=>'lesson_course',
492
+			'id' => 'lesson-course-options'
493
+		);
494 494
 
495
-        $courses = WooThemes_Sensei_Course::get_all_courses();
496
-        $courses_options = array();
497
-        foreach( $courses as $course ){
498
-            $courses_options[ $course->ID ] = get_the_title( $course ) ;
499
-        }
500
-        $html .= WooThemes_Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args );
495
+		$courses = WooThemes_Sensei_Course::get_all_courses();
496
+		$courses_options = array();
497
+		foreach( $courses as $course ){
498
+			$courses_options[ $course->ID ] = get_the_title( $course ) ;
499
+		}
500
+		$html .= WooThemes_Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args );
501 501
 
502
-        // Course Actions Panel
502
+		// Course Actions Panel
503 503
 		if ( current_user_can( 'publish_courses' )) {
504 504
 				$html .= '<div id="lesson-course-actions">';
505 505
 					$html .= '<p>';
@@ -532,9 +532,9 @@  discard block
 block discarded – undo
532 532
 							$product_args = array(	'post_type' 		=> array( 'product', 'product_variation' ),
533 533
 													'posts_per_page' 		=> -1,
534 534
 													'orderby'         	=> 'title',
535
-	    											'order'           	=> 'DESC',
536
-	    											'post_status'		=> array( 'publish', 'private', 'draft' ),
537
-	    											'tax_query'			=> array(
535
+													'order'           	=> 'DESC',
536
+													'post_status'		=> array( 'publish', 'private', 'draft' ),
537
+													'tax_query'			=> array(
538 538
 														array(
539 539
 															'taxonomy'	=> 'product_type',
540 540
 															'field'		=> 'slug',
@@ -542,7 +542,7 @@  discard block
 block discarded – undo
542 542
 															'operator'	=> 'NOT IN'
543 543
 														)
544 544
 													),
545
-	    											'suppress_filters' 	=> 0
545
+													'suppress_filters' 	=> 0
546 546
 													);
547 547
 							$products_array = get_posts( $product_args );
548 548
 							$html .= '<label>' . __( 'WooCommerce Product' , 'woothemes-sensei' ) . '</label> ';
@@ -870,58 +870,58 @@  discard block
 block discarded – undo
870 870
 					$html .= '<tr class="question-quick-edit ' . esc_attr( $edit_class ) . '">';
871 871
 						$html .= '<td colspan="5">';
872 872
 							$html .= '<span class="hidden question_original_counter">' . $question_counter . '</span>';
873
-					    	$html .= '<div class="question_required_fields">';
874
-
875
-						    	// Question title
876
-						    	$html .= '<div>';
877
-							    	$html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> ';
878
-							    	$html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />';
879
-						    	$html .= '</div>';
880
-
881
-						    	// Question description
882
-						    	$html .= '<div>';
883
-							    	$html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> ';
884
-						    	$html .= '</div>';
885
-							    	$html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>';
886
-
887
-						    	// Question grade
888
-						    	$html .= '<div>';
889
-							    	$html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> ';
890
-							    	$html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />';
891
-						    	$html .= '</div>';
892
-
893
-						    	// Random order
894
-						    	if( $question_type == 'multiple-choice' ) {
895
-						    		$html .= '<div>';
896
-						    			$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>';
897
-						    		$html .= '</div>';
898
-						    	}
899
-
900
-						    	// Question media
901
-						    	$html .= '<div>';
902
-							    	$html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
903
-							    	$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>';
904
-							    	$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/>';
905
-							    	$html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>';
906
-							    	$html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>';
907
-							    	$html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />';
908
-						    	$html .= '</div>';
909
-
910
-						    $html .= '</div>';
911
-
912
-						    $html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter );
913
-
914
-						    $html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />';
873
+							$html .= '<div class="question_required_fields">';
874
+
875
+								// Question title
876
+								$html .= '<div>';
877
+									$html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> ';
878
+									$html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />';
879
+								$html .= '</div>';
880
+
881
+								// Question description
882
+								$html .= '<div>';
883
+									$html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> ';
884
+								$html .= '</div>';
885
+									$html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>';
886
+
887
+								// Question grade
888
+								$html .= '<div>';
889
+									$html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> ';
890
+									$html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />';
891
+								$html .= '</div>';
892
+
893
+								// Random order
894
+								if( $question_type == 'multiple-choice' ) {
895
+									$html .= '<div>';
896
+										$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>';
897
+									$html .= '</div>';
898
+								}
899
+
900
+								// Question media
901
+								$html .= '<div>';
902
+									$html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
903
+									$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>';
904
+									$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/>';
905
+									$html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>';
906
+									$html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>';
907
+									$html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />';
908
+								$html .= '</div>';
909
+
910
+							$html .= '</div>';
911
+
912
+							$html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter );
913
+
914
+							$html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />';
915 915
 							$html .= '<input type="hidden" name="question_id" class="row_question_id" id="question_' . $question_counter . '_id" value="' . $question_id . '" />';
916 916
 
917 917
 							if( 'quiz' == $context ) {
918
-					    		$html .= '<div class="update-question">';
919
-						    		$html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> ';
920
-						    		$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>';
921
-					    		$html .= '</div>';
922
-					    	}
918
+								$html .= '<div class="update-question">';
919
+									$html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> ';
920
+									$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>';
921
+								$html .= '</div>';
922
+							}
923 923
 
924
-			    		$html .= '</td>';
924
+						$html .= '</td>';
925 925
 					$html .= '</tr>';
926 926
 				}
927 927
 
@@ -942,20 +942,20 @@  discard block
 block discarded – undo
942 942
 			$question_cats = get_terms( 'question-category', array( 'hide_empty' => false ) );
943 943
 
944 944
 			if( 'quiz' == $context ) {
945
-	    		$html .= '<h2 class="nav-tab-wrapper add-question-tabs">';
946
-	    			$html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question'  , 'woothemes-sensei' ) . '</a>';
947
-	    			$html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions'  , 'woothemes-sensei' ) . '</a>';
948
-                    if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats )  && ! Sensei()->teacher->is_admin_teacher() ) {
949
-	    				$html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions'  , 'woothemes-sensei' ) . '</a>';
950
-	    			}
951
-	    		$html .= '</h2>';
952
-	    	}
945
+				$html .= '<h2 class="nav-tab-wrapper add-question-tabs">';
946
+					$html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question'  , 'woothemes-sensei' ) . '</a>';
947
+					$html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions'  , 'woothemes-sensei' ) . '</a>';
948
+					if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats )  && ! Sensei()->teacher->is_admin_teacher() ) {
949
+						$html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions'  , 'woothemes-sensei' ) . '</a>';
950
+					}
951
+				$html .= '</h2>';
952
+			}
953 953
 
954
-	    	$html .= '<div class="tab-content" id="tab-new-content">';
954
+			$html .= '<div class="tab-content" id="tab-new-content">';
955 955
 
956
-	    		if( 'quiz' == $context ) {
957
-	    			$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>';
958
-	    		}
956
+				if( 'quiz' == $context ) {
957
+					$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>';
958
+				}
959 959
 
960 960
 				$html .= '<div class="question">';
961 961
 					$html .= '<div class="question_required_fields">';
@@ -997,18 +997,18 @@  discard block
 block discarded – undo
997 997
 
998 998
 						// Random order
999 999
 						$html .= '<p class="add_question_random_order">';
1000
-			    			$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>';
1001
-			    		$html .= '</p>';
1000
+							$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>';
1001
+						$html .= '</p>';
1002 1002
 
1003
-			    		// Question media
1003
+						// Question media
1004 1004
 						$html .= '<p>';
1005
-					    	$html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
1006
-					    	$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>';
1007
-					    	$html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
1008
-					    	$html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>';
1009
-					    	$html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>';
1010
-					    	$html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />';
1011
-				    	$html .= '</p>';
1005
+							$html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
1006
+							$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>';
1007
+							$html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
1008
+							$html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>';
1009
+							$html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>';
1010
+							$html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />';
1011
+						$html .= '</p>';
1012 1012
 
1013 1013
 					$html .= '</div>';
1014 1014
 				$html .= '</div>';
@@ -1019,19 +1019,19 @@  discard block
 block discarded – undo
1019 1019
 
1020 1020
 				if( 'quiz' == $context ) {
1021 1021
 					$html .= '<div class="add-question">';
1022
-			    		$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>';
1023
-		    		$html .= '</div>';
1024
-		    	}
1022
+						$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>';
1023
+					$html .= '</div>';
1024
+				}
1025 1025
 
1026
-		    $html .= '</div>';
1026
+			$html .= '</div>';
1027 1027
 
1028
-		    if( 'quiz' == $context ) {
1028
+			if( 'quiz' == $context ) {
1029 1029
 
1030
-			    $html .= '<div class="tab-content hidden" id="tab-existing-content">';
1030
+				$html .= '<div class="tab-content hidden" id="tab-existing-content">';
1031 1031
 
1032
-			    	$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>';
1032
+					$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>';
1033 1033
 
1034
-			    	$html .= '<div id="existing-filters" class="alignleft actions">
1034
+					$html .= '<div id="existing-filters" class="alignleft actions">
1035 1035
 			    				<select id="existing-status">
1036 1036
 			    					<option value="all">' . __( 'All', 'woothemes-sensei' ) . '</option>
1037 1037
 			    					<option value="unused">' . __( 'Unused', 'woothemes-sensei' ) . '</option>
@@ -1039,23 +1039,23 @@  discard block
 block discarded – undo
1039 1039
 			    				</select>
1040 1040
 			    				<select id="existing-type">
1041 1041
 			    					<option value="">' . __( 'All Types', 'woothemes-sensei' ) . '</option>';
1042
-							    	foreach ( $question_types as $type => $label ) {
1042
+									foreach ( $question_types as $type => $label ) {
1043 1043
 										$html .= '<option value="' . esc_attr( $type ) . '">' . esc_html( $label ) . '</option>';
1044 1044
 									}
1045
-    				$html .= '</select>
1045
+					$html .= '</select>
1046 1046
     							<select id="existing-category">
1047 1047
 			    					<option value="">' . __( 'All Categories', 'woothemes-sensei' ) . '</option>';
1048
-				    				foreach( $question_cats as $cat ) {
1048
+									foreach( $question_cats as $cat ) {
1049 1049
 										$html .= '<option value="' . esc_attr( $cat->slug ) . '">' . esc_html( $cat->name ) . '</option>';
1050 1050
 									}
1051
-    				$html .= '</select>
1051
+					$html .= '</select>
1052 1052
     							<input type="text" id="existing-search" placeholder="' . __( 'Search', 'woothemes-sensei' ) . '" />
1053 1053
     							<a class="button" id="existing-filter-button">' . __( 'Filter', 'woothemes-sensei' ) . '</a>
1054 1054
 			    			</div>';
1055 1055
 
1056
-			    	$html .= '<table id="existing-table" class="widefat">';
1056
+					$html .= '<table id="existing-table" class="widefat">';
1057 1057
 
1058
-			    		$html .= '<thead>
1058
+						$html .= '<thead>
1059 1059
 									    <tr>
1060 1060
 									        <th scope="col" class="column-cb check-column"><input type="checkbox" /></th>
1061 1061
 									        <th scope="col">' . __( 'Question', 'woothemes-sensei' ) . '</th>
@@ -1083,28 +1083,28 @@  discard block
 block discarded – undo
1083 1083
 
1084 1084
 						$html .= '</tbody>';
1085 1085
 
1086
-			    	$html .= '</table>';
1086
+					$html .= '</table>';
1087 1087
 
1088
-			    	$next_class = '';
1089
-			    	if( $questions['count'] <= 10 ) {
1090
-			    		$next_class = 'hidden';
1091
-			    	}
1088
+					$next_class = '';
1089
+					if( $questions['count'] <= 10 ) {
1090
+						$next_class = 'hidden';
1091
+					}
1092 1092
 
1093
-			    	$html .= '<div id="existing-pagination">';
1094
-			    		$html .= '<input type="hidden" id="existing-page" value="1" />';
1095
-			    		$html .= '<a class="prev no-paging">&larr; ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' &rarr;</a>';
1096
-			    	$html .= '</div>';
1093
+					$html .= '<div id="existing-pagination">';
1094
+						$html .= '<input type="hidden" id="existing-page" value="1" />';
1095
+						$html .= '<a class="prev no-paging">&larr; ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' &rarr;</a>';
1096
+					$html .= '</div>';
1097 1097
 
1098
-			    	$html .= '<div class="existing-actions">';
1099
-			    		$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>';
1100
-			    	$html .= '</div>';
1098
+					$html .= '<div class="existing-actions">';
1099
+						$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>';
1100
+					$html .= '</div>';
1101 1101
 
1102
-			    $html .= '</div>';
1102
+				$html .= '</div>';
1103 1103
 
1104
-			    if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) {
1105
-				    $html .= '<div class="tab-content hidden" id="tab-multiple-content">';
1104
+				if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) {
1105
+					$html .= '<div class="tab-content hidden" id="tab-multiple-content">';
1106 1106
 
1107
-				    	$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>';
1107
+						$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>';
1108 1108
 
1109 1109
 						$html .= '<p><select id="add-multiple-question-category-options" name="multiple_category" class="chosen_select widefat question-category-select">' . "\n";
1110 1110
 						$html .= '<option value="">' . __( 'Select a Question Category', 'woothemes-sensei' ) . '</option>' . "\n";
@@ -1117,7 +1117,7 @@  discard block
 block discarded – undo
1117 1117
 
1118 1118
 						$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>';
1119 1119
 
1120
-				    $html .= '</div>';
1120
+					$html .= '</div>';
1121 1121
 				}
1122 1122
 			}
1123 1123
 
@@ -1190,14 +1190,14 @@  discard block
 block discarded – undo
1190 1190
 
1191 1191
 		$qry = new WP_Query( $args );
1192 1192
 
1193
-        /**
1194
-         * Filter existing questions query
1195
-         *
1196
-         * @since 1.8.0
1197
-         *
1198
-         * @param WP_Query $wp_query
1199
-         */
1200
-        $qry = apply_filters( 'sensei_existing_questions_query_results', $qry );
1193
+		/**
1194
+		 * Filter existing questions query
1195
+		 *
1196
+		 * @since 1.8.0
1197
+		 *
1198
+		 * @param WP_Query $wp_query
1199
+		 */
1200
+		$qry = apply_filters( 'sensei_existing_questions_query_results', $qry );
1201 1201
 
1202 1202
 		$questions['questions'] = $qry->posts;
1203 1203
 		$questions['count'] = intval( $qry->found_posts );
@@ -1212,14 +1212,14 @@  discard block
 block discarded – undo
1212 1212
 
1213 1213
 		if( ! $question_id ) {
1214 1214
 
1215
-            return;
1215
+			return;
1216 1216
 
1217
-        }
1217
+		}
1218 1218
 
1219 1219
 		$existing_class = '';
1220 1220
 		if( $row % 2 ) {
1221
-            $existing_class = 'alternate';
1222
-        }
1221
+			$existing_class = 'alternate';
1222
+		}
1223 1223
 
1224 1224
 		$question_type = Sensei()->question->get_question_type( $question_id );
1225 1225
 
@@ -1353,67 +1353,67 @@  discard block
 block discarded – undo
1353 1353
 							}
1354 1354
 						}
1355 1355
 
1356
-				    	// Calculate total wrong answers available (defaults to 4)
1357
-				    	$total_wrong = 0;
1358
-				    	if( $question_id ) {
1359
-				    		$total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true );
1360
-				    	}
1361
-				    	if( 0 == intval( $total_wrong ) ) {
1362
-				    		$total_wrong = 1;
1363
-				    	}
1356
+						// Calculate total wrong answers available (defaults to 4)
1357
+						$total_wrong = 0;
1358
+						if( $question_id ) {
1359
+							$total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true );
1360
+						}
1361
+						if( 0 == intval( $total_wrong ) ) {
1362
+							$total_wrong = 1;
1363
+						}
1364 1364
 
1365
-                        // Setup Wrong Answer HTML
1366
-                        foreach ( $wrong_answers as $i => $answer ){
1365
+						// Setup Wrong Answer HTML
1366
+						foreach ( $wrong_answers as $i => $answer ){
1367 1367
 
1368
-                            $answer_id = $this->get_answer_id( $answer );
1369
-                            $wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ;
1370
-                            $wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ;
1371
-                            $wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1372
-                            if( $question_id ) {
1368
+							$answer_id = $this->get_answer_id( $answer );
1369
+							$wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ;
1370
+							$wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ;
1371
+							$wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1372
+							if( $question_id ) {
1373 1373
 
1374
-                                $answers[ $answer_id ] = $wrong_answer;
1374
+								$answers[ $answer_id ] = $wrong_answer;
1375 1375
 
1376
-                            } else {
1376
+							} else {
1377 1377
 
1378
-                                $answers[] = $wrong_answer;
1378
+								$answers[] = $wrong_answer;
1379 1379
 
1380
-                            }
1380
+							}
1381 1381
 
1382
-                        } // end for each
1382
+						} // end for each
1383 1383
 
1384
-				    	$answers_sorted = $answers;
1385
-				    	if( $question_id && count( $answer_order ) > 0 ) {
1386
-				    		$answers_sorted = array();
1387
-				    		foreach( $answer_order as $answer_id ) {
1388
-				    			if( isset( $answers[ $answer_id ] ) ) {
1389
-				    				$answers_sorted[ $answer_id ] = $answers[ $answer_id ];
1390
-				    				unset( $answers[ $answer_id ] );
1391
-				    			}
1392
-				    		}
1384
+						$answers_sorted = $answers;
1385
+						if( $question_id && count( $answer_order ) > 0 ) {
1386
+							$answers_sorted = array();
1387
+							foreach( $answer_order as $answer_id ) {
1388
+								if( isset( $answers[ $answer_id ] ) ) {
1389
+									$answers_sorted[ $answer_id ] = $answers[ $answer_id ];
1390
+									unset( $answers[ $answer_id ] );
1391
+								}
1392
+							}
1393 1393
 
1394
-				    		if( count( $answers ) > 0 ) {
1395
-						    	foreach( $answers as $id => $answer ) {
1396
-						    		$answers_sorted[ $id ] = $answer;
1397
-						    	}
1398
-						    }
1399
-				    	}
1394
+							if( count( $answers ) > 0 ) {
1395
+								foreach( $answers as $id => $answer ) {
1396
+									$answers_sorted[ $id ] = $answer;
1397
+								}
1398
+							}
1399
+						}
1400 1400
 
1401 1401
 						foreach( $answers_sorted as $id => $answer ) {
1402
-				    		$html .= $answer;
1403
-				    	}
1402
+							$html .= $answer;
1403
+						}
1404 1404
 
1405
-				    	$html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />';
1406
-				    	$html .= '<span class="hidden right_answer_count">' . $total_right . '</span>';
1407
-				    	$html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>';
1405
+						$html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />';
1406
+						$html .= '<span class="hidden right_answer_count">' . $total_right . '</span>';
1407
+						$html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>';
1408 1408
 
1409
-				    	$html .= '<div class="add_answer_options">';
1410
-					    	$html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>';
1411
-					    	$html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>';
1412
-				    	$html .= '</div>';
1409
+						$html .= '<div class="add_answer_options">';
1410
+							$html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>';
1411
+							$html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>';
1412
+						$html .= '</div>';
1413 1413
 
1414
-                        $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' );
1414
+						$html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' );
1415 1415
 
1416
-			    	$html .= '</div>';
1416
+					$html .= '</div>';
1417 1417
 				break;
1418 1418
 				case 'boolean':
1419 1419
 					$html .= '<div class="question_boolean_fields ' . $question_class . '">';
@@ -1426,7 +1426,7 @@  discard block
 block discarded – undo
1426 1426
 						$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>';
1427 1427
 						$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>';
1428 1428
 
1429
-                    $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' );
1429
+					$html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' );
1430 1430
 
1431 1431
 					$html .= '</div>';
1432 1432
 				break;
@@ -1501,17 +1501,17 @@  discard block
 block discarded – undo
1501 1501
 
1502 1502
 	public function quiz_panel_question_feedback( $question_counter = 0, $question_id = 0, $question_type = '' ) {
1503 1503
 
1504
-        // default field name
1505
-        $field_name = 'answer_feedback';
1506
-        if( 'boolean' == $question_type ){
1504
+		// default field name
1505
+		$field_name = 'answer_feedback';
1506
+		if( 'boolean' == $question_type ){
1507 1507
 
1508
-            $field_name = 'answer_feedback_boolean';
1508
+			$field_name = 'answer_feedback_boolean';
1509 1509
 
1510
-        }elseif( 'multiple-choice' == $question_type ){
1510
+		}elseif( 'multiple-choice' == $question_type ){
1511 1511
 
1512
-            $field_name = 'answer_feedback_multiple_choice';
1512
+			$field_name = 'answer_feedback_multiple_choice';
1513 1513
 
1514
-        }// end if
1514
+		}// end if
1515 1515
 
1516 1516
 		if( $question_counter ) {
1517 1517
 			$field_name = 'answer_' . $question_counter . '_feedback';
@@ -1716,15 +1716,15 @@  discard block
 block discarded – undo
1716 1716
 			$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1717 1717
 
1718 1718
 			// Load the lessons script
1719
-            wp_enqueue_media();
1719
+			wp_enqueue_media();
1720 1720
 			wp_enqueue_script( 'sensei-lesson-metadata', Sensei()->plugin_url . 'assets/js/lesson-metadata' . $suffix . '.js', array( 'jquery', 'select2' ,'jquery-ui-sortable' ), Sensei()->version, true );
1721 1721
 			wp_enqueue_script( 'sensei-lesson-chosen', Sensei()->plugin_url . 'assets/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
1722 1722
 			wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery' . $suffix . '.js', array( 'jquery', 'sensei-lesson-chosen' ), Sensei()->version, true );
1723 1723
 
1724
-            // Load the bulk edit screen script
1725
-            if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) {
1726
-                wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true);
1727
-            }
1724
+			// Load the bulk edit screen script
1725
+			if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) {
1726
+				wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true);
1727
+			}
1728 1728
 
1729 1729
 			// Localise script
1730 1730
 			$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' ) );
@@ -2027,12 +2027,12 @@  discard block
 block discarded – undo
2027 2027
 
2028 2028
 					$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2029 2029
 					if( ! in_array( $quiz_id, $quizzes ) ) {
2030
-			    		add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2030
+						add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2031 2031
 						$lesson_id = get_post_meta( $quiz_id, '_quiz_lesson', true );
2032 2032
 						update_post_meta( $lesson_id, '_quiz_has_questions', '1' );
2033
-			    	}
2033
+					}
2034 2034
 
2035
-			    	add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2035
+					add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2036 2036
 					$question_type = Sensei()->question->get_question_type( $question_id );
2037 2037
 
2038 2038
 					$return .= $this->quiz_panel_question( $question_type, $question_count, $question_id );
@@ -2138,34 +2138,34 @@  discard block
 block discarded – undo
2138 2138
 		$post_content = $course_content;
2139 2139
 		// Course Query Arguments
2140 2140
 		$post_type_args = array(	'post_content' => $post_content,
2141
-  		    						'post_status' => $post_status,
2142
-  		    						'post_title' => $post_title,
2143
-  		    						'post_type' => $post_type
2144
-  		    						);
2141
+  									'post_status' => $post_status,
2142
+  									'post_title' => $post_title,
2143
+  									'post_type' => $post_type
2144
+  									);
2145 2145
   		// Only save if there is a valid title
2146 2146
   		if ( $post_title != '' ) {
2147
-  		    // Check for prerequisite courses & product id
2148
-  		    $course_prerequisite_id = absint( $data[ 'course_prerequisite' ] );
2149
-  		    $course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] );
2150
-  		    $course_category_id = absint( $data[ 'course_category' ] );
2151
-  		    if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; }
2152
-  		    // Insert or Update the Lesson Quiz
2153
-		    if ( 0 < $course_id ) {
2154
-		    	$post_type_args[ 'ID' ] = $course_id;
2155
-		    	$course_id = wp_update_post($post_type_args);
2156
-		    	update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2157
-		    	update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2158
-		    	if ( 0 < $course_category_id ) {
2159
-		    		wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2160
-		    	} // End If Statement
2161
-		    } else {
2162
-		    	$course_id = wp_insert_post($post_type_args);
2163
-		    	add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2164
-		    	add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2165
-		    	if ( 0 < $course_category_id ) {
2166
-		    		wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2167
-		    	} // End If Statement
2168
-		    } // End If Statement
2147
+  			// Check for prerequisite courses & product id
2148
+  			$course_prerequisite_id = absint( $data[ 'course_prerequisite' ] );
2149
+  			$course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] );
2150
+  			$course_category_id = absint( $data[ 'course_category' ] );
2151
+  			if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; }
2152
+  			// Insert or Update the Lesson Quiz
2153
+			if ( 0 < $course_id ) {
2154
+				$post_type_args[ 'ID' ] = $course_id;
2155
+				$course_id = wp_update_post($post_type_args);
2156
+				update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2157
+				update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2158
+				if ( 0 < $course_category_id ) {
2159
+					wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2160
+				} // End If Statement
2161
+			} else {
2162
+				$course_id = wp_insert_post($post_type_args);
2163
+				add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2164
+				add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2165
+				if ( 0 < $course_category_id ) {
2166
+					wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2167
+				} // End If Statement
2168
+			} // End If Statement
2169 2169
 		} // End If Statement
2170 2170
   		// Check that the insert or update saved by testing the post id
2171 2171
   		if ( 0 < $course_id ) {
@@ -2256,17 +2256,17 @@  discard block
 block discarded – undo
2256 2256
 		$answer_feedback = '';
2257 2257
 		if ( isset( $data[ 'answer_feedback_boolean' ] ) && !empty( $data[ 'answer_feedback_boolean' ] ) ) {
2258 2258
 
2259
-            $answer_feedback = $data[ 'answer_feedback_boolean' ];
2259
+			$answer_feedback = $data[ 'answer_feedback_boolean' ];
2260 2260
 
2261 2261
 		}elseif( isset( $data[ 'answer_feedback_multiple_choice' ] ) && !empty( $data[ 'answer_feedback_multiple_choice' ] ) ){
2262 2262
 
2263
-            $answer_feedback = $data[ 'answer_feedback_multiple_choice' ];
2263
+			$answer_feedback = $data[ 'answer_feedback_multiple_choice' ];
2264 2264
 
2265
-        }elseif( isset( $data[ 'answer_feedback' ] )  ){
2265
+		}elseif( isset( $data[ 'answer_feedback' ] )  ){
2266 2266
 
2267
-            $answer_feedback = $data[ 'answer_feedback' ];
2267
+			$answer_feedback = $data[ 'answer_feedback' ];
2268 2268
 
2269
-        } // End If Statement
2269
+		} // End If Statement
2270 2270
 
2271 2271
 		$post_title = $question_text;
2272 2272
 		$post_author = $data[ 'post_author' ];
@@ -2281,10 +2281,10 @@  discard block
 block discarded – undo
2281 2281
 		}
2282 2282
 		// Question Query Arguments
2283 2283
 		$post_type_args = array(	'post_content' => $post_content,
2284
-  		    						'post_status' => $post_status,
2285
-  		    						'post_title' => $post_title,
2286
-  		    						'post_type' => $post_type
2287
-  		    						);
2284
+  									'post_status' => $post_status,
2285
+  									'post_title' => $post_title,
2286
+  									'post_type' => $post_type
2287
+  									);
2288 2288
 
2289 2289
   		// Remove empty values and reindex the array
2290 2290
   		if ( is_array( $question_right_answers ) && 0 < count($question_right_answers) ) {
@@ -2320,14 +2320,14 @@  discard block
 block discarded – undo
2320 2320
   		if ( $post_title != '' ) {
2321 2321
 
2322 2322
   			// Get Quiz ID for the question
2323
-  		    $quiz_id = $data['quiz_id'];
2323
+  			$quiz_id = $data['quiz_id'];
2324 2324
 
2325
-  		    // Get question media
2325
+  			// Get question media
2326 2326
 			$question_media = $data['question_media'];
2327 2327
 
2328
-  		    // Get answer order
2329
-  		    $answer_order = '';
2330
-  		    if( isset( $data['answer_order'] ) ) {
2328
+  			// Get answer order
2329
+  			$answer_order = '';
2330
+  			if( isset( $data['answer_order'] ) ) {
2331 2331
 				$answer_order = $data['answer_order'];
2332 2332
 			}
2333 2333
 
@@ -2337,38 +2337,38 @@  discard block
 block discarded – undo
2337 2337
 				$random_order = $data['random_order'];
2338 2338
 			}
2339 2339
 
2340
-  		    // Insert or Update the question
2341
-  		    if ( 0 < $question_id ) {
2342
-
2343
-  		    	$post_type_args[ 'ID' ] = $question_id;
2344
-		    	$question_id = wp_update_post( $post_type_args );
2345
-
2346
-		    	// Update poast meta
2347
-		    	if( 'quiz' == $context ) {
2348
-		    		$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2349
-		    		if( ! in_array( $quiz_id, $quizzes ) ) {
2350
-			    		add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2351
-			    	}
2352
-		    	}
2353
-
2354
-		    	update_post_meta( $question_id, '_question_grade', $question_grade );
2355
-		    	update_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2356
-		    	update_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2357
-		    	update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2358
-		    	update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2359
-		    	update_post_meta( $question_id, '_question_media', $question_media );
2360
-		    	update_post_meta( $question_id, '_answer_order', $answer_order );
2361
-		    	update_post_meta( $question_id, '_random_order', $random_order );
2362
-
2363
-		    	if( 'quiz' != $context ) {
2364
-		    		wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false );
2365
-		    	}
2340
+  			// Insert or Update the question
2341
+  			if ( 0 < $question_id ) {
2342
+
2343
+  				$post_type_args[ 'ID' ] = $question_id;
2344
+				$question_id = wp_update_post( $post_type_args );
2345
+
2346
+				// Update poast meta
2347
+				if( 'quiz' == $context ) {
2348
+					$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2349
+					if( ! in_array( $quiz_id, $quizzes ) ) {
2350
+						add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2351
+					}
2352
+				}
2353
+
2354
+				update_post_meta( $question_id, '_question_grade', $question_grade );
2355
+				update_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2356
+				update_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2357
+				update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2358
+				update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2359
+				update_post_meta( $question_id, '_question_media', $question_media );
2360
+				update_post_meta( $question_id, '_answer_order', $answer_order );
2361
+				update_post_meta( $question_id, '_random_order', $random_order );
2362
+
2363
+				if( 'quiz' != $context ) {
2364
+					wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false );
2365
+				}
2366 2366
 				// Don't store empty value, no point
2367 2367
 				if ( !empty($answer_feedback) ) {
2368 2368
 					update_post_meta( $question_id, '_answer_feedback', $answer_feedback );
2369 2369
 				}
2370 2370
 
2371
-		    } else {
2371
+			} else {
2372 2372
 				$question_id = wp_insert_post( $post_type_args );
2373 2373
 				$question_count = intval( $data['question_count'] );
2374 2374
 				++$question_count;
@@ -2381,29 +2381,29 @@  discard block
 block discarded – undo
2381 2381
 				}
2382 2382
 
2383 2383
 				if( isset( $question_grade ) ) {
2384
-		    		add_post_meta( $question_id, '_question_grade', $question_grade );
2385
-		    	}
2386
-		    	add_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2387
-		    	add_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2388
-		    	add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2389
-		    	add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2390
-		    	add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2391
-		    	add_post_meta( $question_id, '_question_media', $question_media );
2392
-		    	add_post_meta( $question_id, '_answer_order', $answer_order );
2393
-		    	add_post_meta( $question_id, '_random_order', $random_order );
2384
+					add_post_meta( $question_id, '_question_grade', $question_grade );
2385
+				}
2386
+				add_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2387
+				add_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2388
+				add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2389
+				add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2390
+				add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2391
+				add_post_meta( $question_id, '_question_media', $question_media );
2392
+				add_post_meta( $question_id, '_answer_order', $answer_order );
2393
+				add_post_meta( $question_id, '_random_order', $random_order );
2394 2394
 				// Don't store empty value, no point
2395 2395
 				if ( !empty($answer_feedback) ) {
2396 2396
 					add_post_meta( $question_id, '_answer_feedback', $answer_feedback );
2397 2397
 				}
2398 2398
 
2399
-		    	// Set the post terms for question-type
2400
-			    wp_set_post_terms( $question_id, array( $question_type ), 'question-type' );
2399
+				// Set the post terms for question-type
2400
+				wp_set_post_terms( $question_id, array( $question_type ), 'question-type' );
2401 2401
 
2402
-			    if( $question_category ) {
2403
-	    			wp_set_post_terms( $question_id, array( $question_category ), 'question-category' );
2404
-	    		}
2402
+				if( $question_category ) {
2403
+					wp_set_post_terms( $question_id, array( $question_category ), 'question-category' );
2404
+				}
2405 2405
 
2406
-		    } // End If Statement
2406
+			} // End If Statement
2407 2407
 		} // End If Statement
2408 2408
   		// Check that the insert or update saved by testing the post id
2409 2409
   		if ( 0 < $question_id ) {
@@ -2452,7 +2452,7 @@  discard block
 block discarded – undo
2452 2452
 	public function lesson_complexities() {
2453 2453
 
2454 2454
 		// V2 - make filter for this array
2455
-        $lesson_complexities = array( 	'easy' => __( 'Easy', 'woothemes-sensei' ),
2455
+		$lesson_complexities = array( 	'easy' => __( 'Easy', 'woothemes-sensei' ),
2456 2456
 									'std' => __( 'Standard', 'woothemes-sensei' ),
2457 2457
 									'hard' => __( 'Hard', 'woothemes-sensei' )
2458 2458
 									);
@@ -2519,14 +2519,14 @@  discard block
 block discarded – undo
2519 2519
 		$post_args = array(	'post_type' 		=> 'quiz',
2520 2520
 							'posts_per_page' 		=> 1,
2521 2521
 							'orderby'         	=> 'title',
2522
-    						'order'           	=> 'DESC',
2523
-    						'post_parent'      	=> $lesson_id,
2524
-    						'post_status'		=> $post_status,
2522
+							'order'           	=> 'DESC',
2523
+							'post_parent'      	=> $lesson_id,
2524
+							'post_status'		=> $post_status,
2525 2525
 							'suppress_filters' 	=> 0,
2526 2526
 							'fields'            => $fields
2527 2527
 							);
2528 2528
 		$posts_array = get_posts( $post_args );
2529
-        $quiz_id = array_shift($posts_array);
2529
+		$quiz_id = array_shift($posts_array);
2530 2530
 
2531 2531
 		return $quiz_id;
2532 2532
 	} // End lesson_quizzes()
@@ -2534,34 +2534,34 @@  discard block
 block discarded – undo
2534 2534
 
2535 2535
 	/**
2536 2536
 	 * Fetches all the questions for a quiz depending on certain conditions.
2537
-     *
2538
-     * Determine which questions should be shown depending on:
2539
-     * - admin/teacher selected questions to be shown
2540
-     * - questions shown to a user previously (saved as asked questions)
2541
-     * - limit number of questions lesson setting
2542 2537
 	 *
2543
-     * @since 1.0
2538
+	 * Determine which questions should be shown depending on:
2539
+	 * - admin/teacher selected questions to be shown
2540
+	 * - questions shown to a user previously (saved as asked questions)
2541
+	 * - limit number of questions lesson setting
2542
+	 *
2543
+	 * @since 1.0
2544 2544
 	 * @param int $quiz_id (default: 0)
2545 2545
 	 * @param string $post_status (default: 'publish')
2546 2546
 	 * @param string $orderby (default: 'meta_value_num title')
2547 2547
 	 * @param string $order (default: 'ASC')
2548
-     *
2548
+	 *
2549 2549
 	 * @return array $questions { $question type WP_Post }
2550 2550
 	 */
2551 2551
 	public function lesson_quiz_questions( $quiz_id = 0, $post_status = 'any', $orderby = 'meta_value_num title', $order = 'ASC' ) {
2552 2552
 
2553 2553
 		$quiz_id = (string) $quiz_id;
2554
-        $quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
2554
+		$quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
2555 2555
 
2556
-        // setup the user id
2557
-        if( is_admin() ) {
2558
-            $user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ;
2559
-        } else {
2560
-            $user_id = get_current_user_id();
2561
-        }
2556
+		// setup the user id
2557
+		if( is_admin() ) {
2558
+			$user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ;
2559
+		} else {
2560
+			$user_id = get_current_user_id();
2561
+		}
2562 2562
 
2563
-        // get the users current status on the lesson
2564
-        $user_lesson_status = WooThemes_Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id );
2563
+		// get the users current status on the lesson
2564
+		$user_lesson_status = WooThemes_Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id );
2565 2565
 
2566 2566
 		// Set the default question order if it has not already been set for this quiz
2567 2567
 		$this->set_default_question_order( $quiz_id );
@@ -2591,14 +2591,14 @@  discard block
 block discarded – undo
2591 2591
 			'suppress_filters' 	=> 0
2592 2592
 		);
2593 2593
 
2594
-        //query the questions
2594
+		//query the questions
2595 2595
 		$questions_query = new WP_Query( $question_query_args );
2596 2596
 
2597
-        // Set return array to initially include all items
2598
-        $questions = $questions_query->posts;
2597
+		// Set return array to initially include all items
2598
+		$questions = $questions_query->posts;
2599 2599
 
2600
-        // set the questions array that will be manipulated within this function
2601
-        $questions_array = $questions_query->posts;
2600
+		// set the questions array that will be manipulated within this function
2601
+		$questions_array = $questions_query->posts;
2602 2602
 
2603 2603
 		// If viewing quiz on frontend or in grading then only single questions must be shown
2604 2604
 		$selected_questions = false;
@@ -2711,36 +2711,36 @@  discard block
 block discarded – undo
2711 2711
 			}
2712 2712
 		}
2713 2713
 
2714
-        // Save the questions that will be asked for the current user
2715
-        // this happens only once per user/quiz, unless the user resets the quiz
2716
-        if( ! is_admin() ){
2714
+		// Save the questions that will be asked for the current user
2715
+		// this happens only once per user/quiz, unless the user resets the quiz
2716
+		if( ! is_admin() ){
2717 2717
 
2718
-            if( $user_lesson_status ) {
2718
+			if( $user_lesson_status ) {
2719 2719
 
2720
-                $questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true);
2721
-                if ( empty($questions_asked) && $user_lesson_status) {
2720
+				$questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true);
2721
+				if ( empty($questions_asked) && $user_lesson_status) {
2722 2722
 
2723
-                    $questions_asked = array();
2724
-                    foreach ($questions as $question) {
2723
+					$questions_asked = array();
2724
+					foreach ($questions as $question) {
2725 2725
 
2726
-                        $questions_asked[] = $question->ID;
2726
+						$questions_asked[] = $question->ID;
2727 2727
 
2728
-                    }
2728
+					}
2729 2729
 
2730
-                    // save the questions asked id
2731
-                    $questions_asked_csv = implode(',', $questions_asked);
2732
-                    update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_csv);
2730
+					// save the questions asked id
2731
+					$questions_asked_csv = implode(',', $questions_asked);
2732
+					update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_csv);
2733 2733
 
2734
-                }
2735
-            }
2736
-        }
2734
+				}
2735
+			}
2736
+		}
2737 2737
 
2738
-        /**
2739
-         * Filter the questions returned by Sensei_Lesson::lessons_quiz_questions
2740
-         *
2741
-         * @hooked Sensei_Teacher::allow_teacher_access_to_questions
2742
-         * @since 1.8.0
2743
-         */
2738
+		/**
2739
+		 * Filter the questions returned by Sensei_Lesson::lessons_quiz_questions
2740
+		 *
2741
+		 * @hooked Sensei_Teacher::allow_teacher_access_to_questions
2742
+		 * @since 1.8.0
2743
+		 */
2744 2744
 		return apply_filters( 'sensei_lesson_quiz_questions', $questions,  $quiz_id  );
2745 2745
 
2746 2746
 	} // End lesson_quiz_questions()
@@ -2844,7 +2844,7 @@  discard block
 block discarded – undo
2844 2844
  			// Display Image Placeholder if none
2845 2845
 			if ( Sensei()->settings->settings[ 'placeholder_images_enable' ] ) {
2846 2846
 
2847
-                $img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
2847
+				$img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
2848 2848
 
2849 2849
 			} // End If Statement
2850 2850
 
@@ -2860,401 +2860,401 @@  discard block
 block discarded – undo
2860 2860
 	 * Returns the the lesson excerpt.
2861 2861
 	 *
2862 2862
 	 * @param WP_Post $lesson
2863
-     * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop()
2863
+	 * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop()
2864 2864
 	 * @return string
2865 2865
 	 */
2866 2866
 	public static function lesson_excerpt( $lesson = null, $add_p_tags = true ) {
2867 2867
 		$html = '';
2868 2868
 		if ( is_a( $lesson, 'WP_Post' ) && 'lesson' == $lesson->post_type ) {
2869 2869
 
2870
-            $excerpt =  $lesson->post_excerpt;
2870
+			$excerpt =  $lesson->post_excerpt;
2871 2871
 
2872
-            // if $add_p_tags true wrap with <p> else return the excerpt as is
2873
-            $html =  $add_p_tags ? wpautop( $excerpt ) : $excerpt;
2872
+			// if $add_p_tags true wrap with <p> else return the excerpt as is
2873
+			$html =  $add_p_tags ? wpautop( $excerpt ) : $excerpt;
2874 2874
 
2875 2875
 		}
2876 2876
 		return apply_filters( 'sensei_lesson_excerpt', $html );
2877 2877
 
2878 2878
 	} // End lesson_excerpt()
2879 2879
 
2880
-    /**
2881
-     * Returns the course for a given lesson
2882
-     *
2883
-     * @since 1.7.4
2884
-     * @access public
2885
-     *
2886
-     * @param int $lesson_id
2887
-     * @return int|bool $course_id or bool when nothing is found.
2888
-     */
2889
-     public function get_course_id( $lesson_id ){
2890
-
2891
-         if( ! isset( $lesson_id ) || empty( $lesson_id )
2892
-         ||  'lesson' != get_post_type( $lesson_id ) ){
2893
-             return false;
2894
-         }
2895
-
2896
-         $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true);
2897
-
2898
-         // make sure the course id is valid
2899
-         if( empty( $lesson_course_id )
2900
-             || is_array( $lesson_course_id )
2901
-             || intval( $lesson_course_id ) < 1
2902
-             || 'course' != get_post_type( $lesson_course_id ) ){
2903
-
2904
-             return false;
2905
-
2906
-         }
2907
-
2908
-         return $lesson_course_id;
2909
-
2910
-     }// en get_course_id
2911
-
2912
-    /**
2913
-     * Add the admin all lessons screen edit options.
2914
-     *
2915
-     * The fields in this function work for both quick and bulk edit. The ID attributes is used
2916
-     * by bulk edit javascript in the front end to retrieve the new values set byt the user. Then
2917
-     * name attribute is will be used by the quick edit and submitted via standard POST. This
2918
-     * will use this classes save_post_meta function to save the new field data.
2919
-     *
2920
-     * @hooked quick_edit_custom_box
2921
-     * @hooked bulk_edit_custom_box
2922
-     *
2923
-     * @since 1.8.0
2924
-     *
2925
-     * @param string $column_name
2926
-     * @param string $post_type
2927
-     * @return void
2928
-     */
2929
-    public function all_lessons_edit_fields( $column_name, $post_type ) {
2930
-
2931
-        // only show these options ont he lesson post type edit screen
2932
-        if( 'lesson' != $post_type || 'lesson-course' != $column_name ){
2933
-            return;
2934
-        }
2935
-
2936
-        ?>
2880
+	/**
2881
+	 * Returns the course for a given lesson
2882
+	 *
2883
+	 * @since 1.7.4
2884
+	 * @access public
2885
+	 *
2886
+	 * @param int $lesson_id
2887
+	 * @return int|bool $course_id or bool when nothing is found.
2888
+	 */
2889
+	 public function get_course_id( $lesson_id ){
2890
+
2891
+		 if( ! isset( $lesson_id ) || empty( $lesson_id )
2892
+		 ||  'lesson' != get_post_type( $lesson_id ) ){
2893
+			 return false;
2894
+		 }
2895
+
2896
+		 $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true);
2897
+
2898
+		 // make sure the course id is valid
2899
+		 if( empty( $lesson_course_id )
2900
+			 || is_array( $lesson_course_id )
2901
+			 || intval( $lesson_course_id ) < 1
2902
+			 || 'course' != get_post_type( $lesson_course_id ) ){
2903
+
2904
+			 return false;
2905
+
2906
+		 }
2907
+
2908
+		 return $lesson_course_id;
2909
+
2910
+	 }// en get_course_id
2911
+
2912
+	/**
2913
+	 * Add the admin all lessons screen edit options.
2914
+	 *
2915
+	 * The fields in this function work for both quick and bulk edit. The ID attributes is used
2916
+	 * by bulk edit javascript in the front end to retrieve the new values set byt the user. Then
2917
+	 * name attribute is will be used by the quick edit and submitted via standard POST. This
2918
+	 * will use this classes save_post_meta function to save the new field data.
2919
+	 *
2920
+	 * @hooked quick_edit_custom_box
2921
+	 * @hooked bulk_edit_custom_box
2922
+	 *
2923
+	 * @since 1.8.0
2924
+	 *
2925
+	 * @param string $column_name
2926
+	 * @param string $post_type
2927
+	 * @return void
2928
+	 */
2929
+	public function all_lessons_edit_fields( $column_name, $post_type ) {
2930
+
2931
+		// only show these options ont he lesson post type edit screen
2932
+		if( 'lesson' != $post_type || 'lesson-course' != $column_name ){
2933
+			return;
2934
+		}
2935
+
2936
+		?>
2937 2937
         <fieldset class="sensei-edit-field-set inline-edit-lesson">
2938 2938
             <div class="sensei-inline-edit-col column-<?php echo $column_name ?>">
2939 2939
                     <?php
2940
-                    echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>';
2941
-                    // create a nonce field to be  used as a security measure when saving the data
2942
-                    wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' );
2943
-                    wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce'  );
2944
-
2945
-                    // unchanged option - we need this in because
2946
-                    // the default option in bulk edit should not be empty. If it is
2947
-                    // the user will erase data they didn't want to touch.
2948
-                    $no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --';
2949
-
2950
-                    //
2951
-                    //course selection
2952
-                    //
2953
-                    $courses =  WooThemes_Sensei_Course::get_all_courses();
2954
-                    $course_options = array();
2955
-                    if ( count( $courses ) > 0 ) {
2956
-                        foreach ($courses as $course ){
2957
-                            $course_options[ $course->ID ] = get_the_title( $course->ID );
2958
-                        }
2959
-                    }
2960
-                    //pre-append the no change option
2961
-                    $course_options['-1']=  $no_change_text;
2962
-                    $course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' );
2963
-                    $course_field =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes );
2964
-                    echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'),   $course_field  );
2965
-
2966
-                    //
2967
-                    // lesson complexity selection
2968
-                    //
2969
-                    $lesson_complexities =  $this->lesson_complexities();
2970
-                    //pre-append the no change option
2971
-                    $lesson_complexities['-1']=  $no_change_text;
2972
-                    $complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' ');
2973
-                    $complexity_filed =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes );
2974
-                    echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'),   $complexity_filed  );
2975
-
2976
-                    ?>
2940
+					echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>';
2941
+					// create a nonce field to be  used as a security measure when saving the data
2942
+					wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' );
2943
+					wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce'  );
2944
+
2945
+					// unchanged option - we need this in because
2946
+					// the default option in bulk edit should not be empty. If it is
2947
+					// the user will erase data they didn't want to touch.
2948
+					$no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --';
2949
+
2950
+					//
2951
+					//course selection
2952
+					//
2953
+					$courses =  WooThemes_Sensei_Course::get_all_courses();
2954
+					$course_options = array();
2955
+					if ( count( $courses ) > 0 ) {
2956
+						foreach ($courses as $course ){
2957
+							$course_options[ $course->ID ] = get_the_title( $course->ID );
2958
+						}
2959
+					}
2960
+					//pre-append the no change option
2961
+					$course_options['-1']=  $no_change_text;
2962
+					$course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' );
2963
+					$course_field =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes );
2964
+					echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'),   $course_field  );
2965
+
2966
+					//
2967
+					// lesson complexity selection
2968
+					//
2969
+					$lesson_complexities =  $this->lesson_complexities();
2970
+					//pre-append the no change option
2971
+					$lesson_complexities['-1']=  $no_change_text;
2972
+					$complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' ');
2973
+					$complexity_filed =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes );
2974
+					echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'),   $complexity_filed  );
2975
+
2976
+					?>
2977 2977
 
2978 2978
                     <h4><?php _e('Quiz Settings', 'woothemes-sensei'); ?> </h4>
2979 2979
 
2980 2980
                     <?php
2981 2981
 
2982
-                    //
2983
-                    // Lesson require pass to complete
2984
-                    //
2985
-                    $pass_required_options = array(
2986
-                        '-1' => $no_change_text,
2987
-                         '0' => __('No','woothemes'),
2988
-                         '1' => __('Yes','woothemes'),
2989
-                    );
2990
-
2991
-                    $pass_required_select_attributes = array( 'name'=> 'pass_required',
2992
-                                                                'id'=> 'sensei-edit-lesson-pass-required',
2993
-                                                                'class'=>' '   );
2994
-                    $require_pass_field =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false );
2995
-                    echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'),   $require_pass_field  );
2996
-
2997
-                    //
2998
-                    // Quiz pass percentage
2999
-                    //
3000
-                    $quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />';
3001
-                    echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field  );
3002
-
3003
-                    //
3004
-                    // Enable quiz reset button
3005
-                    //
3006
-                    $quiz_reset_select__options = array(
3007
-                        '-1' => $no_change_text,
3008
-                        '0' => __('No','woothemes'),
3009
-                        '1' => __('Yes','woothemes'),
3010
-                    );
3011
-                    $quiz_reset_name_id = 'sensei-edit-enable-quiz-reset';
3012
-                    $quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' );
3013
-                    $quiz_reset_field =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false );
3014
-                    echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field  );
3015
-
3016
-                    ?>
2982
+					//
2983
+					// Lesson require pass to complete
2984
+					//
2985
+					$pass_required_options = array(
2986
+						'-1' => $no_change_text,
2987
+						 '0' => __('No','woothemes'),
2988
+						 '1' => __('Yes','woothemes'),
2989
+					);
2990
+
2991
+					$pass_required_select_attributes = array( 'name'=> 'pass_required',
2992
+																'id'=> 'sensei-edit-lesson-pass-required',
2993
+																'class'=>' '   );
2994
+					$require_pass_field =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false );
2995
+					echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'),   $require_pass_field  );
2996
+
2997
+					//
2998
+					// Quiz pass percentage
2999
+					//
3000
+					$quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />';
3001
+					echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field  );
3002
+
3003
+					//
3004
+					// Enable quiz reset button
3005
+					//
3006
+					$quiz_reset_select__options = array(
3007
+						'-1' => $no_change_text,
3008
+						'0' => __('No','woothemes'),
3009
+						'1' => __('Yes','woothemes'),
3010
+					);
3011
+					$quiz_reset_name_id = 'sensei-edit-enable-quiz-reset';
3012
+					$quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' );
3013
+					$quiz_reset_field =  WooThemes_Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false );
3014
+					echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field  );
3015
+
3016
+					?>
3017 3017
             </div>
3018 3018
         </fieldset>
3019 3019
     <?php
3020
-    }// all_lessons_edit_fields
3021
-
3022
-    /**
3023
-     * Create the html for the edit field
3024
-     *
3025
-     * Wraps the passed in field and title combination with the correct html.
3026
-     *
3027
-     * @since 1.8.0
3028
-     *
3029
-     * @param string $title that will stand to the left of the field.
3030
-     * @param string $field type markup for the field that must be wrapped.
3031
-     * @return string $field_html
3032
-     */
3033
-    public function generate_all_lessons_edit_field( $title  ,$field ){
3034
-
3035
-        $html = '';
3036
-        $html = '<div class="inline-edit-group" >';
3037
-        $html .=  '<span class="title">'. $title .'</span> ';
3038
-        $html .= '<span class="input-text-wrap">';
3039
-        $html .= $field;
3040
-        $html .= '</span>';
3041
-        $html .= '</label></div>';
3042
-
3043
-        return $html ;
3044
-
3045
-    }//end generate_all_lessons_edit_field
3046
-
3047
-    /**
3048
-     * Respond to the ajax call from the bulk edit save function. This comes
3049
-     * from the admin all lesson screen.
3050
-     *
3051
-     * @since 1.8.0
3052
-     * @return void
3053
-     */
3054
-    function save_all_lessons_edit_fields() {
3055
-
3056
-        // verify all the data before attempting to save
3057
-        if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' )
3058
-            ||  empty( $_POST[ 'post_ids' ] )  || ! is_array( $_POST[ 'post_ids' ] ) ) {
3059
-            die();
3060
-        }
3061
-
3062
-        // get our variables
3063
-        $new_course = sanitize_text_field(  $_POST['sensei_edit_lesson_course'] );
3064
-        $new_complexity = sanitize_text_field(  $_POST['sensei_edit_complexity'] );
3065
-        $new_pass_required = sanitize_text_field(  $_POST['sensei_edit_pass_required'] );
3066
-        $new_pass_percentage = sanitize_text_field(  $_POST['sensei_edit_pass_percentage'] );
3067
-        $new_enable_quiz_reset = sanitize_text_field(  $_POST['sensei_edit_enable_quiz_reset'] );
3068
-        // store the values for all selected posts
3069
-        foreach( $_POST[ 'post_ids' ] as $lesson_id ) {
3070
-
3071
-            // get the quiz id needed for the quiz meta
3072
-            $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
3073
-
3074
-            // do not save the items if the value is -1 as this
3075
-            // means it was not changed
3076
-
3077
-            // update lesson course
3078
-            if( -1 != $new_course ){
3079
-                update_post_meta( $lesson_id, '_lesson_course', $new_course );
3080
-            }
3081
-            // update lesson complexity
3082
-            if( -1 != $new_complexity ){
3083
-                update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity );
3084
-            }
3085
-
3086
-            // Quiz Related settings
3087
-            if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) {
3088
-
3089
-                // update pass required
3090
-                if (-1 != $new_pass_required) {
3091
-
3092
-                    $checked = $new_pass_required  ? 'on' : '';
3093
-                    update_post_meta($quiz_id, '_pass_required', $checked);
3094
-                    unset( $checked );
3095
-                }
3020
+	}// all_lessons_edit_fields
3021
+
3022
+	/**
3023
+	 * Create the html for the edit field
3024
+	 *
3025
+	 * Wraps the passed in field and title combination with the correct html.
3026
+	 *
3027
+	 * @since 1.8.0
3028
+	 *
3029
+	 * @param string $title that will stand to the left of the field.
3030
+	 * @param string $field type markup for the field that must be wrapped.
3031
+	 * @return string $field_html
3032
+	 */
3033
+	public function generate_all_lessons_edit_field( $title  ,$field ){
3034
+
3035
+		$html = '';
3036
+		$html = '<div class="inline-edit-group" >';
3037
+		$html .=  '<span class="title">'. $title .'</span> ';
3038
+		$html .= '<span class="input-text-wrap">';
3039
+		$html .= $field;
3040
+		$html .= '</span>';
3041
+		$html .= '</label></div>';
3042
+
3043
+		return $html ;
3044
+
3045
+	}//end generate_all_lessons_edit_field
3046
+
3047
+	/**
3048
+	 * Respond to the ajax call from the bulk edit save function. This comes
3049
+	 * from the admin all lesson screen.
3050
+	 *
3051
+	 * @since 1.8.0
3052
+	 * @return void
3053
+	 */
3054
+	function save_all_lessons_edit_fields() {
3096 3055
 
3097
-                // update pass percentage
3098
-                if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){
3056
+		// verify all the data before attempting to save
3057
+		if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' )
3058
+			||  empty( $_POST[ 'post_ids' ] )  || ! is_array( $_POST[ 'post_ids' ] ) ) {
3059
+			die();
3060
+		}
3099 3061
 
3100
-                        update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage);
3062
+		// get our variables
3063
+		$new_course = sanitize_text_field(  $_POST['sensei_edit_lesson_course'] );
3064
+		$new_complexity = sanitize_text_field(  $_POST['sensei_edit_complexity'] );
3065
+		$new_pass_required = sanitize_text_field(  $_POST['sensei_edit_pass_required'] );
3066
+		$new_pass_percentage = sanitize_text_field(  $_POST['sensei_edit_pass_percentage'] );
3067
+		$new_enable_quiz_reset = sanitize_text_field(  $_POST['sensei_edit_enable_quiz_reset'] );
3068
+		// store the values for all selected posts
3069
+		foreach( $_POST[ 'post_ids' ] as $lesson_id ) {
3101 3070
 
3102
-                }
3071
+			// get the quiz id needed for the quiz meta
3072
+			$quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
3103 3073
 
3104
-                //
3105
-                // update enable quiz reset
3106
-                //
3107
-                if (-1 != $new_enable_quiz_reset ) {
3074
+			// do not save the items if the value is -1 as this
3075
+			// means it was not changed
3108 3076
 
3109
-                    $checked = $new_enable_quiz_reset ? 'on' : ''  ;
3110
-                    update_post_meta($quiz_id, '_enable_quiz_reset', $checked);
3111
-                    unset( $checked );
3077
+			// update lesson course
3078
+			if( -1 != $new_course ){
3079
+				update_post_meta( $lesson_id, '_lesson_course', $new_course );
3080
+			}
3081
+			// update lesson complexity
3082
+			if( -1 != $new_complexity ){
3083
+				update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity );
3084
+			}
3112 3085
 
3113
-                }
3086
+			// Quiz Related settings
3087
+			if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) {
3114 3088
 
3089
+				// update pass required
3090
+				if (-1 != $new_pass_required) {
3115 3091
 
3116
-            } // end if quiz
3092
+					$checked = $new_pass_required  ? 'on' : '';
3093
+					update_post_meta($quiz_id, '_pass_required', $checked);
3094
+					unset( $checked );
3095
+				}
3117 3096
 
3118
-        }// end for each
3097
+				// update pass percentage
3098
+				if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){
3119 3099
 
3120
-        die();
3100
+						update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage);
3121 3101
 
3122
-    } // end save_all_lessons_edit_fields
3102
+				}
3123 3103
 
3124
-    /**
3125
-     * Loading the quick edit fields defaults.
3126
-     *
3127
-     * This function will localise the default values along with the script that will
3128
-     * add these values to the inputs.
3129
-     *
3130
-     * NOTE: this function runs for each row in the edit column
3131
-     *
3132
-     * @since 1.8.0
3133
-     * @return void
3134
-     */
3135
-    public function set_quick_edit_admin_defaults( $column_name, $post_id ){
3104
+				//
3105
+				// update enable quiz reset
3106
+				//
3107
+				if (-1 != $new_enable_quiz_reset ) {
3136 3108
 
3137
-        if( 'lesson-course' != $column_name ){
3138
-            return;
3139
-        }
3140
-        // load the script
3141
-        $suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
3142
-        wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
3109
+					$checked = $new_enable_quiz_reset ? 'on' : ''  ;
3110
+					update_post_meta($quiz_id, '_enable_quiz_reset', $checked);
3111
+					unset( $checked );
3143 3112
 
3144
-        // setup the values for all meta fields
3145
-        $data = array();
3146
-        foreach( $this->meta_fields as $field ){
3113
+				}
3147 3114
 
3148
-            $data[$field] =  get_post_meta( $post_id, '_'.$field, true );
3149 3115
 
3150
-        }
3151
-        // add quiz meta fields
3152
-        $quiz_id = Sensei()->lesson->lesson_quizzes( $post_id );
3153
-        foreach( Sensei()->quiz->meta_fields as $field ){
3116
+			} // end if quiz
3154 3117
 
3155
-            $data[$field] =  get_post_meta( $quiz_id, '_'.$field, true );
3118
+		}// end for each
3156 3119
 
3157
-        }
3120
+		die();
3158 3121
 
3159
-        wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data );
3122
+	} // end save_all_lessons_edit_fields
3160 3123
 
3161
-    }// end quick edit admin defaults
3124
+	/**
3125
+	 * Loading the quick edit fields defaults.
3126
+	 *
3127
+	 * This function will localise the default values along with the script that will
3128
+	 * add these values to the inputs.
3129
+	 *
3130
+	 * NOTE: this function runs for each row in the edit column
3131
+	 *
3132
+	 * @since 1.8.0
3133
+	 * @return void
3134
+	 */
3135
+	public function set_quick_edit_admin_defaults( $column_name, $post_id ){
3162 3136
 
3163
-    /**
3164
-     * Filter the classes for lessons on the single course page.
3165
-     *
3166
-     * Adds the nesecary classes depending on the user data
3167
-     *
3168
-     * @since 1.9.0
3169
-     * @param array $classes
3170
-     * @return array $classes
3171
-     */
3172
-    public static function single_course_lessons_classes( $classes ){
3137
+		if( 'lesson-course' != $column_name ){
3138
+			return;
3139
+		}
3140
+		// load the script
3141
+		$suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
3142
+		wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
3143
+
3144
+		// setup the values for all meta fields
3145
+		$data = array();
3146
+		foreach( $this->meta_fields as $field ){
3147
+
3148
+			$data[$field] =  get_post_meta( $post_id, '_'.$field, true );
3149
+
3150
+		}
3151
+		// add quiz meta fields
3152
+		$quiz_id = Sensei()->lesson->lesson_quizzes( $post_id );
3153
+		foreach( Sensei()->quiz->meta_fields as $field ){
3154
+
3155
+			$data[$field] =  get_post_meta( $quiz_id, '_'.$field, true );
3156
+
3157
+		}
3158
+
3159
+		wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data );
3160
+
3161
+	}// end quick edit admin defaults
3162
+
3163
+	/**
3164
+	 * Filter the classes for lessons on the single course page.
3165
+	 *
3166
+	 * Adds the nesecary classes depending on the user data
3167
+	 *
3168
+	 * @since 1.9.0
3169
+	 * @param array $classes
3170
+	 * @return array $classes
3171
+	 */
3172
+	public static function single_course_lessons_classes( $classes ){
3173 3173
 
3174
-        if(  is_singular('course') ){
3174
+		if(  is_singular('course') ){
3175 3175
 
3176
-            global $post;
3177
-            $course_id = $post->ID;
3176
+			global $post;
3177
+			$course_id = $post->ID;
3178 3178
 
3179
-            $lesson_classes = array( 'course', 'post' );
3180
-            if ( is_user_logged_in() ) {
3179
+			$lesson_classes = array( 'course', 'post' );
3180
+			if ( is_user_logged_in() ) {
3181 3181
 
3182
-                // Check if Lesson is complete
3183
-                $single_lesson_complete = WooThemes_Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() );
3184
-                if ( $single_lesson_complete ) {
3182
+				// Check if Lesson is complete
3183
+				$single_lesson_complete = WooThemes_Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() );
3184
+				if ( $single_lesson_complete ) {
3185 3185
 
3186
-                    $lesson_classes[] = 'lesson-completed';
3186
+					$lesson_classes[] = 'lesson-completed';
3187 3187
 
3188
-                } // End If Statement
3188
+				} // End If Statement
3189 3189
 
3190
-            } // End If Statement
3190
+			} // End If Statement
3191 3191
 
3192
-            $is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3193
-            if (  WooThemes_Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) {
3192
+			$is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3193
+			if (  WooThemes_Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) {
3194 3194
 
3195
-                $lesson_classes[] = 'lesson-preview';
3195
+				$lesson_classes[] = 'lesson-preview';
3196 3196
 
3197
-            }
3197
+			}
3198 3198
 
3199
-            $classes = array_merge( $classes, $lesson_classes  );
3199
+			$classes = array_merge( $classes, $lesson_classes  );
3200 3200
 
3201
-        }
3201
+		}
3202 3202
 
3203
-        return $classes;
3203
+		return $classes;
3204 3204
 
3205
-    }// end single_course_lessons_classes
3205
+	}// end single_course_lessons_classes
3206 3206
 
3207
-    /**
3208
-     * Output the lesson meta for the given lesson
3209
-     *
3210
-     * @since 1.9.0
3211
-     * @param $lesson_id
3212
-     */
3213
-    public static function the_lesson_meta( $lesson_id ){
3207
+	/**
3208
+	 * Output the lesson meta for the given lesson
3209
+	 *
3210
+	 * @since 1.9.0
3211
+	 * @param $lesson_id
3212
+	 */
3213
+	public static function the_lesson_meta( $lesson_id ){
3214 3214
 
3215
-        global $wp_query;
3216
-        $loop_lesson_number = $wp_query->current_post + 1;
3215
+		global $wp_query;
3216
+		$loop_lesson_number = $wp_query->current_post + 1;
3217 3217
 
3218
-        $course_id = Sensei()->lesson->get_course_id( $lesson_id );
3219
-        $single_lesson_complete = false;
3220
-        $is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3218
+		$course_id = Sensei()->lesson->get_course_id( $lesson_id );
3219
+		$single_lesson_complete = false;
3220
+		$is_user_taking_course = WooThemes_Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3221 3221
 
3222
-        // Get Lesson data
3223
-        $complexity_array = Sensei()->lesson->lesson_complexities();
3222
+		// Get Lesson data
3223
+		$complexity_array = Sensei()->lesson->lesson_complexities();
3224 3224
 
3225
-        $lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true );
3226
-        if ( '' != $lesson_complexity ) {
3225
+		$lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true );
3226
+		if ( '' != $lesson_complexity ) {
3227 3227
 
3228
-            $lesson_complexity = $complexity_array[$lesson_complexity];
3228
+			$lesson_complexity = $complexity_array[$lesson_complexity];
3229 3229
 
3230
-        }
3231
-        $user_info = get_userdata( absint( get_post()->post_author ) );
3232
-        $is_preview = WooThemes_Sensei_Utils::is_preview_lesson( $lesson_id);
3233
-        $preview_label = '';
3234
-        if ( $is_preview && !$is_user_taking_course ) {
3230
+		}
3231
+		$user_info = get_userdata( absint( get_post()->post_author ) );
3232
+		$is_preview = WooThemes_Sensei_Utils::is_preview_lesson( $lesson_id);
3233
+		$preview_label = '';
3234
+		if ( $is_preview && !$is_user_taking_course ) {
3235 3235
 
3236
-            $preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id);
3237
-            $preview_label = '<span class="preview-heading">' . $preview_label . '</span>';
3236
+			$preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id);
3237
+			$preview_label = '<span class="preview-heading">' . $preview_label . '</span>';
3238 3238
 
3239
-        }
3239
+		}
3240 3240
 
3241 3241
 
3242
-        $count_markup= '';
3243
-        /**
3244
-         * Filter for if you want the $lesson_count to show next to the lesson.
3245
-         *
3246
-         * @since 1.0
3247
-         * @param bool default false.
3248
-         */
3249
-        if( apply_filters( 'sensei_show_lesson_numbers', false ) ) {
3242
+		$count_markup= '';
3243
+		/**
3244
+		 * Filter for if you want the $lesson_count to show next to the lesson.
3245
+		 *
3246
+		 * @since 1.0
3247
+		 * @param bool default false.
3248
+		 */
3249
+		if( apply_filters( 'sensei_show_lesson_numbers', false ) ) {
3250 3250
 
3251
-            $count_markup =  '<span class="lesson-number">' . $loop_lesson_number. '</span>';
3251
+			$count_markup =  '<span class="lesson-number">' . $loop_lesson_number. '</span>';
3252 3252
 
3253
-        }
3253
+		}
3254 3254
 
3255
-        $heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) );
3255
+		$heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) );
3256 3256
 
3257
-        ?>
3257
+		?>
3258 3258
         <header>
3259 3259
             <h2>
3260 3260
                 <a href="<?php echo esc_url_raw( get_permalink( $lesson_id ) ) ?>"
@@ -3267,40 +3267,40 @@  discard block
 block discarded – undo
3267 3267
 
3268 3268
                 <?php
3269 3269
 
3270
-                $meta_html = '';
3271
-                $user_lesson_status = WooThemes_Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() );
3270
+				$meta_html = '';
3271
+				$user_lesson_status = WooThemes_Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() );
3272 3272
 
3273
-                $lesson_length = get_post_meta( $lesson_id, '_lesson_length', true );
3274
-                if ( '' != $lesson_length ) {
3273
+				$lesson_length = get_post_meta( $lesson_id, '_lesson_length', true );
3274
+				if ( '' != $lesson_length ) {
3275 3275
 
3276
-                    $meta_html .= '<span class="lesson-length">' .  __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>';
3276
+					$meta_html .= '<span class="lesson-length">' .  __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>';
3277 3277
 
3278
-                }
3278
+				}
3279 3279
 
3280
-                if ( Sensei()->settings->get( 'lesson_author' ) ) {
3280
+				if ( Sensei()->settings->get( 'lesson_author' ) ) {
3281 3281
 
3282
-                    $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>';
3282
+					$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>';
3283 3283
 
3284
-                } // End If Statement
3285
-                if ( '' != $lesson_complexity ) {
3284
+				} // End If Statement
3285
+				if ( '' != $lesson_complexity ) {
3286 3286
 
3287
-                    $meta_html .= '<span class="lesson-complexity">' .  __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>';
3287
+					$meta_html .= '<span class="lesson-complexity">' .  __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>';
3288 3288
 
3289
-                }
3289
+				}
3290 3290
 
3291
-                if ( $single_lesson_complete ) {
3291
+				if ( $single_lesson_complete ) {
3292 3292
 
3293
-                    $meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>';
3293
+					$meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>';
3294 3294
 
3295
-                } elseif ( $user_lesson_status ) {
3295
+				} elseif ( $user_lesson_status ) {
3296 3296
 
3297
-                    $meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>';
3297
+					$meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>';
3298 3298
 
3299
-                } // End If Statement
3299
+				} // End If Statement
3300 3300
 
3301
-                echo $meta_html;
3301
+				echo $meta_html;
3302 3302
 
3303
-                ?>
3303
+				?>
3304 3304
 
3305 3305
             </p> <!-- lesson meta -->
3306 3306
 
@@ -3308,132 +3308,132 @@  discard block
 block discarded – undo
3308 3308
 
3309 3309
     <?php
3310 3310
 
3311
-    } // end the_lesson_meta
3311
+	} // end the_lesson_meta
3312 3312
 
3313
-    /**
3314
-     * Output the lessons thumbnail
3315
-     *
3316
-     * 1.9.0
3317
-     *
3318
-     * @param $lesson_id
3319
-     */
3320
-    public static function the_lesson_thumbnail( $lesson_id ){
3313
+	/**
3314
+	 * Output the lessons thumbnail
3315
+	 *
3316
+	 * 1.9.0
3317
+	 *
3318
+	 * @param $lesson_id
3319
+	 */
3320
+	public static function the_lesson_thumbnail( $lesson_id ){
3321 3321
 
3322
-        if( empty( $lesson_id ) ){
3322
+		if( empty( $lesson_id ) ){
3323 3323
 
3324
-            $lesson_id = get_the_ID();
3324
+			$lesson_id = get_the_ID();
3325 3325
 
3326
-        }
3326
+		}
3327 3327
 
3328
-        if( 'lesson' != get_post_type( $lesson_id ) ){
3329
-            return;
3330
-        }
3328
+		if( 'lesson' != get_post_type( $lesson_id ) ){
3329
+			return;
3330
+		}
3331 3331
 
3332
-        echo Sensei()->lesson->lesson_image( $lesson_id );
3333
-    }
3332
+		echo Sensei()->lesson->lesson_image( $lesson_id );
3333
+	}
3334 3334
 
3335 3335
 
3336
-    /**
3337
-     * Alter the sensei lesson excerpt.
3338
-     *
3339
-     * @since 1.9.0
3340
-     * @param string $excerpt
3341
-     * @return string $excerpt
3342
-     */
3343
-    public static function alter_the_lesson_excerpt( $excerpt ) {
3336
+	/**
3337
+	 * Alter the sensei lesson excerpt.
3338
+	 *
3339
+	 * @since 1.9.0
3340
+	 * @param string $excerpt
3341
+	 * @return string $excerpt
3342
+	 */
3343
+	public static function alter_the_lesson_excerpt( $excerpt ) {
3344 3344
 
3345
-        if ('lesson' == get_post_type(get_the_ID())){
3345
+		if ('lesson' == get_post_type(get_the_ID())){
3346 3346
 
3347
-            // remove this hooks to avoid an infinite loop.
3348
-            remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') );
3347
+			// remove this hooks to avoid an infinite loop.
3348
+			remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') );
3349 3349
 
3350
-            return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) );
3351
-        }
3350
+			return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) );
3351
+		}
3352 3352
 
3353
-        return $excerpt;
3353
+		return $excerpt;
3354 3354
 
3355
-    }// end the_lesson_excerpt
3355
+	}// end the_lesson_excerpt
3356 3356
 
3357
-    /**
3358
-     * Returns the lesson prerequisite for the given lesson id.
3359
-     *
3360
-     * @since 1.9.0
3361
-     *
3362
-     * @param $current_lesson_id
3363
-     * @return mixed | bool | int $prerequisite_lesson_id or false
3364
-     */
3365
-    public static function get_lesson_prerequisite_id( $current_lesson_id  ){
3357
+	/**
3358
+	 * Returns the lesson prerequisite for the given lesson id.
3359
+	 *
3360
+	 * @since 1.9.0
3361
+	 *
3362
+	 * @param $current_lesson_id
3363
+	 * @return mixed | bool | int $prerequisite_lesson_id or false
3364
+	 */
3365
+	public static function get_lesson_prerequisite_id( $current_lesson_id  ){
3366 3366
 
3367
-        $prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true );
3367
+		$prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true );
3368 3368
 
3369
-        // set ti to false if not a valid prerequisite lesson id
3370
-        if(  empty( $prerequisite_lesson_id )
3371
-            || 'lesson' != get_post_type( $prerequisite_lesson_id )
3372
-            || $prerequisite_lesson_id == $current_lesson_id  ) {
3369
+		// set ti to false if not a valid prerequisite lesson id
3370
+		if(  empty( $prerequisite_lesson_id )
3371
+			|| 'lesson' != get_post_type( $prerequisite_lesson_id )
3372
+			|| $prerequisite_lesson_id == $current_lesson_id  ) {
3373 3373
 
3374
-            $prerequisite_lesson_id = false;
3374
+			$prerequisite_lesson_id = false;
3375 3375
 
3376
-        }
3376
+		}
3377 3377
 
3378
-        return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id );
3378
+		return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id );
3379 3379
 
3380
-    }
3380
+	}
3381 3381
 
3382
-    /**
3383
-     * This function requires that you pass in the lesson you would like to check for
3384
-     * a pre-requisite and not the pre-requisite. It will check if the
3385
-     * lesson has a pre-requiste and then check if it is completed.
3386
-     *
3387
-     * @since 1.9.0
3388
-     *
3389
-     * @param $lesson_id
3390
-     * @param $user_id
3391
-     * @return bool
3392
-     */
3393
-    public  static function is_prerequisite_complete( $lesson_id, $user_id  ){
3382
+	/**
3383
+	 * This function requires that you pass in the lesson you would like to check for
3384
+	 * a pre-requisite and not the pre-requisite. It will check if the
3385
+	 * lesson has a pre-requiste and then check if it is completed.
3386
+	 *
3387
+	 * @since 1.9.0
3388
+	 *
3389
+	 * @param $lesson_id
3390
+	 * @param $user_id
3391
+	 * @return bool
3392
+	 */
3393
+	public  static function is_prerequisite_complete( $lesson_id, $user_id  ){
3394 3394
 
3395
-        if( empty( $lesson_id ) || empty( $user_id )
3396
-        || 'lesson' != get_post_type( $lesson_id )
3397
-        ||  ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){
3395
+		if( empty( $lesson_id ) || empty( $user_id )
3396
+		|| 'lesson' != get_post_type( $lesson_id )
3397
+		||  ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){
3398 3398
 
3399
-            return false;
3399
+			return false;
3400 3400
 
3401
-        }
3401
+		}
3402 3402
 
3403
-        $pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id );
3403
+		$pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id );
3404 3404
 
3405
-        // not a valid pre-requisite so pre-requisite is completed
3406
-        if( 'lesson' != get_post_type( $pre_requisite_id )
3407
-            || ! is_numeric( $pre_requisite_id ) ){
3405
+		// not a valid pre-requisite so pre-requisite is completed
3406
+		if( 'lesson' != get_post_type( $pre_requisite_id )
3407
+			|| ! is_numeric( $pre_requisite_id ) ){
3408 3408
 
3409
-            return true;
3409
+			return true;
3410 3410
 
3411
-        }
3411
+		}
3412 3412
 
3413
-        return  Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id );
3413
+		return  Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id );
3414 3414
 
3415
-    }// end is_prerequisite_complete
3415
+	}// end is_prerequisite_complete
3416 3416
 
3417
-    /**
3418
-     * Show the user not taking course message if it is the case
3419
-     *
3420
-     * @since 1.9.0
3421
-     */
3422
-    public  static function user_not_taking_course_message(){
3417
+	/**
3418
+	 * Show the user not taking course message if it is the case
3419
+	 *
3420
+	 * @since 1.9.0
3421
+	 */
3422
+	public  static function user_not_taking_course_message(){
3423 3423
 
3424
-        $lesson_id = get_the_ID();
3424
+		$lesson_id = get_the_ID();
3425 3425
 
3426
-        if( 'lesson' != get_post_type( $lesson_id ) ){
3427
-            return;
3428
-        }
3426
+		if( 'lesson' != get_post_type( $lesson_id ) ){
3427
+			return;
3428
+		}
3429 3429
 
3430
-        $is_preview = WooThemes_Sensei_Utils::is_preview_lesson( $lesson_id );
3431
-        $pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() );
3432
-        $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true );
3433
-        $user_taking_course = WooThemes_Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() );
3430
+		$is_preview = WooThemes_Sensei_Utils::is_preview_lesson( $lesson_id );
3431
+		$pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() );
3432
+		$lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true );
3433
+		$user_taking_course = WooThemes_Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() );
3434 3434
 
3435
-        if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) {
3436
-            ?>
3435
+		if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) {
3436
+			?>
3437 3437
 
3438 3438
             <div class="sensei-message alert">
3439 3439
                 <?php echo Sensei()->permissions_message['message']; ?>
@@ -3441,46 +3441,46 @@  discard block
 block discarded – undo
3441 3441
 
3442 3442
             <?php
3443 3443
 
3444
-        }// end if
3444
+		}// end if
3445 3445
 
3446
-    } // end user_not_taking_course_message
3446
+	} // end user_not_taking_course_message
3447 3447
 
3448
-    /**
3449
-     * Outputs the lessons course signup lingk
3450
-     *
3451
-     * This hook runs inside the single lesson page.
3452
-     *
3453
-     * @since 1.9.0
3454
-     */
3455
-    public static function course_signup_link( ){
3448
+	/**
3449
+	 * Outputs the lessons course signup lingk
3450
+	 *
3451
+	 * This hook runs inside the single lesson page.
3452
+	 *
3453
+	 * @since 1.9.0
3454
+	 */
3455
+	public static function course_signup_link( ){
3456 3456
 
3457
-        $course_id =  Sensei()->lesson->get_course_id( get_the_ID() );
3457
+		$course_id =  Sensei()->lesson->get_course_id( get_the_ID() );
3458 3458
 
3459
-        if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) {
3459
+		if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) {
3460 3460
 
3461
-            return;
3461
+			return;
3462 3462
 
3463
-        }
3464
-        ?>
3463
+		}
3464
+		?>
3465 3465
 
3466 3466
         <section class="course-signup lesson-meta">
3467 3467
 
3468 3468
             <?php
3469
-            $wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true );
3469
+			$wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true );
3470 3470
 
3471
-            if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
3471
+			if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
3472 3472
 
3473
-                global $current_user;
3474
-                if( is_user_logged_in() ) {
3475
-                    wp_get_current_user();
3473
+				global $current_user;
3474
+				if( is_user_logged_in() ) {
3475
+					wp_get_current_user();
3476 3476
 
3477
-                    $course_purchased = WooThemes_Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id );
3477
+					$course_purchased = WooThemes_Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id );
3478 3478
 
3479
-                    if( $course_purchased ) {
3479
+					if( $course_purchased ) {
3480 3480
 
3481
-                        $prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true );
3482
-                        $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>';
3483
-                        ?>
3481
+						$prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true );
3482
+						$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>';
3483
+						?>
3484 3484
                             <div class="sensei-message info">
3485 3485
 
3486 3486
                                 <?php  echo sprintf( __( 'Please complete %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); ?>
@@ -3492,14 +3492,14 @@  discard block
 block discarded – undo
3492 3492
                         <div class="sensei-message info">
3493 3493
 
3494 3494
                             <?php
3495
-                            $course_link = '<a href="' . esc_url( get_permalink( $course_id ) )
3496
-                                            . '"title="' . __( 'Sign Up', 'woothemes-sensei' )
3497
-                                            . '">' . __( 'course', 'woothemes-sensei' )
3498
-                                            . '</a>';
3495
+							$course_link = '<a href="' . esc_url( get_permalink( $course_id ) )
3496
+											. '"title="' . __( 'Sign Up', 'woothemes-sensei' )
3497
+											. '">' . __( 'course', 'woothemes-sensei' )
3498
+											. '</a>';
3499 3499
 
3500
-                            echo  sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
3500
+							echo  sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
3501 3501
 
3502
-                            ?>
3502
+							?>
3503 3503
 
3504 3504
                         </div>
3505 3505
                     <?php } ?>
@@ -3516,14 +3516,14 @@  discard block
 block discarded – undo
3516 3516
 
3517 3517
                 <div class="sensei-message info">
3518 3518
                     <?php
3519
-                    $course_link =  '<a href="'
3520
-                                        . esc_url( get_permalink( $course_id ) )
3521
-                                        . '" title="' . __( 'Sign Up', 'woothemes-sensei' )
3522
-                                        . '">' . __( 'course', 'woothemes-sensei' )
3523
-                                    . '</a>';
3524
-
3525
-                    echo sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ),  $course_link );
3526
-                    ?>
3519
+					$course_link =  '<a href="'
3520
+										. esc_url( get_permalink( $course_id ) )
3521
+										. '" title="' . __( 'Sign Up', 'woothemes-sensei' )
3522
+										. '">' . __( 'course', 'woothemes-sensei' )
3523
+									. '</a>';
3524
+
3525
+					echo sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ),  $course_link );
3526
+					?>
3527 3527
                 </div>
3528 3528
 
3529 3529
             <?php endif; ?>
@@ -3533,75 +3533,75 @@  discard block
 block discarded – undo
3533 3533
         </section>
3534 3534
 
3535 3535
         <?php
3536
-    }// end course_signup_link
3536
+	}// end course_signup_link
3537 3537
 
3538
-    /**
3539
-     * Show a message telling the user to complete the previous message if they haven't done so yet
3540
-     *
3541
-     * @since 1.9.0
3542
-     */
3543
-    public  static function prerequisite_complete_message(){
3538
+	/**
3539
+	 * Show a message telling the user to complete the previous message if they haven't done so yet
3540
+	 *
3541
+	 * @since 1.9.0
3542
+	 */
3543
+	public  static function prerequisite_complete_message(){
3544 3544
 
3545
-        $lesson_prerequisite =  WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() );
3546
-        $lesson_has_pre_requisite = $lesson_prerequisite > 0;
3547
-        if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete(  get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) {
3545
+		$lesson_prerequisite =  WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() );
3546
+		$lesson_has_pre_requisite = $lesson_prerequisite > 0;
3547
+		if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete(  get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) {
3548 3548
 
3549
-            $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>';
3550
-            echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link );
3549
+			$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>';
3550
+			echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link );
3551 3551
 
3552
-        }
3552
+		}
3553 3553
 
3554
-    }
3554
+	}
3555 3555
 
3556
-    /**
3557
-     * Deprecate the sensei_lesson_archive_header hook but keep it
3558
-     * active for backwards compatibility.
3559
-     *
3560
-     * @deprecated since 1.9.0
3561
-     */
3562
-    public static function deprecate_sensei_lesson_archive_header_hook(){
3556
+	/**
3557
+	 * Deprecate the sensei_lesson_archive_header hook but keep it
3558
+	 * active for backwards compatibility.
3559
+	 *
3560
+	 * @deprecated since 1.9.0
3561
+	 */
3562
+	public static function deprecate_sensei_lesson_archive_header_hook(){
3563 3563
 
3564
-        sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before');
3564
+		sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before');
3565 3565
 
3566
-    }
3566
+	}
3567 3567
 
3568
-    /**
3569
-     * Outputs the the lesson archive header.
3570
-     *
3571
-     * @since  1.9.0
3572
-     * @return void
3573
-     */
3574
-    public function the_archive_header( ) {
3568
+	/**
3569
+	 * Outputs the the lesson archive header.
3570
+	 *
3571
+	 * @since  1.9.0
3572
+	 * @return void
3573
+	 */
3574
+	public function the_archive_header( ) {
3575 3575
 
3576
-        $before_html = '<header class="archive-header"><h1>';
3577
-        $after_html = '</h1></header>';
3578
-        $html = $before_html .  __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html;
3576
+		$before_html = '<header class="archive-header"><h1>';
3577
+		$after_html = '</h1></header>';
3578
+		$html = $before_html .  __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html;
3579 3579
 
3580
-        echo apply_filters( 'sensei_lesson_archive_title', $html );
3580
+		echo apply_filters( 'sensei_lesson_archive_title', $html );
3581 3581
 
3582
-    } // sensei_course_archive_header()
3582
+	} // sensei_course_archive_header()
3583 3583
 
3584
-    /**
3585
-     * Output the title for the single lesson page
3586
-     *
3587
-     * @global $post
3588
-     * @since 1.9.0
3589
-     */
3590
-    public static function the_title(){
3584
+	/**
3585
+	 * Output the title for the single lesson page
3586
+	 *
3587
+	 * @global $post
3588
+	 * @since 1.9.0
3589
+	 */
3590
+	public static function the_title(){
3591 3591
 
3592
-        global $post;
3592
+		global $post;
3593 3593
 
3594
-        ?>
3594
+		?>
3595 3595
         <header>
3596 3596
 
3597 3597
             <h1>
3598 3598
 
3599 3599
                 <?php
3600
-                /**
3601
-                 * Filter documented in class-sensei-messages.php the_title
3602
-                 */
3603
-                echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
3604
-                ?>
3600
+				/**
3601
+				 * Filter documented in class-sensei-messages.php the_title
3602
+				 */
3603
+				echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
3604
+				?>
3605 3605
 
3606 3606
             </h1>
3607 3607
 
@@ -3609,68 +3609,68 @@  discard block
 block discarded – undo
3609 3609
 
3610 3610
         <?php
3611 3611
 
3612
-    }//the_title
3612
+	}//the_title
3613 3613
 
3614
-    /**
3615
-     * Flush the rewrite rules for a lesson post type
3616
-     *
3617
-     * @since 1.9.0
3618
-     *
3619
-     * @param $post_id
3620
-     */
3621
-    public static function flush_rewrite_rules( $post_id ){
3614
+	/**
3615
+	 * Flush the rewrite rules for a lesson post type
3616
+	 *
3617
+	 * @since 1.9.0
3618
+	 *
3619
+	 * @param $post_id
3620
+	 */
3621
+	public static function flush_rewrite_rules( $post_id ){
3622 3622
 
3623
-        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
3623
+		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
3624 3624
 
3625
-            return;
3625
+			return;
3626 3626
 
3627
-        }
3627
+		}
3628 3628
 
3629 3629
 
3630
-        if( 'lesson' == get_post_type( $post_id )  ){
3630
+		if( 'lesson' == get_post_type( $post_id )  ){
3631 3631
 
3632
-            Sensei()->initiate_rewrite_rules_flush();
3632
+			Sensei()->initiate_rewrite_rules_flush();
3633 3633
 
3634
-        }
3634
+		}
3635 3635
 
3636
-    }
3636
+	}
3637 3637
 
3638
-    /**
3639
-     * Output the quiz specific buttons and messaging on the single lesson page
3640
-     *
3641
-     *
3642
-     * @since 1.0.0 moved here from frontend class
3643
-     *
3644
-     * @param int $lesson_id
3645
-     * @param int $user_id
3646
-     */
3647
-    public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) {
3638
+	/**
3639
+	 * Output the quiz specific buttons and messaging on the single lesson page
3640
+	 *
3641
+	 *
3642
+	 * @since 1.0.0 moved here from frontend class
3643
+	 *
3644
+	 * @param int $lesson_id
3645
+	 * @param int $user_id
3646
+	 */
3647
+	public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) {
3648 3648
 
3649 3649
 
3650
-        $lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3651
-        $user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3652
-        $lesson_prerequisite       = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
3653
-        $lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3654
-        $quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3655
-        $has_user_completed_lesson = WooThemes_Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3656
-        $show_actions              = is_user_logged_in() ? true : false;
3650
+		$lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3651
+		$user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3652
+		$lesson_prerequisite       = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
3653
+		$lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3654
+		$quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3655
+		$has_user_completed_lesson = WooThemes_Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3656
+		$show_actions              = is_user_logged_in() ? true : false;
3657 3657
 
3658
-        if( intval( $lesson_prerequisite ) > 0 ) {
3658
+		if( intval( $lesson_prerequisite ) > 0 ) {
3659 3659
 
3660
-            // If the user hasn't completed the prereq then hide the current actions
3661
-            $show_actions = WooThemes_Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id );
3660
+			// If the user hasn't completed the prereq then hide the current actions
3661
+			$show_actions = WooThemes_Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id );
3662 3662
 
3663
-        }
3664
-        ?>
3663
+		}
3664
+		?>
3665 3665
 
3666 3666
         <footer>
3667 3667
 
3668 3668
             <?php
3669
-            if( $show_actions && $quiz_id && Sensei()->access_settings() ) {
3669
+			if( $show_actions && $quiz_id && Sensei()->access_settings() ) {
3670 3670
 
3671
-                $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3672
-                if( $has_quiz_questions ) {
3673
-                    ?>
3671
+				$has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3672
+				if( $has_quiz_questions ) {
3673
+					?>
3674 3674
 
3675 3675
                     <p>
3676 3676
 
@@ -3685,87 +3685,87 @@  discard block
 block discarded – undo
3685 3685
                     </p>
3686 3686
 
3687 3687
                     <?php
3688
-                }
3688
+				}
3689 3689
 
3690
-            } // End If Statement
3690
+			} // End If Statement
3691 3691
 
3692
-            if ( $show_actions && ! $has_user_completed_lesson ) {
3692
+			if ( $show_actions && ! $has_user_completed_lesson ) {
3693 3693
 
3694
-                sensei_complete_lesson_button();
3694
+				sensei_complete_lesson_button();
3695 3695
 
3696
-            } elseif( $show_actions ) {
3696
+			} elseif( $show_actions ) {
3697 3697
 
3698
-                sensei_reset_lesson_button();
3698
+				sensei_reset_lesson_button();
3699 3699
 
3700
-            } // End If Statement
3701
-            ?>
3700
+			} // End If Statement
3701
+			?>
3702 3702
 
3703 3703
         </footer>
3704 3704
 
3705 3705
         <?php
3706
-    } // End sensei_lesson_quiz_meta()
3706
+	} // End sensei_lesson_quiz_meta()
3707 3707
 
3708
-    /**
3709
-     * Show the lesson comments. This should be used in the loop.
3710
-     *
3711
-     * @since 1.9.0
3712
-     */
3713
-    public static function output_comments(){
3708
+	/**
3709
+	 * Show the lesson comments. This should be used in the loop.
3710
+	 *
3711
+	 * @since 1.9.0
3712
+	 */
3713
+	public static function output_comments(){
3714 3714
 
3715
-        if( ! is_user_logged_in() ){
3716
-            return;
3717
-        }
3715
+		if( ! is_user_logged_in() ){
3716
+			return;
3717
+		}
3718 3718
 
3719
-        $pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() );
3720
-        $course_id = Sensei()->lesson->get_course_id( get_the_ID() );
3721
-        $allow_comments = Sensei()->settings->settings[ 'lesson_comments' ];
3722
-        $user_taking_course = Sensei_Utils::user_started_course($course_id );
3719
+		$pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() );
3720
+		$course_id = Sensei()->lesson->get_course_id( get_the_ID() );
3721
+		$allow_comments = Sensei()->settings->settings[ 'lesson_comments' ];
3722
+		$user_taking_course = Sensei_Utils::user_started_course($course_id );
3723 3723
 
3724
-        $lesson_allow_comments = $allow_comments && $pre_requisite_complete  && $user_taking_course;
3724
+		$lesson_allow_comments = $allow_comments && $pre_requisite_complete  && $user_taking_course;
3725 3725
 
3726
-        if (  $lesson_allow_comments || is_singular( 'sensei_message' ) ) {
3726
+		if (  $lesson_allow_comments || is_singular( 'sensei_message' ) ) {
3727 3727
 
3728
-            comments_template();
3728
+			comments_template();
3729 3729
 
3730
-        } // End If Statement
3730
+		} // End If Statement
3731 3731
 
3732
-    } //output_comments
3732
+	} //output_comments
3733 3733
 
3734
-    /**
3735
-     * Display the leeson quiz status if it should be shown
3736
-     *
3737
-     * @param int $lesson_id defaults to the global lesson id
3738
-     * @param int $user_id defaults to the current user id
3739
-     *
3740
-     * @since 1.9.0
3741
-     */
3742
-    public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){
3734
+	/**
3735
+	 * Display the leeson quiz status if it should be shown
3736
+	 *
3737
+	 * @param int $lesson_id defaults to the global lesson id
3738
+	 * @param int $user_id defaults to the current user id
3739
+	 *
3740
+	 * @since 1.9.0
3741
+	 */
3742
+	public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){
3743 3743
 
3744
-        $lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3745
-        $user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3746
-        $lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3747
-        $quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3748
-        $has_user_completed_lesson = WooThemes_Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3744
+		$lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3745
+		$user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3746
+		$lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3747
+		$quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3748
+		$has_user_completed_lesson = WooThemes_Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3749 3749
 
3750 3750
 
3751
-        if ( $quiz_id && is_user_logged_in()
3752
-            && WooThemes_Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) {
3751
+		if ( $quiz_id && is_user_logged_in()
3752
+			&& WooThemes_Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) {
3753 3753
 
3754
-            $no_quiz_count = 0;
3755
-            $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3754
+			$no_quiz_count = 0;
3755
+			$has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3756 3756
 
3757
-            // Display lesson quiz status message
3758
-            if ( $has_user_completed_lesson || $has_quiz_questions ) {
3759
-                $status = WooThemes_Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true );
3760
-                echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
3761
-                if( $has_quiz_questions ) {
3762
-                   // echo $status['extra'];
3763
-                } // End If Statement
3764
-            } // End If Statement
3757
+			// Display lesson quiz status message
3758
+			if ( $has_user_completed_lesson || $has_quiz_questions ) {
3759
+				$status = WooThemes_Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true );
3760
+				echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
3761
+				if( $has_quiz_questions ) {
3762
+				   // echo $status['extra'];
3763
+				} // End If Statement
3764
+			} // End If Statement
3765 3765
 
3766
-        }
3766
+		}
3767 3767
 
3768
-    }
3768
+	}
3769 3769
 
3770 3770
 } // End Class
3771 3771
 
Please login to merge, or discard this patch.
includes/class-sensei-list-table.php 2 patches
Doc Comments   +1 added lines patch added patch discarded remove patch
@@ -44,6 +44,7 @@
 block discarded – undo
44 44
 	/**
45 45
 	 * Constructor
46 46
 	 * @since  1.2.0
47
+	 * @param string $token
47 48
 	 * @return  void
48 49
 	 */
49 50
 	public function __construct ( $token ) {
Please login to merge, or discard this patch.
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -162,8 +162,8 @@
 block discarded – undo
162 162
 			$sortable[$id] = $data;
163 163
 		}
164 164
 
165
-        $primary = $this->get_primary_column_name();
166
-        $this->_column_headers = array( $columns, $hidden, $sortable, $primary );
165
+		$primary = $this->get_primary_column_name();
166
+		$this->_column_headers = array( $columns, $hidden, $sortable, $primary );
167 167
 
168 168
 		return $this->_column_headers;
169 169
 	}
Please login to merge, or discard this patch.