Completed
Push — master ( da5a3b...76404c )
by Dwain
26:58 queued 04:04
created
includes/class-sensei-emails.php 4 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.
Spacing   +94 added lines, -94 removed lines patch added patch discarded remove patch
@@ -42,22 +42,22 @@  discard block
 block discarded – undo
42 42
 	 * @access public
43 43
 	 * @return void
44 44
 	 */
45
-	function __construct( $file ) {
45
+	function __construct($file) {
46 46
 
47 47
 		$this->init();
48 48
 
49 49
 		// Hooks for sending emails during Sensei events
50
-		add_action( 'sensei_user_quiz_grade', array( $this, 'learner_graded_quiz' ), 10, 4 );
51
-		add_action( 'sensei_course_status_updated', array( $this, 'learner_completed_course' ), 10, 4 );
52
-		add_action( 'sensei_course_status_updated', array( $this, 'teacher_completed_course' ), 10, 4 );
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 );
55
-		add_action( 'sensei_user_quiz_submitted', array( $this, 'teacher_quiz_submitted' ), 10, 5 );
56
-		add_action( 'sensei_new_private_message', array( $this, 'teacher_new_message' ), 10, 1 );
57
-		add_action( 'sensei_private_message_reply', array( $this, 'new_message_reply' ), 10, 2 );
50
+		add_action('sensei_user_quiz_grade', array($this, 'learner_graded_quiz'), 10, 4);
51
+		add_action('sensei_course_status_updated', array($this, 'learner_completed_course'), 10, 4);
52
+		add_action('sensei_course_status_updated', array($this, 'teacher_completed_course'), 10, 4);
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);
55
+		add_action('sensei_user_quiz_submitted', array($this, 'teacher_quiz_submitted'), 10, 5);
56
+		add_action('sensei_new_private_message', array($this, 'teacher_new_message'), 10, 1);
57
+		add_action('sensei_private_message_reply', array($this, 'new_message_reply'), 10, 2);
58 58
 
59 59
 		// Let 3rd parties unhook the above via this hook
60
-		do_action( 'sensei_emails', $this );
60
+		do_action('sensei_emails', $this);
61 61
 	}
62 62
 
63 63
 	/**
@@ -65,15 +65,15 @@  discard block
 block discarded – undo
65 65
 	 */
66 66
 	function init() {
67 67
 
68
-		$this->emails['learner-graded-quiz'] = include( 'emails/class-woothemes-sensei-email-learner-graded-quiz.php' );
69
-		$this->emails['learner-completed-course'] = include( 'emails/class-woothemes-sensei-email-learner-completed-course.php' );
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' );
74
-		$this->emails['teacher-new-message'] = include( 'emails/class-woothemes-sensei-email-teacher-new-message.php' );
75
-		$this->emails['new-message-reply'] = include( 'emails/class-woothemes-sensei-email-new-message-reply.php' );
76
-		$this->emails = apply_filters( 'sensei_email_classes', $this->emails );
68
+		$this->emails['learner-graded-quiz'] = include('emails/class-woothemes-sensei-email-learner-graded-quiz.php');
69
+		$this->emails['learner-completed-course'] = include('emails/class-woothemes-sensei-email-learner-completed-course.php');
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');
74
+		$this->emails['teacher-new-message'] = include('emails/class-woothemes-sensei-email-teacher-new-message.php');
75
+		$this->emails['new-message-reply'] = include('emails/class-woothemes-sensei-email-new-message-reply.php');
76
+		$this->emails = apply_filters('sensei_email_classes', $this->emails);
77 77
 	}
78 78
 
79 79
 	/**
@@ -95,15 +95,15 @@  discard block
 block discarded – undo
95 95
 	function get_from_name() {
96 96
 
97 97
 
98
-		if ( ! $this->_from_name ) {
99
-			if( isset( Sensei()->settings->settings['email_from_name'] ) && '' != Sensei()->settings->settings['email_from_name'] ) {
98
+		if ( ! $this->_from_name) {
99
+			if (isset(Sensei()->settings->settings['email_from_name']) && '' != Sensei()->settings->settings['email_from_name']) {
100 100
 				$this->_from_name = Sensei()->settings->settings['email_from_name'];
101 101
 			} else {
102
-				$this->_from_name = get_bloginfo( 'name' );
102
+				$this->_from_name = get_bloginfo('name');
103 103
 			}
104 104
 		}
105 105
 
106
-		return wp_specialchars_decode( $this->_from_name );
106
+		return wp_specialchars_decode($this->_from_name);
107 107
 	}
108 108
 
109 109
 	/**
@@ -115,11 +115,11 @@  discard block
 block discarded – undo
115 115
 	function get_from_address() {
116 116
 
117 117
 
118
-		if ( ! $this->_from_address ) {
119
-			if( isset( Sensei()->settings->settings['email_from_address'] ) && '' != Sensei()->settings->settings['email_from_address'] ) {
118
+		if ( ! $this->_from_address) {
119
+			if (isset(Sensei()->settings->settings['email_from_address']) && '' != Sensei()->settings->settings['email_from_address']) {
120 120
 				$this->_from_address = Sensei()->settings->settings['email_from_address'];
121 121
 			} else {
122
-				$this->_from_address = get_bloginfo( 'admin_email' );
122
+				$this->_from_address = get_bloginfo('admin_email');
123 123
 			}
124 124
 		}
125 125
 
@@ -143,13 +143,13 @@  discard block
 block discarded – undo
143 143
 	 * @param mixed $content
144 144
 	 * @return string
145 145
 	 */
146
-	function wrap_message( $content ) {
146
+	function wrap_message($content) {
147 147
 
148 148
 		$html = '';
149 149
 
150
-		$html .= $this->load_template( 'header' );
151
-		$html .= wpautop( wptexturize( $content ) );
152
-		$html .= $this->load_template( 'footer' );
150
+		$html .= $this->load_template('header');
151
+		$html .= wpautop(wptexturize($content));
152
+		$html .= $this->load_template('footer');
153 153
 
154 154
 		return $html;
155 155
 	}
@@ -166,16 +166,16 @@  discard block
 block discarded – undo
166 166
 	 * @param string $content_type (default: "text/html")
167 167
 	 * @return void
168 168
 	 */
169
-	function send( $to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = "", $content_type = 'text/html' ) {
169
+	function send($to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = "", $content_type = 'text/html') {
170 170
 		global $email_template;
171 171
 
172 172
 		// Set content type
173 173
 		$this->_content_type = $content_type;
174 174
 
175 175
 		// Filters for the email
176
-		add_filter( 'wp_mail_from', array( $this, 'get_from_address' ) );
177
-		add_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ) );
178
-		add_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
176
+		add_filter('wp_mail_from', array($this, 'get_from_address'));
177
+		add_filter('wp_mail_from_name', array($this, 'get_from_name'));
178
+		add_filter('wp_mail_content_type', array($this, 'get_content_type'));
179 179
 
180 180
         // Send
181 181
         $send_email = true;
@@ -186,40 +186,40 @@  discard block
 block discarded – undo
186 186
          * @since 1.8.0
187 187
          * @param bool $send_email default true
188 188
          */
189
-        if( apply_filters('sensei_send_emails', $send_email,$to, $subject, $message )  ){
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
-		remove_filter( 'wp_mail_from', array( $this, 'get_from_address' ) );
197
-		remove_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ) );
198
-		remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
196
+		remove_filter('wp_mail_from', array($this, 'get_from_address'));
197
+		remove_filter('wp_mail_from_name', array($this, 'get_from_name'));
198
+		remove_filter('wp_mail_content_type', array($this, 'get_content_type'));
199 199
 	}
200 200
 
201
-	function get_content( $email_template ) {
201
+	function get_content($email_template) {
202 202
 
203
-		$message = $this->load_template( $email_template );
203
+		$message = $this->load_template($email_template);
204 204
 
205
-		$html = $this->wrap_message( $message );
205
+		$html = $this->wrap_message($message);
206 206
 
207
-		return apply_filters( 'sensei_email', $html, $email_template );
207
+		return apply_filters('sensei_email', $html, $email_template);
208 208
 	}
209 209
 
210
-	function load_template( $template = '' ) {
210
+	function load_template($template = '') {
211 211
 		global  $email_template;
212 212
 
213
-		if( ! $template ) return;
213
+		if ( ! $template) return;
214 214
 
215
-		$email_template = $template . '.php';
216
-		$template = Sensei_Templates::template_loader( '' );
215
+		$email_template = $template.'.php';
216
+		$template = Sensei_Templates::template_loader('');
217 217
 
218 218
 		ob_start();
219 219
 
220
-		do_action( 'sensei_before_email_template', $email_template );
221
-		include( $template );
222
-		do_action( 'sensei_after_email_template', $email_template );
220
+		do_action('sensei_before_email_template', $email_template);
221
+		include($template);
222
+		do_action('sensei_after_email_template', $email_template);
223 223
 
224 224
 		return ob_get_clean();
225 225
 	}
@@ -230,22 +230,22 @@  discard block
 block discarded – undo
230 230
 	 * @access public
231 231
 	 * @return void
232 232
 	 */
233
-	function learner_graded_quiz( $user_id, $quiz_id, $grade, $passmark ) {
233
+	function learner_graded_quiz($user_id, $quiz_id, $grade, $passmark) {
234 234
 
235 235
 
236 236
 		$send = false;
237 237
 
238
-		if( isset( Sensei()->settings->settings['email_learners'] ) ) {
239
-			if( in_array( 'learner-graded-quiz', (array) Sensei()->settings->settings['email_learners'] ) ) {
238
+		if (isset(Sensei()->settings->settings['email_learners'])) {
239
+			if (in_array('learner-graded-quiz', (array) Sensei()->settings->settings['email_learners'])) {
240 240
 				$send = true;
241 241
 			}
242 242
 		} else {
243 243
 			$send = true;
244 244
 		}
245 245
 
246
-		if( $send ) {
246
+		if ($send) {
247 247
 			$email = $this->emails['learner-graded-quiz'];
248
-			$email->trigger( $user_id, $quiz_id, $grade, $passmark );
248
+			$email->trigger($user_id, $quiz_id, $grade, $passmark);
249 249
 		}
250 250
 	}
251 251
 
@@ -255,26 +255,26 @@  discard block
 block discarded – undo
255 255
 	 * @access public
256 256
 	 * @return void
257 257
 	 */
258
-	function learner_completed_course( $status = 'in-progress', $user_id = 0, $course_id = 0, $comment_id = 0 ) {
258
+	function learner_completed_course($status = 'in-progress', $user_id = 0, $course_id = 0, $comment_id = 0) {
259 259
 
260 260
 
261
-		if( 'complete' != $status ) {
261
+		if ('complete' != $status) {
262 262
 			return;
263 263
 		}
264 264
 
265 265
 		$send = false;
266 266
 
267
-		if( isset( Sensei()->settings->settings['email_learners'] ) ) {
268
-			if( in_array( 'learner-completed-course', (array) Sensei()->settings->settings['email_learners'] ) ) {
267
+		if (isset(Sensei()->settings->settings['email_learners'])) {
268
+			if (in_array('learner-completed-course', (array) Sensei()->settings->settings['email_learners'])) {
269 269
 				$send = true;
270 270
 			}
271 271
 		} else {
272 272
 			$send = true;
273 273
 		}
274 274
 
275
-		if( $send ) {
275
+		if ($send) {
276 276
 			$email = $this->emails['learner-completed-course'];
277
-			$email->trigger( $user_id, $course_id );
277
+			$email->trigger($user_id, $course_id);
278 278
 		}
279 279
 	}
280 280
 
@@ -284,26 +284,26 @@  discard block
 block discarded – undo
284 284
 	 * @access public
285 285
 	 * @return void
286 286
 	 */
287
-	function teacher_completed_course( $status = 'in-progress', $learner_id = 0, $course_id = 0, $comment_id = 0 ) {
287
+	function teacher_completed_course($status = 'in-progress', $learner_id = 0, $course_id = 0, $comment_id = 0) {
288 288
 
289 289
 
290
-		if( 'complete' != $status ) {
290
+		if ('complete' != $status) {
291 291
 			return;
292 292
 		}
293 293
 
294 294
 		$send = false;
295 295
 
296
-		if( isset( Sensei()->settings->settings['email_teachers'] ) ) {
297
-			if( in_array( 'teacher-completed-course', (array) Sensei()->settings->settings['email_teachers'] ) ) {
296
+		if (isset(Sensei()->settings->settings['email_teachers'])) {
297
+			if (in_array('teacher-completed-course', (array) Sensei()->settings->settings['email_teachers'])) {
298 298
 				$send = true;
299 299
 			}
300 300
 		} else {
301 301
 			$send = true;
302 302
 		}
303 303
 
304
-		if( $send ) {
304
+		if ($send) {
305 305
 			$email = $this->emails['teacher-completed-course'];
306
-			$email->trigger( $learner_id, $course_id );
306
+			$email->trigger($learner_id, $course_id);
307 307
 		}
308 308
 	}
309 309
 
@@ -313,22 +313,22 @@  discard block
 block discarded – undo
313 313
 	 * @access public
314 314
 	 * @return void
315 315
 	 */
316
-	function teacher_started_course( $learner_id = 0, $course_id = 0 ) {
316
+	function teacher_started_course($learner_id = 0, $course_id = 0) {
317 317
 
318 318
 
319 319
 		$send = false;
320 320
 
321
-		if( isset( Sensei()->settings->settings['email_teachers'] ) ) {
322
-			if( in_array( 'teacher-started-course', (array) Sensei()->settings->settings['email_teachers'] ) ) {
321
+		if (isset(Sensei()->settings->settings['email_teachers'])) {
322
+			if (in_array('teacher-started-course', (array) Sensei()->settings->settings['email_teachers'])) {
323 323
 				$send = true;
324 324
 			}
325 325
 		} else {
326 326
 			$send = true;
327 327
 		}
328 328
 
329
-		if( $send ) {
329
+		if ($send) {
330 330
 			$email = $this->emails['teacher-started-course'];
331
-			$email->trigger( $learner_id, $course_id );
331
+			$email->trigger($learner_id, $course_id);
332 332
 		}
333 333
 	}
334 334
 
@@ -341,22 +341,22 @@  discard block
 block discarded – undo
341 341
      * @return void
342 342
      * @since 1.9.0
343 343
      */
344
-    function teacher_completed_lesson( $learner_id = 0, $lesson_id = 0 ) {
344
+    function teacher_completed_lesson($learner_id = 0, $lesson_id = 0) {
345 345
 
346 346
 
347 347
         $send = false;
348 348
 
349
-        if( isset( Sensei()->settings->settings[ 'email_teachers' ] ) ) {
350
-            if( in_array( 'teacher-completed-lesson', (array) Sensei()->settings->settings[ 'email_teachers' ]) ) {
349
+        if (isset(Sensei()->settings->settings['email_teachers'])) {
350
+            if (in_array('teacher-completed-lesson', (array) Sensei()->settings->settings['email_teachers'])) {
351 351
                 $send = true;
352 352
             }
353 353
         } else {
354 354
             $send = true;
355 355
         }
356 356
 
357
-        if( $send ) {
357
+        if ($send) {
358 358
             $email = $this->emails['teacher-completed-lesson'];
359
-            $email->trigger( $learner_id, $lesson_id );
359
+            $email->trigger($learner_id, $lesson_id);
360 360
         }
361 361
     }
362 362
 
@@ -366,25 +366,25 @@  discard block
 block discarded – undo
366 366
 	 * @access public
367 367
 	 * @return void
368 368
 	 */
369
-	function teacher_quiz_submitted( $learner_id = 0, $quiz_id = 0, $grade = 0, $passmark = 0, $quiz_grade_type = 'manual' ) {
369
+	function teacher_quiz_submitted($learner_id = 0, $quiz_id = 0, $grade = 0, $passmark = 0, $quiz_grade_type = 'manual') {
370 370
 
371 371
 
372 372
 
373 373
 		$send = false;
374 374
 
375 375
 		// Only trigger if the quiz was marked as manual grading, or auto grading didn't complete
376
-		if( 'manual' == $quiz_grade_type || is_wp_error( $grade ) ) {
377
-			if( isset( Sensei()->settings->settings['email_teachers'] ) ) {
378
-				if( in_array( 'teacher-quiz-submitted', (array) Sensei()->settings->settings['email_teachers'] ) ) {
376
+		if ('manual' == $quiz_grade_type || is_wp_error($grade)) {
377
+			if (isset(Sensei()->settings->settings['email_teachers'])) {
378
+				if (in_array('teacher-quiz-submitted', (array) Sensei()->settings->settings['email_teachers'])) {
379 379
 					$send = true;
380 380
 				}
381 381
 			} else {
382 382
 				$send = true;
383 383
 			}
384 384
 
385
-			if( $send ) {
385
+			if ($send) {
386 386
 				$email = $this->emails['teacher-quiz-submitted'];
387
-				$email->trigger( $learner_id, $quiz_id );
387
+				$email->trigger($learner_id, $quiz_id);
388 388
 			}
389 389
 
390 390
 		}
@@ -396,22 +396,22 @@  discard block
 block discarded – undo
396 396
 	 * @access public
397 397
 	 * @return void
398 398
 	 */
399
-	function teacher_new_message( $message_id = 0 ) {
399
+	function teacher_new_message($message_id = 0) {
400 400
 
401 401
 
402 402
 		$send = false;
403 403
 
404
-		if( isset( Sensei()->settings->settings['email_teachers'] ) ) {
405
-			if( in_array( 'teacher-new-message', (array) Sensei()->settings->settings['email_teachers'] ) ) {
404
+		if (isset(Sensei()->settings->settings['email_teachers'])) {
405
+			if (in_array('teacher-new-message', (array) Sensei()->settings->settings['email_teachers'])) {
406 406
 				$send = true;
407 407
 			}
408 408
 		} else {
409 409
 			$send = true;
410 410
 		}
411 411
 
412
-		if( $send ) {
412
+		if ($send) {
413 413
 			$email = $this->emails['teacher-new-message'];
414
-			$email->trigger( $message_id );
414
+			$email->trigger($message_id);
415 415
 		}
416 416
 	}
417 417
 
@@ -421,22 +421,22 @@  discard block
 block discarded – undo
421 421
 	 * @access public
422 422
 	 * @return void
423 423
 	 */
424
-	function new_message_reply( $comment, $message ) {
424
+	function new_message_reply($comment, $message) {
425 425
 
426 426
 
427 427
 		$send = false;
428 428
 
429
-		if( isset( Sensei()->settings->settings['email_global'] ) ) {
430
-			if( in_array( 'new-message-reply', (array) Sensei()->settings->settings['email_global'] ) ) {
429
+		if (isset(Sensei()->settings->settings['email_global'])) {
430
+			if (in_array('new-message-reply', (array) Sensei()->settings->settings['email_global'])) {
431 431
 				$send = true;
432 432
 			}
433 433
 		} else {
434 434
 			$send = true;
435 435
 		}
436 436
 
437
-		if( $send ) {
437
+		if ($send) {
438 438
 			$email = $this->emails['new-message-reply'];
439
-			$email->trigger( $comment, $message );
439
+			$email->trigger($comment, $message);
440 440
 		}
441 441
 	}
442 442
 
@@ -447,4 +447,4 @@  discard block
 block discarded – undo
447 447
  * for backward compatibility
448 448
  * @since 1.9.0
449 449
  */
450
-class WooThemes_Sensei_Emails extends Sensei_Emails{}
450
+class WooThemes_Sensei_Emails extends Sensei_Emails {}
Please login to merge, or discard this patch.
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -210,7 +210,9 @@
 block discarded – undo
210 210
 	function load_template( $template = '' ) {
211 211
 		global  $email_template;
212 212
 
213
-		if( ! $template ) return;
213
+		if( ! $template ) {
214
+			return;
215
+		}
214 216
 
215 217
 		$email_template = $template . '.php';
216 218
 		$template = Sensei_Templates::template_loader( '' );
Please login to merge, or discard this patch.
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
 		add_action( 'sensei_course_status_updated', array( $this, 'learner_completed_course' ), 10, 4 );
46 46
 		add_action( 'sensei_course_status_updated', array( $this, 'teacher_completed_course' ), 10, 4 );
47 47
 		add_action( 'sensei_user_course_start', array( $this, 'teacher_started_course' ), 10, 2 );
48
-        add_action( 'sensei_user_lesson_end', array( $this, 'teacher_completed_lesson' ), 10, 2 );
48
+		add_action( 'sensei_user_lesson_end', array( $this, 'teacher_completed_lesson' ), 10, 2 );
49 49
 		add_action( 'sensei_user_quiz_submitted', array( $this, 'teacher_quiz_submitted' ), 10, 5 );
50 50
 		add_action( 'sensei_new_private_message', array( $this, 'teacher_new_message' ), 10, 1 );
51 51
 		add_action( 'sensei_private_message_reply', array( $this, 'new_message_reply' ), 10, 2 );
@@ -62,9 +62,9 @@  discard block
 block discarded – undo
62 62
 		$this->emails['learner-graded-quiz'] = include( 'emails/class-woothemes-sensei-email-learner-graded-quiz.php' );
63 63
 		$this->emails['learner-completed-course'] = include( 'emails/class-woothemes-sensei-email-learner-completed-course.php' );
64 64
 		$this->emails['teacher-completed-course'] = include( 'emails/class-woothemes-sensei-email-teacher-completed-course.php' );
65
-        $this->emails['teacher-started-course'] = include( 'emails/class-woothemes-sensei-email-teacher-started-course.php' );
66
-        $this->emails['teacher-completed-lesson'] = include( 'emails/class-woothemes-sensei-email-teacher-completed-lesson.php' );
67
-        $this->emails['teacher-quiz-submitted'] = include( 'emails/class-woothemes-sensei-email-teacher-quiz-submitted.php' );
65
+		$this->emails['teacher-started-course'] = include( 'emails/class-woothemes-sensei-email-teacher-started-course.php' );
66
+		$this->emails['teacher-completed-lesson'] = include( 'emails/class-woothemes-sensei-email-teacher-completed-lesson.php' );
67
+		$this->emails['teacher-quiz-submitted'] = include( 'emails/class-woothemes-sensei-email-teacher-quiz-submitted.php' );
68 68
 		$this->emails['teacher-new-message'] = include( 'emails/class-woothemes-sensei-email-teacher-new-message.php' );
69 69
 		$this->emails['new-message-reply'] = include( 'emails/class-woothemes-sensei-email-new-message-reply.php' );
70 70
 		$this->emails = apply_filters( 'sensei_email_classes', $this->emails );
@@ -171,20 +171,20 @@  discard block
 block discarded – undo
171 171
 		add_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ) );
172 172
 		add_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
173 173
 
174
-        // Send
175
-        $send_email = true;
174
+		// Send
175
+		$send_email = true;
176 176
 
177
-        /**
178
-         * Filter Sensei's ability to send out emails.
179
-         *
180
-         * @since 1.8.0
181
-         * @param bool $send_email default true
182
-         */
183
-        if( apply_filters('sensei_send_emails', $send_email,$to, $subject, $message )  ){
177
+		/**
178
+		 * Filter Sensei's ability to send out emails.
179
+		 *
180
+		 * @since 1.8.0
181
+		 * @param bool $send_email default true
182
+		 */
183
+		if( apply_filters('sensei_send_emails', $send_email,$to, $subject, $message )  ){
184 184
 
185
-            wp_mail( $to, $subject, $message, $headers, $attachments );
185
+			wp_mail( $to, $subject, $message, $headers, $attachments );
186 186
 
187
-        }
187
+		}
188 188
 
189 189
 		// Unhook filters
190 190
 		remove_filter( 'wp_mail_from', array( $this, 'get_from_address' ) );
@@ -326,44 +326,44 @@  discard block
 block discarded – undo
326 326
 		}
327 327
 	}
328 328
 
329
-    /**
330
-     * teacher_completed_lesson()
331
-     *
332
-     * Send email to teacher on student completing lesson
333
-     *
334
-     * @access public
335
-     * @return void
336
-     * @since 1.9.0
337
-     */
338
-    function teacher_completed_lesson( $learner_id = 0, $lesson_id = 0 ) {
339
-
340
-
341
-        $send = false;
342
-
343
-        if( isset( Sensei()->settings->settings[ 'email_teachers' ] ) ) {
344
-            if( in_array( 'teacher-completed-lesson', (array) Sensei()->settings->settings[ 'email_teachers' ]) ) {
345
-                $send = true;
346
-            }
347
-        } else {
348
-            $send = true;
349
-        }
350
-
351
-        if( $send ) {
352
-            $email = $this->emails['teacher-completed-lesson'];
353
-            $email->trigger( $learner_id, $lesson_id );
354
-        }
355
-    }
329
+	/**
330
+	 * teacher_completed_lesson()
331
+	 *
332
+	 * Send email to teacher on student completing lesson
333
+	 *
334
+	 * @access public
335
+	 * @return void
336
+	 * @since 1.9.0
337
+	 */
338
+	function teacher_completed_lesson( $learner_id = 0, $lesson_id = 0 ) {
339
+
340
+
341
+		$send = false;
342
+
343
+		if( isset( Sensei()->settings->settings[ 'email_teachers' ] ) ) {
344
+			if( in_array( 'teacher-completed-lesson', (array) Sensei()->settings->settings[ 'email_teachers' ]) ) {
345
+				$send = true;
346
+			}
347
+		} else {
348
+			$send = true;
349
+		}
350
+
351
+		if( $send ) {
352
+			$email = $this->emails['teacher-completed-lesson'];
353
+			$email->trigger( $learner_id, $lesson_id );
354
+		}
355
+	}
356 356
 
357 357
 	/**
358 358
 	 * Send email to teacher on quiz submission
359 359
 	 *
360 360
 	 *
361
-     * @param int $learner_id
362
-     * @param int $quiz_id
363
-     * @param int $grade
364
-     * @param int $passmark
365
-     * @param string $quiz_grade_type
366
-     */
361
+	 * @param int $learner_id
362
+	 * @param int $quiz_id
363
+	 * @param int $grade
364
+	 * @param int $passmark
365
+	 * @param string $quiz_grade_type
366
+	 */
367 367
 	function teacher_quiz_submitted( $learner_id = 0, $quiz_id = 0, $grade = 0, $passmark = 0, $quiz_grade_type = 'manual' ) {
368 368
 
369 369
 		$send = false;
Please login to merge, or discard this patch.
includes/class-sensei-list-table.php 4 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.
Braces   +16 added lines, -9 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Sensei Generic List Table Class
@@ -131,8 +134,9 @@  discard block
 block discarded – undo
131 134
 	 * @return array
132 135
 	 */
133 136
 	function get_column_info() {
134
-		if ( isset( $this->_column_headers ) )
135
-			return $this->_column_headers;
137
+		if ( isset( $this->_column_headers ) ) {
138
+					return $this->_column_headers;
139
+		}
136 140
 
137 141
 		$columns = $this->get_columns();
138 142
 		$hidden = get_hidden_columns( $this->screen );
@@ -152,12 +156,14 @@  discard block
 block discarded – undo
152 156
 
153 157
 		$sortable = array();
154 158
 		foreach ( $_sortable as $id => $data ) {
155
-			if ( empty( $data ) )
156
-				continue;
159
+			if ( empty( $data ) ) {
160
+							continue;
161
+			}
157 162
 
158 163
 			$data = (array) $data;
159
-			if ( !isset( $data[1] ) )
160
-				$data[1] = false;
164
+			if ( !isset( $data[1] ) ) {
165
+							$data[1] = false;
166
+			}
161 167
 
162 168
 			$sortable[$id] = $data;
163 169
 		}
@@ -188,8 +194,9 @@  discard block
 block discarded – undo
188 194
 			$class = "class='$column_name column-$column_name'";
189 195
 
190 196
 			$style = '';
191
-			if ( in_array( $column_name, $hidden ) )
192
-				$style = ' style="display:none;"';
197
+			if ( in_array( $column_name, $hidden ) ) {
198
+							$style = ' style="display:none;"';
199
+			}
193 200
 
194 201
 			$attributes = "$class$style";
195 202
 
Please login to merge, or discard this patch.
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -40,16 +40,16 @@  discard block
 block discarded – undo
40 40
 	public $total_items = 0;
41 41
 
42 42
 
43
-    /**
44
-     * @var array $sortable_columns
45
-     *
46
-     */
47
-    public $sortable_columns = array();
43
+	/**
44
+	 * @var array $sortable_columns
45
+	 *
46
+	 */
47
+	public $sortable_columns = array();
48 48
 
49
-    /**
50
-     * @var array columns
51
-     */
52
-    public $columns = array();
49
+	/**
50
+	 * @var array columns
51
+	 */
52
+	public $columns = array();
53 53
 
54 54
 	/**
55 55
 	 * Constructor
@@ -175,8 +175,8 @@  discard block
 block discarded – undo
175 175
 			$sortable[$id] = $data;
176 176
 		}
177 177
 
178
-        $primary = $this->get_primary_column_name();
179
-        $this->_column_headers = array( $columns, $hidden, $sortable, $primary );
178
+		$primary = $this->get_primary_column_name();
179
+		$this->_column_headers = array( $columns, $hidden, $sortable, $primary );
180 180
 
181 181
 		return $this->_column_headers;
182 182
 	}
Please login to merge, or discard this patch.
Spacing   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 
4 4
 /**
5 5
  * Generic Data Table parent Class in Sensei.
@@ -56,18 +56,18 @@  discard block
 block discarded – undo
56 56
 	 * @since  1.2.0
57 57
 	 * @return  void
58 58
 	 */
59
-	public function __construct ( $token ) {
59
+	public function __construct($token) {
60 60
 		// Class Variables
61 61
 		$this->token = $token;
62 62
 
63
-		parent::__construct( array(
64
-								'singular' => 'wp_list_table_' . $this->token, // Singular label
65
-								'plural'   => 'wp_list_table_' . $this->token . 's', // Plural label
63
+		parent::__construct(array(
64
+								'singular' => 'wp_list_table_'.$this->token, // Singular label
65
+								'plural'   => 'wp_list_table_'.$this->token.'s', // Plural label
66 66
 								'ajax'     => false // No Ajax for this table
67
-		) );
67
+		));
68 68
 
69 69
 		// Actions
70
-		add_action( 'sensei_before_list_table', array( $this, 'table_search_form' ), 5 );
70
+		add_action('sensei_before_list_table', array($this, 'table_search_form'), 5);
71 71
 
72 72
 	} // End __construct()
73 73
 
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
 	 * @param  array $columns Existing columns
77 77
 	 * @return array          Modified columns
78 78
 	 */
79
-	public function remove_sortable_columns( $columns ) {
79
+	public function remove_sortable_columns($columns) {
80 80
 		return array();
81 81
 	}
82 82
 
@@ -85,14 +85,14 @@  discard block
 block discarded – undo
85 85
 	 * @since  1.2.0
86 86
 	 * @param string $which, helps you decide if you add the markup after (bottom) or before (top) the list
87 87
 	 */
88
-	public function extra_tablenav( $which ) {
89
-		if ( $which == "top" ){
88
+	public function extra_tablenav($which) {
89
+		if ($which == "top") {
90 90
 			//The code that goes before the table is here
91
-			do_action( 'sensei_before_list_table' );
91
+			do_action('sensei_before_list_table');
92 92
 		} // End If Statement
93
-		if ( $which == "bottom" ){
93
+		if ($which == "bottom") {
94 94
 			//The code that goes after the table is there
95
-			do_action( 'sensei_after_list_table' );
95
+			do_action('sensei_after_list_table');
96 96
 		} // End If Statement
97 97
 	} // End extra_tablenav()
98 98
 
@@ -102,22 +102,22 @@  discard block
 block discarded – undo
102 102
 	 * @return void
103 103
 	 */
104 104
 	public function table_search_form() {
105
-		if ( empty( $_REQUEST['s'] ) && !$this->has_items() ) {
105
+		if (empty($_REQUEST['s']) && ! $this->has_items()) {
106 106
 			return;
107 107
 		}
108 108
 		?><form method="get">
109 109
 			<?php
110
-			if( isset( $_GET ) && count( $_GET ) > 0 ) {
111
-				foreach( $_GET as $k => $v ) {
112
-					if( 's' != $k ) { ?>
110
+			if (isset($_GET) && count($_GET) > 0) {
111
+				foreach ($_GET as $k => $v) {
112
+					if ('s' != $k) { ?>
113 113
 
114
-                        <input type="hidden" name="<?php echo esc_attr( $k ); ?>" value="<?php echo esc_attr( $v ); ?>" />
114
+                        <input type="hidden" name="<?php echo esc_attr($k); ?>" value="<?php echo esc_attr($v); ?>" />
115 115
 
116 116
                     <?php  }
117 117
 				}
118 118
 			}
119 119
 			?>
120
-			<?php $this->search_box( __( 'Search Users' ,'woothemes-sensei' ), 'search_id'); ?>
120
+			<?php $this->search_box(__('Search Users', 'woothemes-sensei'), 'search_id'); ?>
121 121
 		</form><?php
122 122
 	} // End table_search_form()
123 123
 
@@ -145,11 +145,11 @@  discard block
 block discarded – undo
145 145
 	 * @return array
146 146
 	 */
147 147
 	function get_column_info() {
148
-		if ( isset( $this->_column_headers ) )
148
+		if (isset($this->_column_headers))
149 149
 			return $this->_column_headers;
150 150
 
151 151
 		$columns = $this->get_columns();
152
-		$hidden = get_hidden_columns( $this->screen );
152
+		$hidden = get_hidden_columns($this->screen);
153 153
 
154 154
 		/**
155 155
 		 * Filter the list table sortable columns for a specific screen.
@@ -161,22 +161,22 @@  discard block
 block discarded – undo
161 161
 		 *
162 162
 		 * @param array $sortable_columns An array of sortable columns.
163 163
 		 */
164
-		$_sortable = apply_filters( "manage_{$this->screen->id}_sortable_columns", $this->get_sortable_columns() );
164
+		$_sortable = apply_filters("manage_{$this->screen->id}_sortable_columns", $this->get_sortable_columns());
165 165
 
166 166
 		$sortable = array();
167
-		foreach ( $_sortable as $id => $data ) {
168
-			if ( empty( $data ) )
167
+		foreach ($_sortable as $id => $data) {
168
+			if (empty($data))
169 169
 				continue;
170 170
 
171 171
 			$data = (array) $data;
172
-			if ( !isset( $data[1] ) )
172
+			if ( ! isset($data[1]))
173 173
 				$data[1] = false;
174 174
 
175 175
 			$sortable[$id] = $data;
176 176
 		}
177 177
 
178 178
         $primary = $this->get_primary_column_name();
179
-        $this->_column_headers = array( $columns, $hidden, $sortable, $primary );
179
+        $this->_column_headers = array($columns, $hidden, $sortable, $primary);
180 180
 
181 181
 		return $this->_column_headers;
182 182
 	}
@@ -187,27 +187,27 @@  discard block
 block discarded – undo
187 187
 	 * @since  1.7.0
188 188
 	 * @param object $item The current item
189 189
 	 */
190
-	function single_row( $item ) {
190
+	function single_row($item) {
191 191
 		static $row_class = '';
192
-		$row_class = ( $row_class == '' ? ' class="alternate"' : '' );
192
+		$row_class = ($row_class == '' ? ' class="alternate"' : '');
193 193
 
194
-		echo '<tr' . $row_class . '>';
194
+		echo '<tr'.$row_class.'>';
195 195
 
196
-		$column_data = $this->get_row_data( $item );
196
+		$column_data = $this->get_row_data($item);
197 197
 
198
-		list( $columns, $hidden ) = $this->get_column_info();
198
+		list($columns, $hidden) = $this->get_column_info();
199 199
 
200
-		foreach ( $columns as $column_name => $column_display_name ) {
200
+		foreach ($columns as $column_name => $column_display_name) {
201 201
 			$class = "class='$column_name column-$column_name'";
202 202
 
203 203
 			$style = '';
204
-			if ( in_array( $column_name, $hidden ) )
204
+			if (in_array($column_name, $hidden))
205 205
 				$style = ' style="display:none;"';
206 206
 
207 207
 			$attributes = "$class$style";
208 208
 
209 209
 			echo "<td $attributes>";
210
-			if ( isset($column_data[$column_name]) ) {
210
+			if (isset($column_data[$column_name])) {
211 211
 				echo $column_data[$column_name];
212 212
 			}
213 213
 			echo "</td>";
@@ -221,8 +221,8 @@  discard block
 block discarded – undo
221 221
 	 * @access public
222 222
 	 * @abstract
223 223
 	 */
224
-	protected function get_row_data( $item ) {
225
-		die( 'either function WooThemes_Sensei_List_Table::get_row_data() must be over-ridden in a sub-class or WooThemes_Sensei_List_Table::single_row() should be.' );
224
+	protected function get_row_data($item) {
225
+		die('either function WooThemes_Sensei_List_Table::get_row_data() must be over-ridden in a sub-class or WooThemes_Sensei_List_Table::single_row() should be.');
226 226
 	}
227 227
 
228 228
 	/**
@@ -233,7 +233,7 @@  discard block
 block discarded – undo
233 233
 	 */
234 234
 	function no_items() {
235 235
 
236
-		 _e( 'No items found.', 'woothemes-sensei' );
236
+		 _e('No items found.', 'woothemes-sensei');
237 237
 
238 238
 	} // End no_items()
239 239
 
@@ -251,9 +251,9 @@  discard block
 block discarded – undo
251 251
 	 * @since  1.2.0
252 252
 	 * @return void
253 253
 	 */
254
-	public function bulk_actions( $which = '' ) {
254
+	public function bulk_actions($which = '') {
255 255
 		// This will be output Above the table headers on the left
256
-		echo apply_filters( 'sensei_list_bulk_actions', '' );
256
+		echo apply_filters('sensei_list_bulk_actions', '');
257 257
 	} // End bulk_actions()
258 258
 
259 259
 } // End Class
Please login to merge, or discard this patch.
includes/class-sensei-messages.php 4 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -299,7 +299,7 @@
 block discarded – undo
299 299
      * @param  integer $sender_id   ID of sender
300 300
      * @param  integer $receiver_id ID of receiver
301 301
      * @param  string  $message     Message content
302
-     * @param  string  $post_id     ID of post related to message
302
+     * @param  integer  $post_id     ID of post related to message
303 303
      * @return mixed                Message ID on success, boolean false on failure
304 304
      */
305 305
     private function save_new_message_post( $sender_id = 0, $receiver_id = 0, $message = '', $post_id = 0 ) {
Please login to merge, or discard this patch.
Spacing   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 
4 4
 /**
5 5
  * Sensei Messages Class
@@ -21,61 +21,61 @@  discard block
 block discarded – undo
21 21
 	 * Constructor.
22 22
 	 * @since  1.6.0
23 23
 	 */
24
-	public function __construct () {
24
+	public function __construct() {
25 25
 		$this->post_type = 'sensei_message';
26
-		$this->meta_fields = array( 'sender', 'receiver' );
26
+		$this->meta_fields = array('sender', 'receiver');
27 27
 
28 28
 		// Add Messages page to admin menu
29
-		add_action( 'admin_menu', array( $this, 'add_menu_item' ), 40 );
30
-		add_action( 'add_meta_boxes', array( $this, 'add_meta_box' ), 10, 2 );
31
-		add_action( 'admin_menu', array( $this, 'remove_meta_box' ) );
29
+		add_action('admin_menu', array($this, 'add_menu_item'), 40);
30
+		add_action('add_meta_boxes', array($this, 'add_meta_box'), 10, 2);
31
+		add_action('admin_menu', array($this, 'remove_meta_box'));
32 32
 
33 33
 		// Save new private message
34
-		add_action( 'init', array( $this, 'save_new_message' ), 1 );
34
+		add_action('init', array($this, 'save_new_message'), 1);
35 35
 
36 36
 		// Monitor when new reply is posted
37
-		add_action( 'comment_post', array( $this, 'message_reply_received' ), 10, 1 );
37
+		add_action('comment_post', array($this, 'message_reply_received'), 10, 1);
38 38
 
39 39
         // Block WordPress from sending comment update emails for the messages post type
40
-        add_filter('comment_notification_recipients', array( $this, 'stop_wp_comment_emails' ),  20, 2  );
40
+        add_filter('comment_notification_recipients', array($this, 'stop_wp_comment_emails'), 20, 2);
41 41
 
42 42
         // Block WordPress from sending comment moderator emails on the sensei messages post types
43
-        add_filter('comment_moderation_recipients', array( $this, 'stop_wp_comment_emails' ),  20, 2  );
43
+        add_filter('comment_moderation_recipients', array($this, 'stop_wp_comment_emails'), 20, 2);
44 44
 
45 45
 		// Process saving of message posts
46
-		add_action( 'save_post', array( $this, 'save_message' ) );
46
+		add_action('save_post', array($this, 'save_message'));
47 47
 
48 48
 		// Add message links to courses & lessons
49
-		add_action( 'sensei_single_course_content_inside_before', array( $this, 'send_message_link' ), 35 );
49
+		add_action('sensei_single_course_content_inside_before', array($this, 'send_message_link'), 35);
50 50
 
51 51
         // add message link to lesson
52
-        add_action( 'sensei_single_lesson_content_inside_before', array( $this, 'send_message_link' ), 30, 2 );
52
+        add_action('sensei_single_lesson_content_inside_before', array($this, 'send_message_link'), 30, 2);
53 53
 
54 54
         // add message link to lesson
55
-        add_action( 'sensei_single_quiz_questions_before', array( $this, 'send_message_link' ), 10, 2 );
55
+        add_action('sensei_single_quiz_questions_before', array($this, 'send_message_link'), 10, 2);
56 56
 
57 57
 		// Hide messages and replies from users who do not have access
58
-        add_action( 'template_redirect', array( $this, 'message_login' ), 10, 1 );
59
-        add_action( 'pre_get_posts', array( $this, 'message_list' ), 10, 1 );
60
-        add_filter( 'the_title', array( $this, 'message_title' ), 10, 2 );
61
-        add_filter( 'the_content', array( $this, 'message_content' ), 10, 1 );
62
-        add_filter( 'comments_array', array( $this, 'message_replies' ), 100, 1 );
63
-        add_filter( 'get_comments_number', array( $this, 'message_reply_count' ), 100, 2 );
64
-        add_filter( 'comments_open', array( $this, 'message_replies_open' ), 100, 2 );
58
+        add_action('template_redirect', array($this, 'message_login'), 10, 1);
59
+        add_action('pre_get_posts', array($this, 'message_list'), 10, 1);
60
+        add_filter('the_title', array($this, 'message_title'), 10, 2);
61
+        add_filter('the_content', array($this, 'message_content'), 10, 1);
62
+        add_filter('comments_array', array($this, 'message_replies'), 100, 1);
63
+        add_filter('get_comments_number', array($this, 'message_reply_count'), 100, 2);
64
+        add_filter('comments_open', array($this, 'message_replies_open'), 100, 2);
65 65
 	} // End __construct()
66 66
 
67 67
 	public function add_menu_item() {
68 68
 
69
-		if( ! isset( Sensei()->settings->settings['messages_disable'] ) || ! Sensei()->settings->settings['messages_disable'] ) {
70
-			add_submenu_page( 'sensei', __( 'Messages', 'woothemes-sensei'),  __( 'Messages', 'woothemes-sensei') , 'edit_courses', 'edit.php?post_type=sensei_message' );
69
+		if ( ! isset(Sensei()->settings->settings['messages_disable']) || ! Sensei()->settings->settings['messages_disable']) {
70
+			add_submenu_page('sensei', __('Messages', 'woothemes-sensei'), __('Messages', 'woothemes-sensei'), 'edit_courses', 'edit.php?post_type=sensei_message');
71 71
 		}
72 72
 	}
73 73
 
74
-	public function add_meta_box( $post_type, $post ) {
74
+	public function add_meta_box($post_type, $post) {
75 75
 
76
-		if( ! $post_type == $this->post_type ) return;
76
+		if ( ! $post_type == $this->post_type) return;
77 77
 
78
-		add_meta_box( $this->post_type . '-data', __( 'Message Information', 'woothemes-sensei' ), array( $this, 'meta_box_content' ), $this->post_type, 'normal', 'default' );
78
+		add_meta_box($this->post_type.'-data', __('Message Information', 'woothemes-sensei'), array($this, 'meta_box_content'), $this->post_type, 'normal', 'default');
79 79
 
80 80
 	}
81 81
 
@@ -85,25 +85,25 @@  discard block
 block discarded – undo
85 85
 		$settings = array(
86 86
 			array(
87 87
 				'id' 			=> 'sender',
88
-				'label'			=> __( 'Message sent by:', 'woothemes-sensei' ),
89
-				'description'	=> __( 'The username of the learner who sent this message.', 'woothemes-sensei' ),
88
+				'label'			=> __('Message sent by:', 'woothemes-sensei'),
89
+				'description'	=> __('The username of the learner who sent this message.', 'woothemes-sensei'),
90 90
 				'type'			=> 'text',
91 91
 				'default'		=> '',
92
-				'placeholder'	=> __( 'Learner username', 'woothemes-sensei' ),
92
+				'placeholder'	=> __('Learner username', 'woothemes-sensei'),
93 93
 			),
94 94
 			array(
95 95
 				'id' 			=> 'receiver',
96
-				'label'			=> __( 'Message received by:', 'woothemes-sensei' ),
97
-				'description'	=> __( 'The username of the teacher who received this message.', 'woothemes-sensei' ),
96
+				'label'			=> __('Message received by:', 'woothemes-sensei'),
97
+				'description'	=> __('The username of the teacher who received this message.', 'woothemes-sensei'),
98 98
 				'type'			=> 'text',
99 99
 				'default'		=> '',
100
-				'placeholder'	=> __( 'Teacher username', 'woothemes-sensei' ),
100
+				'placeholder'	=> __('Teacher username', 'woothemes-sensei'),
101 101
 			),
102 102
 		);
103 103
 
104
-		$message_posttype = get_post_meta( $post->ID, '_posttype', true );
104
+		$message_posttype = get_post_meta($post->ID, '_posttype', true);
105 105
 
106
-		if( isset( $message_posttype ) && $message_posttype ) {
106
+		if (isset($message_posttype) && $message_posttype) {
107 107
 
108 108
 			$args = array(
109 109
 				'post_type' => $message_posttype,
@@ -113,58 +113,58 @@  discard block
 block discarded – undo
113 113
 				'post_status' => 'publish',
114 114
 			);
115 115
 
116
-			$posts = get_posts( $args );
116
+			$posts = get_posts($args);
117 117
 
118
-			$post_options[0] = sprintf( __( 'Select %1$s', 'woothemes-sensei' ), $message_posttype );
119
-			foreach( $posts as $post_item ) {
120
-				$post_options[ $post_item->ID ] = $post_item->post_title;
118
+			$post_options[0] = sprintf(__('Select %1$s', 'woothemes-sensei'), $message_posttype);
119
+			foreach ($posts as $post_item) {
120
+				$post_options[$post_item->ID] = $post_item->post_title;
121 121
 			}
122 122
 
123 123
 			$settings[] = array(
124 124
 				'id' 			=> 'post',
125
-				'label'			=> sprintf( __( 'Message from %1$s:', 'woothemes-sensei' ), $message_posttype ),
126
-				'description'	=> sprintf( __( 'The %1$s to which this message relates.', 'woothemes-sensei' ), $message_posttype ),
125
+				'label'			=> sprintf(__('Message from %1$s:', 'woothemes-sensei'), $message_posttype),
126
+				'description'	=> sprintf(__('The %1$s to which this message relates.', 'woothemes-sensei'), $message_posttype),
127 127
 				'type'			=> 'select',
128 128
 				'default'		=> 0,
129 129
 				'options'		=> $post_options,
130 130
 			);
131 131
 		}
132 132
 
133
-		$html = Sensei()->admin->render_settings( $settings, $post->ID, 'message-info' );
133
+		$html = Sensei()->admin->render_settings($settings, $post->ID, 'message-info');
134 134
 
135 135
 		echo $html;
136 136
 	}
137 137
 
138
-	public function save_message( $post_id = 0 ) {
138
+	public function save_message($post_id = 0) {
139 139
 		global $post;
140 140
 
141
-		if( $this->post_type != get_post_type() ) return;
141
+		if ($this->post_type != get_post_type()) return;
142 142
 
143
-		if( isset( $_POST['sender'] ) && $_POST['sender'] ) {
144
-			update_post_meta( $post_id, '_sender', $_POST['sender'] );
143
+		if (isset($_POST['sender']) && $_POST['sender']) {
144
+			update_post_meta($post_id, '_sender', $_POST['sender']);
145 145
 		}
146 146
 
147
-		if( isset( $_POST['receiver'] ) && $_POST['receiver'] ) {
148
-			update_post_meta( $post_id, '_receiver', $_POST['receiver'] );
147
+		if (isset($_POST['receiver']) && $_POST['receiver']) {
148
+			update_post_meta($post_id, '_receiver', $_POST['receiver']);
149 149
 		}
150 150
 
151
-		if( isset( $_POST['post'] ) && $_POST['post'] ) {
152
-			update_post_meta( $post_id, '_post', $_POST['post'] );
151
+		if (isset($_POST['post']) && $_POST['post']) {
152
+			update_post_meta($post_id, '_post', $_POST['post']);
153 153
 		}
154 154
 
155
-		remove_action( 'save_post', array( $this, 'save_message' ) );
155
+		remove_action('save_post', array($this, 'save_message'));
156 156
 
157
-		wp_update_post( array( 'ID' => $post_id, 'comment_status' => 'open' ) );
157
+		wp_update_post(array('ID' => $post_id, 'comment_status' => 'open'));
158 158
 
159
-		add_action( 'save_post', array( $this, 'save_message' ) );
159
+		add_action('save_post', array($this, 'save_message'));
160 160
 	}
161 161
 
162
-	public function send_message_link( $post_id = 0, $user_id = 0 ) {
162
+	public function send_message_link($post_id = 0, $user_id = 0) {
163 163
 		global  $post;
164 164
 
165 165
         // only show the link for the allowed post types:
166 166
         $allowed_post_types = array('lesson', 'course', 'quiz');
167
-		if ( ! in_array( get_post_type() , $allowed_post_types ) ) {
167
+		if ( ! in_array(get_post_type(), $allowed_post_types)) {
168 168
 
169 169
 			return;
170 170
 
@@ -172,28 +172,28 @@  discard block
 block discarded – undo
172 172
 
173 173
 		$html = '';
174 174
 
175
-		if( ! isset( Sensei()->settings->settings['messages_disable'] ) || ! Sensei()->settings->settings['messages_disable'] ) {
175
+		if ( ! isset(Sensei()->settings->settings['messages_disable']) || ! Sensei()->settings->settings['messages_disable']) {
176 176
 
177
-			if( ! is_user_logged_in() ) return;
177
+			if ( ! is_user_logged_in()) return;
178 178
 
179
-			if( isset( $_GET['contact'] ) ) {
180
-				$html .= $this->teacher_contact_form( $post );
179
+			if (isset($_GET['contact'])) {
180
+				$html .= $this->teacher_contact_form($post);
181 181
 			} else {
182
-				$href = add_query_arg( array( 'contact' => $post->post_type ) );
183
-
184
-				if( 'lesson' == $post->post_type ) {
185
-					$contact_button_text = __( 'Contact Lesson Teacher', 'woothemes-sensei' );
186
-				} elseif( 'course' == $post->post_type ) {
187
-					$contact_button_text = __( 'Contact Course Teacher', 'woothemes-sensei' );
188
-				}else{
189
-                    $contact_button_text = __( 'Contact Teacher', 'woothemes-sensei' );
182
+				$href = add_query_arg(array('contact' => $post->post_type));
183
+
184
+				if ('lesson' == $post->post_type) {
185
+					$contact_button_text = __('Contact Lesson Teacher', 'woothemes-sensei');
186
+				} elseif ('course' == $post->post_type) {
187
+					$contact_button_text = __('Contact Course Teacher', 'woothemes-sensei');
188
+				} else {
189
+                    $contact_button_text = __('Contact Teacher', 'woothemes-sensei');
190 190
                 }
191 191
 
192
-				$html .= '<p><a class="button send-message-button" href="' . esc_url($href) . '#private_message">' . $contact_button_text . '</a></p>';
192
+				$html .= '<p><a class="button send-message-button" href="'.esc_url($href).'#private_message">'.$contact_button_text.'</a></p>';
193 193
 			}
194 194
 
195
-			if( isset( $this->message_notice ) && isset( $this->message_notice['type'] ) && isset( $this->message_notice['notice'] ) ) {
196
-				$html .= '<div class="sensei-message ' . $this->message_notice['type'] . '">' . $this->message_notice['notice'] . '</div>';
195
+			if (isset($this->message_notice) && isset($this->message_notice['type']) && isset($this->message_notice['notice'])) {
196
+				$html .= '<div class="sensei-message '.$this->message_notice['type'].'">'.$this->message_notice['notice'].'</div>';
197 197
 			}
198 198
 
199 199
 		}
@@ -201,40 +201,40 @@  discard block
 block discarded – undo
201 201
 		echo $html;
202 202
 	}
203 203
 
204
-	public function teacher_contact_form( $post ) {
204
+	public function teacher_contact_form($post) {
205 205
 
206
-		if( ! is_user_logged_in() ) return;
206
+		if ( ! is_user_logged_in()) return;
207 207
 
208 208
 		global $current_user;
209 209
 		wp_get_current_user();
210 210
 
211 211
 		$html = '';
212 212
 
213
-		if( ! isset( $post->ID ) ) return $html;
213
+		if ( ! isset($post->ID)) return $html;
214 214
 
215 215
         //confirm private message
216 216
         $confirmation = '';
217
-        if( isset( $_GET[ 'send' ] ) && 'complete' == $_GET[ 'send' ] ) {
217
+        if (isset($_GET['send']) && 'complete' == $_GET['send']) {
218 218
 
219 219
             $confirmation_message = __('Your private message has been sent.', 'woothemes-sensei');
220
-            $confirmation = '<div class="sensei-message tick">' . $confirmation_message . '</div>';
220
+            $confirmation = '<div class="sensei-message tick">'.$confirmation_message.'</div>';
221 221
 
222 222
         }
223 223
 
224
-		$html .= '<h3 id="private_message">' . __( 'Send Private Message', 'woothemes-sensei' ) . '</h3>';
224
+		$html .= '<h3 id="private_message">'.__('Send Private Message', 'woothemes-sensei').'</h3>';
225 225
         $html .= '<p>';
226
-        $html .=  $confirmation;
226
+        $html .= $confirmation;
227 227
         $html .= '</p>';
228 228
 		$html .= '<form name="contact-teacher" action="" method="post" class="contact-teacher">';
229 229
 			$html .= '<p class="form-row form-row-wide">';
230
-				$html .= '<textarea name="contact_message" placeholder="' . __( 'Enter your private message.', 'woothemes-sensei' ) . '"></textarea>';
230
+				$html .= '<textarea name="contact_message" placeholder="'.__('Enter your private message.', 'woothemes-sensei').'"></textarea>';
231 231
 			$html .= '</p>';
232 232
 			$html .= '<p class="form-row">';
233
-				$html .= '<input type="hidden" name="post_id" value="' . $post->ID . '" />';
234
-				$html .= '<input type="hidden" name="sender_id" value="' . $current_user->ID . '" />';
235
-				$html .= '<input type="hidden" name="receiver_id" value="' . $post->post_author . '" />';
236
-				$html .= wp_nonce_field( 'message_teacher', 'sensei_message_teacher_nonce', true, false );
237
-				$html .= '<input type="submit" class="send_message" value="' . __( 'Send Message', 'woothemes-sensei' ) . '" />';
233
+				$html .= '<input type="hidden" name="post_id" value="'.$post->ID.'" />';
234
+				$html .= '<input type="hidden" name="sender_id" value="'.$current_user->ID.'" />';
235
+				$html .= '<input type="hidden" name="receiver_id" value="'.$post->post_author.'" />';
236
+				$html .= wp_nonce_field('message_teacher', 'sensei_message_teacher_nonce', true, false);
237
+				$html .= '<input type="submit" class="send_message" value="'.__('Send Message', 'woothemes-sensei').'" />';
238 238
 			$html .= '</p>';
239 239
 			$html .= '<div class="fix"></div>';
240 240
 		$html .= '</form>';
@@ -244,30 +244,30 @@  discard block
 block discarded – undo
244 244
 
245 245
 	public function save_new_message() {
246 246
 
247
-		if( ! isset( $_POST['sensei_message_teacher_nonce'] ) ) return;
247
+		if ( ! isset($_POST['sensei_message_teacher_nonce'])) return;
248 248
 
249
-		if( ! wp_verify_nonce( $_POST['sensei_message_teacher_nonce'], 'message_teacher' ) ) return;
249
+		if ( ! wp_verify_nonce($_POST['sensei_message_teacher_nonce'], 'message_teacher')) return;
250 250
 
251
-		$message_id = $this->save_new_message_post( $_POST['sender_id'], $_POST['receiver_id'], $_POST['contact_message'], $_POST['post_id'] );
251
+		$message_id = $this->save_new_message_post($_POST['sender_id'], $_POST['receiver_id'], $_POST['contact_message'], $_POST['post_id']);
252 252
 
253 253
 	}
254 254
 
255
-	public function message_reply_received( $comment_id = 0 ) {
255
+	public function message_reply_received($comment_id = 0) {
256 256
 
257 257
 		// Get comment object
258
-    	$comment = get_comment( $comment_id );
258
+    	$comment = get_comment($comment_id);
259 259
 
260
-		if( is_null( $comment ) ) return;
260
+		if (is_null($comment)) return;
261 261
 
262 262
 		// Get message post object
263
-		$message = get_post( $comment->comment_post_ID );
263
+		$message = get_post($comment->comment_post_ID);
264 264
 
265
-		if( $message->post_type != $this->post_type ) return;
265
+		if ($message->post_type != $this->post_type) return;
266 266
 
267 267
 		// Force comment to be approved
268
-		wp_set_comment_status( $comment_id, 'approve' );
268
+		wp_set_comment_status($comment_id, 'approve');
269 269
 
270
-		do_action( 'sensei_private_message_reply', $comment, $message );
270
+		do_action('sensei_private_message_reply', $comment, $message);
271 271
 	}
272 272
 
273 273
     /**
@@ -280,11 +280,11 @@  discard block
 block discarded – undo
280 280
      * @param int $comment_id
281 281
      * @return array;
282 282
      */
283
-    public function stop_wp_comment_emails( $emails , $comment_id ){
283
+    public function stop_wp_comment_emails($emails, $comment_id) {
284 284
 
285
-        $comment = get_comment( $comment_id );
286
-        if( isset( $comment->comment_post_ID ) &&
287
-            'sensei_message' == get_post_type( $comment->comment_post_ID )  ){
285
+        $comment = get_comment($comment_id);
286
+        if (isset($comment->comment_post_ID) &&
287
+            'sensei_message' == get_post_type($comment->comment_post_ID)) {
288 288
 
289 289
             // empty the emails array to ensure no emails are sent for this comment
290 290
             $emails = array();
@@ -302,45 +302,45 @@  discard block
 block discarded – undo
302 302
      * @param  string  $post_id     ID of post related to message
303 303
      * @return mixed                Message ID on success, boolean false on failure
304 304
      */
305
-    private function save_new_message_post( $sender_id = 0, $receiver_id = 0, $message = '', $post_id = 0 ) {
305
+    private function save_new_message_post($sender_id = 0, $receiver_id = 0, $message = '', $post_id = 0) {
306 306
 
307 307
     	$message_id = false;
308 308
 
309
-    	if( $sender_id && $receiver_id && $message && $post_id ) {
309
+    	if ($sender_id && $receiver_id && $message && $post_id) {
310 310
 
311
-    		$title = wp_trim_words( $message, 8, '...' );
311
+    		$title = wp_trim_words($message, 8, '...');
312 312
 
313 313
     		// Set up post data for message
314 314
 	    	$message_data = array(
315 315
 	            'post_type'      => $this->post_type,
316
-	            'post_title'     => esc_html( $title ),
317
-	            'post_content'   => esc_html( $message ),
316
+	            'post_title'     => esc_html($title),
317
+	            'post_content'   => esc_html($message),
318 318
 	            'post_status'    => 'publish',
319 319
 	            'ping_status'    => 'closed',
320 320
 	            'comment_status' => 'open',
321 321
 	            'post_excerpt'   => '',
322
-	            'post_author'	 => intval( $sender_id )
322
+	            'post_author'	 => intval($sender_id)
323 323
 	        );
324 324
 
325 325
 	    	// Insert post
326
-	        $message_id = wp_insert_post( $message_data );
326
+	        $message_id = wp_insert_post($message_data);
327 327
 
328
-	        if( ! is_wp_error( $message_id ) ) {
328
+	        if ( ! is_wp_error($message_id)) {
329 329
 
330 330
 	        	// Add sender to message meta
331
-	        	$sender = get_userdata( $sender_id );
332
-	        	add_post_meta( $message_id, '_sender', $sender->user_login );
331
+	        	$sender = get_userdata($sender_id);
332
+	        	add_post_meta($message_id, '_sender', $sender->user_login);
333 333
 
334 334
 	        	// Add receiver to message meta
335
-	        	$receiver = get_userdata( $receiver_id );
336
-		        add_post_meta( $message_id, '_receiver', $receiver->user_login );
335
+	        	$receiver = get_userdata($receiver_id);
336
+		        add_post_meta($message_id, '_receiver', $receiver->user_login);
337 337
 
338 338
 		        // Add lesson/course ID to message meta
339
-		        $post = get_post( $post_id );
340
-		        add_post_meta( $message_id, '_posttype', $post->post_type );
341
-		        add_post_meta( $message_id, '_post', $post->ID );
339
+		        $post = get_post($post_id);
340
+		        add_post_meta($message_id, '_posttype', $post->post_type);
341
+		        add_post_meta($message_id, '_post', $post->ID);
342 342
 
343
-		        do_action( 'sensei_new_private_message', $message_id );
343
+		        do_action('sensei_new_private_message', $message_id);
344 344
 
345 345
 		    } else {
346 346
 
@@ -358,22 +358,22 @@  discard block
 block discarded – undo
358 358
 	 * @param  integer $user_id    ID of user
359 359
 	 * @return boolean             True if user has access to this message
360 360
 	 */
361
-	private function view_message( $message_id, $user_id = 0) {
361
+	private function view_message($message_id, $user_id = 0) {
362 362
 
363
-		if( ! is_user_logged_in() ) return false;
363
+		if ( ! is_user_logged_in()) return false;
364 364
 
365
-		if( $user_id == 0 ) {
365
+		if ($user_id == 0) {
366 366
 			global $current_user;
367 367
 			wp_get_current_user();
368 368
 			$user_login = $current_user->user_login;
369 369
 		}
370 370
 
371 371
 		// Get allowed users
372
-		$receiver = get_post_meta( $message_id, '_receiver', true );
373
-		$sender = get_post_meta( $message_id, '_sender', true );
372
+		$receiver = get_post_meta($message_id, '_receiver', true);
373
+		$sender = get_post_meta($message_id, '_sender', true);
374 374
 
375 375
 		// Check if user is allowed to view the message
376
-		if( in_array( $user_login, array( $receiver, $sender ) ) ) {
376
+		if (in_array($user_login, array($receiver, $sender))) {
377 377
 			return true;
378 378
 		}
379 379
 
@@ -400,27 +400,27 @@  discard block
 block discarded – undo
400 400
      * @return void
401 401
      */
402 402
 
403
-    public function message_login () {
403
+    public function message_login() {
404 404
 
405
-        if ( is_user_logged_in() ) {
405
+        if (is_user_logged_in()) {
406 406
 
407 407
             return;
408 408
         }
409 409
 
410 410
         $settings = Sensei()->settings->get_settings();
411
-        if( isset( $settings[ 'my_course_page' ] )
412
-            && 0 < intval( $settings[ 'my_course_page' ] ) ){
411
+        if (isset($settings['my_course_page'])
412
+            && 0 < intval($settings['my_course_page'])) {
413 413
 
414
-            $my_courses_page_id = $settings[ 'my_course_page' ];
414
+            $my_courses_page_id = $settings['my_course_page'];
415 415
 
416 416
             $my_courses_url = get_permalink($my_courses_page_id);
417 417
 
418 418
         }
419 419
 
420
-        if ( is_single() && is_singular( $this->post_type )
421
-            || is_post_type_archive( $this->post_type ) ) {
420
+        if (is_single() && is_singular($this->post_type)
421
+            || is_post_type_archive($this->post_type)) {
422 422
 
423
-            if ( isset($my_courses_url) ) {
423
+            if (isset($my_courses_url)) {
424 424
 
425 425
                 wp_redirect($my_courses_url, 303);
426 426
                 exit;
@@ -439,12 +439,12 @@  discard block
 block discarded – undo
439 439
      * @param  array $query Original query
440 440
      * @return void
441 441
      */
442
-	public function message_list( $query ) {
442
+	public function message_list($query) {
443 443
 		global $current_user;
444 444
 
445
-		if( is_admin() ) return;
445
+		if (is_admin()) return;
446 446
 
447
-		if( is_post_type_archive( $this->post_type ) && $query->is_main_query() ) {
447
+		if (is_post_type_archive($this->post_type) && $query->is_main_query()) {
448 448
 			wp_get_current_user();
449 449
 			$username = $current_user->user_login;
450 450
 
@@ -462,7 +462,7 @@  discard block
 block discarded – undo
462 462
 				'compare' => '='
463 463
 			);
464 464
 
465
-			$query->set( 'meta_query', $meta_query );
465
+			$query->set('meta_query', $meta_query);
466 466
 
467 467
 			return;
468 468
 		}
@@ -474,11 +474,11 @@  discard block
 block discarded – undo
474 474
 	 * @param  integer $post_id ID of post
475 475
 	 * @return string           Modified string if user does not have access to this message
476 476
 	 */
477
-	public function message_title( $title = '', $post_id = null ) {
477
+	public function message_title($title = '', $post_id = null) {
478 478
 
479
-		if( is_single() && is_singular( $this->post_type ) && in_the_loop() && get_post_type( $post_id ) == $this->post_type ) {
480
-			if( ! is_user_logged_in() || ! $this->view_message( $post_id ) ) {
481
-				$title = __( 'You are not allowed to view this message.', 'woothemes-sensei' );
479
+		if (is_single() && is_singular($this->post_type) && in_the_loop() && get_post_type($post_id) == $this->post_type) {
480
+			if ( ! is_user_logged_in() || ! $this->view_message($post_id)) {
481
+				$title = __('You are not allowed to view this message.', 'woothemes-sensei');
482 482
 			}
483 483
 		}
484 484
 
@@ -490,12 +490,12 @@  discard block
 block discarded – undo
490 490
 	 * @param  string $content Original message content
491 491
 	 * @return string          Empty string if user does not have access to this message
492 492
 	 */
493
-	public function message_content( $content ) {
493
+	public function message_content($content) {
494 494
 		global $post;
495 495
 
496
-		if( is_single() && is_singular( $this->post_type ) && in_the_loop() ) {
497
-			if( ! is_user_logged_in() || ! $this->view_message( $post->ID ) ) {
498
-				$content = __( 'Please log in to view your messages.', 'woothemes-sensei' );
496
+		if (is_single() && is_singular($this->post_type) && in_the_loop()) {
497
+			if ( ! is_user_logged_in() || ! $this->view_message($post->ID)) {
498
+				$content = __('Please log in to view your messages.', 'woothemes-sensei');
499 499
 			}
500 500
 		}
501 501
 
@@ -507,11 +507,11 @@  discard block
 block discarded – undo
507 507
 	 * @param  array $comments Array of replies
508 508
 	 * @return array           Empty array if user does not have access to this message
509 509
 	 */
510
-	public function message_replies( $comments ) {
510
+	public function message_replies($comments) {
511 511
 		global $post;
512 512
 
513
-		if( is_single() && is_singular( $this->post_type ) && in_the_loop() ) {
514
-			if( ! is_user_logged_in() || ! $this->view_message( $post->ID ) ) {
513
+		if (is_single() && is_singular($this->post_type) && in_the_loop()) {
514
+			if ( ! is_user_logged_in() || ! $this->view_message($post->ID)) {
515 515
 				$comments = array();
516 516
 			}
517 517
 		}
@@ -525,11 +525,11 @@  discard block
 block discarded – undo
525 525
 	 * @param  integer $post_id ID of post
526 526
 	 * @return integer          0 if user does not have access to this message
527 527
 	 */
528
-	public function message_reply_count( $count, $post_id ) {
528
+	public function message_reply_count($count, $post_id) {
529 529
 		global $post;
530 530
 
531
-		if( is_single() && is_singular( $this->post_type ) && in_the_loop() ) {
532
-			if( ! is_user_logged_in() || ! $this->view_message( $post->ID ) ) {
531
+		if (is_single() && is_singular($this->post_type) && in_the_loop()) {
532
+			if ( ! is_user_logged_in() || ! $this->view_message($post->ID)) {
533 533
 				$count = 0;
534 534
 			}
535 535
 		}
@@ -543,11 +543,11 @@  discard block
 block discarded – undo
543 543
 	 * @param  integer $post_id ID of post
544 544
 	 * @return boolean          False if user does not have access to this message
545 545
 	 */
546
-	public function message_replies_open( $open, $post_id ) {
546
+	public function message_replies_open($open, $post_id) {
547 547
 		global $post;
548 548
 
549
-		if( is_single() && is_singular( $this->post_type ) && in_the_loop() ) {
550
-			if( ! is_user_logged_in() || ! $this->view_message( $post->ID ) ) {
549
+		if (is_single() && is_singular($this->post_type) && in_the_loop()) {
550
+			if ( ! is_user_logged_in() || ! $this->view_message($post->ID)) {
551 551
 				$open = false;
552 552
 			}
553 553
 		}
@@ -560,17 +560,17 @@  discard block
 block discarded – undo
560 560
      *
561 561
      * @since 1.9.0
562 562
      */
563
-    public static function the_message_sent_by_title(){
563
+    public static function the_message_sent_by_title() {
564 564
 
565
-        $sender_username = get_post_meta( get_the_ID() , '_sender', true );
566
-        if( $sender_username ) {
565
+        $sender_username = get_post_meta(get_the_ID(), '_sender', true);
566
+        if ($sender_username) {
567 567
 
568
-            $sender = get_user_by( 'login', $sender_username ); ?>
568
+            $sender = get_user_by('login', $sender_username); ?>
569 569
 
570 570
             <p class="message-meta">
571 571
                 <small>
572 572
                     <em>
573
-                        <?php printf( __( 'Sent by %1$s on %2$s.', 'woothemes-sensei' ), $sender->display_name, get_the_date() ); ?>
573
+                        <?php printf(__('Sent by %1$s on %2$s.', 'woothemes-sensei'), $sender->display_name, get_the_date()); ?>
574 574
                     </em>
575 575
                 </small>
576 576
             </p>
@@ -589,11 +589,11 @@  discard block
 block discarded – undo
589 589
 
590 590
         global $post;
591 591
 
592
-        $content_post_id = get_post_meta( $post->ID, '_post', true );
593
-        if( $content_post_id ) {
594
-            $title = sprintf( __( 'Re: %1$s', 'woothemes-sensei' ), '<a href="' . get_permalink( $content_post_id ) . '">' . get_the_title( $content_post_id ) . '</a>' );
592
+        $content_post_id = get_post_meta($post->ID, '_post', true);
593
+        if ($content_post_id) {
594
+            $title = sprintf(__('Re: %1$s', 'woothemes-sensei'), '<a href="'.get_permalink($content_post_id).'">'.get_the_title($content_post_id).'</a>');
595 595
         } else {
596
-            $title = get_the_title( $post->ID );
596
+            $title = get_the_title($post->ID);
597 597
         }
598 598
 
599 599
         ?>
@@ -610,7 +610,7 @@  discard block
 block discarded – undo
610 610
                  * @param string $template
611 611
                  * @param string $post_type
612 612
                  */
613
-                echo apply_filters( 'sensei_single_title', $title, $post->post_type );
613
+                echo apply_filters('sensei_single_title', $title, $post->post_type);
614 614
                 ?>
615 615
 
616 616
             </h1>
@@ -629,18 +629,18 @@  discard block
 block discarded – undo
629 629
      *
630 630
      * @return string
631 631
      */
632
-    public static function the_archive_header( ){
632
+    public static function the_archive_header( ) {
633 633
 
634 634
         $html = '';
635 635
         $html .= '<header class="archive-header"><h1>';
636
-        $html .= __( 'My Messages', 'woothemes-sensei' );
636
+        $html .= __('My Messages', 'woothemes-sensei');
637 637
         $html .= '</h1></header>';
638 638
 
639 639
         /**
640 640
          * Filter the sensei messages archive title.
641 641
          * @since 1.0.0
642 642
          */
643
-        echo apply_filters( 'sensei_message_archive_title', $html );
643
+        echo apply_filters('sensei_message_archive_title', $html);
644 644
 
645 645
     } // get_archive_header()
646 646
 
@@ -650,23 +650,23 @@  discard block
 block discarded – undo
650 650
      * @since 1.9.0
651 651
      * @param $post_id
652 652
      */
653
-    public static function the_message_title( $message_post_id ){
653
+    public static function the_message_title($message_post_id) {
654 654
 
655
-        $content_post_id = get_post_meta( $message_post_id, '_post', true );
655
+        $content_post_id = get_post_meta($message_post_id, '_post', true);
656 656
 
657
-        if( $content_post_id ) {
657
+        if ($content_post_id) {
658 658
 
659
-            $title = sprintf( __( 'Re: %1$s', 'woothemes-sensei' ), get_the_title( $content_post_id ) );
659
+            $title = sprintf(__('Re: %1$s', 'woothemes-sensei'), get_the_title($content_post_id));
660 660
 
661 661
         } else {
662 662
 
663
-            $title = get_the_title( $message_post_id );
663
+            $title = get_the_title($message_post_id);
664 664
 
665 665
         }
666 666
 
667 667
         ?>
668 668
         <h2>
669
-            <a href="<?php esc_url( get_permalink( $message_post_id ) );?>">
669
+            <a href="<?php esc_url(get_permalink($message_post_id)); ?>">
670 670
                 <?php echo  $title; ?>
671 671
             </a>
672 672
 
@@ -680,13 +680,13 @@  discard block
 block discarded – undo
680 680
      *
681 681
      * @param $message_post_id
682 682
      */
683
-    public  static function the_message_sender( $message_post_id ){
683
+    public  static function the_message_sender($message_post_id) {
684 684
 
685
-        $sender_username = get_post_meta( $message_post_id, '_sender', true );
686
-        $sender = get_user_by( 'login', $sender_username );
685
+        $sender_username = get_post_meta($message_post_id, '_sender', true);
686
+        $sender = get_user_by('login', $sender_username);
687 687
 
688
-        if( $sender_username && $sender instanceof WP_User ) {
689
-            $sender_display_name = sprintf( __( 'Sent by %1$s on %2$s.', 'woothemes-sensei' ), $sender->display_name, get_the_date() );
688
+        if ($sender_username && $sender instanceof WP_User) {
689
+            $sender_display_name = sprintf(__('Sent by %1$s on %2$s.', 'woothemes-sensei'), $sender->display_name, get_the_date());
690 690
             ?>
691 691
             <p class="message-meta">
692 692
                 <small>
@@ -704,13 +704,13 @@  discard block
 block discarded – undo
704 704
      *
705 705
      * @since 1.9.0
706 706
      */
707
-    public static function the_my_messages_link(){
708
-        if( ! Sensei()->settings->get('messages_disable')  ) {
707
+    public static function the_my_messages_link() {
708
+        if ( ! Sensei()->settings->get('messages_disable')) {
709 709
             ?>
710 710
             <p class="my-messages-link-container">
711
-                <a class="my-messages-link" href="<?php echo get_post_type_archive_link( 'sensei_message' ); ?>"
712
-                   title="<?php _e( 'View & reply to private messages sent to your course & lesson teachers.', 'woothemes-sensei' ); ?>">
713
-                    <?php _e( 'My Messages', 'woothemes-sensei' ); ?>
711
+                <a class="my-messages-link" href="<?php echo get_post_type_archive_link('sensei_message'); ?>"
712
+                   title="<?php _e('View & reply to private messages sent to your course & lesson teachers.', 'woothemes-sensei'); ?>">
713
+                    <?php _e('My Messages', 'woothemes-sensei'); ?>
714 714
                 </a>
715 715
             </p>
716 716
             <?php
@@ -724,4 +724,4 @@  discard block
 block discarded – undo
724 724
  * for backward compatibility
725 725
  * @since 1.9.0
726 726
  */
727
-class WooThemes_Sensei_Messages extends Sensei_Messages{}
727
+class WooThemes_Sensei_Messages extends Sensei_Messages {}
Please login to merge, or discard this patch.
Braces   +39 added lines, -16 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Sensei Messages Class
@@ -73,7 +76,9 @@  discard block
 block discarded – undo
73 76
 
74 77
 	public function add_meta_box( $post_type, $post ) {
75 78
 
76
-		if( ! $post_type == $this->post_type ) return;
79
+		if( ! $post_type == $this->post_type ) {
80
+			return;
81
+		}
77 82
 
78 83
 		add_meta_box( $this->post_type . '-data', __( 'Message Information', 'woothemes-sensei' ), array( $this, 'meta_box_content' ), $this->post_type, 'normal', 'default' );
79 84
 
@@ -138,7 +143,9 @@  discard block
 block discarded – undo
138 143
 	public function save_message( $post_id = 0 ) {
139 144
 		global $post;
140 145
 
141
-		if( $this->post_type != get_post_type() ) return;
146
+		if( $this->post_type != get_post_type() ) {
147
+			return;
148
+		}
142 149
 
143 150
 		if( isset( $_POST['sender'] ) && $_POST['sender'] ) {
144 151
 			update_post_meta( $post_id, '_sender', $_POST['sender'] );
@@ -174,7 +181,9 @@  discard block
 block discarded – undo
174 181
 
175 182
 		if( ! isset( Sensei()->settings->settings['messages_disable'] ) || ! Sensei()->settings->settings['messages_disable'] ) {
176 183
 
177
-			if( ! is_user_logged_in() ) return;
184
+			if( ! is_user_logged_in() ) {
185
+				return;
186
+			}
178 187
 
179 188
 			if( isset( $_GET['contact'] ) ) {
180 189
 				$html .= $this->teacher_contact_form( $post );
@@ -185,7 +194,7 @@  discard block
 block discarded – undo
185 194
 					$contact_button_text = __( 'Contact Lesson Teacher', 'woothemes-sensei' );
186 195
 				} elseif( 'course' == $post->post_type ) {
187 196
 					$contact_button_text = __( 'Contact Course Teacher', 'woothemes-sensei' );
188
-				}else{
197
+				} else{
189 198
                     $contact_button_text = __( 'Contact Teacher', 'woothemes-sensei' );
190 199
                 }
191 200
 
@@ -203,14 +212,18 @@  discard block
 block discarded – undo
203 212
 
204 213
 	public function teacher_contact_form( $post ) {
205 214
 
206
-		if( ! is_user_logged_in() ) return;
215
+		if( ! is_user_logged_in() ) {
216
+			return;
217
+		}
207 218
 
208 219
 		global $current_user;
209 220
 		wp_get_current_user();
210 221
 
211 222
 		$html = '';
212 223
 
213
-		if( ! isset( $post->ID ) ) return $html;
224
+		if( ! isset( $post->ID ) ) {
225
+			return $html;
226
+		}
214 227
 
215 228
         //confirm private message
216 229
         $confirmation = '';
@@ -244,9 +257,13 @@  discard block
 block discarded – undo
244 257
 
245 258
 	public function save_new_message() {
246 259
 
247
-		if( ! isset( $_POST['sensei_message_teacher_nonce'] ) ) return;
260
+		if( ! isset( $_POST['sensei_message_teacher_nonce'] ) ) {
261
+			return;
262
+		}
248 263
 
249
-		if( ! wp_verify_nonce( $_POST['sensei_message_teacher_nonce'], 'message_teacher' ) ) return;
264
+		if( ! wp_verify_nonce( $_POST['sensei_message_teacher_nonce'], 'message_teacher' ) ) {
265
+			return;
266
+		}
250 267
 
251 268
 		$message_id = $this->save_new_message_post( $_POST['sender_id'], $_POST['receiver_id'], $_POST['contact_message'], $_POST['post_id'] );
252 269
 
@@ -257,12 +274,16 @@  discard block
 block discarded – undo
257 274
 		// Get comment object
258 275
     	$comment = get_comment( $comment_id );
259 276
 
260
-		if( is_null( $comment ) ) return;
277
+		if( is_null( $comment ) ) {
278
+			return;
279
+		}
261 280
 
262 281
 		// Get message post object
263 282
 		$message = get_post( $comment->comment_post_ID );
264 283
 
265
-		if( $message->post_type != $this->post_type ) return;
284
+		if( $message->post_type != $this->post_type ) {
285
+			return;
286
+		}
266 287
 
267 288
 		// Force comment to be approved
268 289
 		wp_set_comment_status( $comment_id, 'approve' );
@@ -360,7 +381,9 @@  discard block
 block discarded – undo
360 381
 	 */
361 382
 	private function view_message( $message_id, $user_id = 0) {
362 383
 
363
-		if( ! is_user_logged_in() ) return false;
384
+		if( ! is_user_logged_in() ) {
385
+			return false;
386
+		}
364 387
 
365 388
 		if( $user_id == 0 ) {
366 389
 			global $current_user;
@@ -424,9 +447,7 @@  discard block
 block discarded – undo
424 447
 
425 448
                 wp_redirect($my_courses_url, 303);
426 449
                 exit;
427
-            }
428
-
429
-            else {
450
+            } else {
430 451
 
431 452
                 wp_redirect(home_url('/wp-login.php'), 303);
432 453
                 exit;
@@ -442,7 +463,9 @@  discard block
 block discarded – undo
442 463
 	public function message_list( $query ) {
443 464
 		global $current_user;
444 465
 
445
-		if( is_admin() ) return;
466
+		if( is_admin() ) {
467
+			return;
468
+		}
446 469
 
447 470
 		if( is_post_type_archive( $this->post_type ) && $query->is_main_query() ) {
448 471
 			wp_get_current_user();
Please login to merge, or discard this patch.
Indentation   +222 added lines, -222 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@  discard block
 block discarded – undo
21 21
 	 * @since  1.6.0
22 22
 	 */
23 23
 	public function __construct () {
24
-        $this->token = 'messages';
24
+		$this->token = 'messages';
25 25
 		$this->post_type = 'sensei_message';
26 26
 		$this->meta_fields = array( 'sender', 'receiver' );
27 27
 
@@ -36,11 +36,11 @@  discard block
 block discarded – undo
36 36
 		// Monitor when new reply is posted
37 37
 		add_action( 'comment_post', array( $this, 'message_reply_received' ), 10, 1 );
38 38
 
39
-        // Block WordPress from sending comment update emails for the messages post type
40
-        add_filter('comment_notification_recipients', array( $this, 'stop_wp_comment_emails' ),  20, 2  );
39
+		// Block WordPress from sending comment update emails for the messages post type
40
+		add_filter('comment_notification_recipients', array( $this, 'stop_wp_comment_emails' ),  20, 2  );
41 41
 
42
-        // Block WordPress from sending comment moderator emails on the sensei messages post types
43
-        add_filter('comment_moderation_recipients', array( $this, 'stop_wp_comment_emails' ),  20, 2  );
42
+		// Block WordPress from sending comment moderator emails on the sensei messages post types
43
+		add_filter('comment_moderation_recipients', array( $this, 'stop_wp_comment_emails' ),  20, 2  );
44 44
 
45 45
 		// Process saving of message posts
46 46
 		add_action( 'save_post', array( $this, 'save_message' ) );
@@ -48,20 +48,20 @@  discard block
 block discarded – undo
48 48
 		// Add message links to courses & lessons
49 49
 		add_action( 'sensei_single_course_content_inside_before', array( $this, 'send_message_link' ), 35 );
50 50
 
51
-        // add message link to lesson
52
-        add_action( 'sensei_single_lesson_content_inside_before', array( $this, 'send_message_link' ), 30, 2 );
51
+		// add message link to lesson
52
+		add_action( 'sensei_single_lesson_content_inside_before', array( $this, 'send_message_link' ), 30, 2 );
53 53
 
54
-        // add message link to lesson
55
-        add_action( 'sensei_single_quiz_questions_before', array( $this, 'send_message_link' ), 10, 2 );
54
+		// add message link to lesson
55
+		add_action( 'sensei_single_quiz_questions_before', array( $this, 'send_message_link' ), 10, 2 );
56 56
 
57 57
 		// Hide messages and replies from users who do not have access
58
-        add_action( 'template_redirect', array( $this, 'message_login' ), 10, 1 );
59
-        add_action( 'pre_get_posts', array( $this, 'message_list' ), 10, 1 );
60
-        add_filter( 'the_title', array( $this, 'message_title' ), 10, 2 );
61
-        add_filter( 'the_content', array( $this, 'message_content' ), 10, 1 );
62
-        add_filter( 'comments_array', array( $this, 'message_replies' ), 100, 1 );
63
-        add_filter( 'get_comments_number', array( $this, 'message_reply_count' ), 100, 2 );
64
-        add_filter( 'comments_open', array( $this, 'message_replies_open' ), 100, 2 );
58
+		add_action( 'template_redirect', array( $this, 'message_login' ), 10, 1 );
59
+		add_action( 'pre_get_posts', array( $this, 'message_list' ), 10, 1 );
60
+		add_filter( 'the_title', array( $this, 'message_title' ), 10, 2 );
61
+		add_filter( 'the_content', array( $this, 'message_content' ), 10, 1 );
62
+		add_filter( 'comments_array', array( $this, 'message_replies' ), 100, 1 );
63
+		add_filter( 'get_comments_number', array( $this, 'message_reply_count' ), 100, 2 );
64
+		add_filter( 'comments_open', array( $this, 'message_replies_open' ), 100, 2 );
65 65
 	} // End __construct()
66 66
 
67 67
 	public function add_menu_item() {
@@ -162,8 +162,8 @@  discard block
 block discarded – undo
162 162
 	public function send_message_link( $post_id = 0, $user_id = 0 ) {
163 163
 		global  $post;
164 164
 
165
-        // only show the link for the allowed post types:
166
-        $allowed_post_types = array('lesson', 'course', 'quiz');
165
+		// only show the link for the allowed post types:
166
+		$allowed_post_types = array('lesson', 'course', 'quiz');
167 167
 		if ( ! in_array( get_post_type() , $allowed_post_types ) ) {
168 168
 
169 169
 			return;
@@ -186,8 +186,8 @@  discard block
 block discarded – undo
186 186
 				} elseif( 'course' == $post->post_type ) {
187 187
 					$contact_button_text = __( 'Contact Course Teacher', 'woothemes-sensei' );
188 188
 				}else{
189
-                    $contact_button_text = __( 'Contact Teacher', 'woothemes-sensei' );
190
-                }
189
+					$contact_button_text = __( 'Contact Teacher', 'woothemes-sensei' );
190
+				}
191 191
 
192 192
 				$html .= '<p><a class="button send-message-button" href="' . esc_url($href) . '#private_message">' . $contact_button_text . '</a></p>';
193 193
 			}
@@ -212,19 +212,19 @@  discard block
 block discarded – undo
212 212
 
213 213
 		if( ! isset( $post->ID ) ) return $html;
214 214
 
215
-        //confirm private message
216
-        $confirmation = '';
217
-        if( isset( $_GET[ 'send' ] ) && 'complete' == $_GET[ 'send' ] ) {
215
+		//confirm private message
216
+		$confirmation = '';
217
+		if( isset( $_GET[ 'send' ] ) && 'complete' == $_GET[ 'send' ] ) {
218 218
 
219
-            $confirmation_message = __('Your private message has been sent.', 'woothemes-sensei');
220
-            $confirmation = '<div class="sensei-message tick">' . $confirmation_message . '</div>';
219
+			$confirmation_message = __('Your private message has been sent.', 'woothemes-sensei');
220
+			$confirmation = '<div class="sensei-message tick">' . $confirmation_message . '</div>';
221 221
 
222
-        }
222
+		}
223 223
 
224 224
 		$html .= '<h3 id="private_message">' . __( 'Send Private Message', 'woothemes-sensei' ) . '</h3>';
225
-        $html .= '<p>';
226
-        $html .=  $confirmation;
227
-        $html .= '</p>';
225
+		$html .= '<p>';
226
+		$html .=  $confirmation;
227
+		$html .= '</p>';
228 228
 		$html .= '<form name="contact-teacher" action="" method="post" class="contact-teacher">';
229 229
 			$html .= '<p class="form-row form-row-wide">';
230 230
 				$html .= '<textarea name="contact_message" placeholder="' . __( 'Enter your private message.', 'woothemes-sensei' ) . '"></textarea>';
@@ -255,7 +255,7 @@  discard block
 block discarded – undo
255 255
 	public function message_reply_received( $comment_id = 0 ) {
256 256
 
257 257
 		// Get comment object
258
-    	$comment = get_comment( $comment_id );
258
+		$comment = get_comment( $comment_id );
259 259
 
260 260
 		if( is_null( $comment ) ) return;
261 261
 
@@ -270,87 +270,87 @@  discard block
 block discarded – undo
270 270
 		do_action( 'sensei_private_message_reply', $comment, $message );
271 271
 	}
272 272
 
273
-    /**
274
-     * This function stops WordPress from sending the default comment update emails.
275
-     *
276
-     * This function is hooked into comment_notification_recipients. It will simply return
277
-     * an empty array if the current passed in comment is on a message post type.
278
-     *
279
-     * @param array $emails
280
-     * @param int $comment_id
281
-     * @return array;
282
-     */
283
-    public function stop_wp_comment_emails( $emails , $comment_id ){
273
+	/**
274
+	 * This function stops WordPress from sending the default comment update emails.
275
+	 *
276
+	 * This function is hooked into comment_notification_recipients. It will simply return
277
+	 * an empty array if the current passed in comment is on a message post type.
278
+	 *
279
+	 * @param array $emails
280
+	 * @param int $comment_id
281
+	 * @return array;
282
+	 */
283
+	public function stop_wp_comment_emails( $emails , $comment_id ){
284 284
 
285
-        $comment = get_comment( $comment_id );
286
-        if( isset( $comment->comment_post_ID ) &&
287
-            'sensei_message' == get_post_type( $comment->comment_post_ID )  ){
285
+		$comment = get_comment( $comment_id );
286
+		if( isset( $comment->comment_post_ID ) &&
287
+			'sensei_message' == get_post_type( $comment->comment_post_ID )  ){
288 288
 
289
-            // empty the emails array to ensure no emails are sent for this comment
290
-            $emails = array();
289
+			// empty the emails array to ensure no emails are sent for this comment
290
+			$emails = array();
291 291
 
292
-        }
293
-        return $emails;
292
+		}
293
+		return $emails;
294 294
 
295
-    }// end stop_wp_comment_emails
295
+	}// end stop_wp_comment_emails
296 296
 
297 297
 	/**
298
-     * Save new message post
299
-     * @param  integer $sender_id   ID of sender
300
-     * @param  integer $receiver_id ID of receiver
301
-     * @param  string  $message     Message content
302
-     * @param  string  $post_id     ID of post related to message
303
-     * @return mixed                Message ID on success, boolean false on failure
304
-     */
305
-    private function save_new_message_post( $sender_id = 0, $receiver_id = 0, $message = '', $post_id = 0 ) {
298
+	 * Save new message post
299
+	 * @param  integer $sender_id   ID of sender
300
+	 * @param  integer $receiver_id ID of receiver
301
+	 * @param  string  $message     Message content
302
+	 * @param  string  $post_id     ID of post related to message
303
+	 * @return mixed                Message ID on success, boolean false on failure
304
+	 */
305
+	private function save_new_message_post( $sender_id = 0, $receiver_id = 0, $message = '', $post_id = 0 ) {
306 306
 
307
-    	$message_id = false;
307
+		$message_id = false;
308 308
 
309
-    	if( $sender_id && $receiver_id && $message && $post_id ) {
309
+		if( $sender_id && $receiver_id && $message && $post_id ) {
310 310
 
311
-    		$title = wp_trim_words( $message, 8, '...' );
311
+			$title = wp_trim_words( $message, 8, '...' );
312 312
 
313
-    		// Set up post data for message
314
-	    	$message_data = array(
315
-	            'post_type'      => $this->post_type,
316
-	            'post_title'     => esc_html( $title ),
317
-	            'post_content'   => esc_html( $message ),
318
-	            'post_status'    => 'publish',
319
-	            'ping_status'    => 'closed',
320
-	            'comment_status' => 'open',
321
-	            'post_excerpt'   => '',
322
-	            'post_author'	 => intval( $sender_id )
323
-	        );
313
+			// Set up post data for message
314
+			$message_data = array(
315
+				'post_type'      => $this->post_type,
316
+				'post_title'     => esc_html( $title ),
317
+				'post_content'   => esc_html( $message ),
318
+				'post_status'    => 'publish',
319
+				'ping_status'    => 'closed',
320
+				'comment_status' => 'open',
321
+				'post_excerpt'   => '',
322
+				'post_author'	 => intval( $sender_id )
323
+			);
324 324
 
325
-	    	// Insert post
326
-	        $message_id = wp_insert_post( $message_data );
325
+			// Insert post
326
+			$message_id = wp_insert_post( $message_data );
327 327
 
328
-	        if( ! is_wp_error( $message_id ) ) {
328
+			if( ! is_wp_error( $message_id ) ) {
329 329
 
330
-	        	// Add sender to message meta
331
-	        	$sender = get_userdata( $sender_id );
332
-	        	add_post_meta( $message_id, '_sender', $sender->user_login );
330
+				// Add sender to message meta
331
+				$sender = get_userdata( $sender_id );
332
+				add_post_meta( $message_id, '_sender', $sender->user_login );
333 333
 
334
-	        	// Add receiver to message meta
335
-	        	$receiver = get_userdata( $receiver_id );
336
-		        add_post_meta( $message_id, '_receiver', $receiver->user_login );
334
+				// Add receiver to message meta
335
+				$receiver = get_userdata( $receiver_id );
336
+				add_post_meta( $message_id, '_receiver', $receiver->user_login );
337 337
 
338
-		        // Add lesson/course ID to message meta
339
-		        $post = get_post( $post_id );
340
-		        add_post_meta( $message_id, '_posttype', $post->post_type );
341
-		        add_post_meta( $message_id, '_post', $post->ID );
338
+				// Add lesson/course ID to message meta
339
+				$post = get_post( $post_id );
340
+				add_post_meta( $message_id, '_posttype', $post->post_type );
341
+				add_post_meta( $message_id, '_post', $post->ID );
342 342
 
343
-		        do_action( 'sensei_new_private_message', $message_id );
343
+				do_action( 'sensei_new_private_message', $message_id );
344 344
 
345
-		    } else {
345
+			} else {
346 346
 
347
-		    	$message_id = false;
347
+				$message_id = false;
348 348
 
349
-		    }
350
-	    }
349
+			}
350
+		}
351 351
 
352
-	    return $message_id;
353
-    }
352
+		return $message_id;
353
+	}
354 354
 
355 355
 	/**
356 356
 	 * Check if user has access to view this message
@@ -389,56 +389,56 @@  discard block
 block discarded – undo
389 389
 		remove_meta_box('commentstatusdiv', $this->post_type, 'normal');
390 390
 	}
391 391
 
392
-    /**
393
-     * Function message_login()
394
-     *
395
-     * Only show /messages/* to logged in users, and
396
-     * redirect logged out users to wp-login.php
397
-     *
398
-     * @since 1.9.0
399
-     * @param  none
400
-     * @return void
401
-     */
392
+	/**
393
+	 * Function message_login()
394
+	 *
395
+	 * Only show /messages/* to logged in users, and
396
+	 * redirect logged out users to wp-login.php
397
+	 *
398
+	 * @since 1.9.0
399
+	 * @param  none
400
+	 * @return void
401
+	 */
402 402
 
403
-    public function message_login () {
403
+	public function message_login () {
404 404
 
405
-        if ( is_user_logged_in() ) {
405
+		if ( is_user_logged_in() ) {
406 406
 
407
-            return;
408
-        }
407
+			return;
408
+		}
409 409
 
410
-        $settings = Sensei()->settings->get_settings();
411
-        if( isset( $settings[ 'my_course_page' ] )
412
-            && 0 < intval( $settings[ 'my_course_page' ] ) ){
410
+		$settings = Sensei()->settings->get_settings();
411
+		if( isset( $settings[ 'my_course_page' ] )
412
+			&& 0 < intval( $settings[ 'my_course_page' ] ) ){
413 413
 
414
-            $my_courses_page_id = $settings[ 'my_course_page' ];
414
+			$my_courses_page_id = $settings[ 'my_course_page' ];
415 415
 
416
-            $my_courses_url = get_permalink($my_courses_page_id);
416
+			$my_courses_url = get_permalink($my_courses_page_id);
417 417
 
418
-        }
418
+		}
419 419
 
420
-        if ( is_single() && is_singular( $this->post_type )
421
-            || is_post_type_archive( $this->post_type ) ) {
420
+		if ( is_single() && is_singular( $this->post_type )
421
+			|| is_post_type_archive( $this->post_type ) ) {
422 422
 
423
-            if ( isset($my_courses_url) ) {
423
+			if ( isset($my_courses_url) ) {
424 424
 
425
-                wp_redirect($my_courses_url, 303);
426
-                exit;
427
-            }
425
+				wp_redirect($my_courses_url, 303);
426
+				exit;
427
+			}
428 428
 
429
-            else {
429
+			else {
430 430
 
431
-                wp_redirect(home_url('/wp-login.php'), 303);
432
-                exit;
433
-            }
431
+				wp_redirect(home_url('/wp-login.php'), 303);
432
+				exit;
433
+			}
434 434
 
435
-        }
436
-    }
435
+		}
436
+	}
437 437
 	/**
438
-     * Only show allowed messages in messages archive
439
-     * @param  WP_Query $query Original query
440
-     * @return void
441
-     */
438
+	 * Only show allowed messages in messages archive
439
+	 * @param  WP_Query $query Original query
440
+	 * @return void
441
+	 */
442 442
 	public function message_list( $query ) {
443 443
 		global $current_user;
444 444
 
@@ -555,17 +555,17 @@  discard block
 block discarded – undo
555 555
 		return $open;
556 556
 	}
557 557
 
558
-    /**
559
-     * Print outthe message was sent by $sender_username on the
560
-     *
561
-     * @since 1.9.0
562
-     */
563
-    public static function the_message_sent_by_title(){
558
+	/**
559
+	 * Print outthe message was sent by $sender_username on the
560
+	 *
561
+	 * @since 1.9.0
562
+	 */
563
+	public static function the_message_sent_by_title(){
564 564
 
565
-        $sender_username = get_post_meta( get_the_ID() , '_sender', true );
566
-        if( $sender_username ) {
565
+		$sender_username = get_post_meta( get_the_ID() , '_sender', true );
566
+		if( $sender_username ) {
567 567
 
568
-            $sender = get_user_by( 'login', $sender_username ); ?>
568
+			$sender = get_user_by( 'login', $sender_username ); ?>
569 569
 
570 570
             <p class="message-meta">
571 571
                 <small>
@@ -577,41 +577,41 @@  discard block
 block discarded – undo
577 577
 
578 578
         <?php }
579 579
 
580
-    }
580
+	}
581 581
 
582
-    /**
583
-     * sensei_single_title output for single page title
584
-     * @since  1.1.0
585
-     * @return void
586
-     * @deprecate
587
-     */
588
-    public static function the_title() {
582
+	/**
583
+	 * sensei_single_title output for single page title
584
+	 * @since  1.1.0
585
+	 * @return void
586
+	 * @deprecate
587
+	 */
588
+	public static function the_title() {
589 589
 
590
-        global $post;
590
+		global $post;
591 591
 
592
-        $content_post_id = get_post_meta( $post->ID, '_post', true );
593
-        if( $content_post_id ) {
594
-            $title = sprintf( __( 'Re: %1$s', 'woothemes-sensei' ), '<a href="' . get_permalink( $content_post_id ) . '">' . get_the_title( $content_post_id ) . '</a>' );
595
-        } else {
596
-            $title = get_the_title( $post->ID );
597
-        }
592
+		$content_post_id = get_post_meta( $post->ID, '_post', true );
593
+		if( $content_post_id ) {
594
+			$title = sprintf( __( 'Re: %1$s', 'woothemes-sensei' ), '<a href="' . get_permalink( $content_post_id ) . '">' . get_the_title( $content_post_id ) . '</a>' );
595
+		} else {
596
+			$title = get_the_title( $post->ID );
597
+		}
598 598
 
599
-        ?>
599
+		?>
600 600
         <header>
601 601
 
602 602
             <h1>
603 603
 
604 604
                 <?php
605
-                /**
606
-                 * Filter Sensei single title
607
-                 *
608
-                 * @since 1.8.0
609
-                 * @param string $title
610
-                 * @param string $template
611
-                 * @param string $post_type
612
-                 */
613
-                echo apply_filters( 'sensei_single_title', $title, $post->post_type );
614
-                ?>
605
+				/**
606
+				 * Filter Sensei single title
607
+				 *
608
+				 * @since 1.8.0
609
+				 * @param string $title
610
+				 * @param string $template
611
+				 * @param string $post_type
612
+				 */
613
+				echo apply_filters( 'sensei_single_title', $title, $post->post_type );
614
+				?>
615 615
 
616 616
             </h1>
617 617
 
@@ -619,52 +619,52 @@  discard block
 block discarded – undo
619 619
 
620 620
         <?php
621 621
 
622
-    } // End sensei_single_title()
622
+	} // End sensei_single_title()
623 623
 
624
-    /**
625
-     * Generates the my messages
626
-     * archive header.
627
-     *
628
-     * @since 1.9.0
629
-     *
630
-     * @return string
631
-     */
632
-    public static function the_archive_header( ){
624
+	/**
625
+	 * Generates the my messages
626
+	 * archive header.
627
+	 *
628
+	 * @since 1.9.0
629
+	 *
630
+	 * @return string
631
+	 */
632
+	public static function the_archive_header( ){
633 633
 
634
-        $html = '';
635
-        $html .= '<header class="archive-header"><h1>';
636
-        $html .= __( 'My Messages', 'woothemes-sensei' );
637
-        $html .= '</h1></header>';
634
+		$html = '';
635
+		$html .= '<header class="archive-header"><h1>';
636
+		$html .= __( 'My Messages', 'woothemes-sensei' );
637
+		$html .= '</h1></header>';
638 638
 
639
-        /**
640
-         * Filter the sensei messages archive title.
641
-         * @since 1.0.0
642
-         */
643
-        echo apply_filters( 'sensei_message_archive_title', $html );
639
+		/**
640
+		 * Filter the sensei messages archive title.
641
+		 * @since 1.0.0
642
+		 */
643
+		echo apply_filters( 'sensei_message_archive_title', $html );
644 644
 
645
-    } // get_archive_header()
645
+	} // get_archive_header()
646 646
 
647
-    /**
648
-     * Output the title for a message given the post_id.
649
-     *
650
-     * @since 1.9.0
651
-     * @param $post_id
652
-     */
653
-    public static function the_message_title( $message_post_id ){
647
+	/**
648
+	 * Output the title for a message given the post_id.
649
+	 *
650
+	 * @since 1.9.0
651
+	 * @param $post_id
652
+	 */
653
+	public static function the_message_title( $message_post_id ){
654 654
 
655
-        $content_post_id = get_post_meta( $message_post_id, '_post', true );
655
+		$content_post_id = get_post_meta( $message_post_id, '_post', true );
656 656
 
657
-        if( $content_post_id ) {
657
+		if( $content_post_id ) {
658 658
 
659
-            $title = sprintf( __( 'Re: %1$s', 'woothemes-sensei' ), get_the_title( $content_post_id ) );
659
+			$title = sprintf( __( 'Re: %1$s', 'woothemes-sensei' ), get_the_title( $content_post_id ) );
660 660
 
661
-        } else {
661
+		} else {
662 662
 
663
-            $title = get_the_title( $message_post_id );
663
+			$title = get_the_title( $message_post_id );
664 664
 
665
-        }
665
+		}
666 666
 
667
-        ?>
667
+		?>
668 668
         <h2>
669 669
             <a href="<?php esc_url( get_permalink( $message_post_id ) );?>">
670 670
                 <?php echo  $title; ?>
@@ -673,21 +673,21 @@  discard block
 block discarded – undo
673 673
         </h2>
674 674
 
675 675
         <?php
676
-    } //end the_message_header
676
+	} //end the_message_header
677 677
 
678
-    /**
679
-     * Output the message sender given the post id.
680
-     *
681
-     * @param $message_post_id
682
-     */
683
-    public  static function the_message_sender( $message_post_id ){
678
+	/**
679
+	 * Output the message sender given the post id.
680
+	 *
681
+	 * @param $message_post_id
682
+	 */
683
+	public  static function the_message_sender( $message_post_id ){
684 684
 
685
-        $sender_username = get_post_meta( $message_post_id, '_sender', true );
686
-        $sender = get_user_by( 'login', $sender_username );
685
+		$sender_username = get_post_meta( $message_post_id, '_sender', true );
686
+		$sender = get_user_by( 'login', $sender_username );
687 687
 
688
-        if( $sender_username && $sender instanceof WP_User ) {
689
-            $sender_display_name = sprintf( __( 'Sent by %1$s on %2$s.', 'woothemes-sensei' ), $sender->display_name, get_the_date() );
690
-            ?>
688
+		if( $sender_username && $sender instanceof WP_User ) {
689
+			$sender_display_name = sprintf( __( 'Sent by %1$s on %2$s.', 'woothemes-sensei' ), $sender->display_name, get_the_date() );
690
+			?>
691 691
             <p class="message-meta">
692 692
                 <small>
693 693
                     <em> <?php echo $sender_display_name; ?> </em>
@@ -695,18 +695,18 @@  discard block
 block discarded – undo
695 695
             </p>
696 696
 
697 697
             <?php
698
-        } // end if
699
-
700
-    } // end the_message_archive_sender
701
-
702
-    /**
703
-     * Link to the users my messages page
704
-     *
705
-     * @since 1.9.0
706
-     */
707
-    public static function the_my_messages_link(){
708
-        if( ! Sensei()->settings->get('messages_disable')  ) {
709
-            ?>
698
+		} // end if
699
+
700
+	} // end the_message_archive_sender
701
+
702
+	/**
703
+	 * Link to the users my messages page
704
+	 *
705
+	 * @since 1.9.0
706
+	 */
707
+	public static function the_my_messages_link(){
708
+		if( ! Sensei()->settings->get('messages_disable')  ) {
709
+			?>
710 710
             <p class="my-messages-link-container">
711 711
                 <a class="my-messages-link" href="<?php echo get_post_type_archive_link( 'sensei_message' ); ?>"
712 712
                    title="<?php _e( 'View & reply to private messages sent to your course & lesson teachers.', 'woothemes-sensei' ); ?>">
@@ -714,8 +714,8 @@  discard block
 block discarded – undo
714 714
                 </a>
715 715
             </p>
716 716
             <?php
717
-        }
718
-    }
717
+		}
718
+	}
719 719
 
720 720
 } // End Class
721 721
 
Please login to merge, or discard this patch.
includes/class-sensei-question.php 4 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
      * This function simply loads the question type template
403 403
      *
404 404
      * @since 1.9.0
405
-     * @param $question_type
405
+     * @param string $question_type
406 406
      */
407 407
     public static function load_question_template( $question_type ){
408 408
 
@@ -487,7 +487,7 @@  discard block
 block discarded – undo
487 487
      * Get the questions media markup
488 488
      *
489 489
      * @since 1.9.0
490
-     * @param $question_id
490
+     * @param string $question_id
491 491
      * @return string
492 492
      */
493 493
     public static function get_the_question_media( $question_id ){
Please login to merge, or discard this patch.
Braces   +15 added lines, -10 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Sensei Question Class
@@ -211,7 +214,9 @@  discard block
 block discarded – undo
211 214
 
212 215
 			$lesson_id = get_post_meta( $quiz, '_quiz_lesson', true );
213 216
 
214
-			if( ! $lesson_id ) continue;
217
+			if( ! $lesson_id ) {
218
+				continue;
219
+			}
215 220
 
216 221
 			$lessons[ $lesson_id ]['title'] = get_the_title( $lesson_id );
217 222
 			$lessons[ $lesson_id ]['link'] = admin_url( 'post.php?post=' . $lesson_id . '&action=edit' );
@@ -880,7 +885,7 @@  discard block
 block discarded – undo
880 885
 
881 886
                 $merged_options = array_merge( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
882 887
 
883
-            }  else {
888
+            } else {
884 889
 
885 890
                 array_push( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
886 891
                 $merged_options = $question_data[ 'question_wrong_answers' ];
@@ -908,7 +913,7 @@  discard block
 block discarded – undo
908 913
 
909 914
                         $user_correct = true;
910 915
 
911
-                    }  else if( $question_data[ 'user_question_grade' ] > 0 ) {
916
+                    } else if( $question_data[ 'user_question_grade' ] > 0 ) {
912 917
 
913 918
                         $user_correct = true;
914 919
 
@@ -923,7 +928,7 @@  discard block
 block discarded – undo
923 928
 
924 929
                         $answer_class .= ' right_answer';
925 930
 
926
-                    }  elseif( !is_array($question_data['question_right_answer']) && $question_data['question_right_answer'] == $answer ) {
931
+                    } elseif( !is_array($question_data['question_right_answer']) && $question_data['question_right_answer'] == $answer ) {
927 932
 
928 933
                         $answer_class .= ' right_answer';
929 934
 
@@ -1006,13 +1011,13 @@  discard block
 block discarded – undo
1006 1011
                             }
1007 1012
                         }
1008 1013
 
1009
-                    }else{
1014
+                    } else{
1010 1015
 
1011 1016
                         $answer_options_sorted = $question_answers_options;
1012 1017
 
1013 1018
                     }
1014 1019
 
1015
-                }else{
1020
+                } else{
1016 1021
 
1017 1022
                     $answer_options_sorted = $question_answers_options;
1018 1023
 
@@ -1075,12 +1080,12 @@  discard block
 block discarded – undo
1075 1080
 
1076 1081
             $right_answer = ucfirst($right_answer);
1077 1082
 
1078
-        }elseif( 'multiple-choice' == $type ) {
1083
+        } elseif( 'multiple-choice' == $type ) {
1079 1084
 
1080 1085
             $right_answer = (array) $right_answer;
1081 1086
             $right_answer = implode( ', ', $right_answer );
1082 1087
 
1083
-        }elseif( 'gap-fill' == $type ) {
1088
+        } elseif( 'gap-fill' == $type ) {
1084 1089
 
1085 1090
             $right_answer_array = explode( '||', $right_answer );
1086 1091
             if ( isset( $right_answer_array[0] ) ) { $gapfill_pre = $right_answer_array[0]; } else { $gapfill_pre = ''; }
@@ -1089,7 +1094,7 @@  discard block
 block discarded – undo
1089 1094
 
1090 1095
             $right_answer = $gapfill_pre . ' <span class="highlight">' . $gapfill_gap . '</span> ' . $gapfill_post;
1091 1096
 
1092
-        }else{
1097
+        } else{
1093 1098
 
1094 1099
             // for non auto gradable question types no answer should be returned.
1095 1100
             $right_answer = '';
Please login to merge, or discard this patch.
Indentation   +567 added lines, -567 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
 	 * @since  1.0.0
21 21
 	 */
22 22
 	public function __construct () {
23
-        $this->token = 'question';
23
+		$this->token = 'question';
24 24
 		$this->question_types = $this->question_types();
25 25
 		$this->meta_fields = array( 'question_right_answer', 'question_wrong_answers' );
26 26
 		if ( is_admin() ) {
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
 
118 118
 			if( isset( $post->ID ) ) {
119 119
 
120
-                $question_type = Sensei()->question->get_question_type( $post->ID );
120
+				$question_type = Sensei()->question->get_question_type( $post->ID );
121 121
 
122 122
 				if( $question_type ) {
123 123
 					$type = $this->question_types[ $question_type ];
@@ -237,15 +237,15 @@  discard block
 block discarded – undo
237 237
 	public function save_question( $post_id = 0 ) {
238 238
 
239 239
 		if( ! isset( $_POST['post_type']
240
-            ) || 'question' != $_POST['post_type'] ) {
241
-            return;
242
-        }
240
+			) || 'question' != $_POST['post_type'] ) {
241
+			return;
242
+		}
243 243
 
244 244
 
245 245
 
246
-        //setup the data for saving
246
+		//setup the data for saving
247 247
 		$data = $_POST ;
248
-        $data['quiz_id'] = 0;
248
+		$data['quiz_id'] = 0;
249 249
 		$data['question_id'] = $post_id;
250 250
 
251 251
 		if ( ! wp_is_post_revision( $post_id ) ){
@@ -339,34 +339,34 @@  discard block
 block discarded – undo
339 339
 		return $request;
340 340
 	}
341 341
 
342
-    /**
343
-     * Get the type of question by id
344
-     *
345
-     * This function uses the post terms to determine which question type
346
-     * the passed question id belongs to.
347
-     *
348
-     * @since 1.7.4
349
-     *
350
-     * @param int $question_id
351
-     *
352
-     * @return string $question_type | bool
353
-     */
354
-    public function get_question_type( $question_id ){
355
-
356
-        if( empty( $question_id ) || ! intval( $question_id ) > 0
357
-            || 'question' != get_post_type( $question_id )   ){
358
-            return false;
359
-        }
360
-
361
-        $question_type = 'multiple-choice';
362
-        $question_types = wp_get_post_terms( $question_id, 'question-type' );
363
-        foreach( $question_types as $type ) {
364
-            $question_type = $type->slug;
365
-        }
366
-
367
-        return $question_type;
368
-
369
-    }// end get_question_type
342
+	/**
343
+	 * Get the type of question by id
344
+	 *
345
+	 * This function uses the post terms to determine which question type
346
+	 * the passed question id belongs to.
347
+	 *
348
+	 * @since 1.7.4
349
+	 *
350
+	 * @param int $question_id
351
+	 *
352
+	 * @return string $question_type | bool
353
+	 */
354
+	public function get_question_type( $question_id ){
355
+
356
+		if( empty( $question_id ) || ! intval( $question_id ) > 0
357
+			|| 'question' != get_post_type( $question_id )   ){
358
+			return false;
359
+		}
360
+
361
+		$question_type = 'multiple-choice';
362
+		$question_types = wp_get_post_terms( $question_id, 'question-type' );
363
+		foreach( $question_types as $type ) {
364
+			$question_type = $type->slug;
365
+		}
366
+
367
+		return $question_type;
368
+
369
+	}// end get_question_type
370 370
 
371 371
 	/**
372 372
 	 * Given a question ID, return the grade that can be achieved.
@@ -398,317 +398,317 @@  discard block
 block discarded – undo
398 398
 	} // end get_question_grade
399 399
 
400 400
 
401
-    /**
402
-     * This function simply loads the question type template
403
-     *
404
-     * @since 1.9.0
405
-     * @param $question_type
406
-     */
407
-    public static function load_question_template( $question_type ){
408
-
409
-        Sensei_Templates::get_template  ( 'single-quiz/question_type-' . $question_type . '.php' );
410
-    }
411
-
412
-    /**
413
-     * Echo the sensei question title.
414
-     *
415
-     * @uses WooThemes_Sensei_Question::get_the_question_title
416
-     *
417
-     * @since 1.9.0
418
-     * @param $question_id
419
-     */
420
-    public static function the_question_title( $question_id ){
421
-
422
-        echo self::get_the_question_title( $question_id );
423
-
424
-    }// end the_question_title
425
-
426
-    /**
427
-     * Generate the question title with it's grade.
428
-     *
429
-     * @since 1.9.0
430
-     *
431
-     * @param $question_id
432
-     * @return string
433
-     */
434
-    public static function get_the_question_title( $question_id ){
435
-
436
-        /**
437
-         * Filter the sensei question title
438
-         *
439
-         * @since 1.3.0
440
-         * @param $question_title
441
-         */
442
-        $title = apply_filters( 'sensei_question_title', get_the_title( $question_id ) );
443
-
444
-        /**
445
-         * hook document in class-woothemes-sensei-message.php the_title()
446
-         */
447
-        $title = apply_filters( 'sensei_single_title', $title, 'question');
448
-
449
-        $title_html  = '<span class="question question-title">';
450
-        $title_html .= $title;
451
-        $title_html .= '<span class="grade"><?php sensi_the_question_grade()?></span>';
452
-        $title_html .='</span>';
453
-
454
-        return $title_html;
455
-    }
456
-
457
-    /**
458
-     * Tech the question description
459
-     *
460
-     * @param $question_id
461
-     * @return string
462
-     */
463
-    public static function get_the_question_description( $question_id ){
464
-
465
-        $question = get_post( $question_id );
466
-
467
-        /**
468
-         * Already documented within WordPress Core
469
-         */
470
-        return apply_filters( 'the_content', $question->post_content );
471
-
472
-    }
473
-
474
-    /**
475
-     * Output the question description
476
-     *
477
-     * @since 1.9.0
478
-     * @param $question_id
479
-     */
480
-    public static function the_question_description( $question_id  ){
481
-
482
-        echo self::get_the_question_description( $question_id );
483
-
484
-    }
485
-
486
-    /**
487
-     * Get the questions media markup
488
-     *
489
-     * @since 1.9.0
490
-     * @param $question_id
491
-     * @return string
492
-     */
493
-    public static function get_the_question_media( $question_id ){
494
-
495
-        $question_media = get_post_meta( $question_id, '_question_media', true );
496
-        $question_media_link = '';
497
-        if( 0 < intval( $question_media ) ) {
498
-            $mimetype = get_post_mime_type( $question_media );
499
-            if( $mimetype ) {
500
-                $mimetype_array = explode( '/', $mimetype);
501
-                if( isset( $mimetype_array[0] ) && $mimetype_array[0] ) {
502
-                    $question_media_type = $mimetype_array[0];
503
-                    $question_media_url = wp_get_attachment_url( $question_media );
504
-                    $attachment = get_post( $question_media );
505
-                    $question_media_title = $attachment->post_title;
506
-                    $question_media_description = $attachment->post_content;
507
-                    switch( $question_media_type ) {
508
-                        case 'image':
509
-                            $image_size = apply_filters( 'sensei_question_image_size', 'medium', $question_id );
510
-                            $attachment_src = wp_get_attachment_image_src( $question_media, $image_size );
511
-                            $question_media_link = '<a class="' . esc_attr( $question_media_type ) . '" title="' . esc_attr( $question_media_title ) . '" href="' . esc_url( $question_media_url ) . '" target="_blank"><img src="' . $attachment_src[0] . '" width="' . $attachment_src[1] . '" height="' . $attachment_src[2] . '" /></a>';
512
-                            break;
513
-
514
-                        case 'audio':
515
-                            $question_media_link = wp_audio_shortcode( array( 'src' => $question_media_url ) );
516
-                            break;
517
-
518
-                        case 'video':
519
-                            $question_media_link = wp_video_shortcode( array( 'src' => $question_media_url ) );
520
-                            break;
521
-
522
-                        default:
523
-                            $question_media_filename = basename( $question_media_url );
524
-                            $question_media_link = '<a class="' . esc_attr( $question_media_type ) . '" title="' . esc_attr( $question_media_title ) . '" href="' . esc_url( $question_media_url ) . '" target="_blank">' . $question_media_filename . '</a>';
525
-                            break;
526
-                    }
527
-                }
528
-            }
529
-        }
530
-
531
-        $output = '';
532
-        if( $question_media_link ) {
533
-
534
-                $output .= '<div class="question_media_display">';
535
-                $output .=      $question_media_link;
536
-                $output .= '<dl>';
537
-
538
-                if( $question_media_title ) {
539
-
540
-                   $output .= '<dt>'. $question_media_title. '</dt>';
541
-
542
-                 }
543
-
544
-                if( $question_media_description ) {
545
-
546
-                    $output .= '<dd>' . $question_media_description . '</dd>';
547
-
548
-                }
549
-
550
-                $output .= '</dl>';
551
-                $output .= '</div>';
401
+	/**
402
+	 * This function simply loads the question type template
403
+	 *
404
+	 * @since 1.9.0
405
+	 * @param $question_type
406
+	 */
407
+	public static function load_question_template( $question_type ){
408
+
409
+		Sensei_Templates::get_template  ( 'single-quiz/question_type-' . $question_type . '.php' );
410
+	}
411
+
412
+	/**
413
+	 * Echo the sensei question title.
414
+	 *
415
+	 * @uses WooThemes_Sensei_Question::get_the_question_title
416
+	 *
417
+	 * @since 1.9.0
418
+	 * @param $question_id
419
+	 */
420
+	public static function the_question_title( $question_id ){
421
+
422
+		echo self::get_the_question_title( $question_id );
423
+
424
+	}// end the_question_title
425
+
426
+	/**
427
+	 * Generate the question title with it's grade.
428
+	 *
429
+	 * @since 1.9.0
430
+	 *
431
+	 * @param $question_id
432
+	 * @return string
433
+	 */
434
+	public static function get_the_question_title( $question_id ){
435
+
436
+		/**
437
+		 * Filter the sensei question title
438
+		 *
439
+		 * @since 1.3.0
440
+		 * @param $question_title
441
+		 */
442
+		$title = apply_filters( 'sensei_question_title', get_the_title( $question_id ) );
443
+
444
+		/**
445
+		 * hook document in class-woothemes-sensei-message.php the_title()
446
+		 */
447
+		$title = apply_filters( 'sensei_single_title', $title, 'question');
448
+
449
+		$title_html  = '<span class="question question-title">';
450
+		$title_html .= $title;
451
+		$title_html .= '<span class="grade"><?php sensi_the_question_grade()?></span>';
452
+		$title_html .='</span>';
453
+
454
+		return $title_html;
455
+	}
456
+
457
+	/**
458
+	 * Tech the question description
459
+	 *
460
+	 * @param $question_id
461
+	 * @return string
462
+	 */
463
+	public static function get_the_question_description( $question_id ){
464
+
465
+		$question = get_post( $question_id );
466
+
467
+		/**
468
+		 * Already documented within WordPress Core
469
+		 */
470
+		return apply_filters( 'the_content', $question->post_content );
471
+
472
+	}
473
+
474
+	/**
475
+	 * Output the question description
476
+	 *
477
+	 * @since 1.9.0
478
+	 * @param $question_id
479
+	 */
480
+	public static function the_question_description( $question_id  ){
481
+
482
+		echo self::get_the_question_description( $question_id );
483
+
484
+	}
485
+
486
+	/**
487
+	 * Get the questions media markup
488
+	 *
489
+	 * @since 1.9.0
490
+	 * @param $question_id
491
+	 * @return string
492
+	 */
493
+	public static function get_the_question_media( $question_id ){
494
+
495
+		$question_media = get_post_meta( $question_id, '_question_media', true );
496
+		$question_media_link = '';
497
+		if( 0 < intval( $question_media ) ) {
498
+			$mimetype = get_post_mime_type( $question_media );
499
+			if( $mimetype ) {
500
+				$mimetype_array = explode( '/', $mimetype);
501
+				if( isset( $mimetype_array[0] ) && $mimetype_array[0] ) {
502
+					$question_media_type = $mimetype_array[0];
503
+					$question_media_url = wp_get_attachment_url( $question_media );
504
+					$attachment = get_post( $question_media );
505
+					$question_media_title = $attachment->post_title;
506
+					$question_media_description = $attachment->post_content;
507
+					switch( $question_media_type ) {
508
+						case 'image':
509
+							$image_size = apply_filters( 'sensei_question_image_size', 'medium', $question_id );
510
+							$attachment_src = wp_get_attachment_image_src( $question_media, $image_size );
511
+							$question_media_link = '<a class="' . esc_attr( $question_media_type ) . '" title="' . esc_attr( $question_media_title ) . '" href="' . esc_url( $question_media_url ) . '" target="_blank"><img src="' . $attachment_src[0] . '" width="' . $attachment_src[1] . '" height="' . $attachment_src[2] . '" /></a>';
512
+							break;
513
+
514
+						case 'audio':
515
+							$question_media_link = wp_audio_shortcode( array( 'src' => $question_media_url ) );
516
+							break;
517
+
518
+						case 'video':
519
+							$question_media_link = wp_video_shortcode( array( 'src' => $question_media_url ) );
520
+							break;
521
+
522
+						default:
523
+							$question_media_filename = basename( $question_media_url );
524
+							$question_media_link = '<a class="' . esc_attr( $question_media_type ) . '" title="' . esc_attr( $question_media_title ) . '" href="' . esc_url( $question_media_url ) . '" target="_blank">' . $question_media_filename . '</a>';
525
+							break;
526
+					}
527
+				}
528
+			}
529
+		}
530
+
531
+		$output = '';
532
+		if( $question_media_link ) {
552 533
 
534
+				$output .= '<div class="question_media_display">';
535
+				$output .=      $question_media_link;
536
+				$output .= '<dl>';
553 537
 
554
-         }
555
-
556
-        return $output;
557
-
558
-    } // end get_the_question_media
559
-
538
+				if( $question_media_title ) {
560 539
 
561
-    /**
562
-     * Output the question media
563
-     *
564
-     * @since 1.9.0
565
-     * @param string $question_id
566
-     */
567
-    public static function the_question_media( $question_id ){
540
+				   $output .= '<dt>'. $question_media_title. '</dt>';
568 541
 
569
-        echo self::get_the_question_media( $question_id );
542
+				 }
570 543
 
571
-    }
544
+				if( $question_media_description ) {
572 545
 
573
-    /**
574
-     * Output a special field for the question needed for question submission.
575
-     *
576
-     * @since 1.9.0
577
-     *
578
-     * @param $question_id
579
-     */
580
-    public static function the_question_hidden_fields( $question_id ){
581
-        ?>
546
+					$output .= '<dd>' . $question_media_description . '</dd>';
547
+
548
+				}
549
+
550
+				$output .= '</dl>';
551
+				$output .= '</div>';
552
+
553
+
554
+		 }
555
+
556
+		return $output;
557
+
558
+	} // end get_the_question_media
559
+
560
+
561
+	/**
562
+	 * Output the question media
563
+	 *
564
+	 * @since 1.9.0
565
+	 * @param string $question_id
566
+	 */
567
+	public static function the_question_media( $question_id ){
568
+
569
+		echo self::get_the_question_media( $question_id );
570
+
571
+	}
572
+
573
+	/**
574
+	 * Output a special field for the question needed for question submission.
575
+	 *
576
+	 * @since 1.9.0
577
+	 *
578
+	 * @param $question_id
579
+	 */
580
+	public static function the_question_hidden_fields( $question_id ){
581
+		?>
582 582
 
583 583
             <input type="hidden" name="question_id_<?php $question_id;?>" value="<?php $question_id;?>" />
584 584
             <input type="hidden" name="questions_asked[]" value="<?php esc_attr_e( $question_id ); ?>" />
585 585
 
586 586
         <?php
587
-    }
587
+	}
588 588
 
589
-    /**
590
-     * This function can only be run withing the single quiz question loop
591
-     *
592
-     * @since 1.9.0
593
-     * @param $question_id
594
-     */
595
-    public static function answer_feedback_notes( $question_id ){
589
+	/**
590
+	 * This function can only be run withing the single quiz question loop
591
+	 *
592
+	 * @since 1.9.0
593
+	 * @param $question_id
594
+	 */
595
+	public static function answer_feedback_notes( $question_id ){
596 596
 
597
-        //IDS
598
-        $quiz_id = get_the_ID();
599
-        $lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
597
+		//IDS
598
+		$quiz_id = get_the_ID();
599
+		$lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
600 600
 
601
-        // Data to check before showing feedback
602
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, get_current_user_id() );
603
-        $user_quiz_grade = Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
604
-        $not_empty_user_quiz_grade = !empty( $user_quiz_grade );
605
-        $reset_quiz_allowed = Sensei_Quiz::is_reset_allowed( $lesson_id );
606
-        $lesson_completed = Sensei_Utils::user_completed_lesson( $lesson_id );
607
-        $quiz_grade_type = get_post_meta( $quiz_id , '_quiz_grade_type', true );
601
+		// Data to check before showing feedback
602
+		$user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, get_current_user_id() );
603
+		$user_quiz_grade = Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
604
+		$not_empty_user_quiz_grade = !empty( $user_quiz_grade );
605
+		$reset_quiz_allowed = Sensei_Quiz::is_reset_allowed( $lesson_id );
606
+		$lesson_completed = Sensei_Utils::user_completed_lesson( $lesson_id );
607
+		$quiz_grade_type = get_post_meta( $quiz_id , '_quiz_grade_type', true );
608 608
 
609
-        if( ( $lesson_completed  && $not_empty_user_quiz_grade  )
610
-            ||  ( $lesson_completed && ! $reset_quiz_allowed && 'auto' == $quiz_grade_type )
611
-            || ( 'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $not_empty_user_quiz_grade ) ) {
609
+		if( ( $lesson_completed  && $not_empty_user_quiz_grade  )
610
+			||  ( $lesson_completed && ! $reset_quiz_allowed && 'auto' == $quiz_grade_type )
611
+			|| ( 'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $not_empty_user_quiz_grade ) ) {
612 612
 
613
-            $answer_notes = Sensei()->quiz->get_user_question_feedback( $lesson_id, $question_id, get_current_user_id() );
613
+			$answer_notes = Sensei()->quiz->get_user_question_feedback( $lesson_id, $question_id, get_current_user_id() );
614 614
 
615
-            if( $answer_notes ) { ?>
615
+			if( $answer_notes ) { ?>
616 616
 
617 617
                 <div class="sensei-message info info-special answer-feedback">
618 618
 
619 619
                     <?php
620 620
 
621
-                        /**
622
-                         * Filter the answer feedback
623
-                         * Since 1.9.0
624
-                         *
625
-                         * @param string $answer_notes
626
-                         * @param string $question_id
627
-                         * @param string $lesson_id
628
-                         */
629
-                        echo apply_filters( 'sensei_question_answer_notes', $answer_notes, $question_id, $lesson_id );
621
+						/**
622
+						 * Filter the answer feedback
623
+						 * Since 1.9.0
624
+						 *
625
+						 * @param string $answer_notes
626
+						 * @param string $question_id
627
+						 * @param string $lesson_id
628
+						 */
629
+						echo apply_filters( 'sensei_question_answer_notes', $answer_notes, $question_id, $lesson_id );
630 630
 
631
-                    ?>
631
+					?>
632 632
 
633 633
                 </div>
634 634
 
635 635
             <?php }
636 636
 
637
-        }// end if we can show answer feedback
637
+		}// end if we can show answer feedback
638 638
 
639
-    }// end answer_feedback_notes
639
+	}// end answer_feedback_notes
640 640
 
641
-    /**
642
-     * This function has to be run inside the quiz question loop on the single quiz page.
643
-     *
644
-     *
645
-     * @since 1.9.0
646
-     * @param string $question_id
647
-     */
648
-    public static function the_answer_result_indication( $question_id ){
641
+	/**
642
+	 * This function has to be run inside the quiz question loop on the single quiz page.
643
+	 *
644
+	 *
645
+	 * @since 1.9.0
646
+	 * @param string $question_id
647
+	 */
648
+	public static function the_answer_result_indication( $question_id ){
649 649
 
650
-        global $post,  $current_user, $sensei_question_loop;
650
+		global $post,  $current_user, $sensei_question_loop;
651 651
 
652
-        // Post Data
653
-        $quiz_id = $sensei_question_loop['quiz_id'];
654
-        $lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
655
-        $question_item = $sensei_question_loop['current_question'];
652
+		// Post Data
653
+		$quiz_id = $sensei_question_loop['quiz_id'];
654
+		$lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
655
+		$question_item = $sensei_question_loop['current_question'];
656 656
 
657
-        // Setup variable needed to determine if the message should show and what it should show
658
-        $user_quiz_grade = Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
659
-        $lesson_complete = Sensei_Utils::user_completed_lesson( $lesson_id, get_current_user_id() );
660
-        $reset_quiz_allowed = Sensei_Quiz::is_reset_allowed( $lesson_id );
661
-        $quiz_grade_type = get_post_meta( $quiz_id, '_quiz_grade_type', true );
657
+		// Setup variable needed to determine if the message should show and what it should show
658
+		$user_quiz_grade = Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
659
+		$lesson_complete = Sensei_Utils::user_completed_lesson( $lesson_id, get_current_user_id() );
660
+		$reset_quiz_allowed = Sensei_Quiz::is_reset_allowed( $lesson_id );
661
+		$quiz_grade_type = get_post_meta( $quiz_id, '_quiz_grade_type', true );
662 662
 
663
-        // retrieve the question total grade
664
-        $question_grade = Sensei()->question->get_question_grade( $question_id );
663
+		// retrieve the question total grade
664
+		$question_grade = Sensei()->question->get_question_grade( $question_id );
665 665
 
666
-        // retrieve grade the user achieved
667
-        $user_question_grade = Sensei()->quiz->get_user_question_grade( $lesson_id, $question_id, get_current_user_id() );
666
+		// retrieve grade the user achieved
667
+		$user_question_grade = Sensei()->quiz->get_user_question_grade( $lesson_id, $question_id, get_current_user_id() );
668 668
 
669
-        // Question ID
670
-        $question_id = $question_item->ID;
669
+		// Question ID
670
+		$question_id = $question_item->ID;
671 671
 
672
-        // conditions to check
673
-        $completed_with_valid_grade = $lesson_complete && $user_quiz_grade != '' ;
674
-        $completed_with_valid_grade_and_reset_not_allowed = $lesson_complete &&  $user_quiz_grade != '' && ! $reset_quiz_allowed ;
675
-        $grade_type_auto_a_valid_grade_and_reset_not_allowed =  'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $user_quiz_grade != '' ;
672
+		// conditions to check
673
+		$completed_with_valid_grade = $lesson_complete && $user_quiz_grade != '' ;
674
+		$completed_with_valid_grade_and_reset_not_allowed = $lesson_complete &&  $user_quiz_grade != '' && ! $reset_quiz_allowed ;
675
+		$grade_type_auto_a_valid_grade_and_reset_not_allowed =  'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $user_quiz_grade != '' ;
676 676
 
677
-        if (  $completed_with_valid_grade
678
-            || $completed_with_valid_grade_and_reset_not_allowed
679
-            || $grade_type_auto_a_valid_grade_and_reset_not_allowed  ) {
677
+		if (  $completed_with_valid_grade
678
+			|| $completed_with_valid_grade_and_reset_not_allowed
679
+			|| $grade_type_auto_a_valid_grade_and_reset_not_allowed  ) {
680 680
 
681
-            $user_correct = false;
682
-            $answer_message = __( 'Incorrect', 'woothemes-sensei' );
683
-            $answer_message_class = 'user_wrong';
684
-            // For zero grade mark as 'correct' but add no classes
685
-            if ( 0 == $question_grade ) {
681
+			$user_correct = false;
682
+			$answer_message = __( 'Incorrect', 'woothemes-sensei' );
683
+			$answer_message_class = 'user_wrong';
684
+			// For zero grade mark as 'correct' but add no classes
685
+			if ( 0 == $question_grade ) {
686 686
 
687
-                $user_correct = true;
688
-                $answer_message = '';
689
-                $answer_message_class = '';
687
+				$user_correct = true;
688
+				$answer_message = '';
689
+				$answer_message_class = '';
690 690
 
691
-            } else if( $user_question_grade > 0 ) {
691
+			} else if( $user_question_grade > 0 ) {
692 692
 
693
-                $user_correct = true;
694
-                $answer_message = sprintf( __( 'Grade: %d', 'woothemes-sensei' ), $user_question_grade );
695
-                $answer_message_class = 'user_right';
693
+				$user_correct = true;
694
+				$answer_message = sprintf( __( 'Grade: %d', 'woothemes-sensei' ), $user_question_grade );
695
+				$answer_message_class = 'user_right';
696 696
 
697
-            }
697
+			}
698 698
 
699
-            // attach the correct answer if the question is auto gradable and user got it wrong
700
-            if( !$reset_quiz_allowed && !$user_correct ){
699
+			// attach the correct answer if the question is auto gradable and user got it wrong
700
+			if( !$reset_quiz_allowed && !$user_correct ){
701 701
 
702
-                $answer_message .=  ' - '. __('Right Answer:','woothemes-sensei') . ' ' . self::get_correct_answer( $question_item->ID );
702
+				$answer_message .=  ' - '. __('Right Answer:','woothemes-sensei') . ' ' . self::get_correct_answer( $question_item->ID );
703 703
 
704
-            }
704
+			}
705 705
 
706
-            // answer feedback
707
-            $answer_notes = Sensei()->quiz->get_user_question_feedback( $lesson_id, $question_id, $current_user->ID );
708
-            if( $answer_notes ) {
709
-                $answer_message_class .= ' has_notes';
710
-            }
711
-            ?>
706
+			// answer feedback
707
+			$answer_notes = Sensei()->quiz->get_user_question_feedback( $lesson_id, $question_id, $current_user->ID );
708
+			if( $answer_notes ) {
709
+				$answer_message_class .= ' has_notes';
710
+			}
711
+			?>
712 712
 
713 713
             <div class="answer_message <?php esc_attr_e( $answer_message_class ); ?>">
714 714
 
@@ -718,387 +718,387 @@  discard block
 block discarded – undo
718 718
 
719 719
             <?php
720 720
 
721
-        } // end if user can see all the goodies
722
-
723
-    }// end the_answer_result_indication
724
-
725
-    /**
726
-     * Generate the question template data and return it as an array.
727
-     *
728
-     * @since 1.9.0
729
-     *
730
-     * @param string $question_id
731
-     * @param $quiz_id
732
-     * @return array $question_data
733
-     */
734
-    public static function get_template_data( $question_id, $quiz_id ){
735
-
736
-        $lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id  );
737
-
738
-        $reset_allowed = get_post_meta( $quiz_id, '_enable_quiz_reset', true );
739
-        //backwards compatibility
740
-        if( 'on' == $reset_allowed ) {
741
-            $reset_allowed = 1;
742
-        }
743
-
744
-        // Check again that the lesson is complete
745
-        $user_lesson_end = Sensei_Utils::user_completed_lesson( Sensei()->quiz->get_lesson_id( $quiz_id), get_current_user_id() );
746
-        $user_lesson_complete = false;
747
-        if ( $user_lesson_end ) {
748
-            $user_lesson_complete = true;
749
-        }
750
-
751
-        //setup the question data
752
-        $data[ 'ID' ]                     = $question_id;
753
-        $data[ 'title' ]                  = get_the_title( $question_id );
754
-        $data[ 'content' ]                = get_post( $question_id )->post_content;
755
-        $data[ 'quiz_id' ]                = $quiz_id;
756
-        $data[ 'lesson_id' ]              = Sensei()->quiz->get_lesson_id( $quiz_id );
757
-        $data[ 'type' ]                   = Sensei()->question->get_question_type( $question_id );
758
-        $data[ 'question_grade' ]         = Sensei()->question->get_question_grade(  $question_id  );
759
-        $data[ 'user_question_grade' ]    = Sensei()->quiz->get_user_question_grade( $lesson_id,  $question_id , get_current_user_id());
760
-        $data[ 'question_right_answer' ]  = get_post_meta( $question_id , '_question_right_answer', true );
761
-        $data[ 'question_wrong_answers' ] = get_post_meta( $question_id , '_question_wrong_answers', true );
762
-        $data[ 'user_answer_entry' ]      = Sensei()->quiz->get_user_question_answer( $lesson_id,  $question_id , get_current_user_id() );
763
-        $data[ 'lesson_completed' ]       = Sensei_Utils::user_completed_course( $lesson_id, get_current_user_id( ) );
764
-        $data[ 'quiz_grade_type' ]        = get_post_meta( $quiz_id , '_quiz_grade_type', true );
765
-        $data[ 'reset_quiz_allowed' ]     = $reset_allowed;
766
-        $data[ 'lesson_complete' ]        = $user_lesson_complete;
767
-
768
-        /**
769
-         * Filter the question template data. This filter fires  in
770
-         * the get_template_data function
771
-         *
772
-         * @hooked self::boolean_load_question_data
773
-         *
774
-         * @since 1.9.0
775
-         *
776
-         * @param array $data
777
-         * @param string $question_id
778
-         * @param string $quiz_id
779
-         */
780
-        return apply_filters( 'sensei_get_question_template_data', $data, $question_id, $quiz_id );
721
+		} // end if user can see all the goodies
781 722
 
782
-    }
723
+	}// end the_answer_result_indication
783 724
 
784
-    /**
785
-     * Load multiple choice question data on the sensei_get_question_template_data
786
-     * filter.
787
-     *
788
-     * @since 1.9.0
789
-     *
790
-     * @param $question_data
791
-     * @param $question_id
792
-     * @param $quiz_id
793
-     *
794
-     * @return array()
795
-     */
796
-    public static function file_upload_load_question_data ( $question_data, $question_id, $quiz_id ){
725
+	/**
726
+	 * Generate the question template data and return it as an array.
727
+	 *
728
+	 * @since 1.9.0
729
+	 *
730
+	 * @param string $question_id
731
+	 * @param $quiz_id
732
+	 * @return array $question_data
733
+	 */
734
+	public static function get_template_data( $question_id, $quiz_id ){
797 735
 
736
+		$lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id  );
798 737
 
799
-        if( 'file-upload' == Sensei()->question->get_question_type( $question_id ) ) {
738
+		$reset_allowed = get_post_meta( $quiz_id, '_enable_quiz_reset', true );
739
+		//backwards compatibility
740
+		if( 'on' == $reset_allowed ) {
741
+			$reset_allowed = 1;
742
+		}
800 743
 
801
-            // Get uploaded file
802
-            $attachment_id = $question_data[ 'user_answer_entry' ];
803
-            $answer_media_url = $answer_media_filename = '';
744
+		// Check again that the lesson is complete
745
+		$user_lesson_end = Sensei_Utils::user_completed_lesson( Sensei()->quiz->get_lesson_id( $quiz_id), get_current_user_id() );
746
+		$user_lesson_complete = false;
747
+		if ( $user_lesson_end ) {
748
+			$user_lesson_complete = true;
749
+		}
804 750
 
751
+		//setup the question data
752
+		$data[ 'ID' ]                     = $question_id;
753
+		$data[ 'title' ]                  = get_the_title( $question_id );
754
+		$data[ 'content' ]                = get_post( $question_id )->post_content;
755
+		$data[ 'quiz_id' ]                = $quiz_id;
756
+		$data[ 'lesson_id' ]              = Sensei()->quiz->get_lesson_id( $quiz_id );
757
+		$data[ 'type' ]                   = Sensei()->question->get_question_type( $question_id );
758
+		$data[ 'question_grade' ]         = Sensei()->question->get_question_grade(  $question_id  );
759
+		$data[ 'user_question_grade' ]    = Sensei()->quiz->get_user_question_grade( $lesson_id,  $question_id , get_current_user_id());
760
+		$data[ 'question_right_answer' ]  = get_post_meta( $question_id , '_question_right_answer', true );
761
+		$data[ 'question_wrong_answers' ] = get_post_meta( $question_id , '_question_wrong_answers', true );
762
+		$data[ 'user_answer_entry' ]      = Sensei()->quiz->get_user_question_answer( $lesson_id,  $question_id , get_current_user_id() );
763
+		$data[ 'lesson_completed' ]       = Sensei_Utils::user_completed_course( $lesson_id, get_current_user_id( ) );
764
+		$data[ 'quiz_grade_type' ]        = get_post_meta( $quiz_id , '_quiz_grade_type', true );
765
+		$data[ 'reset_quiz_allowed' ]     = $reset_allowed;
766
+		$data[ 'lesson_complete' ]        = $user_lesson_complete;
767
+
768
+		/**
769
+		 * Filter the question template data. This filter fires  in
770
+		 * the get_template_data function
771
+		 *
772
+		 * @hooked self::boolean_load_question_data
773
+		 *
774
+		 * @since 1.9.0
775
+		 *
776
+		 * @param array $data
777
+		 * @param string $question_id
778
+		 * @param string $quiz_id
779
+		 */
780
+		return apply_filters( 'sensei_get_question_template_data', $data, $question_id, $quiz_id );
805 781
 
806
-            $question_helptext = '';
807
-            if( isset( $question_data['question_wrong_answers'][0] ) ) {
782
+	}
808 783
 
809
-                $question_helptext =  $question_data['question_wrong_answers'][0];
784
+	/**
785
+	 * Load multiple choice question data on the sensei_get_question_template_data
786
+	 * filter.
787
+	 *
788
+	 * @since 1.9.0
789
+	 *
790
+	 * @param $question_data
791
+	 * @param $question_id
792
+	 * @param $quiz_id
793
+	 *
794
+	 * @return array()
795
+	 */
796
+	public static function file_upload_load_question_data ( $question_data, $question_id, $quiz_id ){
810 797
 
811
-            }
812 798
 
799
+		if( 'file-upload' == Sensei()->question->get_question_type( $question_id ) ) {
813 800
 
814
-            if( 0 < intval( $attachment_id ) ) {
801
+			// Get uploaded file
802
+			$attachment_id = $question_data[ 'user_answer_entry' ];
803
+			$answer_media_url = $answer_media_filename = '';
815 804
 
816
-                $answer_media_url = wp_get_attachment_url( $attachment_id );
817
-                $answer_media_filename = basename( $answer_media_url );
818 805
 
819
-            }
806
+			$question_helptext = '';
807
+			if( isset( $question_data['question_wrong_answers'][0] ) ) {
820 808
 
809
+				$question_helptext =  $question_data['question_wrong_answers'][0];
821 810
 
822
-            // Get max upload file size, formatted for display
823
-            // Code copied from wp-admin/includes/media.php:1515
824
-            $upload_size_unit = $max_upload_size = wp_max_upload_size();
825
-            $sizes = array( 'KB', 'MB', 'GB' );
826
-            for ( $u = -1; $upload_size_unit > 1024 && $u < count( $sizes ) - 1; $u++ ) {
827
-                $upload_size_unit /= 1024;
828
-            }
829
-            if ( $u < 0 ) {
811
+			}
830 812
 
831
-                $upload_size_unit = 0;
832
-                $u = 0;
833 813
 
834
-            } else {
814
+			if( 0 < intval( $attachment_id ) ) {
835 815
 
836
-                $upload_size_unit = (int) $upload_size_unit;
816
+				$answer_media_url = wp_get_attachment_url( $attachment_id );
817
+				$answer_media_filename = basename( $answer_media_url );
837 818
 
838
-            }
839
-            $max_upload_size = sprintf( __( 'Maximum upload file size: %d%s' ), esc_html( $upload_size_unit ), esc_html( $sizes[ $u ] ) );
819
+			}
840 820
 
841
-            // Assemble all the data needed by the file upload template
842
-            $question_data[ 'answer_media_url' ]      = $answer_media_url;
843
-            $question_data[ 'answer_media_filename' ] = $answer_media_filename;
844
-            $question_data[ 'max_upload_size' ]       = $max_upload_size;
845 821
 
846
-            $question_data[ 'question_helptext' ]     = $question_helptext;
822
+			// Get max upload file size, formatted for display
823
+			// Code copied from wp-admin/includes/media.php:1515
824
+			$upload_size_unit = $max_upload_size = wp_max_upload_size();
825
+			$sizes = array( 'KB', 'MB', 'GB' );
826
+			for ( $u = -1; $upload_size_unit > 1024 && $u < count( $sizes ) - 1; $u++ ) {
827
+				$upload_size_unit /= 1024;
828
+			}
829
+			if ( $u < 0 ) {
847 830
 
848
-        }// end if is file upload type
831
+				$upload_size_unit = 0;
832
+				$u = 0;
849 833
 
850
-        return $question_data;
834
+			} else {
851 835
 
852
-    }// end file_upload_load_question_data
836
+				$upload_size_unit = (int) $upload_size_unit;
853 837
 
854
-    /**
855
-     * Load multiple choice question data on the sensei_get_question_template_data
856
-     * filter.
857
-     *
858
-     * @since 1.9.0
859
-     *
860
-     * @param $question_data
861
-     * @param $question_id
862
-     * @param $quiz_id
863
-     *
864
-     * @return array()
865
-     */
866
-    public static function multiple_choice_load_question_data( $question_data, $question_id, $quiz_id ){
838
+			}
839
+			$max_upload_size = sprintf( __( 'Maximum upload file size: %d%s' ), esc_html( $upload_size_unit ), esc_html( $sizes[ $u ] ) );
867 840
 
868
-        if( 'multiple-choice' == Sensei()->question->get_question_type( $question_id ) ) {
841
+			// Assemble all the data needed by the file upload template
842
+			$question_data[ 'answer_media_url' ]      = $answer_media_url;
843
+			$question_data[ 'answer_media_filename' ] = $answer_media_filename;
844
+			$question_data[ 'max_upload_size' ]       = $max_upload_size;
869 845
 
846
+			$question_data[ 'question_helptext' ]     = $question_helptext;
870 847
 
871
-            $answer_type = 'radio';
872
-            if ( is_array( $question_data[ 'question_right_answer' ] ) && ( 1 < count( $question_data[ 'question_right_answer' ] ) ) ) {
848
+		}// end if is file upload type
873 849
 
874
-                $answer_type = 'checkbox';
850
+		return $question_data;
875 851
 
876
-            }
852
+	}// end file_upload_load_question_data
877 853
 
878
-            // Merge right and wrong answers
879
-            if ( is_array( $question_data[ 'question_right_answer' ] ) ) {
854
+	/**
855
+	 * Load multiple choice question data on the sensei_get_question_template_data
856
+	 * filter.
857
+	 *
858
+	 * @since 1.9.0
859
+	 *
860
+	 * @param $question_data
861
+	 * @param $question_id
862
+	 * @param $quiz_id
863
+	 *
864
+	 * @return array()
865
+	 */
866
+	public static function multiple_choice_load_question_data( $question_data, $question_id, $quiz_id ){
880 867
 
881
-                $merged_options = array_merge( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
868
+		if( 'multiple-choice' == Sensei()->question->get_question_type( $question_id ) ) {
882 869
 
883
-            }  else {
884 870
 
885
-                array_push( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
886
-                $merged_options = $question_data[ 'question_wrong_answers' ];
871
+			$answer_type = 'radio';
872
+			if ( is_array( $question_data[ 'question_right_answer' ] ) && ( 1 < count( $question_data[ 'question_right_answer' ] ) ) ) {
887 873
 
888
-            }
874
+				$answer_type = 'checkbox';
889 875
 
890
-            // Setup answer options array.
891
-            $question_answers_options = array();
892
-            $count = 0;
876
+			}
893 877
 
894
-            foreach( $merged_options as $answer ) {
878
+			// Merge right and wrong answers
879
+			if ( is_array( $question_data[ 'question_right_answer' ] ) ) {
895 880
 
896
-                $count++;
897
-                $question_option = array();
881
+				$merged_options = array_merge( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
898 882
 
899
-                if( ( $question_data[ 'lesson_completed' ] && $question_data[ 'user_quiz_grade' ] != '' )
900
-                    || ( $question_data[ 'lesson_completed' ] && ! $question_data[ 'reset_quiz_allowed' ] && $question_data[ 'user_quiz_grade' ] != '' )
901
-                    || ( 'auto' == $question_data[ 'quiz_grade_type' ] && ! $question_data[ 'reset_quiz_allowed' ]  && ! empty( $question_data[ 'user_quiz_grade' ] ) ) ) {
883
+			}  else {
902 884
 
903
-                    $user_correct = false;
885
+				array_push( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
886
+				$merged_options = $question_data[ 'question_wrong_answers' ];
904 887
 
888
+			}
905 889
 
906
-                    // For zero grade mark as 'correct' but add no classes
907
-                    if ( 0 == $question_data[ 'question_grade' ] ) {
890
+			// Setup answer options array.
891
+			$question_answers_options = array();
892
+			$count = 0;
908 893
 
909
-                        $user_correct = true;
894
+			foreach( $merged_options as $answer ) {
910 895
 
911
-                    }  else if( $question_data[ 'user_question_grade' ] > 0 ) {
896
+				$count++;
897
+				$question_option = array();
912 898
 
913
-                        $user_correct = true;
899
+				if( ( $question_data[ 'lesson_completed' ] && $question_data[ 'user_quiz_grade' ] != '' )
900
+					|| ( $question_data[ 'lesson_completed' ] && ! $question_data[ 'reset_quiz_allowed' ] && $question_data[ 'user_quiz_grade' ] != '' )
901
+					|| ( 'auto' == $question_data[ 'quiz_grade_type' ] && ! $question_data[ 'reset_quiz_allowed' ]  && ! empty( $question_data[ 'user_quiz_grade' ] ) ) ) {
914 902
 
915
-                    }
903
+					$user_correct = false;
916 904
 
917
-                }
918 905
 
919
-                // setup the option specific classes
920
-                $answer_class = '';
921
-                if( isset( $user_correct ) && 0 < $question_data[ 'question_grade' ] ) {
922
-                    if ( is_array( $question_data['question_right_answer'] ) && in_array($answer, $question_data['question_right_answer']) ) {
906
+					// For zero grade mark as 'correct' but add no classes
907
+					if ( 0 == $question_data[ 'question_grade' ] ) {
923 908
 
924
-                        $answer_class .= ' right_answer';
909
+						$user_correct = true;
925 910
 
926
-                    }  elseif( !is_array($question_data['question_right_answer']) && $question_data['question_right_answer'] == $answer ) {
911
+					}  else if( $question_data[ 'user_question_grade' ] > 0 ) {
927 912
 
928
-                        $answer_class .= ' right_answer';
913
+						$user_correct = true;
929 914
 
930
-                    } elseif( ( is_array( $question_data['user_answer_entry']  ) && in_array($answer, $question_data['user_answer_entry'] ) )
931
-                        ||  ( !  $question_data['user_answer_entry'] &&  $question_data['user_answer_entry'] == $answer ) ) {
915
+					}
932 916
 
933
-                        $answer_class = 'user_wrong';
934
-                        if( $user_correct ) {
917
+				}
935 918
 
936
-                            $answer_class = 'user_right';
919
+				// setup the option specific classes
920
+				$answer_class = '';
921
+				if( isset( $user_correct ) && 0 < $question_data[ 'question_grade' ] ) {
922
+					if ( is_array( $question_data['question_right_answer'] ) && in_array($answer, $question_data['question_right_answer']) ) {
937 923
 
938
-                        }
924
+						$answer_class .= ' right_answer';
939 925
 
940
-                    }
926
+					}  elseif( !is_array($question_data['question_right_answer']) && $question_data['question_right_answer'] == $answer ) {
941 927
 
942
-                }
928
+						$answer_class .= ' right_answer';
943 929
 
944
-                // determine if the current option must be checked
945
-                $checked = '';
946
-                if ( isset( $question_data['user_answer_entry'] ) && 0 < count( $question_data['user_answer_entry'] ) ) {
947
-                    if ( is_array( $question_data['user_answer_entry'] ) && in_array( $answer, $question_data['user_answer_entry'] ) ) {
930
+					} elseif( ( is_array( $question_data['user_answer_entry']  ) && in_array($answer, $question_data['user_answer_entry'] ) )
931
+						||  ( !  $question_data['user_answer_entry'] &&  $question_data['user_answer_entry'] == $answer ) ) {
948 932
 
949
-                        $checked = 'checked="checked"';
933
+						$answer_class = 'user_wrong';
934
+						if( $user_correct ) {
950 935
 
951
-                    } elseif ( !is_array( $question_data['user_answer_entry'] ) ) {
936
+							$answer_class = 'user_right';
952 937
 
953
-                        $checked = checked( $answer, $question_data['user_answer_entry'] , false );
938
+						}
954 939
 
955
-                    }
940
+					}
956 941
 
957
-                } // End If Statement
942
+				}
958 943
 
959
-                //Load the answer option data
960
-                $question_option[ 'ID' ]          = Sensei()->lesson->get_answer_id( $answer );
961
-                $question_option[ 'answer' ]      = $answer;
962
-                $question_option[ 'option_class'] = $answer_class;
963
-                $question_option[ 'checked']      = $checked;
964
-                $question_option[ 'count' ]       = $count;
965
-                $question_option[ 'type' ] = $answer_type;
944
+				// determine if the current option must be checked
945
+				$checked = '';
946
+				if ( isset( $question_data['user_answer_entry'] ) && 0 < count( $question_data['user_answer_entry'] ) ) {
947
+					if ( is_array( $question_data['user_answer_entry'] ) && in_array( $answer, $question_data['user_answer_entry'] ) ) {
966 948
 
967
-                // add the speci  fic option to the list of options for this question
968
-                $question_answers_options[$question_option[ 'ID' ]] = $question_option;
949
+						$checked = 'checked="checked"';
969 950
 
970
-            } // end for each option
951
+					} elseif ( !is_array( $question_data['user_answer_entry'] ) ) {
971 952
 
953
+						$checked = checked( $answer, $question_data['user_answer_entry'] , false );
972 954
 
973
-            // Shuffle the array depending on the settings
974
-            $answer_options_sorted = array();
975
-            $random_order = get_post_meta( $question_data['ID'], '_random_order', true );
976
-            if(  $random_order && $random_order == 'yes' ) {
955
+					}
977 956
 
978
-                $answer_options_sorted = $question_answers_options;
979
-                shuffle( $answer_options_sorted );
957
+				} // End If Statement
980 958
 
981
-            } else {
959
+				//Load the answer option data
960
+				$question_option[ 'ID' ]          = Sensei()->lesson->get_answer_id( $answer );
961
+				$question_option[ 'answer' ]      = $answer;
962
+				$question_option[ 'option_class'] = $answer_class;
963
+				$question_option[ 'checked']      = $checked;
964
+				$question_option[ 'count' ]       = $count;
965
+				$question_option[ 'type' ] = $answer_type;
982 966
 
983
-                $answer_order = array();
984
-                $answer_order_string = get_post_meta( $question_data['ID'], '_answer_order', true );
985
-                if( $answer_order_string ) {
967
+				// add the speci  fic option to the list of options for this question
968
+				$question_answers_options[$question_option[ 'ID' ]] = $question_option;
986 969
 
987
-                    $answer_order = array_filter( explode( ',', $answer_order_string ) );
988
-                    if( count( $answer_order ) > 0 ) {
970
+			} // end for each option
989 971
 
990
-                        foreach( $answer_order as $answer_id ) {
991 972
 
992
-                            if( isset( $question_answers_options[ $answer_id ] ) ) {
973
+			// Shuffle the array depending on the settings
974
+			$answer_options_sorted = array();
975
+			$random_order = get_post_meta( $question_data['ID'], '_random_order', true );
976
+			if(  $random_order && $random_order == 'yes' ) {
993 977
 
994
-                                $answer_options_sorted[ $answer_id ] = $question_answers_options[ $answer_id ];
995
-                                unset( $question_answers_options[ $answer_id ] );
978
+				$answer_options_sorted = $question_answers_options;
979
+				shuffle( $answer_options_sorted );
996 980
 
997
-                            }
981
+			} else {
998 982
 
999
-                        }
983
+				$answer_order = array();
984
+				$answer_order_string = get_post_meta( $question_data['ID'], '_answer_order', true );
985
+				if( $answer_order_string ) {
1000 986
 
1001
-                        if( count( $question_answers_options ) > 0 ) {
1002
-                            foreach( $question_answers_options as $id => $answer ) {
987
+					$answer_order = array_filter( explode( ',', $answer_order_string ) );
988
+					if( count( $answer_order ) > 0 ) {
1003 989
 
1004
-                                $answer_options_sorted[ $id ] = $answer;
990
+						foreach( $answer_order as $answer_id ) {
1005 991
 
1006
-                            }
1007
-                        }
992
+							if( isset( $question_answers_options[ $answer_id ] ) ) {
1008 993
 
1009
-                    }else{
994
+								$answer_options_sorted[ $answer_id ] = $question_answers_options[ $answer_id ];
995
+								unset( $question_answers_options[ $answer_id ] );
1010 996
 
1011
-                        $answer_options_sorted = $question_answers_options;
997
+							}
1012 998
 
1013
-                    }
999
+						}
1014 1000
 
1015
-                }else{
1001
+						if( count( $question_answers_options ) > 0 ) {
1002
+							foreach( $question_answers_options as $id => $answer ) {
1016 1003
 
1017
-                    $answer_options_sorted = $question_answers_options;
1004
+								$answer_options_sorted[ $id ] = $answer;
1018 1005
 
1019
-                } // end if $answer_order_string
1006
+							}
1007
+						}
1020 1008
 
1021
-            } // end if random order
1009
+					}else{
1022 1010
 
1011
+						$answer_options_sorted = $question_answers_options;
1023 1012
 
1024
-            // assemble and setup the data for the templates data array
1025
-            $question_data[ 'answer_options' ]    =  $answer_options_sorted;
1013
+					}
1026 1014
 
1027
-        }
1015
+				}else{
1028 1016
 
1029
-        return $question_data;
1017
+					$answer_options_sorted = $question_answers_options;
1030 1018
 
1031
-    }//  end multiple_choice_load_question_data
1019
+				} // end if $answer_order_string
1032 1020
 
1033
-    /**
1034
-     * Load the gap fill question data on the sensei_get_question_template_data
1035
-     * filter.
1036
-     *
1037
-     * @since 1.9.0
1038
-     *
1039
-     * @param $question_data
1040
-     * @param $question_id
1041
-     * @param $quiz_id
1042
-     *
1043
-     * @return array()
1044
-     */
1045
-    public static function gap_fill_load_question_data( $question_data, $question_id, $quiz_id ){
1021
+			} // end if random order
1046 1022
 
1047
-        if( 'gap-fill' == Sensei()->question->get_question_type( $question_id ) ) {
1048 1023
 
1049
-            $gapfill_array = explode( '||', $question_data[ 'question_right_answer' ] );
1050
-            $question_data[ 'gapfill_pre' ]  = isset( $gapfill_array[0] ) ? $gapfill_array[0] : '';
1051
-            $question_data[ 'gapfill_gap' ]  = isset( $gapfill_array[1] ) ? $gapfill_array[1] : '';
1052
-            $question_data[ 'gapfill_post' ] = isset( $gapfill_array[2] ) ? $gapfill_array[2] : '';
1024
+			// assemble and setup the data for the templates data array
1025
+			$question_data[ 'answer_options' ]    =  $answer_options_sorted;
1053 1026
 
1054
-        }
1027
+		}
1055 1028
 
1056
-        return $question_data;
1029
+		return $question_data;
1057 1030
 
1058
-    }//  end gap_fill_load_question_data
1031
+	}//  end multiple_choice_load_question_data
1032
+
1033
+	/**
1034
+	 * Load the gap fill question data on the sensei_get_question_template_data
1035
+	 * filter.
1036
+	 *
1037
+	 * @since 1.9.0
1038
+	 *
1039
+	 * @param $question_data
1040
+	 * @param $question_id
1041
+	 * @param $quiz_id
1042
+	 *
1043
+	 * @return array()
1044
+	 */
1045
+	public static function gap_fill_load_question_data( $question_data, $question_id, $quiz_id ){
1046
+
1047
+		if( 'gap-fill' == Sensei()->question->get_question_type( $question_id ) ) {
1048
+
1049
+			$gapfill_array = explode( '||', $question_data[ 'question_right_answer' ] );
1050
+			$question_data[ 'gapfill_pre' ]  = isset( $gapfill_array[0] ) ? $gapfill_array[0] : '';
1051
+			$question_data[ 'gapfill_gap' ]  = isset( $gapfill_array[1] ) ? $gapfill_array[1] : '';
1052
+			$question_data[ 'gapfill_post' ] = isset( $gapfill_array[2] ) ? $gapfill_array[2] : '';
1053
+
1054
+		}
1055
+
1056
+		return $question_data;
1057
+
1058
+	}//  end gap_fill_load_question_data
1059 1059
 
1060 1060
 
1061
-    /**
1062
-     * Get the correct answer for a question
1063
-     *
1064
-     * @param $question_id
1065
-     * @return string $correct_answer or empty
1066
-     */
1067
-    public static function get_correct_answer( $question_id ){
1061
+	/**
1062
+	 * Get the correct answer for a question
1063
+	 *
1064
+	 * @param $question_id
1065
+	 * @return string $correct_answer or empty
1066
+	 */
1067
+	public static function get_correct_answer( $question_id ){
1068 1068
 
1069
-        $right_answer = get_post_meta( $question_id, '_question_right_answer', true );
1070
-        $type = Sensei()->question->get_question_type( $question_id );
1071
-        $type_name = __( 'Multiple Choice', 'woothemes-sensei' );
1072
-        $grade_type = 'manual-grade';
1069
+		$right_answer = get_post_meta( $question_id, '_question_right_answer', true );
1070
+		$type = Sensei()->question->get_question_type( $question_id );
1071
+		$type_name = __( 'Multiple Choice', 'woothemes-sensei' );
1072
+		$grade_type = 'manual-grade';
1073 1073
 
1074
-        if ('boolean'== $type ) {
1074
+		if ('boolean'== $type ) {
1075 1075
 
1076
-            $right_answer = ucfirst($right_answer);
1076
+			$right_answer = ucfirst($right_answer);
1077 1077
 
1078
-        }elseif( 'multiple-choice' == $type ) {
1078
+		}elseif( 'multiple-choice' == $type ) {
1079 1079
 
1080
-            $right_answer = (array) $right_answer;
1081
-            $right_answer = implode( ', ', $right_answer );
1080
+			$right_answer = (array) $right_answer;
1081
+			$right_answer = implode( ', ', $right_answer );
1082 1082
 
1083
-        }elseif( 'gap-fill' == $type ) {
1083
+		}elseif( 'gap-fill' == $type ) {
1084 1084
 
1085
-            $right_answer_array = explode( '||', $right_answer );
1086
-            if ( isset( $right_answer_array[0] ) ) { $gapfill_pre = $right_answer_array[0]; } else { $gapfill_pre = ''; }
1087
-            if ( isset( $right_answer_array[1] ) ) { $gapfill_gap = $right_answer_array[1]; } else { $gapfill_gap = ''; }
1088
-            if ( isset( $right_answer_array[2] ) ) { $gapfill_post = $right_answer_array[2]; } else { $gapfill_post = ''; }
1085
+			$right_answer_array = explode( '||', $right_answer );
1086
+			if ( isset( $right_answer_array[0] ) ) { $gapfill_pre = $right_answer_array[0]; } else { $gapfill_pre = ''; }
1087
+			if ( isset( $right_answer_array[1] ) ) { $gapfill_gap = $right_answer_array[1]; } else { $gapfill_gap = ''; }
1088
+			if ( isset( $right_answer_array[2] ) ) { $gapfill_post = $right_answer_array[2]; } else { $gapfill_post = ''; }
1089 1089
 
1090
-            $right_answer = $gapfill_pre . ' <span class="highlight">' . $gapfill_gap . '</span> ' . $gapfill_post;
1090
+			$right_answer = $gapfill_pre . ' <span class="highlight">' . $gapfill_gap . '</span> ' . $gapfill_post;
1091 1091
 
1092
-        }else{
1092
+		}else{
1093 1093
 
1094
-            // for non auto gradable question types no answer should be returned.
1095
-            $right_answer = '';
1094
+			// for non auto gradable question types no answer should be returned.
1095
+			$right_answer = '';
1096 1096
 
1097
-        }
1097
+		}
1098 1098
 
1099
-        return $right_answer;
1099
+		return $right_answer;
1100 1100
 
1101
-    } // get_correct_answer
1101
+	} // get_correct_answer
1102 1102
 
1103 1103
 } // End Class
1104 1104
 
Please login to merge, or discard this patch.
Spacing   +287 added lines, -287 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 
4 4
 /**
5 5
  * Sensei Question Class
@@ -19,35 +19,35 @@  discard block
 block discarded – undo
19 19
 	 * Constructor.
20 20
 	 * @since  1.0.0
21 21
 	 */
22
-	public function __construct () {
22
+	public function __construct() {
23 23
         $this->token = 'question';
24 24
 		$this->question_types = $this->question_types();
25
-		$this->meta_fields = array( 'question_right_answer', 'question_wrong_answers' );
26
-		if ( is_admin() ) {
25
+		$this->meta_fields = array('question_right_answer', 'question_wrong_answers');
26
+		if (is_admin()) {
27 27
 			// Custom Write Panel Columns
28
-			add_filter( 'manage_edit-question_columns', array( $this, 'add_column_headings' ), 10, 1 );
29
-			add_action( 'manage_posts_custom_column', array( $this, 'add_column_data' ), 10, 2 );
30
-			add_action( 'add_meta_boxes', array( $this, 'question_edit_panel_metabox' ), 10, 2 );
28
+			add_filter('manage_edit-question_columns', array($this, 'add_column_headings'), 10, 1);
29
+			add_action('manage_posts_custom_column', array($this, 'add_column_data'), 10, 2);
30
+			add_action('add_meta_boxes', array($this, 'question_edit_panel_metabox'), 10, 2);
31 31
 
32 32
 			// Quesitno list table filters
33
-			add_action( 'restrict_manage_posts', array( $this, 'filter_options' ) );
34
-			add_filter( 'request', array( $this, 'filter_actions' ) );
33
+			add_action('restrict_manage_posts', array($this, 'filter_options'));
34
+			add_filter('request', array($this, 'filter_actions'));
35 35
 
36
-			add_action( 'save_post', array( $this, 'save_question' ), 10, 1 );
36
+			add_action('save_post', array($this, 'save_question'), 10, 1);
37 37
 		} // End If Statement
38 38
 	} // End __construct()
39 39
 
40 40
 	public function question_types() {
41 41
 		$types = array(
42
-			'multiple-choice' => __( 'Multiple Choice', 'woothemes-sensei' ),
43
-			'boolean' => __( 'True/False', 'woothemes-sensei' ),
44
-			'gap-fill' => __( 'Gap Fill', 'woothemes-sensei' ),
45
-			'single-line' => __( 'Single Line', 'woothemes-sensei' ),
46
-			'multi-line' => __( 'Multi Line', 'woothemes-sensei' ),
47
-			'file-upload' => __( 'File Upload', 'woothemes-sensei' ),
42
+			'multiple-choice' => __('Multiple Choice', 'woothemes-sensei'),
43
+			'boolean' => __('True/False', 'woothemes-sensei'),
44
+			'gap-fill' => __('Gap Fill', 'woothemes-sensei'),
45
+			'single-line' => __('Single Line', 'woothemes-sensei'),
46
+			'multi-line' => __('Multi Line', 'woothemes-sensei'),
47
+			'file-upload' => __('File Upload', 'woothemes-sensei'),
48 48
 		);
49 49
 
50
-		return apply_filters( 'sensei_question_types', $types );
50
+		return apply_filters('sensei_question_types', $types);
51 51
 	}
52 52
 
53 53
 	/**
@@ -57,12 +57,12 @@  discard block
 block discarded – undo
57 57
 	 * @param  array $defaults
58 58
 	 * @return array $new_columns
59 59
 	 */
60
-	public function add_column_headings ( $defaults ) {
60
+	public function add_column_headings($defaults) {
61 61
 		$new_columns['cb'] = '<input type="checkbox" />';
62
-		$new_columns['title'] = _x( 'Question', 'column name', 'woothemes-sensei' );
63
-		$new_columns['question-type'] = _x( 'Type', 'column name', 'woothemes-sensei' );
64
-		$new_columns['question-category'] = _x( 'Categories', 'column name', 'woothemes-sensei' );
65
-		if ( isset( $defaults['date'] ) ) {
62
+		$new_columns['title'] = _x('Question', 'column name', 'woothemes-sensei');
63
+		$new_columns['question-type'] = _x('Type', 'column name', 'woothemes-sensei');
64
+		$new_columns['question-category'] = _x('Categories', 'column name', 'woothemes-sensei');
65
+		if (isset($defaults['date'])) {
66 66
 			$new_columns['date'] = $defaults['date'];
67 67
 		}
68 68
 
@@ -77,27 +77,27 @@  discard block
 block discarded – undo
77 77
 	 * @param  int $id
78 78
 	 * @return void
79 79
 	 */
80
-	public function add_column_data ( $column_name, $id ) {
80
+	public function add_column_data($column_name, $id) {
81 81
 		global $wpdb, $post;
82 82
 
83
-		switch ( $column_name ) {
83
+		switch ($column_name) {
84 84
 
85 85
 			case 'id':
86 86
 				echo $id;
87 87
 			break;
88 88
 
89 89
 			case 'question-type':
90
-				$question_type = strip_tags( get_the_term_list( $id, 'question-type', '', ', ', '' ) );
90
+				$question_type = strip_tags(get_the_term_list($id, 'question-type', '', ', ', ''));
91 91
 				$output = '&mdash;';
92
-				if( isset( $this->question_types[ $question_type ] ) ) {
93
-					$output = $this->question_types[ $question_type ];
92
+				if (isset($this->question_types[$question_type])) {
93
+					$output = $this->question_types[$question_type];
94 94
 				}
95 95
 				echo $output;
96 96
 			break;
97 97
 
98 98
 			case 'question-category':
99
-				$output = strip_tags( get_the_term_list( $id, 'question-category', '', ', ', '' ) );
100
-				if( ! $output ) {
99
+				$output = strip_tags(get_the_term_list($id, 'question-category', '', ', ', ''));
100
+				if ( ! $output) {
101 101
 					$output = '&mdash;';
102 102
 				}
103 103
 				echo $output;
@@ -110,49 +110,49 @@  discard block
 block discarded – undo
110 110
 
111 111
 	} // End add_column_data()
112 112
 
113
-	public function question_edit_panel_metabox( $post_type, $post ) {
114
-		if( in_array( $post_type, array( 'question', 'multiple_question' ) ) ) {
113
+	public function question_edit_panel_metabox($post_type, $post) {
114
+		if (in_array($post_type, array('question', 'multiple_question'))) {
115 115
 
116
-			$metabox_title = __( 'Question', 'woothemes-sensei' );
116
+			$metabox_title = __('Question', 'woothemes-sensei');
117 117
 
118
-			if( isset( $post->ID ) ) {
118
+			if (isset($post->ID)) {
119 119
 
120
-                $question_type = Sensei()->question->get_question_type( $post->ID );
120
+                $question_type = Sensei()->question->get_question_type($post->ID);
121 121
 
122
-				if( $question_type ) {
123
-					$type = $this->question_types[ $question_type ];
124
-					if( $type ) {
122
+				if ($question_type) {
123
+					$type = $this->question_types[$question_type];
124
+					if ($type) {
125 125
 						$metabox_title = $type;
126 126
 					}
127 127
 				}
128 128
 			}
129
-			add_meta_box( 'question-edit-panel', $metabox_title, array( $this, 'question_edit_panel' ), 'question', 'normal', 'high' );
130
-			add_meta_box( 'question-lessons-panel', __( 'Quizzes', 'woothemes-sensei' ), array( $this, 'question_lessons_panel' ), 'question', 'side', 'default' );
131
-			add_meta_box( 'multiple-question-lessons-panel', __( 'Quizzes', 'woothemes-sensei' ), array( $this, 'question_lessons_panel' ), 'multiple_question', 'side', 'default' );
129
+			add_meta_box('question-edit-panel', $metabox_title, array($this, 'question_edit_panel'), 'question', 'normal', 'high');
130
+			add_meta_box('question-lessons-panel', __('Quizzes', 'woothemes-sensei'), array($this, 'question_lessons_panel'), 'question', 'side', 'default');
131
+			add_meta_box('multiple-question-lessons-panel', __('Quizzes', 'woothemes-sensei'), array($this, 'question_lessons_panel'), 'multiple_question', 'side', 'default');
132 132
 		}
133 133
 	}
134 134
 
135 135
 	public function question_edit_panel() {
136 136
 		global  $post, $pagenow;
137 137
 
138
-		add_action( 'admin_enqueue_scripts', array( Sensei()->lesson, 'enqueue_scripts' ) );
139
-		add_action( 'admin_enqueue_scripts', array( Sensei()->lesson, 'enqueue_styles' ) );
138
+		add_action('admin_enqueue_scripts', array(Sensei()->lesson, 'enqueue_scripts'));
139
+		add_action('admin_enqueue_scripts', array(Sensei()->lesson, 'enqueue_styles'));
140 140
 
141 141
 		$html = '<div id="lesson-quiz" class="single-question"><div id="add-question-main">';
142 142
 
143
-		if( 'post-new.php' == $pagenow ) {
143
+		if ('post-new.php' == $pagenow) {
144 144
 
145 145
 			$html .= '<div id="add-question-actions">';
146
-				$html .= Sensei()->lesson->quiz_panel_add( 'question' );
146
+				$html .= Sensei()->lesson->quiz_panel_add('question');
147 147
 			$html .= '</div>';
148 148
 
149 149
 		} else {
150 150
 			$question_id = $post->ID;
151 151
 
152
-			$question_type =  Sensei()->question->get_question_type( $post->ID );
152
+			$question_type = Sensei()->question->get_question_type($post->ID);
153 153
 
154 154
 			$html .= '<div id="add-question-metadata"><table class="widefat">';
155
-				$html .= Sensei()->lesson->quiz_panel_question( $question_type, 0, $question_id, 'question' );
155
+				$html .= Sensei()->lesson->quiz_panel_question($question_type, 0, $question_id, 'question');
156 156
 			$html .= '</table></div>';
157 157
 		}
158 158
 
@@ -164,20 +164,20 @@  discard block
 block discarded – undo
164 164
 	public function question_lessons_panel() {
165 165
 		global $post;
166 166
 
167
-		$no_lessons = sprintf( __( '%1$sThis question does not appear in any quizzes yet.%2$s', 'woothemes-sensei' ), '<em>', '</em>' );
167
+		$no_lessons = sprintf(__('%1$sThis question does not appear in any quizzes yet.%2$s', 'woothemes-sensei'), '<em>', '</em>');
168 168
 
169
-		if( ! isset( $post->ID ) ) {
169
+		if ( ! isset($post->ID)) {
170 170
 			echo $no_lessons;
171 171
 			return;
172 172
 		}
173 173
 
174 174
 		// This retrieves those quizzes the question is directly connected to.
175
-		$quizzes = get_post_meta( $post->ID, '_quiz_id', false );
175
+		$quizzes = get_post_meta($post->ID, '_quiz_id', false);
176 176
 
177 177
 		// Collate all 'multiple_question' quizzes the question is part of.
178
-		$categories_of_question = wp_get_post_terms( $post->ID, 'question-category', array( 'fields' => 'ids' ) );
179
-		if ( ! empty( $categories_of_question ) ) {
180
-			foreach ( $categories_of_question as $term_id ) {
178
+		$categories_of_question = wp_get_post_terms($post->ID, 'question-category', array('fields' => 'ids'));
179
+		if ( ! empty($categories_of_question)) {
180
+			foreach ($categories_of_question as $term_id) {
181 181
 				$qargs = array(
182 182
 					'fields'           => 'ids',
183 183
 					'post_type'        => 'multiple_question',
@@ -191,41 +191,41 @@  discard block
 block discarded – undo
191 191
 					'post_status'      => 'any',
192 192
 					'suppress_filters' => 0,
193 193
 				);
194
-				$cat_question_ids = get_posts( $qargs );
195
-				foreach( $cat_question_ids as $cat_question_id ) {
196
-					$cat_quizzes = get_post_meta( $cat_question_id, '_quiz_id', false );
197
-					$quizzes = array_merge( $quizzes, $cat_quizzes );
194
+				$cat_question_ids = get_posts($qargs);
195
+				foreach ($cat_question_ids as $cat_question_id) {
196
+					$cat_quizzes = get_post_meta($cat_question_id, '_quiz_id', false);
197
+					$quizzes = array_merge($quizzes, $cat_quizzes);
198 198
 				}
199 199
 			}
200
-			$quizzes = array_unique( array_filter( $quizzes ) );
200
+			$quizzes = array_unique(array_filter($quizzes));
201 201
 		}
202 202
 
203
-		if( 0 == count( $quizzes ) ) {
203
+		if (0 == count($quizzes)) {
204 204
 			echo $no_lessons;
205 205
 			return;
206 206
 		}
207 207
 
208 208
 		$lessons = false;
209 209
 
210
-		foreach( $quizzes as $quiz ) {
210
+		foreach ($quizzes as $quiz) {
211 211
 
212
-			$lesson_id = get_post_meta( $quiz, '_quiz_lesson', true );
212
+			$lesson_id = get_post_meta($quiz, '_quiz_lesson', true);
213 213
 
214
-			if( ! $lesson_id ) continue;
214
+			if ( ! $lesson_id) continue;
215 215
 
216
-			$lessons[ $lesson_id ]['title'] = get_the_title( $lesson_id );
217
-			$lessons[ $lesson_id ]['link'] = admin_url( 'post.php?post=' . $lesson_id . '&action=edit' );
216
+			$lessons[$lesson_id]['title'] = get_the_title($lesson_id);
217
+			$lessons[$lesson_id]['link'] = admin_url('post.php?post='.$lesson_id.'&action=edit');
218 218
 		}
219 219
 
220
-		if( ! $lessons ) {
220
+		if ( ! $lessons) {
221 221
 			echo $no_lessons;
222 222
 			return;
223 223
 		}
224 224
 
225 225
 		$html = '<ul>';
226 226
 
227
-		foreach( $lessons as $id => $lesson ) {
228
-			$html .= '<li><a href="' . esc_url( $lesson['link'] ) . '">' . esc_html( $lesson['title'] ) . '</a></li>';
227
+		foreach ($lessons as $id => $lesson) {
228
+			$html .= '<li><a href="'.esc_url($lesson['link']).'">'.esc_html($lesson['title']).'</a></li>';
229 229
 		}
230 230
 
231 231
 		$html .= '</ul>';
@@ -234,30 +234,30 @@  discard block
 block discarded – undo
234 234
 
235 235
 	}
236 236
 
237
-	public function save_question( $post_id = 0 ) {
237
+	public function save_question($post_id = 0) {
238 238
 
239
-		if( ! isset( $_POST['post_type']
240
-            ) || 'question' != $_POST['post_type'] ) {
239
+		if ( ! isset($_POST['post_type']
240
+            ) || 'question' != $_POST['post_type']) {
241 241
             return;
242 242
         }
243 243
 
244 244
 
245 245
 
246 246
         //setup the data for saving
247
-		$data = $_POST ;
247
+		$data = $_POST;
248 248
         $data['quiz_id'] = 0;
249 249
 		$data['question_id'] = $post_id;
250 250
 
251
-		if ( ! wp_is_post_revision( $post_id ) ){
251
+		if ( ! wp_is_post_revision($post_id)) {
252 252
 
253 253
 			// Unhook function to prevent infinite loops
254
-			remove_action( 'save_post', array( $this, 'save_question' ) );
254
+			remove_action('save_post', array($this, 'save_question'));
255 255
 
256 256
 			// Update question data
257
-			$question_id = Sensei()->lesson->lesson_save_question( $data, 'question' );
257
+			$question_id = Sensei()->lesson->lesson_save_question($data, 'question');
258 258
 
259 259
 			// Re-hook same function
260
-			add_action( 'save_post', array( $this, 'save_question' ) );
260
+			add_action('save_post', array($this, 'save_question'));
261 261
 		}
262 262
 
263 263
 		return;
@@ -270,15 +270,15 @@  discard block
 block discarded – undo
270 270
 	public function filter_options() {
271 271
 		global $typenow;
272 272
 
273
-		if( is_admin() && 'question' == $typenow ) {
273
+		if (is_admin() && 'question' == $typenow) {
274 274
 
275 275
 			$output = '';
276 276
 
277 277
 			// Question type
278
-			$selected = isset( $_GET['question_type'] ) ? $_GET['question_type'] : '';
279
-			$type_options = '<option value="">' . __( 'All types', 'woothemes-sensei' ) . '</option>';
280
-			foreach( $this->question_types as $label => $type ) {
281
-				$type_options .= '<option value="' . esc_attr( $label ) . '" ' . selected( $selected, $label, false ) . '>' . esc_html( $type ) . '</option>';
278
+			$selected = isset($_GET['question_type']) ? $_GET['question_type'] : '';
279
+			$type_options = '<option value="">'.__('All types', 'woothemes-sensei').'</option>';
280
+			foreach ($this->question_types as $label => $type) {
281
+				$type_options .= '<option value="'.esc_attr($label).'" '.selected($selected, $label, false).'>'.esc_html($type).'</option>';
282 282
 			}
283 283
 
284 284
 			$output .= '<select name="question_type" id="dropdown_question_type">';
@@ -286,12 +286,12 @@  discard block
 block discarded – undo
286 286
 			$output .= '</select>';
287 287
 
288 288
 			// Question category
289
-			$cats = get_terms( 'question-category', array( 'hide_empty' => false ) );
290
-			if ( ! empty( $cats ) && ! is_wp_error( $cats ) ) {
291
-				$selected = isset( $_GET['question_cat'] ) ? $_GET['question_cat'] : '';
292
-				$cat_options = '<option value="">' . __( 'All categories', 'woothemes-sensei' ) . '</option>';
293
-				foreach( $cats as $cat ) {
294
-					$cat_options .= '<option value="' . esc_attr( $cat->slug ) . '" ' . selected( $selected, $cat->slug, false ) . '>' . esc_html( $cat->name ) . '</option>';
289
+			$cats = get_terms('question-category', array('hide_empty' => false));
290
+			if ( ! empty($cats) && ! is_wp_error($cats)) {
291
+				$selected = isset($_GET['question_cat']) ? $_GET['question_cat'] : '';
292
+				$cat_options = '<option value="">'.__('All categories', 'woothemes-sensei').'</option>';
293
+				foreach ($cats as $cat) {
294
+					$cat_options .= '<option value="'.esc_attr($cat->slug).'" '.selected($selected, $cat->slug, false).'>'.esc_html($cat->name).'</option>';
295 295
 				}
296 296
 
297 297
 				$output .= '<select name="question_cat" id="dropdown_question_cat">';
@@ -308,14 +308,14 @@  discard block
 block discarded – undo
308 308
 	 * @param  array $request Current request
309 309
 	 * @return array          Modified request
310 310
 	 */
311
-	public function filter_actions( $request ) {
311
+	public function filter_actions($request) {
312 312
 		global $typenow;
313 313
 
314
-		if( is_admin() && 'question' == $typenow ) {
314
+		if (is_admin() && 'question' == $typenow) {
315 315
 
316 316
 			// Question type
317
-			$question_type = isset( $_GET['question_type'] ) ? $_GET['question_type'] : '';
318
-			if( $question_type ) {
317
+			$question_type = isset($_GET['question_type']) ? $_GET['question_type'] : '';
318
+			if ($question_type) {
319 319
 				$type_query = array(
320 320
 					'taxonomy' => 'question-type',
321 321
 					'terms' => $question_type,
@@ -325,8 +325,8 @@  discard block
 block discarded – undo
325 325
 			}
326 326
 
327 327
 			// Question category
328
-			$question_cat = isset( $_GET['question_cat'] ) ? $_GET['question_cat'] : '';
329
-			if( $question_cat ) {
328
+			$question_cat = isset($_GET['question_cat']) ? $_GET['question_cat'] : '';
329
+			if ($question_cat) {
330 330
 				$cat_query = array(
331 331
 					'taxonomy' => 'question-category',
332 332
 					'terms' => $question_cat,
@@ -351,16 +351,16 @@  discard block
 block discarded – undo
351 351
      *
352 352
      * @return string $question_type | bool
353 353
      */
354
-    public function get_question_type( $question_id ){
354
+    public function get_question_type($question_id) {
355 355
 
356
-        if( empty( $question_id ) || ! intval( $question_id ) > 0
357
-            || 'question' != get_post_type( $question_id )   ){
356
+        if (empty($question_id) || ! intval($question_id) > 0
357
+            || 'question' != get_post_type($question_id)) {
358 358
             return false;
359 359
         }
360 360
 
361 361
         $question_type = 'multiple-choice';
362
-        $question_types = wp_get_post_terms( $question_id, 'question-type' );
363
-        foreach( $question_types as $type ) {
362
+        $question_types = wp_get_post_terms($question_id, 'question-type');
363
+        foreach ($question_types as $type) {
364 364
             $question_type = $type->slug;
365 365
         }
366 366
 
@@ -377,21 +377,21 @@  discard block
 block discarded – undo
377 377
 	 *
378 378
 	 * @return int $question_grade | bool
379 379
 	 */
380
-	public function get_question_grade( $question_id ) {
380
+	public function get_question_grade($question_id) {
381 381
 
382
-		if ( empty( $question_id ) || ! intval( $question_id ) > 0
383
-			|| 'question' != get_post_type( $question_id ) ) {
382
+		if (empty($question_id) || ! intval($question_id) > 0
383
+			|| 'question' != get_post_type($question_id)) {
384 384
 			return false;
385 385
 		}
386 386
 
387
-		$question_grade_raw = get_post_meta( $question_id, '_question_grade', true );
387
+		$question_grade_raw = get_post_meta($question_id, '_question_grade', true);
388 388
 		// If not set then default to 1...
389
-		if ( false === $question_grade_raw || $question_grade_raw == '' ) {
389
+		if (false === $question_grade_raw || $question_grade_raw == '') {
390 390
 			$question_grade = 1;
391 391
 		}
392 392
 		// ...but allow a grade of 0 for non-marked questions
393 393
 		else {
394
-			$question_grade = intval( $question_grade_raw );
394
+			$question_grade = intval($question_grade_raw);
395 395
 		}
396 396
 		return $question_grade;
397 397
 
@@ -404,9 +404,9 @@  discard block
 block discarded – undo
404 404
      * @since 1.9.0
405 405
      * @param $question_type
406 406
      */
407
-    public static function load_question_template( $question_type ){
407
+    public static function load_question_template($question_type) {
408 408
 
409
-        Sensei_Templates::get_template  ( 'single-quiz/question_type-' . $question_type . '.php' );
409
+        Sensei_Templates::get_template('single-quiz/question_type-'.$question_type.'.php');
410 410
     }
411 411
 
412 412
     /**
@@ -417,9 +417,9 @@  discard block
 block discarded – undo
417 417
      * @since 1.9.0
418 418
      * @param $question_id
419 419
      */
420
-    public static function the_question_title( $question_id ){
420
+    public static function the_question_title($question_id) {
421 421
 
422
-        echo self::get_the_question_title( $question_id );
422
+        echo self::get_the_question_title($question_id);
423 423
 
424 424
     }// end the_question_title
425 425
 
@@ -431,7 +431,7 @@  discard block
 block discarded – undo
431 431
      * @param $question_id
432 432
      * @return string
433 433
      */
434
-    public static function get_the_question_title( $question_id ){
434
+    public static function get_the_question_title($question_id) {
435 435
 
436 436
         /**
437 437
          * Filter the sensei question title
@@ -439,17 +439,17 @@  discard block
 block discarded – undo
439 439
          * @since 1.3.0
440 440
          * @param $question_title
441 441
          */
442
-        $title = apply_filters( 'sensei_question_title', get_the_title( $question_id ) );
442
+        $title = apply_filters('sensei_question_title', get_the_title($question_id));
443 443
 
444 444
         /**
445 445
          * hook document in class-woothemes-sensei-message.php the_title()
446 446
          */
447
-        $title = apply_filters( 'sensei_single_title', $title, 'question');
447
+        $title = apply_filters('sensei_single_title', $title, 'question');
448 448
 
449 449
         $title_html  = '<span class="question question-title">';
450 450
         $title_html .= $title;
451 451
         $title_html .= '<span class="grade"><?php sensi_the_question_grade()?></span>';
452
-        $title_html .='</span>';
452
+        $title_html .= '</span>';
453 453
 
454 454
         return $title_html;
455 455
     }
@@ -460,14 +460,14 @@  discard block
 block discarded – undo
460 460
      * @param $question_id
461 461
      * @return string
462 462
      */
463
-    public static function get_the_question_description( $question_id ){
463
+    public static function get_the_question_description($question_id) {
464 464
 
465
-        $question = get_post( $question_id );
465
+        $question = get_post($question_id);
466 466
 
467 467
         /**
468 468
          * Already documented within WordPress Core
469 469
          */
470
-        return apply_filters( 'the_content', $question->post_content );
470
+        return apply_filters('the_content', $question->post_content);
471 471
 
472 472
     }
473 473
 
@@ -477,9 +477,9 @@  discard block
 block discarded – undo
477 477
      * @since 1.9.0
478 478
      * @param $question_id
479 479
      */
480
-    public static function the_question_description( $question_id  ){
480
+    public static function the_question_description($question_id) {
481 481
 
482
-        echo self::get_the_question_description( $question_id );
482
+        echo self::get_the_question_description($question_id);
483 483
 
484 484
     }
485 485
 
@@ -490,38 +490,38 @@  discard block
 block discarded – undo
490 490
      * @param $question_id
491 491
      * @return string
492 492
      */
493
-    public static function get_the_question_media( $question_id ){
493
+    public static function get_the_question_media($question_id) {
494 494
 
495
-        $question_media = get_post_meta( $question_id, '_question_media', true );
495
+        $question_media = get_post_meta($question_id, '_question_media', true);
496 496
         $question_media_link = '';
497
-        if( 0 < intval( $question_media ) ) {
498
-            $mimetype = get_post_mime_type( $question_media );
499
-            if( $mimetype ) {
500
-                $mimetype_array = explode( '/', $mimetype);
501
-                if( isset( $mimetype_array[0] ) && $mimetype_array[0] ) {
497
+        if (0 < intval($question_media)) {
498
+            $mimetype = get_post_mime_type($question_media);
499
+            if ($mimetype) {
500
+                $mimetype_array = explode('/', $mimetype);
501
+                if (isset($mimetype_array[0]) && $mimetype_array[0]) {
502 502
                     $question_media_type = $mimetype_array[0];
503
-                    $question_media_url = wp_get_attachment_url( $question_media );
504
-                    $attachment = get_post( $question_media );
503
+                    $question_media_url = wp_get_attachment_url($question_media);
504
+                    $attachment = get_post($question_media);
505 505
                     $question_media_title = $attachment->post_title;
506 506
                     $question_media_description = $attachment->post_content;
507
-                    switch( $question_media_type ) {
507
+                    switch ($question_media_type) {
508 508
                         case 'image':
509
-                            $image_size = apply_filters( 'sensei_question_image_size', 'medium', $question_id );
510
-                            $attachment_src = wp_get_attachment_image_src( $question_media, $image_size );
511
-                            $question_media_link = '<a class="' . esc_attr( $question_media_type ) . '" title="' . esc_attr( $question_media_title ) . '" href="' . esc_url( $question_media_url ) . '" target="_blank"><img src="' . $attachment_src[0] . '" width="' . $attachment_src[1] . '" height="' . $attachment_src[2] . '" /></a>';
509
+                            $image_size = apply_filters('sensei_question_image_size', 'medium', $question_id);
510
+                            $attachment_src = wp_get_attachment_image_src($question_media, $image_size);
511
+                            $question_media_link = '<a class="'.esc_attr($question_media_type).'" title="'.esc_attr($question_media_title).'" href="'.esc_url($question_media_url).'" target="_blank"><img src="'.$attachment_src[0].'" width="'.$attachment_src[1].'" height="'.$attachment_src[2].'" /></a>';
512 512
                             break;
513 513
 
514 514
                         case 'audio':
515
-                            $question_media_link = wp_audio_shortcode( array( 'src' => $question_media_url ) );
515
+                            $question_media_link = wp_audio_shortcode(array('src' => $question_media_url));
516 516
                             break;
517 517
 
518 518
                         case 'video':
519
-                            $question_media_link = wp_video_shortcode( array( 'src' => $question_media_url ) );
519
+                            $question_media_link = wp_video_shortcode(array('src' => $question_media_url));
520 520
                             break;
521 521
 
522 522
                         default:
523
-                            $question_media_filename = basename( $question_media_url );
524
-                            $question_media_link = '<a class="' . esc_attr( $question_media_type ) . '" title="' . esc_attr( $question_media_title ) . '" href="' . esc_url( $question_media_url ) . '" target="_blank">' . $question_media_filename . '</a>';
523
+                            $question_media_filename = basename($question_media_url);
524
+                            $question_media_link = '<a class="'.esc_attr($question_media_type).'" title="'.esc_attr($question_media_title).'" href="'.esc_url($question_media_url).'" target="_blank">'.$question_media_filename.'</a>';
525 525
                             break;
526 526
                     }
527 527
                 }
@@ -529,21 +529,21 @@  discard block
 block discarded – undo
529 529
         }
530 530
 
531 531
         $output = '';
532
-        if( $question_media_link ) {
532
+        if ($question_media_link) {
533 533
 
534 534
                 $output .= '<div class="question_media_display">';
535
-                $output .=      $question_media_link;
535
+                $output .= $question_media_link;
536 536
                 $output .= '<dl>';
537 537
 
538
-                if( $question_media_title ) {
538
+                if ($question_media_title) {
539 539
 
540
-                   $output .= '<dt>'. $question_media_title. '</dt>';
540
+                   $output .= '<dt>'.$question_media_title.'</dt>';
541 541
 
542 542
                  }
543 543
 
544
-                if( $question_media_description ) {
544
+                if ($question_media_description) {
545 545
 
546
-                    $output .= '<dd>' . $question_media_description . '</dd>';
546
+                    $output .= '<dd>'.$question_media_description.'</dd>';
547 547
 
548 548
                 }
549 549
 
@@ -564,9 +564,9 @@  discard block
 block discarded – undo
564 564
      * @since 1.9.0
565 565
      * @param string $question_id
566 566
      */
567
-    public static function the_question_media( $question_id ){
567
+    public static function the_question_media($question_id) {
568 568
 
569
-        echo self::get_the_question_media( $question_id );
569
+        echo self::get_the_question_media($question_id);
570 570
 
571 571
     }
572 572
 
@@ -577,11 +577,11 @@  discard block
 block discarded – undo
577 577
      *
578 578
      * @param $question_id
579 579
      */
580
-    public static function the_question_hidden_fields( $question_id ){
580
+    public static function the_question_hidden_fields($question_id) {
581 581
         ?>
582 582
 
583
-            <input type="hidden" name="question_id_<?php $question_id;?>" value="<?php $question_id;?>" />
584
-            <input type="hidden" name="questions_asked[]" value="<?php esc_attr_e( $question_id ); ?>" />
583
+            <input type="hidden" name="question_id_<?php $question_id; ?>" value="<?php $question_id; ?>" />
584
+            <input type="hidden" name="questions_asked[]" value="<?php esc_attr_e($question_id); ?>" />
585 585
 
586 586
         <?php
587 587
     }
@@ -592,27 +592,27 @@  discard block
 block discarded – undo
592 592
      * @since 1.9.0
593 593
      * @param $question_id
594 594
      */
595
-    public static function answer_feedback_notes( $question_id ){
595
+    public static function answer_feedback_notes($question_id) {
596 596
 
597 597
         //IDS
598 598
         $quiz_id = get_the_ID();
599
-        $lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
599
+        $lesson_id = Sensei()->quiz->get_lesson_id($quiz_id);
600 600
 
601 601
         // Data to check before showing feedback
602
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, get_current_user_id() );
603
-        $user_quiz_grade = Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
604
-        $not_empty_user_quiz_grade = !empty( $user_quiz_grade );
605
-        $reset_quiz_allowed = Sensei_Quiz::is_reset_allowed( $lesson_id );
606
-        $lesson_completed = Sensei_Utils::user_completed_lesson( $lesson_id );
607
-        $quiz_grade_type = get_post_meta( $quiz_id , '_quiz_grade_type', true );
602
+        $user_lesson_status = Sensei_Utils::user_lesson_status($lesson_id, get_current_user_id());
603
+        $user_quiz_grade = Sensei_Quiz::get_user_quiz_grade($lesson_id, get_current_user_id());
604
+        $not_empty_user_quiz_grade = ! empty($user_quiz_grade);
605
+        $reset_quiz_allowed = Sensei_Quiz::is_reset_allowed($lesson_id);
606
+        $lesson_completed = Sensei_Utils::user_completed_lesson($lesson_id);
607
+        $quiz_grade_type = get_post_meta($quiz_id, '_quiz_grade_type', true);
608 608
 
609
-        if( ( $lesson_completed  && $not_empty_user_quiz_grade  )
610
-            ||  ( $lesson_completed && ! $reset_quiz_allowed && 'auto' == $quiz_grade_type )
611
-            || ( 'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $not_empty_user_quiz_grade ) ) {
609
+        if (($lesson_completed && $not_empty_user_quiz_grade)
610
+            ||  ($lesson_completed && ! $reset_quiz_allowed && 'auto' == $quiz_grade_type)
611
+            || ('auto' == $quiz_grade_type && ! $reset_quiz_allowed && $not_empty_user_quiz_grade)) {
612 612
 
613
-            $answer_notes = Sensei()->quiz->get_user_question_feedback( $lesson_id, $question_id, get_current_user_id() );
613
+            $answer_notes = Sensei()->quiz->get_user_question_feedback($lesson_id, $question_id, get_current_user_id());
614 614
 
615
-            if( $answer_notes ) { ?>
615
+            if ($answer_notes) { ?>
616 616
 
617 617
                 <div class="sensei-message info info-special answer-feedback">
618 618
 
@@ -626,7 +626,7 @@  discard block
 block discarded – undo
626 626
                          * @param string $question_id
627 627
                          * @param string $lesson_id
628 628
                          */
629
-                        echo apply_filters( 'sensei_question_answer_notes', $answer_notes, $question_id, $lesson_id );
629
+                        echo apply_filters('sensei_question_answer_notes', $answer_notes, $question_id, $lesson_id);
630 630
 
631 631
                     ?>
632 632
 
@@ -645,72 +645,72 @@  discard block
 block discarded – undo
645 645
      * @since 1.9.0
646 646
      * @param string $question_id
647 647
      */
648
-    public static function the_answer_result_indication( $question_id ){
648
+    public static function the_answer_result_indication($question_id) {
649 649
 
650
-        global $post,  $current_user, $sensei_question_loop;
650
+        global $post, $current_user, $sensei_question_loop;
651 651
 
652 652
         // Post Data
653 653
         $quiz_id = $sensei_question_loop['quiz_id'];
654
-        $lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
654
+        $lesson_id = Sensei()->quiz->get_lesson_id($quiz_id);
655 655
         $question_item = $sensei_question_loop['current_question'];
656 656
 
657 657
         // Setup variable needed to determine if the message should show and what it should show
658
-        $user_quiz_grade = Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
659
-        $lesson_complete = Sensei_Utils::user_completed_lesson( $lesson_id, get_current_user_id() );
660
-        $reset_quiz_allowed = Sensei_Quiz::is_reset_allowed( $lesson_id );
661
-        $quiz_grade_type = get_post_meta( $quiz_id, '_quiz_grade_type', true );
658
+        $user_quiz_grade = Sensei_Quiz::get_user_quiz_grade($lesson_id, get_current_user_id());
659
+        $lesson_complete = Sensei_Utils::user_completed_lesson($lesson_id, get_current_user_id());
660
+        $reset_quiz_allowed = Sensei_Quiz::is_reset_allowed($lesson_id);
661
+        $quiz_grade_type = get_post_meta($quiz_id, '_quiz_grade_type', true);
662 662
 
663 663
         // retrieve the question total grade
664
-        $question_grade = Sensei()->question->get_question_grade( $question_id );
664
+        $question_grade = Sensei()->question->get_question_grade($question_id);
665 665
 
666 666
         // retrieve grade the user achieved
667
-        $user_question_grade = Sensei()->quiz->get_user_question_grade( $lesson_id, $question_id, get_current_user_id() );
667
+        $user_question_grade = Sensei()->quiz->get_user_question_grade($lesson_id, $question_id, get_current_user_id());
668 668
 
669 669
         // Question ID
670 670
         $question_id = $question_item->ID;
671 671
 
672 672
         // conditions to check
673
-        $completed_with_valid_grade = $lesson_complete && $user_quiz_grade != '' ;
674
-        $completed_with_valid_grade_and_reset_not_allowed = $lesson_complete &&  $user_quiz_grade != '' && ! $reset_quiz_allowed ;
675
-        $grade_type_auto_a_valid_grade_and_reset_not_allowed =  'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $user_quiz_grade != '' ;
673
+        $completed_with_valid_grade = $lesson_complete && $user_quiz_grade != '';
674
+        $completed_with_valid_grade_and_reset_not_allowed = $lesson_complete && $user_quiz_grade != '' && ! $reset_quiz_allowed;
675
+        $grade_type_auto_a_valid_grade_and_reset_not_allowed = 'auto' == $quiz_grade_type && ! $reset_quiz_allowed && $user_quiz_grade != '';
676 676
 
677
-        if (  $completed_with_valid_grade
677
+        if ($completed_with_valid_grade
678 678
             || $completed_with_valid_grade_and_reset_not_allowed
679
-            || $grade_type_auto_a_valid_grade_and_reset_not_allowed  ) {
679
+            || $grade_type_auto_a_valid_grade_and_reset_not_allowed) {
680 680
 
681 681
             $user_correct = false;
682
-            $answer_message = __( 'Incorrect', 'woothemes-sensei' );
682
+            $answer_message = __('Incorrect', 'woothemes-sensei');
683 683
             $answer_message_class = 'user_wrong';
684 684
             // For zero grade mark as 'correct' but add no classes
685
-            if ( 0 == $question_grade ) {
685
+            if (0 == $question_grade) {
686 686
 
687 687
                 $user_correct = true;
688 688
                 $answer_message = '';
689 689
                 $answer_message_class = '';
690 690
 
691
-            } else if( $user_question_grade > 0 ) {
691
+            } else if ($user_question_grade > 0) {
692 692
 
693 693
                 $user_correct = true;
694
-                $answer_message = sprintf( __( 'Grade: %d', 'woothemes-sensei' ), $user_question_grade );
694
+                $answer_message = sprintf(__('Grade: %d', 'woothemes-sensei'), $user_question_grade);
695 695
                 $answer_message_class = 'user_right';
696 696
 
697 697
             }
698 698
 
699 699
             // attach the correct answer if the question is auto gradable and user got it wrong
700
-            if( !$reset_quiz_allowed && !$user_correct ){
700
+            if ( ! $reset_quiz_allowed && ! $user_correct) {
701 701
 
702
-                $answer_message .=  ' - '. __('Right Answer:','woothemes-sensei') . ' ' . self::get_correct_answer( $question_item->ID );
702
+                $answer_message .= ' - '.__('Right Answer:', 'woothemes-sensei').' '.self::get_correct_answer($question_item->ID);
703 703
 
704 704
             }
705 705
 
706 706
             // answer feedback
707
-            $answer_notes = Sensei()->quiz->get_user_question_feedback( $lesson_id, $question_id, $current_user->ID );
708
-            if( $answer_notes ) {
707
+            $answer_notes = Sensei()->quiz->get_user_question_feedback($lesson_id, $question_id, $current_user->ID);
708
+            if ($answer_notes) {
709 709
                 $answer_message_class .= ' has_notes';
710 710
             }
711 711
             ?>
712 712
 
713
-            <div class="answer_message <?php esc_attr_e( $answer_message_class ); ?>">
713
+            <div class="answer_message <?php esc_attr_e($answer_message_class); ?>">
714 714
 
715 715
                 <span><?php echo $answer_message; ?></span>
716 716
 
@@ -731,39 +731,39 @@  discard block
 block discarded – undo
731 731
      * @param $quiz_id
732 732
      * @return array $question_data
733 733
      */
734
-    public static function get_template_data( $question_id, $quiz_id ){
734
+    public static function get_template_data($question_id, $quiz_id) {
735 735
 
736
-        $lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id  );
736
+        $lesson_id = Sensei()->quiz->get_lesson_id($quiz_id);
737 737
 
738
-        $reset_allowed = get_post_meta( $quiz_id, '_enable_quiz_reset', true );
738
+        $reset_allowed = get_post_meta($quiz_id, '_enable_quiz_reset', true);
739 739
         //backwards compatibility
740
-        if( 'on' == $reset_allowed ) {
740
+        if ('on' == $reset_allowed) {
741 741
             $reset_allowed = 1;
742 742
         }
743 743
 
744 744
         // Check again that the lesson is complete
745
-        $user_lesson_end = Sensei_Utils::user_completed_lesson( Sensei()->quiz->get_lesson_id( $quiz_id), get_current_user_id() );
745
+        $user_lesson_end = Sensei_Utils::user_completed_lesson(Sensei()->quiz->get_lesson_id($quiz_id), get_current_user_id());
746 746
         $user_lesson_complete = false;
747
-        if ( $user_lesson_end ) {
747
+        if ($user_lesson_end) {
748 748
             $user_lesson_complete = true;
749 749
         }
750 750
 
751 751
         //setup the question data
752
-        $data[ 'ID' ]                     = $question_id;
753
-        $data[ 'title' ]                  = get_the_title( $question_id );
754
-        $data[ 'content' ]                = get_post( $question_id )->post_content;
755
-        $data[ 'quiz_id' ]                = $quiz_id;
756
-        $data[ 'lesson_id' ]              = Sensei()->quiz->get_lesson_id( $quiz_id );
757
-        $data[ 'type' ]                   = Sensei()->question->get_question_type( $question_id );
758
-        $data[ 'question_grade' ]         = Sensei()->question->get_question_grade(  $question_id  );
759
-        $data[ 'user_question_grade' ]    = Sensei()->quiz->get_user_question_grade( $lesson_id,  $question_id , get_current_user_id());
760
-        $data[ 'question_right_answer' ]  = get_post_meta( $question_id , '_question_right_answer', true );
761
-        $data[ 'question_wrong_answers' ] = get_post_meta( $question_id , '_question_wrong_answers', true );
762
-        $data[ 'user_answer_entry' ]      = Sensei()->quiz->get_user_question_answer( $lesson_id,  $question_id , get_current_user_id() );
763
-        $data[ 'lesson_completed' ]       = Sensei_Utils::user_completed_course( $lesson_id, get_current_user_id( ) );
764
-        $data[ 'quiz_grade_type' ]        = get_post_meta( $quiz_id , '_quiz_grade_type', true );
765
-        $data[ 'reset_quiz_allowed' ]     = $reset_allowed;
766
-        $data[ 'lesson_complete' ]        = $user_lesson_complete;
752
+        $data['ID']                     = $question_id;
753
+        $data['title']                  = get_the_title($question_id);
754
+        $data['content']                = get_post($question_id)->post_content;
755
+        $data['quiz_id']                = $quiz_id;
756
+        $data['lesson_id']              = Sensei()->quiz->get_lesson_id($quiz_id);
757
+        $data['type']                   = Sensei()->question->get_question_type($question_id);
758
+        $data['question_grade']         = Sensei()->question->get_question_grade($question_id);
759
+        $data['user_question_grade']    = Sensei()->quiz->get_user_question_grade($lesson_id, $question_id, get_current_user_id());
760
+        $data['question_right_answer']  = get_post_meta($question_id, '_question_right_answer', true);
761
+        $data['question_wrong_answers'] = get_post_meta($question_id, '_question_wrong_answers', true);
762
+        $data['user_answer_entry']      = Sensei()->quiz->get_user_question_answer($lesson_id, $question_id, get_current_user_id());
763
+        $data['lesson_completed']       = Sensei_Utils::user_completed_course($lesson_id, get_current_user_id( ));
764
+        $data['quiz_grade_type']        = get_post_meta($quiz_id, '_quiz_grade_type', true);
765
+        $data['reset_quiz_allowed']     = $reset_allowed;
766
+        $data['lesson_complete']        = $user_lesson_complete;
767 767
 
768 768
         /**
769 769
          * Filter the question template data. This filter fires  in
@@ -777,7 +777,7 @@  discard block
 block discarded – undo
777 777
          * @param string $question_id
778 778
          * @param string $quiz_id
779 779
          */
780
-        return apply_filters( 'sensei_get_question_template_data', $data, $question_id, $quiz_id );
780
+        return apply_filters('sensei_get_question_template_data', $data, $question_id, $quiz_id);
781 781
 
782 782
     }
783 783
 
@@ -793,28 +793,28 @@  discard block
 block discarded – undo
793 793
      *
794 794
      * @return array()
795 795
      */
796
-    public static function file_upload_load_question_data ( $question_data, $question_id, $quiz_id ){
796
+    public static function file_upload_load_question_data($question_data, $question_id, $quiz_id) {
797 797
 
798 798
 
799
-        if( 'file-upload' == Sensei()->question->get_question_type( $question_id ) ) {
799
+        if ('file-upload' == Sensei()->question->get_question_type($question_id)) {
800 800
 
801 801
             // Get uploaded file
802
-            $attachment_id = $question_data[ 'user_answer_entry' ];
802
+            $attachment_id = $question_data['user_answer_entry'];
803 803
             $answer_media_url = $answer_media_filename = '';
804 804
 
805 805
 
806 806
             $question_helptext = '';
807
-            if( isset( $question_data['question_wrong_answers'][0] ) ) {
807
+            if (isset($question_data['question_wrong_answers'][0])) {
808 808
 
809
-                $question_helptext =  $question_data['question_wrong_answers'][0];
809
+                $question_helptext = $question_data['question_wrong_answers'][0];
810 810
 
811 811
             }
812 812
 
813 813
 
814
-            if( 0 < intval( $attachment_id ) ) {
814
+            if (0 < intval($attachment_id)) {
815 815
 
816
-                $answer_media_url = wp_get_attachment_url( $attachment_id );
817
-                $answer_media_filename = basename( $answer_media_url );
816
+                $answer_media_url = wp_get_attachment_url($attachment_id);
817
+                $answer_media_filename = basename($answer_media_url);
818 818
 
819 819
             }
820 820
 
@@ -822,11 +822,11 @@  discard block
 block discarded – undo
822 822
             // Get max upload file size, formatted for display
823 823
             // Code copied from wp-admin/includes/media.php:1515
824 824
             $upload_size_unit = $max_upload_size = wp_max_upload_size();
825
-            $sizes = array( 'KB', 'MB', 'GB' );
826
-            for ( $u = -1; $upload_size_unit > 1024 && $u < count( $sizes ) - 1; $u++ ) {
825
+            $sizes = array('KB', 'MB', 'GB');
826
+            for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
827 827
                 $upload_size_unit /= 1024;
828 828
             }
829
-            if ( $u < 0 ) {
829
+            if ($u < 0) {
830 830
 
831 831
                 $upload_size_unit = 0;
832 832
                 $u = 0;
@@ -836,14 +836,14 @@  discard block
 block discarded – undo
836 836
                 $upload_size_unit = (int) $upload_size_unit;
837 837
 
838 838
             }
839
-            $max_upload_size = sprintf( __( 'Maximum upload file size: %d%s' ), esc_html( $upload_size_unit ), esc_html( $sizes[ $u ] ) );
839
+            $max_upload_size = sprintf(__('Maximum upload file size: %d%s'), esc_html($upload_size_unit), esc_html($sizes[$u]));
840 840
 
841 841
             // Assemble all the data needed by the file upload template
842
-            $question_data[ 'answer_media_url' ]      = $answer_media_url;
843
-            $question_data[ 'answer_media_filename' ] = $answer_media_filename;
844
-            $question_data[ 'max_upload_size' ]       = $max_upload_size;
842
+            $question_data['answer_media_url']      = $answer_media_url;
843
+            $question_data['answer_media_filename'] = $answer_media_filename;
844
+            $question_data['max_upload_size']       = $max_upload_size;
845 845
 
846
-            $question_data[ 'question_helptext' ]     = $question_helptext;
846
+            $question_data['question_helptext']     = $question_helptext;
847 847
 
848 848
         }// end if is file upload type
849 849
 
@@ -863,27 +863,27 @@  discard block
 block discarded – undo
863 863
      *
864 864
      * @return array()
865 865
      */
866
-    public static function multiple_choice_load_question_data( $question_data, $question_id, $quiz_id ){
866
+    public static function multiple_choice_load_question_data($question_data, $question_id, $quiz_id) {
867 867
 
868
-        if( 'multiple-choice' == Sensei()->question->get_question_type( $question_id ) ) {
868
+        if ('multiple-choice' == Sensei()->question->get_question_type($question_id)) {
869 869
 
870 870
 
871 871
             $answer_type = 'radio';
872
-            if ( is_array( $question_data[ 'question_right_answer' ] ) && ( 1 < count( $question_data[ 'question_right_answer' ] ) ) ) {
872
+            if (is_array($question_data['question_right_answer']) && (1 < count($question_data['question_right_answer']))) {
873 873
 
874 874
                 $answer_type = 'checkbox';
875 875
 
876 876
             }
877 877
 
878 878
             // Merge right and wrong answers
879
-            if ( is_array( $question_data[ 'question_right_answer' ] ) ) {
879
+            if (is_array($question_data['question_right_answer'])) {
880 880
 
881
-                $merged_options = array_merge( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
881
+                $merged_options = array_merge($question_data['question_wrong_answers'], $question_data['question_right_answer']);
882 882
 
883
-            }  else {
883
+            } else {
884 884
 
885
-                array_push( $question_data[ 'question_wrong_answers' ], $question_data[ 'question_right_answer' ] );
886
-                $merged_options = $question_data[ 'question_wrong_answers' ];
885
+                array_push($question_data['question_wrong_answers'], $question_data['question_right_answer']);
886
+                $merged_options = $question_data['question_wrong_answers'];
887 887
 
888 888
             }
889 889
 
@@ -891,24 +891,24 @@  discard block
 block discarded – undo
891 891
             $question_answers_options = array();
892 892
             $count = 0;
893 893
 
894
-            foreach( $merged_options as $answer ) {
894
+            foreach ($merged_options as $answer) {
895 895
 
896 896
                 $count++;
897 897
                 $question_option = array();
898 898
 
899
-                if( ( $question_data[ 'lesson_completed' ] && $question_data[ 'user_quiz_grade' ] != '' )
900
-                    || ( $question_data[ 'lesson_completed' ] && ! $question_data[ 'reset_quiz_allowed' ] && $question_data[ 'user_quiz_grade' ] != '' )
901
-                    || ( 'auto' == $question_data[ 'quiz_grade_type' ] && ! $question_data[ 'reset_quiz_allowed' ]  && ! empty( $question_data[ 'user_quiz_grade' ] ) ) ) {
899
+                if (($question_data['lesson_completed'] && $question_data['user_quiz_grade'] != '')
900
+                    || ($question_data['lesson_completed'] && ! $question_data['reset_quiz_allowed'] && $question_data['user_quiz_grade'] != '')
901
+                    || ('auto' == $question_data['quiz_grade_type'] && ! $question_data['reset_quiz_allowed'] && ! empty($question_data['user_quiz_grade']))) {
902 902
 
903 903
                     $user_correct = false;
904 904
 
905 905
 
906 906
                     // For zero grade mark as 'correct' but add no classes
907
-                    if ( 0 == $question_data[ 'question_grade' ] ) {
907
+                    if (0 == $question_data['question_grade']) {
908 908
 
909 909
                         $user_correct = true;
910 910
 
911
-                    }  else if( $question_data[ 'user_question_grade' ] > 0 ) {
911
+                    } else if ($question_data['user_question_grade'] > 0) {
912 912
 
913 913
                         $user_correct = true;
914 914
 
@@ -918,20 +918,20 @@  discard block
 block discarded – undo
918 918
 
919 919
                 // setup the option specific classes
920 920
                 $answer_class = '';
921
-                if( isset( $user_correct ) && 0 < $question_data[ 'question_grade' ] ) {
922
-                    if ( is_array( $question_data['question_right_answer'] ) && in_array($answer, $question_data['question_right_answer']) ) {
921
+                if (isset($user_correct) && 0 < $question_data['question_grade']) {
922
+                    if (is_array($question_data['question_right_answer']) && in_array($answer, $question_data['question_right_answer'])) {
923 923
 
924 924
                         $answer_class .= ' right_answer';
925 925
 
926
-                    }  elseif( !is_array($question_data['question_right_answer']) && $question_data['question_right_answer'] == $answer ) {
926
+                    }  elseif ( ! is_array($question_data['question_right_answer']) && $question_data['question_right_answer'] == $answer) {
927 927
 
928 928
                         $answer_class .= ' right_answer';
929 929
 
930
-                    } elseif( ( is_array( $question_data['user_answer_entry']  ) && in_array($answer, $question_data['user_answer_entry'] ) )
931
-                        ||  ( !  $question_data['user_answer_entry'] &&  $question_data['user_answer_entry'] == $answer ) ) {
930
+                    } elseif ((is_array($question_data['user_answer_entry']) && in_array($answer, $question_data['user_answer_entry']))
931
+                        ||  ( ! $question_data['user_answer_entry'] && $question_data['user_answer_entry'] == $answer)) {
932 932
 
933 933
                         $answer_class = 'user_wrong';
934
-                        if( $user_correct ) {
934
+                        if ($user_correct) {
935 935
 
936 936
                             $answer_class = 'user_right';
937 937
 
@@ -943,76 +943,76 @@  discard block
 block discarded – undo
943 943
 
944 944
                 // determine if the current option must be checked
945 945
                 $checked = '';
946
-                if ( isset( $question_data['user_answer_entry'] ) && 0 < count( $question_data['user_answer_entry'] ) ) {
947
-                    if ( is_array( $question_data['user_answer_entry'] ) && in_array( $answer, $question_data['user_answer_entry'] ) ) {
946
+                if (isset($question_data['user_answer_entry']) && 0 < count($question_data['user_answer_entry'])) {
947
+                    if (is_array($question_data['user_answer_entry']) && in_array($answer, $question_data['user_answer_entry'])) {
948 948
 
949 949
                         $checked = 'checked="checked"';
950 950
 
951
-                    } elseif ( !is_array( $question_data['user_answer_entry'] ) ) {
951
+                    } elseif ( ! is_array($question_data['user_answer_entry'])) {
952 952
 
953
-                        $checked = checked( $answer, $question_data['user_answer_entry'] , false );
953
+                        $checked = checked($answer, $question_data['user_answer_entry'], false);
954 954
 
955 955
                     }
956 956
 
957 957
                 } // End If Statement
958 958
 
959 959
                 //Load the answer option data
960
-                $question_option[ 'ID' ]          = Sensei()->lesson->get_answer_id( $answer );
961
-                $question_option[ 'answer' ]      = $answer;
962
-                $question_option[ 'option_class'] = $answer_class;
963
-                $question_option[ 'checked']      = $checked;
964
-                $question_option[ 'count' ]       = $count;
965
-                $question_option[ 'type' ] = $answer_type;
960
+                $question_option['ID']          = Sensei()->lesson->get_answer_id($answer);
961
+                $question_option['answer']      = $answer;
962
+                $question_option['option_class'] = $answer_class;
963
+                $question_option['checked']      = $checked;
964
+                $question_option['count']       = $count;
965
+                $question_option['type'] = $answer_type;
966 966
 
967 967
                 // add the speci  fic option to the list of options for this question
968
-                $question_answers_options[$question_option[ 'ID' ]] = $question_option;
968
+                $question_answers_options[$question_option['ID']] = $question_option;
969 969
 
970 970
             } // end for each option
971 971
 
972 972
 
973 973
             // Shuffle the array depending on the settings
974 974
             $answer_options_sorted = array();
975
-            $random_order = get_post_meta( $question_data['ID'], '_random_order', true );
976
-            if(  $random_order && $random_order == 'yes' ) {
975
+            $random_order = get_post_meta($question_data['ID'], '_random_order', true);
976
+            if ($random_order && $random_order == 'yes') {
977 977
 
978 978
                 $answer_options_sorted = $question_answers_options;
979
-                shuffle( $answer_options_sorted );
979
+                shuffle($answer_options_sorted);
980 980
 
981 981
             } else {
982 982
 
983 983
                 $answer_order = array();
984
-                $answer_order_string = get_post_meta( $question_data['ID'], '_answer_order', true );
985
-                if( $answer_order_string ) {
984
+                $answer_order_string = get_post_meta($question_data['ID'], '_answer_order', true);
985
+                if ($answer_order_string) {
986 986
 
987
-                    $answer_order = array_filter( explode( ',', $answer_order_string ) );
988
-                    if( count( $answer_order ) > 0 ) {
987
+                    $answer_order = array_filter(explode(',', $answer_order_string));
988
+                    if (count($answer_order) > 0) {
989 989
 
990
-                        foreach( $answer_order as $answer_id ) {
990
+                        foreach ($answer_order as $answer_id) {
991 991
 
992
-                            if( isset( $question_answers_options[ $answer_id ] ) ) {
992
+                            if (isset($question_answers_options[$answer_id])) {
993 993
 
994
-                                $answer_options_sorted[ $answer_id ] = $question_answers_options[ $answer_id ];
995
-                                unset( $question_answers_options[ $answer_id ] );
994
+                                $answer_options_sorted[$answer_id] = $question_answers_options[$answer_id];
995
+                                unset($question_answers_options[$answer_id]);
996 996
 
997 997
                             }
998 998
 
999 999
                         }
1000 1000
 
1001
-                        if( count( $question_answers_options ) > 0 ) {
1002
-                            foreach( $question_answers_options as $id => $answer ) {
1001
+                        if (count($question_answers_options) > 0) {
1002
+                            foreach ($question_answers_options as $id => $answer) {
1003 1003
 
1004
-                                $answer_options_sorted[ $id ] = $answer;
1004
+                                $answer_options_sorted[$id] = $answer;
1005 1005
 
1006 1006
                             }
1007 1007
                         }
1008 1008
 
1009
-                    }else{
1009
+                    } else {
1010 1010
 
1011 1011
                         $answer_options_sorted = $question_answers_options;
1012 1012
 
1013 1013
                     }
1014 1014
 
1015
-                }else{
1015
+                } else {
1016 1016
 
1017 1017
                     $answer_options_sorted = $question_answers_options;
1018 1018
 
@@ -1022,7 +1022,7 @@  discard block
 block discarded – undo
1022 1022
 
1023 1023
 
1024 1024
             // assemble and setup the data for the templates data array
1025
-            $question_data[ 'answer_options' ]    =  $answer_options_sorted;
1025
+            $question_data['answer_options'] = $answer_options_sorted;
1026 1026
 
1027 1027
         }
1028 1028
 
@@ -1042,14 +1042,14 @@  discard block
 block discarded – undo
1042 1042
      *
1043 1043
      * @return array()
1044 1044
      */
1045
-    public static function gap_fill_load_question_data( $question_data, $question_id, $quiz_id ){
1045
+    public static function gap_fill_load_question_data($question_data, $question_id, $quiz_id) {
1046 1046
 
1047
-        if( 'gap-fill' == Sensei()->question->get_question_type( $question_id ) ) {
1047
+        if ('gap-fill' == Sensei()->question->get_question_type($question_id)) {
1048 1048
 
1049
-            $gapfill_array = explode( '||', $question_data[ 'question_right_answer' ] );
1050
-            $question_data[ 'gapfill_pre' ]  = isset( $gapfill_array[0] ) ? $gapfill_array[0] : '';
1051
-            $question_data[ 'gapfill_gap' ]  = isset( $gapfill_array[1] ) ? $gapfill_array[1] : '';
1052
-            $question_data[ 'gapfill_post' ] = isset( $gapfill_array[2] ) ? $gapfill_array[2] : '';
1049
+            $gapfill_array = explode('||', $question_data['question_right_answer']);
1050
+            $question_data['gapfill_pre']  = isset($gapfill_array[0]) ? $gapfill_array[0] : '';
1051
+            $question_data['gapfill_gap']  = isset($gapfill_array[1]) ? $gapfill_array[1] : '';
1052
+            $question_data['gapfill_post'] = isset($gapfill_array[2]) ? $gapfill_array[2] : '';
1053 1053
 
1054 1054
         }
1055 1055
 
@@ -1064,32 +1064,32 @@  discard block
 block discarded – undo
1064 1064
      * @param $question_id
1065 1065
      * @return string $correct_answer or empty
1066 1066
      */
1067
-    public static function get_correct_answer( $question_id ){
1067
+    public static function get_correct_answer($question_id) {
1068 1068
 
1069
-        $right_answer = get_post_meta( $question_id, '_question_right_answer', true );
1070
-        $type = Sensei()->question->get_question_type( $question_id );
1071
-        $type_name = __( 'Multiple Choice', 'woothemes-sensei' );
1069
+        $right_answer = get_post_meta($question_id, '_question_right_answer', true);
1070
+        $type = Sensei()->question->get_question_type($question_id);
1071
+        $type_name = __('Multiple Choice', 'woothemes-sensei');
1072 1072
         $grade_type = 'manual-grade';
1073 1073
 
1074
-        if ('boolean'== $type ) {
1074
+        if ('boolean' == $type) {
1075 1075
 
1076 1076
             $right_answer = ucfirst($right_answer);
1077 1077
 
1078
-        }elseif( 'multiple-choice' == $type ) {
1078
+        }elseif ('multiple-choice' == $type) {
1079 1079
 
1080 1080
             $right_answer = (array) $right_answer;
1081
-            $right_answer = implode( ', ', $right_answer );
1081
+            $right_answer = implode(', ', $right_answer);
1082 1082
 
1083
-        }elseif( 'gap-fill' == $type ) {
1083
+        }elseif ('gap-fill' == $type) {
1084 1084
 
1085
-            $right_answer_array = explode( '||', $right_answer );
1086
-            if ( isset( $right_answer_array[0] ) ) { $gapfill_pre = $right_answer_array[0]; } else { $gapfill_pre = ''; }
1087
-            if ( isset( $right_answer_array[1] ) ) { $gapfill_gap = $right_answer_array[1]; } else { $gapfill_gap = ''; }
1088
-            if ( isset( $right_answer_array[2] ) ) { $gapfill_post = $right_answer_array[2]; } else { $gapfill_post = ''; }
1085
+            $right_answer_array = explode('||', $right_answer);
1086
+            if (isset($right_answer_array[0])) { $gapfill_pre = $right_answer_array[0]; } else { $gapfill_pre = ''; }
1087
+            if (isset($right_answer_array[1])) { $gapfill_gap = $right_answer_array[1]; } else { $gapfill_gap = ''; }
1088
+            if (isset($right_answer_array[2])) { $gapfill_post = $right_answer_array[2]; } else { $gapfill_post = ''; }
1089 1089
 
1090
-            $right_answer = $gapfill_pre . ' <span class="highlight">' . $gapfill_gap . '</span> ' . $gapfill_post;
1090
+            $right_answer = $gapfill_pre.' <span class="highlight">'.$gapfill_gap.'</span> '.$gapfill_post;
1091 1091
 
1092
-        }else{
1092
+        } else {
1093 1093
 
1094 1094
             // for non auto gradable question types no answer should be returned.
1095 1095
             $right_answer = '';
@@ -1107,4 +1107,4 @@  discard block
 block discarded – undo
1107 1107
  * @ignore only for backward compatibility
1108 1108
  * @since 1.9.0
1109 1109
  */
1110
-class WooThemes_Sensei_Question extends Sensei_Question{}
1110
+class WooThemes_Sensei_Question extends Sensei_Question {}
Please login to merge, or discard this patch.
includes/class-sensei-quiz.php 4 patches
Doc Comments   +4 added lines, -5 removed lines patch added patch discarded remove patch
@@ -123,7 +123,7 @@  discard block
 block discarded – undo
123 123
      *
124 124
      * This function hooks into the quiz page and accepts the answer form save post.
125 125
      * @since 1.7.3
126
-     * @return bool $saved;
126
+     * @return boolean|null $saved;
127 127
      */
128 128
     public function user_save_quiz_answers_listener(){
129 129
 
@@ -214,7 +214,7 @@  discard block
 block discarded – undo
214 214
 	 * @param int $lesson_id
215 215
 	 * @param int $user_id
216 216
 	 *
217
-	 * @return array $answers or false
217
+	 * @return boolean $answers or false
218 218
 	 */
219 219
 	public function get_user_answers( $lesson_id, $user_id ){
220 220
 
@@ -707,7 +707,7 @@  discard block
 block discarded – undo
707 707
       *      @type int $question_id
708 708
       *      @type int $question_grade
709 709
       * }
710
-      * @param $lesson_id
710
+      * @param integer $lesson_id
711 711
       * @param $user_id (Optional) will use the current user if not supplied
712 712
       *
713 713
       * @return bool
@@ -754,7 +754,7 @@  discard block
 block discarded – undo
754 754
       *
755 755
       * @since 1.7.4
756 756
       *
757
-      * @param $lesson_id
757
+      * @param integer $lesson_id
758 758
       * @param $user_id (Optional) will use the current user if not supplied
759 759
       *
760 760
       * @return array $user_quiz_grades or false if none exists for this users
@@ -1090,7 +1090,6 @@  discard block
 block discarded – undo
1090 1090
       * Filter the single title and add the Quiz to it.
1091 1091
       *
1092 1092
       * @param string $title
1093
-      * @param int $id title post id
1094 1093
       * @return string $quiz_title
1095 1094
       */
1096 1095
      public static function single_quiz_title( $title, $post_id ){
Please login to merge, or discard this patch.
Braces   +7 added lines, -4 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Sensei Quiz Class
@@ -104,7 +107,7 @@  discard block
 block discarded – undo
104 107
 			global $post;
105 108
 			if( 'quiz' == get_post_type( $post ) ){
106 109
 				$quiz_id = $post->ID;
107
-			}else{
110
+			} else{
108 111
 				return false;
109 112
 			}
110 113
 
@@ -234,7 +237,7 @@  discard block
 block discarded – undo
234 237
 
235 238
             $encoded_user_answers = $transient_cached_answers;
236 239
 
237
-        }else{
240
+        } else{
238 241
 
239 242
             $encoded_user_answers = WooThemes_Sensei_Utils::get_user_data( 'quiz_answers', $lesson_id  , $user_id );
240 243
 
@@ -424,7 +427,7 @@  discard block
 block discarded – undo
424 427
             // compress the answer for saving
425 428
 			if( 'multi-line' == $question_type ) {
426 429
                 $answer = esc_html( $answer );
427
-            }elseif( 'file-upload' == $question_type  ){
430
+            } elseif( 'file-upload' == $question_type  ){
428 431
                 $file_key = 'file_upload_' . $question_id;
429 432
                 if( isset( $files[ $file_key ] ) ) {
430 433
                         $attachment_id = WooThemes_Sensei_Utils::upload_file(  $files[ $file_key ] );
Please login to merge, or discard this patch.
Spacing   +286 added lines, -286 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 
4 4
 /**
5 5
  * Sensei Quiz Class
@@ -22,25 +22,25 @@  discard block
 block discarded – undo
22 22
 	 *
23 23
 	 * @param $file
24 24
 	 */
25
-	public function __construct ( $file = __FILE__ ) {
25
+	public function __construct($file = __FILE__) {
26 26
 		$this->file = $file;
27 27
         $this->token = 'quiz';
28
-		$this->meta_fields = array( 'quiz_passmark', 'quiz_lesson', 'quiz_type', 'quiz_grade_type', 'pass_required','enable_quiz_reset' );
29
-		add_action( 'save_post', array( $this, 'update_author' ));
28
+		$this->meta_fields = array('quiz_passmark', 'quiz_lesson', 'quiz_type', 'quiz_grade_type', 'pass_required', 'enable_quiz_reset');
29
+		add_action('save_post', array($this, 'update_author'));
30 30
 
31 31
 		// listen to the reset button click
32
-		add_action( 'template_redirect', array( $this, 'reset_button_click_listener'  ) );
32
+		add_action('template_redirect', array($this, 'reset_button_click_listener'));
33 33
 
34 34
         // fire the complete quiz button submit for grading action
35
-        add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'user_quiz_submit_listener' ) );
35
+        add_action('sensei_single_quiz_content_inside_before', array($this, 'user_quiz_submit_listener'));
36 36
 
37 37
 		// fire the save user answers quiz button click responder
38
-		add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'user_save_quiz_answers_listener' ) );
38
+		add_action('sensei_single_quiz_content_inside_before', array($this, 'user_save_quiz_answers_listener'));
39 39
 
40 40
         // fire the load global data function
41
-        add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'load_global_quiz_data' ), 80 );
41
+        add_action('sensei_single_quiz_content_inside_before', array($this, 'load_global_quiz_data'), 80);
42 42
 
43
-        add_action( 'template_redirect', array ( $this, 'quiz_has_no_questions') );
43
+        add_action('template_redirect', array($this, 'quiz_has_no_questions'));
44 44
 
45 45
 
46 46
     } // End __construct()
@@ -51,25 +51,25 @@  discard block
 block discarded – undo
51 51
 	* @param int $post_id
52 52
 	* @return void
53 53
 	*/
54
-	public function update_author( $post_id ){
54
+	public function update_author($post_id) {
55 55
 
56 56
 		// If this isn't a 'lesson' post, don't update it.
57 57
         // if this is a revision don't save it
58
-	    if ( isset( $_POST['post_type'] ) && 'lesson' != $_POST['post_type']
59
-            || wp_is_post_revision( $post_id ) ) {
58
+	    if (isset($_POST['post_type']) && 'lesson' != $_POST['post_type']
59
+            || wp_is_post_revision($post_id)) {
60 60
 
61 61
                 return;
62 62
 
63 63
         }
64 64
 	    // get the lesson author id to be use late
65
-	    $saved_post = get_post( $post_id );
66
-	    $new_lesson_author_id =  $saved_post->post_author;
65
+	    $saved_post = get_post($post_id);
66
+	    $new_lesson_author_id = $saved_post->post_author;
67 67
 
68 68
 	    //get the lessons quiz
69
-		$lesson_quizzes = Sensei()->lesson->lesson_quizzes( $post_id );
70
-	    foreach ( (array) $lesson_quizzes as $quiz_item ) {
69
+		$lesson_quizzes = Sensei()->lesson->lesson_quizzes($post_id);
70
+	    foreach ((array) $lesson_quizzes as $quiz_item) {
71 71
 
72
-	    	if( ! $quiz_item ) {
72
+	    	if ( ! $quiz_item) {
73 73
 	    		continue;
74 74
 	    	}
75 75
 
@@ -80,10 +80,10 @@  discard block
 block discarded – undo
80 80
 			);
81 81
 
82 82
             // remove the action so that it doesn't fire again
83
-            remove_action( 'save_post', array( $this, 'update_author' ));
83
+            remove_action('save_post', array($this, 'update_author'));
84 84
 
85 85
 			// Update the post into the database
86
-		  	wp_update_post( $my_post );
86
+		  	wp_update_post($my_post);
87 87
 	    }
88 88
 
89 89
 	    return;
@@ -97,19 +97,19 @@  discard block
 block discarded – undo
97 97
 	 * @param int $quiz_id
98 98
 	 * @return int @lesson_id
99 99
 	 */
100
-	public function get_lesson_id( $quiz_id ){
100
+	public function get_lesson_id($quiz_id) {
101 101
 
102
-		if( empty( $quiz_id ) || ! intval( $quiz_id ) > 0 ){
102
+		if (empty($quiz_id) || ! intval($quiz_id) > 0) {
103 103
 			global $post;
104
-			if( 'quiz' == get_post_type( $post ) ){
104
+			if ('quiz' == get_post_type($post)) {
105 105
 				$quiz_id = $post->ID;
106
-			}else{
106
+			} else {
107 107
 				return false;
108 108
 			}
109 109
 
110 110
 		}
111 111
 
112
-		$quiz = get_post( $quiz_id );
112
+		$quiz = get_post($quiz_id);
113 113
 		$lesson_id = $quiz->post_parent;
114 114
 
115 115
 		return $lesson_id;
@@ -124,23 +124,23 @@  discard block
 block discarded – undo
124 124
      * @since 1.7.3
125 125
      * @return bool $saved;
126 126
      */
127
-    public function user_save_quiz_answers_listener(){
127
+    public function user_save_quiz_answers_listener() {
128 128
 
129
-        if( ! isset( $_POST[ 'quiz_save' ])
130
-            || !isset( $_POST[ 'sensei_question' ] )
131
-            || empty( $_POST[ 'sensei_question' ] )
132
-            ||  ! wp_verify_nonce( $_POST['woothemes_sensei_save_quiz_nonce'], 'woothemes_sensei_save_quiz_nonce'  ) > 1 ) {
129
+        if ( ! isset($_POST['quiz_save'])
130
+            || ! isset($_POST['sensei_question'])
131
+            || empty($_POST['sensei_question'])
132
+            ||  ! wp_verify_nonce($_POST['woothemes_sensei_save_quiz_nonce'], 'woothemes_sensei_save_quiz_nonce') > 1) {
133 133
             return;
134 134
         }
135 135
 
136 136
         global $post;
137
-        $lesson_id = $this->get_lesson_id( $post->ID );
138
-        $quiz_answers = $_POST[ 'sensei_question' ];
137
+        $lesson_id = $this->get_lesson_id($post->ID);
138
+        $quiz_answers = $_POST['sensei_question'];
139 139
         // call the save function
140
-        self::save_user_answers( $quiz_answers, $_FILES , $lesson_id  , get_current_user_id() );
140
+        self::save_user_answers($quiz_answers, $_FILES, $lesson_id, get_current_user_id());
141 141
 
142 142
         // remove the hook as it should only fire once per click
143
-        remove_action( 'sensei_single_quiz_content_inside_before', 'user_save_quiz_answers_listener' );
143
+        remove_action('sensei_single_quiz_content_inside_before', 'user_save_quiz_answers_listener');
144 144
 
145 145
     } // end user_save_quiz_answers_listener
146 146
 
@@ -159,17 +159,17 @@  discard block
 block discarded – undo
159 159
 	 *
160 160
 	 * @return false or int $answers_saved
161 161
 	 */
162
-	public static function save_user_answers( $quiz_answers, $files = array(), $lesson_id , $user_id = 0 ){
162
+	public static function save_user_answers($quiz_answers, $files = array(), $lesson_id, $user_id = 0) {
163 163
 
164
-        if( ! ( $user_id > 0 ) ){
164
+        if ( ! ($user_id > 0)) {
165 165
             $user_id = get_current_user_id();
166 166
         }
167 167
 
168 168
         // make sure the parameters are valid before continuing
169
-		if( empty( $lesson_id ) || empty( $user_id )
170
-			|| 'lesson' != get_post_type( $lesson_id )
171
-			||!get_userdata( $user_id )
172
-			|| !is_array( $quiz_answers ) ){
169
+		if (empty($lesson_id) || empty($user_id)
170
+			|| 'lesson' != get_post_type($lesson_id)
171
+			||! get_userdata($user_id)
172
+			|| ! is_array($quiz_answers)) {
173 173
 
174 174
 			return false;
175 175
 
@@ -177,23 +177,23 @@  discard block
 block discarded – undo
177 177
 
178 178
 
179 179
         // start the lesson before saving the data in case the user has not started the lesson
180
-        $activity_logged = Sensei_Utils::sensei_start_lesson( $lesson_id, $user_id );
180
+        $activity_logged = Sensei_Utils::sensei_start_lesson($lesson_id, $user_id);
181 181
 
182 182
 		//prepare the answers
183
-		$prepared_answers = self::prepare_form_submitted_answers( $quiz_answers , $files );
183
+		$prepared_answers = self::prepare_form_submitted_answers($quiz_answers, $files);
184 184
 
185 185
 		// save the user data
186
-        $answers_saved = Sensei_Utils::add_user_data( 'quiz_answers', $lesson_id, $prepared_answers, $user_id ) ;
186
+        $answers_saved = Sensei_Utils::add_user_data('quiz_answers', $lesson_id, $prepared_answers, $user_id);
187 187
 
188 188
 		// were the answers saved correctly?
189
-		if( intval( $answers_saved ) > 0){
189
+		if (intval($answers_saved) > 0) {
190 190
 
191 191
             // save transient to make retrieval faster
192 192
             $transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
193
-            set_transient( $transient_key, $prepared_answers, 10 * DAY_IN_SECONDS );
193
+            set_transient($transient_key, $prepared_answers, 10 * DAY_IN_SECONDS);
194 194
 
195 195
             // update the message showed to user
196
-            Sensei()->frontend->messages = '<div class="sensei-message note">' . __( 'Quiz Saved Successfully.', 'woothemes-sensei' )  . '</div>';
196
+            Sensei()->frontend->messages = '<div class="sensei-message note">'.__('Quiz Saved Successfully.', 'woothemes-sensei').'</div>';
197 197
         }
198 198
 
199 199
 		return $answers_saved;
@@ -215,41 +215,41 @@  discard block
 block discarded – undo
215 215
 	 *
216 216
 	 * @return array $answers or false
217 217
 	 */
218
-	public function get_user_answers( $lesson_id, $user_id ){
218
+	public function get_user_answers($lesson_id, $user_id) {
219 219
 
220 220
 		$answers = false;
221 221
 
222
-		if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
223
-		|| ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
222
+		if ( ! intval($lesson_id) > 0 || 'lesson' != get_post_type($lesson_id)
223
+		|| ! intval($user_id) > 0 || ! get_userdata($user_id)) {
224 224
 			return false;
225 225
 		}
226 226
 
227 227
         // save some time and get the transient cached data
228 228
         $transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
229
-        $transient_cached_answers = get_transient( $transient_key );
229
+        $transient_cached_answers = get_transient($transient_key);
230 230
 
231 231
         // return the transient or get the values get the values from the comment meta
232
-        if( !empty( $transient_cached_answers  ) && false != $transient_cached_answers ){
232
+        if ( ! empty($transient_cached_answers) && false != $transient_cached_answers) {
233 233
 
234 234
             $encoded_user_answers = $transient_cached_answers;
235 235
 
236
-        }else{
236
+        } else {
237 237
 
238
-            $encoded_user_answers = Sensei_Utils::get_user_data( 'quiz_answers', $lesson_id  , $user_id );
238
+            $encoded_user_answers = Sensei_Utils::get_user_data('quiz_answers', $lesson_id, $user_id);
239 239
 
240 240
         } // end if transient check
241 241
 
242
-		if( ! is_array( $encoded_user_answers ) ){
242
+		if ( ! is_array($encoded_user_answers)) {
243 243
 			return false;
244 244
 		}
245 245
 
246 246
         //set the transient with the new valid data for faster retrieval in future
247
-        set_transient( $transient_key,  $encoded_user_answers, 10 * DAY_IN_SECONDS);
247
+        set_transient($transient_key, $encoded_user_answers, 10 * DAY_IN_SECONDS);
248 248
 
249 249
 		// decode an unserialize all answers
250
-		foreach( $encoded_user_answers as $question_id => $encoded_answer ) {
251
-			$decoded_answer = base64_decode( $encoded_answer );
252
-			$answers[$question_id] = maybe_unserialize( $decoded_answer );
250
+		foreach ($encoded_user_answers as $question_id => $encoded_answer) {
251
+			$decoded_answer = base64_decode($encoded_answer);
252
+			$answers[$question_id] = maybe_unserialize($decoded_answer);
253 253
 		}
254 254
 
255 255
 		return $answers;
@@ -266,23 +266,23 @@  discard block
 block discarded – undo
266 266
 	 *
267 267
 	 * @return void;
268 268
 	 */
269
-	public function reset_button_click_listener( ){
269
+	public function reset_button_click_listener( ) {
270 270
 
271
-		if( ! isset( $_POST[ 'quiz_reset' ])
272
-			||  ! wp_verify_nonce( $_POST['woothemes_sensei_reset_quiz_nonce'], 'woothemes_sensei_reset_quiz_nonce'  ) > 1 ) {
271
+		if ( ! isset($_POST['quiz_reset'])
272
+			||  ! wp_verify_nonce($_POST['woothemes_sensei_reset_quiz_nonce'], 'woothemes_sensei_reset_quiz_nonce') > 1) {
273 273
 
274 274
 			return; // exit
275 275
 		}
276 276
 
277 277
 		global $post;
278 278
 		$current_quiz_id = $post->ID;
279
-		$lesson_id = $this->get_lesson_id( $current_quiz_id );
279
+		$lesson_id = $this->get_lesson_id($current_quiz_id);
280 280
 
281 281
         // reset all user data
282
-        $this->reset_user_lesson_data( $lesson_id, get_current_user_id() );
282
+        $this->reset_user_lesson_data($lesson_id, get_current_user_id());
283 283
 
284 284
 		//this function should only run once
285
-		remove_action( 'template_redirect', array( $this, 'reset_button_click_listener'  ) );
285
+		remove_action('template_redirect', array($this, 'reset_button_click_listener'));
286 286
 
287 287
 	} // end reset_button_click_listener
288 288
 
@@ -301,18 +301,18 @@  discard block
 block discarded – undo
301 301
 	public function user_quiz_submit_listener() {
302 302
 
303 303
         // only respond to valid quiz completion submissions
304
-        if( ! isset( $_POST[ 'quiz_complete' ])
305
-            || !isset( $_POST[ 'sensei_question' ] )
306
-            || empty( $_POST[ 'sensei_question' ] )
307
-            ||  ! wp_verify_nonce( $_POST['woothemes_sensei_complete_quiz_nonce'], 'woothemes_sensei_complete_quiz_nonce'  ) > 1 ) {
304
+        if ( ! isset($_POST['quiz_complete'])
305
+            || ! isset($_POST['sensei_question'])
306
+            || empty($_POST['sensei_question'])
307
+            ||  ! wp_verify_nonce($_POST['woothemes_sensei_complete_quiz_nonce'], 'woothemes_sensei_complete_quiz_nonce') > 1) {
308 308
             return;
309 309
         }
310 310
 
311 311
         global $post, $current_user;
312
-        $lesson_id = $this->get_lesson_id( $post->ID );
313
-        $quiz_answers = $_POST[ 'sensei_question' ];
312
+        $lesson_id = $this->get_lesson_id($post->ID);
313
+        $quiz_answers = $_POST['sensei_question'];
314 314
 
315
-        self::submit_answers_for_grading( $quiz_answers, $_FILES ,  $lesson_id  , $current_user->ID );
315
+        self::submit_answers_for_grading($quiz_answers, $_FILES, $lesson_id, $current_user->ID);
316 316
 
317 317
 	} // End sensei_complete_quiz()
318 318
 
@@ -326,7 +326,7 @@  discard block
 block discarded – undo
326 326
      * @access public
327 327
      *
328 328
      */
329
-    public function load_global_quiz_data(){
329
+    public function load_global_quiz_data() {
330 330
 
331 331
         global  $post, $current_user;
332 332
         $this->data = new stdClass();
@@ -335,46 +335,46 @@  discard block
 block discarded – undo
335 335
         $grade = 0;
336 336
 
337 337
         // Get Quiz Questions
338
-        $lesson_quiz_questions = Sensei()->lesson->lesson_quiz_questions( $post->ID );
338
+        $lesson_quiz_questions = Sensei()->lesson->lesson_quiz_questions($post->ID);
339 339
 
340
-        $quiz_lesson_id = absint( get_post_meta( $post->ID, '_quiz_lesson', true ) );
340
+        $quiz_lesson_id = absint(get_post_meta($post->ID, '_quiz_lesson', true));
341 341
 
342 342
         // Get quiz grade type
343
-        $quiz_grade_type = get_post_meta( $post->ID, '_quiz_grade_type', true );
343
+        $quiz_grade_type = get_post_meta($post->ID, '_quiz_grade_type', true);
344 344
 
345 345
         // Get quiz pass setting
346
-        $pass_required = get_post_meta( $post->ID, '_pass_required', true );
346
+        $pass_required = get_post_meta($post->ID, '_pass_required', true);
347 347
 
348 348
         // Get quiz pass mark
349
-        $quiz_passmark = abs( round( doubleval( get_post_meta( $post->ID, '_quiz_passmark', true ) ), 2 ) );
349
+        $quiz_passmark = abs(round(doubleval(get_post_meta($post->ID, '_quiz_passmark', true)), 2));
350 350
 
351 351
         // Get latest quiz answers and grades
352
-        $lesson_id = Sensei()->quiz->get_lesson_id( $post->ID );
353
-        $user_quizzes = Sensei()->quiz->get_user_answers( $lesson_id, get_current_user_id() );
354
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $current_user->ID );
352
+        $lesson_id = Sensei()->quiz->get_lesson_id($post->ID);
353
+        $user_quizzes = Sensei()->quiz->get_user_answers($lesson_id, get_current_user_id());
354
+        $user_lesson_status = Sensei_Utils::user_lesson_status($quiz_lesson_id, $current_user->ID);
355 355
         $user_quiz_grade = 0;
356
-        if( isset( $user_lesson_status->comment_ID ) ) {
357
-            $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
356
+        if (isset($user_lesson_status->comment_ID)) {
357
+            $user_quiz_grade = get_comment_meta($user_lesson_status->comment_ID, 'grade', true);
358 358
         }
359 359
 
360
-        if ( ! is_array($user_quizzes) ) { $user_quizzes = array(); }
360
+        if ( ! is_array($user_quizzes)) { $user_quizzes = array(); }
361 361
 
362 362
         // Check again that the lesson is complete
363
-        $user_lesson_end = Sensei_Utils::user_completed_lesson( $user_lesson_status );
363
+        $user_lesson_end = Sensei_Utils::user_completed_lesson($user_lesson_status);
364 364
         $user_lesson_complete = false;
365
-        if ( $user_lesson_end ) {
365
+        if ($user_lesson_end) {
366 366
             $user_lesson_complete = true;
367 367
         } // End If Statement
368 368
 
369
-        $reset_allowed = get_post_meta( $post->ID, '_enable_quiz_reset', true );
369
+        $reset_allowed = get_post_meta($post->ID, '_enable_quiz_reset', true);
370 370
         //backwards compatibility
371
-        if( 'on' == $reset_allowed ) {
371
+        if ('on' == $reset_allowed) {
372 372
             $reset_allowed = 1;
373 373
         }
374 374
 
375 375
         // Build frontend data object for backwards compatibility
376 376
         // using this is no longer recommended
377
-        $this->data->user_quiz_grade = $user_quiz_grade;// Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
377
+        $this->data->user_quiz_grade = $user_quiz_grade; // Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
378 378
         $this->data->quiz_passmark = $quiz_passmark;
379 379
         $this->data->quiz_lesson = $quiz_lesson_id;
380 380
         $this->data->quiz_grade_type = $quiz_grade_type; // get_post_meta( $quiz_id, '_quiz_grade_type', true );
@@ -399,41 +399,41 @@  discard block
 block discarded – undo
399 399
 	 * @param $files
400 400
 	 * @return array
401 401
 	 */
402
-	public static function prepare_form_submitted_answers( $unprepared_answers,  $files ){
402
+	public static function prepare_form_submitted_answers($unprepared_answers, $files) {
403 403
 
404 404
 
405 405
 		$prepared_answers = array();
406 406
 
407 407
 		// validate incoming answers
408
-		if( empty( $unprepared_answers  ) || ! is_array( $unprepared_answers ) ){
408
+		if (empty($unprepared_answers) || ! is_array($unprepared_answers)) {
409 409
 			return false;
410 410
 		}
411 411
 
412 412
 		// Loop through submitted quiz answers and save them appropriately
413
-		foreach( $unprepared_answers as $question_id => $answer ) {
413
+		foreach ($unprepared_answers as $question_id => $answer) {
414 414
 
415 415
 			//get the current questions question type
416
-            $question_type = Sensei()->question->get_question_type( $question_id );
416
+            $question_type = Sensei()->question->get_question_type($question_id);
417 417
 
418 418
 			// Sanitise answer
419
-			if( 0 == get_magic_quotes_gpc() ) {
420
-				$answer = wp_unslash( $answer );
419
+			if (0 == get_magic_quotes_gpc()) {
420
+				$answer = wp_unslash($answer);
421 421
 			}
422 422
 
423 423
             // compress the answer for saving
424
-			if( 'multi-line' == $question_type ) {
425
-                $answer = esc_html( $answer );
426
-            }elseif( 'file-upload' == $question_type  ){
427
-                $file_key = 'file_upload_' . $question_id;
428
-                if( isset( $files[ $file_key ] ) ) {
429
-                        $attachment_id = Sensei_Utils::upload_file(  $files[ $file_key ] );
430
-                        if( $attachment_id ) {
424
+			if ('multi-line' == $question_type) {
425
+                $answer = esc_html($answer);
426
+            }elseif ('file-upload' == $question_type) {
427
+                $file_key = 'file_upload_'.$question_id;
428
+                if (isset($files[$file_key])) {
429
+                        $attachment_id = Sensei_Utils::upload_file($files[$file_key]);
430
+                        if ($attachment_id) {
431 431
                             $answer = $attachment_id;
432 432
                         }
433 433
                     }
434 434
             } // end if
435 435
 
436
-			$prepared_answers[ $question_id ] =  base64_encode( maybe_serialize( $answer ) );
436
+			$prepared_answers[$question_id] = base64_encode(maybe_serialize($answer));
437 437
 
438 438
 		}// end for each $quiz_answers
439 439
 
@@ -453,54 +453,54 @@  discard block
 block discarded – undo
453 453
      * @param int $user_id
454 454
      * @param int $lesson_id
455 455
      */
456
-    public function reset_user_lesson_data( $lesson_id , $user_id = 0 ){
456
+    public function reset_user_lesson_data($lesson_id, $user_id = 0) {
457 457
 
458 458
         //make sure the parameters are valid
459
-        if( empty( $lesson_id ) || empty( $user_id )
460
-            || 'lesson' != get_post_type( $lesson_id )
461
-            || ! get_userdata( $user_id ) ){
459
+        if (empty($lesson_id) || empty($user_id)
460
+            || 'lesson' != get_post_type($lesson_id)
461
+            || ! get_userdata($user_id)) {
462 462
             return false;
463 463
         }
464 464
 
465 465
 
466 466
 
467 467
         //get the users lesson status to make
468
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
469
-        if( ! isset( $user_lesson_status->comment_ID ) ) {
468
+        $user_lesson_status = Sensei_Utils::user_lesson_status($lesson_id, $user_id);
469
+        if ( ! isset($user_lesson_status->comment_ID)) {
470 470
             // this user is not taking this lesson so this process is not needed
471 471
             return false;
472 472
         }
473 473
 
474 474
         //get the lesson quiz and course
475
-        $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
476
-        $course_id = Sensei()->lesson->get_course_id( $lesson_id );
475
+        $quiz_id = Sensei()->lesson->lesson_quizzes($lesson_id);
476
+        $course_id = Sensei()->lesson->get_course_id($lesson_id);
477 477
 
478 478
         // reset the transients
479 479
         $answers_transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
480 480
         $grades_transient_key = 'quiz_grades_'.$user_id.'_'.$lesson_id;
481 481
         $answers_feedback_transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
482
-        delete_transient( $answers_transient_key );
483
-        delete_transient( $grades_transient_key );
484
-        delete_transient( $answers_feedback_transient_key );
482
+        delete_transient($answers_transient_key);
483
+        delete_transient($grades_transient_key);
484
+        delete_transient($answers_feedback_transient_key);
485 485
 
486 486
         // reset the quiz answers and feedback notes
487
-        $deleted_answers = Sensei_Utils::delete_user_data( 'quiz_answers', $lesson_id, $user_id );
488
-        $deleted_grades = Sensei_Utils::delete_user_data( 'quiz_grades', $lesson_id, $user_id );
489
-        $deleted_user_feedback = Sensei_Utils::delete_user_data( 'quiz_answers_feedback', $lesson_id, $user_id );
487
+        $deleted_answers = Sensei_Utils::delete_user_data('quiz_answers', $lesson_id, $user_id);
488
+        $deleted_grades = Sensei_Utils::delete_user_data('quiz_grades', $lesson_id, $user_id);
489
+        $deleted_user_feedback = Sensei_Utils::delete_user_data('quiz_answers_feedback', $lesson_id, $user_id);
490 490
 
491 491
         // Delete quiz answers, this auto deletes the corresponding meta data, such as the question/answer grade
492
-        Sensei_Utils::sensei_delete_quiz_answers( $quiz_id, $user_id );
492
+        Sensei_Utils::sensei_delete_quiz_answers($quiz_id, $user_id);
493 493
 
494
-        Sensei_Utils::update_lesson_status( $user_id , $lesson_id, 'in-progress', array( 'questions_asked' => '', 'grade' => '' ) );
494
+        Sensei_Utils::update_lesson_status($user_id, $lesson_id, 'in-progress', array('questions_asked' => '', 'grade' => ''));
495 495
 
496 496
         // Update course completion
497
-        Sensei_Utils::update_course_status( $user_id, $course_id );
497
+        Sensei_Utils::update_course_status($user_id, $course_id);
498 498
 
499 499
         // Run any action on quiz/lesson reset (previously this didn't occur on resetting a quiz, see resetting a lesson in sensei_complete_lesson()
500
-        do_action( 'sensei_user_lesson_reset', $user_id, $lesson_id );
501
-        Sensei()->frontend->messages = '<div class="sensei-message note">' . __( 'Quiz Reset Successfully.', 'woothemes-sensei' ) . '</div>';
500
+        do_action('sensei_user_lesson_reset', $user_id, $lesson_id);
501
+        Sensei()->frontend->messages = '<div class="sensei-message note">'.__('Quiz Reset Successfully.', 'woothemes-sensei').'</div>';
502 502
 
503
-        return ( $deleted_answers && $deleted_grades ) ;
503
+        return ($deleted_answers && $deleted_grades);
504 504
 
505 505
     } // end reset_user_lesson_data
506 506
 
@@ -520,20 +520,20 @@  discard block
 block discarded – undo
520 520
       *
521 521
       * @return bool $answers_submitted
522 522
       */
523
-     public static function submit_answers_for_grading( $quiz_answers , $files = array() , $lesson_id , $user_id = 0 ){
523
+     public static function submit_answers_for_grading($quiz_answers, $files = array(), $lesson_id, $user_id = 0) {
524 524
 
525 525
          $answers_submitted = false;
526 526
 
527 527
          // get the user_id if none was passed in use the current logged in user
528
-         if( ! intval( $user_id ) > 0 ) {
528
+         if ( ! intval($user_id) > 0) {
529 529
              $user_id = get_current_user_id();
530 530
          }
531 531
 
532 532
          // make sure the parameters are valid before continuing
533
-         if( empty( $lesson_id ) || empty( $user_id )
534
-             || 'lesson' != get_post_type( $lesson_id )
535
-             ||!get_userdata( $user_id )
536
-             || !is_array( $quiz_answers ) ){
533
+         if (empty($lesson_id) || empty($user_id)
534
+             || 'lesson' != get_post_type($lesson_id)
535
+             ||! get_userdata($user_id)
536
+             || ! is_array($quiz_answers)) {
537 537
 
538 538
              return false;
539 539
 
@@ -543,38 +543,38 @@  discard block
 block discarded – undo
543 543
          $grade = 0;
544 544
 
545 545
          // Get Quiz ID
546
-         $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
546
+         $quiz_id = Sensei()->lesson->lesson_quizzes($lesson_id);
547 547
 
548 548
          // Get quiz grade type
549
-         $quiz_grade_type = get_post_meta( $quiz_id, '_quiz_grade_type', true );
549
+         $quiz_grade_type = get_post_meta($quiz_id, '_quiz_grade_type', true);
550 550
 
551 551
          // Get quiz pass setting
552
-         $pass_required = get_post_meta( $quiz_id, '_pass_required', true );
552
+         $pass_required = get_post_meta($quiz_id, '_pass_required', true);
553 553
 
554 554
          // Get the minimum percentage need to pass this quiz
555
-         $quiz_pass_percentage = abs( round( doubleval( get_post_meta( $quiz_id, '_quiz_passmark', true ) ), 2 ) );
555
+         $quiz_pass_percentage = abs(round(doubleval(get_post_meta($quiz_id, '_quiz_passmark', true)), 2));
556 556
 
557 557
          // Handle Quiz Questions asked
558 558
          // This is to ensure we save the questions that we've asked this user and that this can't be change unless
559 559
          // the quiz is reset by admin or user( user: only if the setting is enabled ).
560 560
          // get the questions asked when when the quiz questions were generated for the user : Sensei_Lesson::lesson_quiz_questions
561
-         $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
562
-         $questions_asked = get_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', true );
563
-         if( empty( $questions_asked ) ){
561
+         $user_lesson_status = Sensei_Utils::user_lesson_status($lesson_id, $user_id);
562
+         $questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true);
563
+         if (empty($questions_asked)) {
564 564
 
565
-             $questions_asked = array_keys( $quiz_answers );
566
-             $questions_asked_string = implode( ',', $questions_asked );
565
+             $questions_asked = array_keys($quiz_answers);
566
+             $questions_asked_string = implode(',', $questions_asked);
567 567
 
568 568
              // Save questions that were asked in this quiz
569
-             update_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', $questions_asked_string );
569
+             update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_string);
570 570
 
571 571
          }
572 572
 
573 573
          // Save Quiz Answers for grading, the save function also calls the sensei_start_lesson
574
-         self::save_user_answers( $quiz_answers , $files , $lesson_id , $user_id );
574
+         self::save_user_answers($quiz_answers, $files, $lesson_id, $user_id);
575 575
 
576 576
          // Grade quiz
577
-         $grade = Sensei_Grading::grade_quiz_auto( $quiz_id, $quiz_answers, 0 , $quiz_grade_type );
577
+         $grade = Sensei_Grading::grade_quiz_auto($quiz_id, $quiz_answers, 0, $quiz_grade_type);
578 578
 
579 579
          // Get Lesson Grading Setting
580 580
          $lesson_metadata = array();
@@ -584,13 +584,13 @@  discard block
 block discarded – undo
584 584
          $answers_submitted = true;
585 585
 
586 586
          // if this condition is false the quiz should manually be graded by admin
587
-         if ('auto' == $quiz_grade_type && ! is_wp_error( $grade )  ) {
587
+         if ('auto' == $quiz_grade_type && ! is_wp_error($grade)) {
588 588
 
589 589
              // Quiz has been automatically Graded
590
-             if ( 'on' == $pass_required ) {
590
+             if ('on' == $pass_required) {
591 591
 
592 592
                  // Student has reached the pass mark and lesson is complete
593
-                 if ( $quiz_pass_percentage <= $grade ) {
593
+                 if ($quiz_pass_percentage <= $grade) {
594 594
 
595 595
                      $lesson_status = 'passed';
596 596
 
@@ -611,9 +611,9 @@  discard block
 block discarded – undo
611 611
 
612 612
          } // end if ! is_wp_error( $grade ...
613 613
 
614
-         Sensei_Utils::update_lesson_status( $user_id, $lesson_id, $lesson_status, $lesson_metadata );
614
+         Sensei_Utils::update_lesson_status($user_id, $lesson_id, $lesson_status, $lesson_metadata);
615 615
 
616
-         if( 'passed' == $lesson_status || 'graded' == $lesson_status ){
616
+         if ('passed' == $lesson_status || 'graded' == $lesson_status) {
617 617
 
618 618
              /**
619 619
               * Lesson end action hook
@@ -623,7 +623,7 @@  discard block
 block discarded – undo
623 623
               * @param int $user_id
624 624
               * @param int $lesson_id
625 625
               */
626
-             do_action( 'sensei_user_lesson_end', $user_id, $lesson_id );
626
+             do_action('sensei_user_lesson_end', $user_id, $lesson_id);
627 627
 
628 628
          }
629 629
 
@@ -639,7 +639,7 @@  discard block
 block discarded – undo
639 639
           * @param string $quiz_pass_percentage
640 640
           * @param string $quiz_grade_type
641 641
           */
642
-         do_action( 'sensei_user_quiz_submitted', $user_id, $quiz_id, $grade, $quiz_pass_percentage, $quiz_grade_type );
642
+         do_action('sensei_user_quiz_submitted', $user_id, $quiz_id, $grade, $quiz_pass_percentage, $quiz_grade_type);
643 643
 
644 644
          return $answers_submitted;
645 645
 
@@ -659,38 +659,38 @@  discard block
 block discarded – undo
659 659
       *
660 660
       * @return bool $answers_submitted
661 661
       */
662
-     public function get_user_question_answer( $lesson_id, $question_id, $user_id = 0 ){
662
+     public function get_user_question_answer($lesson_id, $question_id, $user_id = 0) {
663 663
 
664 664
          // parameter validation
665
-         if( empty( $lesson_id ) || empty( $question_id )
666
-             || ! ( intval( $lesson_id  ) > 0 )
667
-             || ! ( intval( $question_id  ) > 0 )
668
-             || 'lesson' != get_post_type( $lesson_id )
669
-             || 'question' != get_post_type( $question_id )) {
665
+         if (empty($lesson_id) || empty($question_id)
666
+             || ! (intval($lesson_id) > 0)
667
+             || ! (intval($question_id) > 0)
668
+             || 'lesson' != get_post_type($lesson_id)
669
+             || 'question' != get_post_type($question_id)) {
670 670
 
671 671
              return false;
672 672
          }
673 673
 
674
-         if( ! ( intval( $user_id ) > 0 )   ){
674
+         if ( ! (intval($user_id) > 0)) {
675 675
              $user_id = get_current_user_id();
676 676
          }
677 677
 
678
-         $users_answers = $this->get_user_answers( $lesson_id, $user_id );
678
+         $users_answers = $this->get_user_answers($lesson_id, $user_id);
679 679
 
680
-         if( !$users_answers || empty( $users_answers )
681
-         ||  ! is_array( $users_answers ) || ! isset( $users_answers[ $question_id ] ) ){
680
+         if ( ! $users_answers || empty($users_answers)
681
+         ||  ! is_array($users_answers) || ! isset($users_answers[$question_id])) {
682 682
 
683 683
              //Fallback for pre 1.7.4 data
684
-             $comment =  Sensei_Utils::sensei_check_for_activity( array( 'post_id' => $question_id, 'user_id' => $user_id, 'type' => 'sensei_user_answer' ), true );
684
+             $comment = Sensei_Utils::sensei_check_for_activity(array('post_id' => $question_id, 'user_id' => $user_id, 'type' => 'sensei_user_answer'), true);
685 685
 
686
-             if( ! isset( $comment->comment_content ) ){
686
+             if ( ! isset($comment->comment_content)) {
687 687
                  return false;
688 688
              }
689 689
 
690
-             return maybe_unserialize( base64_decode( $comment->comment_content ) );
690
+             return maybe_unserialize(base64_decode($comment->comment_content));
691 691
          }
692 692
 
693
-         return $users_answers[ $question_id ];
693
+         return $users_answers[$question_id];
694 694
 
695 695
      }// end get_user_question_answer
696 696
 
@@ -711,18 +711,18 @@  discard block
 block discarded – undo
711 711
       *
712 712
       * @return bool
713 713
       */
714
-     public function set_user_grades( $quiz_grades, $lesson_id, $user_id = 0 ){
714
+     public function set_user_grades($quiz_grades, $lesson_id, $user_id = 0) {
715 715
 
716 716
          // get the user_id if none was passed in use the current logged in user
717
-         if( ! intval( $user_id ) > 0 ) {
717
+         if ( ! intval($user_id) > 0) {
718 718
              $user_id = get_current_user_id();
719 719
          }
720 720
 
721 721
          // make sure the parameters are valid before continuing
722
-         if( empty( $lesson_id ) || empty( $user_id )
723
-             || 'lesson' != get_post_type( $lesson_id )
724
-             ||!get_userdata( $user_id )
725
-             || !is_array( $quiz_grades ) ){
722
+         if (empty($lesson_id) || empty($user_id)
723
+             || 'lesson' != get_post_type($lesson_id)
724
+             ||! get_userdata($user_id)
725
+             || ! is_array($quiz_grades)) {
726 726
 
727 727
              return false;
728 728
 
@@ -731,15 +731,15 @@  discard block
 block discarded – undo
731 731
          $success = false;
732 732
 
733 733
          // save that data for the user on the lesson comment meta
734
-         $comment_meta_id = Sensei_Utils::add_user_data( 'quiz_grades', $lesson_id, $quiz_grades, $user_id   );
734
+         $comment_meta_id = Sensei_Utils::add_user_data('quiz_grades', $lesson_id, $quiz_grades, $user_id);
735 735
 
736 736
          // were the grades save successfully ?
737
-         if( intval( $comment_meta_id ) > 0 ) {
737
+         if (intval($comment_meta_id) > 0) {
738 738
 
739 739
              $success = true;
740 740
              // save transient
741
-             $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id;
742
-             set_transient( $transient_key, $quiz_grades, 10 * DAY_IN_SECONDS );
741
+             $transient_key = 'quiz_grades_'.$user_id.'_'.$lesson_id;
742
+             set_transient($transient_key, $quiz_grades, 10 * DAY_IN_SECONDS);
743 743
          }
744 744
 
745 745
          return $success;
@@ -758,36 +758,36 @@  discard block
 block discarded – undo
758 758
       *
759 759
       * @return array $user_quiz_grades or false if none exists for this users
760 760
       */
761
-     public function get_user_grades( $lesson_id, $user_id = 0 ){
761
+     public function get_user_grades($lesson_id, $user_id = 0) {
762 762
 
763 763
          $user_grades = array();
764 764
 
765 765
          // get the user_id if none was passed in use the current logged in user
766
-         if( ! intval( $user_id ) > 0 ) {
766
+         if ( ! intval($user_id) > 0) {
767 767
              $user_id = get_current_user_id();
768 768
          }
769 769
 
770
-         if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
771
-             || ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
770
+         if ( ! intval($lesson_id) > 0 || 'lesson' != get_post_type($lesson_id)
771
+             || ! intval($user_id) > 0 || ! get_userdata($user_id)) {
772 772
              return false;
773 773
          }
774 774
 
775 775
          // save some time and get the transient cached data
776
-         $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id;
777
-         $user_grades = get_transient( $transient_key );
776
+         $transient_key = 'quiz_grades_'.$user_id.'_'.$lesson_id;
777
+         $user_grades = get_transient($transient_key);
778 778
 
779 779
          // get the data if nothing was stored in the transient
780
-         if( empty( $user_grades  ) || false != $user_grades ){
780
+         if (empty($user_grades) || false != $user_grades) {
781 781
 
782
-             $user_grades = Sensei_Utils::get_user_data( 'quiz_grades', $lesson_id, $user_id );
782
+             $user_grades = Sensei_Utils::get_user_data('quiz_grades', $lesson_id, $user_id);
783 783
 
784 784
              //set the transient with the new valid data for faster retrieval in future
785
-             set_transient( $transient_key,  $user_grades, 10 * DAY_IN_SECONDS );
785
+             set_transient($transient_key, $user_grades, 10 * DAY_IN_SECONDS);
786 786
 
787 787
          } // end if transient check
788 788
 
789 789
          // if there is no data for this user
790
-         if( ! is_array( $user_grades ) ){
790
+         if ( ! is_array($user_grades)) {
791 791
              return false;
792 792
          }
793 793
 
@@ -810,21 +810,21 @@  discard block
 block discarded – undo
810 810
       *
811 811
       * @return bool $question_grade
812 812
       */
813
-     public function get_user_question_grade( $lesson_id, $question_id, $user_id = 0 ){
813
+     public function get_user_question_grade($lesson_id, $question_id, $user_id = 0) {
814 814
 
815 815
          // parameter validation
816
-         if( empty( $lesson_id ) || empty( $question_id )
817
-             || ! ( intval( $lesson_id  ) > 0 )
818
-             || ! ( intval( $question_id  ) > 0 )
819
-             || 'lesson' != get_post_type( $lesson_id )
820
-             || 'question' != get_post_type( $question_id )) {
816
+         if (empty($lesson_id) || empty($question_id)
817
+             || ! (intval($lesson_id) > 0)
818
+             || ! (intval($question_id) > 0)
819
+             || 'lesson' != get_post_type($lesson_id)
820
+             || 'question' != get_post_type($question_id)) {
821 821
 
822 822
              return false;
823 823
          }
824 824
 
825
-         $all_user_grades = self::get_user_grades( $lesson_id,$user_id );
825
+         $all_user_grades = self::get_user_grades($lesson_id, $user_id);
826 826
 
827
-         if( ! $all_user_grades || ! isset(  $all_user_grades[ $question_id ] ) ){
827
+         if ( ! $all_user_grades || ! isset($all_user_grades[$question_id])) {
828 828
 
829 829
              //fallback to data pre 1.7.4
830 830
              $args = array(
@@ -833,17 +833,17 @@  discard block
 block discarded – undo
833 833
                  'type'    => 'sensei_user_answer'
834 834
              );
835 835
 
836
-             $question_activity = Sensei_Utils::sensei_check_for_activity( $args , true );
836
+             $question_activity = Sensei_Utils::sensei_check_for_activity($args, true);
837 837
              $fall_back_grade = false;
838
-             if( isset( $question_activity->comment_ID ) ){
839
-                 $fall_back_grade = get_comment_meta(  $question_activity->comment_ID , 'user_grade', true );
838
+             if (isset($question_activity->comment_ID)) {
839
+                 $fall_back_grade = get_comment_meta($question_activity->comment_ID, 'user_grade', true);
840 840
              }
841 841
 
842 842
              return $fall_back_grade;
843 843
 
844 844
          } // end if $all_user_grades...
845 845
 
846
-         return $all_user_grades[ $question_id ];
846
+         return $all_user_grades[$question_id];
847 847
 
848 848
      }// end get_user_question_grade
849 849
 
@@ -865,13 +865,13 @@  discard block
 block discarded – undo
865 865
       *
866 866
       * @return false or int $feedback_saved
867 867
       */
868
-    public function save_user_answers_feedback( $answers_feedback, $lesson_id , $user_id = 0 ){
868
+    public function save_user_answers_feedback($answers_feedback, $lesson_id, $user_id = 0) {
869 869
 
870 870
         // make sure the parameters are valid before continuing
871
-        if( empty( $lesson_id ) || empty( $user_id )
872
-            || 'lesson' != get_post_type( $lesson_id )
873
-            ||!get_userdata( $user_id )
874
-            || !is_array( $answers_feedback ) ){
871
+        if (empty($lesson_id) || empty($user_id)
872
+            || 'lesson' != get_post_type($lesson_id)
873
+            ||! get_userdata($user_id)
874
+            || ! is_array($answers_feedback)) {
875 875
 
876 876
             return false;
877 877
 
@@ -879,25 +879,25 @@  discard block
 block discarded – undo
879 879
 
880 880
 
881 881
         // check if the lesson is started before saving, if not start the lesson for the user
882
-        if ( !( 0 < intval( Sensei_Utils::user_started_lesson( $lesson_id, $user_id) ) ) ) {
883
-            Sensei_Utils::sensei_start_lesson( $lesson_id, $user_id );
882
+        if ( ! (0 < intval(Sensei_Utils::user_started_lesson($lesson_id, $user_id)))) {
883
+            Sensei_Utils::sensei_start_lesson($lesson_id, $user_id);
884 884
         }
885 885
 
886 886
         // encode the feedback
887
-        $encoded_answers_feedback =  array();
888
-        foreach( $answers_feedback as $question_id => $feedback ){
889
-            $encoded_answers_feedback[ $question_id ] = base64_encode( $feedback );
887
+        $encoded_answers_feedback = array();
888
+        foreach ($answers_feedback as $question_id => $feedback) {
889
+            $encoded_answers_feedback[$question_id] = base64_encode($feedback);
890 890
         }
891 891
 
892 892
         // save the user data
893
-        $feedback_saved = Sensei_Utils::add_user_data( 'quiz_answers_feedback', $lesson_id , $encoded_answers_feedback, $user_id ) ;
893
+        $feedback_saved = Sensei_Utils::add_user_data('quiz_answers_feedback', $lesson_id, $encoded_answers_feedback, $user_id);
894 894
 
895 895
         //Were the the question feedback save correctly?
896
-        if( intval( $feedback_saved ) > 0){
896
+        if (intval($feedback_saved) > 0) {
897 897
 
898 898
             // save transient to make retrieval faster in future
899 899
              $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
900
-             set_transient( $transient_key, $encoded_answers_feedback, 10 * DAY_IN_SECONDS );
900
+             set_transient($transient_key, $encoded_answers_feedback, 10 * DAY_IN_SECONDS);
901 901
 
902 902
         }
903 903
 
@@ -922,42 +922,42 @@  discard block
 block discarded – undo
922 922
       *  $type string $question_feedback
923 923
       * }
924 924
       */
925
-     public function get_user_answers_feedback( $lesson_id , $user_id = 0 ){
925
+     public function get_user_answers_feedback($lesson_id, $user_id = 0) {
926 926
 
927 927
          $answers_feedback = array();
928 928
 
929 929
          // get the user_id if none was passed in use the current logged in user
930
-         if( ! intval( $user_id ) > 0 ) {
930
+         if ( ! intval($user_id) > 0) {
931 931
              $user_id = get_current_user_id();
932 932
          }
933 933
 
934
-         if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
935
-             || ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
934
+         if ( ! intval($lesson_id) > 0 || 'lesson' != get_post_type($lesson_id)
935
+             || ! intval($user_id) > 0 || ! get_userdata($user_id)) {
936 936
              return false;
937 937
          }
938 938
 
939 939
          // first check the transient to save a few split seconds
940 940
          $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
941
-         $encoded_feedback = get_transient( $transient_key );
941
+         $encoded_feedback = get_transient($transient_key);
942 942
 
943 943
          // get the data if nothing was stored in the transient
944
-         if( empty( $encoded_feedback  ) || !$encoded_feedback ){
944
+         if (empty($encoded_feedback) || ! $encoded_feedback) {
945 945
 
946
-             $encoded_feedback = Sensei_Utils::get_user_data( 'quiz_answers_feedback', $lesson_id, $user_id );
946
+             $encoded_feedback = Sensei_Utils::get_user_data('quiz_answers_feedback', $lesson_id, $user_id);
947 947
 
948 948
              //set the transient with the new valid data for faster retrieval in future
949
-             set_transient( $transient_key,  $encoded_feedback, 10 * DAY_IN_SECONDS);
949
+             set_transient($transient_key, $encoded_feedback, 10 * DAY_IN_SECONDS);
950 950
 
951 951
          } // end if transient check
952 952
 
953 953
          // if there is no data for this user
954
-         if( ! is_array( $encoded_feedback ) ){
954
+         if ( ! is_array($encoded_feedback)) {
955 955
              return false;
956 956
          }
957 957
 
958
-         foreach( $encoded_feedback as $question_id => $feedback ){
958
+         foreach ($encoded_feedback as $question_id => $feedback) {
959 959
 
960
-             $answers_feedback[ $question_id ] = base64_decode( $feedback );
960
+             $answers_feedback[$question_id] = base64_decode($feedback);
961 961
 
962 962
          }
963 963
 
@@ -980,25 +980,25 @@  discard block
 block discarded – undo
980 980
       *
981 981
       * @return string $feedback or bool if false
982 982
       */
983
-     public function get_user_question_feedback( $lesson_id, $question_id, $user_id = 0 ){
983
+     public function get_user_question_feedback($lesson_id, $question_id, $user_id = 0) {
984 984
 
985 985
          $feedback = false;
986 986
 
987 987
          // parameter validation
988
-         if( empty( $lesson_id ) || empty( $question_id )
989
-             || ! ( intval( $lesson_id  ) > 0 )
990
-             || ! ( intval( $question_id  ) > 0 )
991
-             || 'lesson' != get_post_type( $lesson_id )
992
-             || 'question' != get_post_type( $question_id )) {
988
+         if (empty($lesson_id) || empty($question_id)
989
+             || ! (intval($lesson_id) > 0)
990
+             || ! (intval($question_id) > 0)
991
+             || 'lesson' != get_post_type($lesson_id)
992
+             || 'question' != get_post_type($question_id)) {
993 993
 
994 994
              return false;
995 995
          }
996 996
 
997 997
          // get all the feedback for the user on the given lesson
998
-         $all_feedback = $this->get_user_answers_feedback( $lesson_id, $user_id );
998
+         $all_feedback = $this->get_user_answers_feedback($lesson_id, $user_id);
999 999
 
1000
-         if( !$all_feedback || empty( $all_feedback )
1001
-             || ! is_array( $all_feedback ) || ! isset( $all_feedback[ $question_id ] ) ){
1000
+         if ( ! $all_feedback || empty($all_feedback)
1001
+             || ! is_array($all_feedback) || ! isset($all_feedback[$question_id])) {
1002 1002
 
1003 1003
              //fallback to data pre 1.7.4
1004 1004
 
@@ -1008,23 +1008,23 @@  discard block
 block discarded – undo
1008 1008
                  'user_id' => $user_id,
1009 1009
                  'type'    => 'sensei_user_answer'
1010 1010
              );
1011
-             $question_activity = Sensei_Utils::sensei_check_for_activity( $args , true );
1011
+             $question_activity = Sensei_Utils::sensei_check_for_activity($args, true);
1012 1012
 
1013 1013
              // set the default to false and return that if no old data is available.
1014
-             if( isset( $question_activity->comment_ID ) ){
1015
-                 $feedback = base64_decode( get_comment_meta(  $question_activity->comment_ID , 'answer_note', true ) );
1014
+             if (isset($question_activity->comment_ID)) {
1015
+                 $feedback = base64_decode(get_comment_meta($question_activity->comment_ID, 'answer_note', true));
1016 1016
              }
1017 1017
 
1018 1018
              // finally use the default question feedback
1019
-             if( empty( $feedback ) ){
1020
-                 $feedback = get_post_meta( $question_id, '_answer_feedback', true );
1019
+             if (empty($feedback)) {
1020
+                 $feedback = get_post_meta($question_id, '_answer_feedback', true);
1021 1021
              }
1022 1022
 
1023 1023
              return $feedback;
1024 1024
 
1025 1025
          }
1026 1026
 
1027
-         return $all_feedback[ $question_id ];
1027
+         return $all_feedback[$question_id];
1028 1028
 
1029 1029
      } // end get_user_question_feedback
1030 1030
 
@@ -1042,7 +1042,7 @@  discard block
 block discarded – undo
1042 1042
 
1043 1043
      public function quiz_has_no_questions() {
1044 1044
 
1045
-         if( ! is_singular( 'quiz' ) )  {
1045
+         if ( ! is_singular('quiz')) {
1046 1046
              return;
1047 1047
          }
1048 1048
 
@@ -1050,11 +1050,11 @@  discard block
 block discarded – undo
1050 1050
 
1051 1051
          $lesson_id = $this->get_lesson_id($post->ID);
1052 1052
 
1053
-         $has_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
1053
+         $has_questions = get_post_meta($lesson_id, '_quiz_has_questions', true);
1054 1054
 
1055 1055
          $lesson = get_post($lesson_id);
1056 1056
 
1057
-         if ( is_singular('quiz') && ! $has_questions && $_SERVER['REQUEST_URI'] != "/lesson/$lesson->post_name" ) {
1057
+         if (is_singular('quiz') && ! $has_questions && $_SERVER['REQUEST_URI'] != "/lesson/$lesson->post_name") {
1058 1058
 
1059 1059
              wp_redirect(get_permalink($lesson->ID), 301);
1060 1060
              exit;
@@ -1068,7 +1068,7 @@  discard block
 block discarded – undo
1068 1068
   *
1069 1069
   * @deprecated since 1.9.0
1070 1070
   */
1071
- public static function deprecate_quiz_sensei_single_main_content_hook(){
1071
+ public static function deprecate_quiz_sensei_single_main_content_hook() {
1072 1072
 
1073 1073
      sensei_do_deprecated_action('sensei_single_main_content', '1.9.0', 'sensei_single_quiz_content_inside_before or sensei_single_quiz_content_inside_after');
1074 1074
 
@@ -1078,7 +1078,7 @@  discard block
 block discarded – undo
1078 1078
      *
1079 1079
      * @deprecated since 1.9.0
1080 1080
      */
1081
-     public static function deprecate_quiz_sensei_quiz_single_title_hook(){
1081
+     public static function deprecate_quiz_sensei_quiz_single_title_hook() {
1082 1082
 
1083 1083
          sensei_do_deprecated_action('sensei_quiz_single_title', '1.9.0', 'sensei_single_quiz_content_inside_before ');
1084 1084
 
@@ -1091,29 +1091,29 @@  discard block
 block discarded – undo
1091 1091
       * @param int $id title post id
1092 1092
       * @return string $quiz_title
1093 1093
       */
1094
-     public static function single_quiz_title( $title, $post_id ){
1094
+     public static function single_quiz_title($title, $post_id) {
1095 1095
 
1096
-         if( 'quiz' == get_post_type( $post_id ) ){
1096
+         if ('quiz' == get_post_type($post_id)) {
1097 1097
 
1098 1098
              $title_with_no_quizzes = $title;
1099 1099
 
1100 1100
              // if the title has quiz, remove it: legacy titles have the word quiz stored.
1101
-             if( 1 < substr_count( strtoupper( $title_with_no_quizzes ), 'QUIZ' ) ){
1101
+             if (1 < substr_count(strtoupper($title_with_no_quizzes), 'QUIZ')) {
1102 1102
 
1103 1103
                  // remove all possible appearances of quiz
1104
-                 $title_with_no_quizzes = str_replace( 'quiz', '', $title  );
1105
-                 $title_with_no_quizzes = str_replace( 'Quiz', '', $title_with_no_quizzes  );
1106
-                 $title_with_no_quizzes = str_replace( 'QUIZ', '', $title_with_no_quizzes  );
1104
+                 $title_with_no_quizzes = str_replace('quiz', '', $title);
1105
+                 $title_with_no_quizzes = str_replace('Quiz', '', $title_with_no_quizzes);
1106
+                 $title_with_no_quizzes = str_replace('QUIZ', '', $title_with_no_quizzes);
1107 1107
 
1108 1108
              }
1109 1109
 
1110
-             $title = $title_with_no_quizzes .  ' ' . __( 'Quiz', 'woothemes-sensei' );
1110
+             $title = $title_with_no_quizzes.' '.__('Quiz', 'woothemes-sensei');
1111 1111
          }
1112 1112
 
1113 1113
          /**
1114 1114
           * hook document in class-woothemes-sensei-message.php
1115 1115
           */
1116
-         return apply_filters( 'sensei_single_title', $title, get_post_type( ) );
1116
+         return apply_filters('sensei_single_title', $title, get_post_type( ));
1117 1117
 
1118 1118
      }
1119 1119
 
@@ -1125,21 +1125,21 @@  discard block
 block discarded – undo
1125 1125
       * @since 1.9.0
1126 1126
       *
1127 1127
       */
1128
-     public static function start_quiz_questions_loop(){
1128
+     public static function start_quiz_questions_loop() {
1129 1129
 
1130 1130
          global $sensei_question_loop;
1131 1131
 
1132 1132
          //intialize the questions loop object
1133 1133
          $sensei_question_loop['current'] = -1;
1134
-         $sensei_question_loop['total']   =  0;
1134
+         $sensei_question_loop['total']   = 0;
1135 1135
          $sensei_question_loop['questions'] = array();
1136 1136
 
1137 1137
 
1138
-         $questions = Sensei()->lesson->lesson_quiz_questions( get_the_ID() );
1138
+         $questions = Sensei()->lesson->lesson_quiz_questions(get_the_ID());
1139 1139
 
1140
-         if( count( $questions  ) > 0  ){
1140
+         if (count($questions) > 0) {
1141 1141
 
1142
-             $sensei_question_loop['total']   =  count( $questions );
1142
+             $sensei_question_loop['total']   = count($questions);
1143 1143
              $sensei_question_loop['questions'] = $questions;
1144 1144
              $sensei_question_loop['quiz_id'] = get_the_ID();
1145 1145
 
@@ -1155,9 +1155,9 @@  discard block
 block discarded – undo
1155 1155
       * @since 1.9.0
1156 1156
       *
1157 1157
       */
1158
-     public static function stop_quiz_questions_loop(){
1158
+     public static function stop_quiz_questions_loop() {
1159 1159
 
1160
-         $sensei_question_loop['total']   =  0;
1160
+         $sensei_question_loop['total']   = 0;
1161 1161
          $sensei_question_loop['questions'] = array();
1162 1162
          $sensei_question_loop['quiz_id'] = '';
1163 1163
 
@@ -1168,7 +1168,7 @@  discard block
 block discarded – undo
1168 1168
       *
1169 1169
       * @since 1.9.0
1170 1170
       */
1171
-     public static function the_title(){
1171
+     public static function the_title() {
1172 1172
          ?>
1173 1173
          <header>
1174 1174
 
@@ -1178,7 +1178,7 @@  discard block
 block discarded – undo
1178 1178
                  /**
1179 1179
                   * Filter documented in class-sensei-messages.php the_title
1180 1180
                   */
1181
-                 echo apply_filters( 'sensei_single_title', get_the_title( get_post() ), get_post_type( get_the_ID() ) );
1181
+                 echo apply_filters('sensei_single_title', get_the_title(get_post()), get_post_type(get_the_ID()));
1182 1182
                  ?>
1183 1183
 
1184 1184
              </h1>
@@ -1193,11 +1193,11 @@  discard block
 block discarded – undo
1193 1193
       *
1194 1194
       * @param $quiz_id
1195 1195
       */
1196
-    public static function  the_user_status_message( $quiz_id ){
1196
+    public static function  the_user_status_message($quiz_id) {
1197 1197
 
1198
-        $lesson_id =  Sensei()->quiz->get_lesson_id( $quiz_id );
1199
-        $status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id , get_current_user_id() );
1200
-        echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
1198
+        $lesson_id = Sensei()->quiz->get_lesson_id($quiz_id);
1199
+        $status = Sensei_Utils::sensei_user_quiz_status_message($lesson_id, get_current_user_id());
1200
+        echo '<div class="sensei-message '.$status['box_class'].'">'.$status['message'].'</div>';
1201 1201
 
1202 1202
     }
1203 1203
 
@@ -1208,9 +1208,9 @@  discard block
 block discarded – undo
1208 1208
       * @since 1.9.0
1209 1209
       * @deprecated
1210 1210
       */
1211
-     public static function deprecate_sensei_quiz_action_buttons_hook(){
1211
+     public static function deprecate_sensei_quiz_action_buttons_hook() {
1212 1212
 
1213
-         sensei_do_deprecated_action( 'sensei_quiz_action_buttons', '1.9.0', 'sensei_single_quiz_questions_after');
1213
+         sensei_do_deprecated_action('sensei_quiz_action_buttons', '1.9.0', 'sensei_single_quiz_questions_after');
1214 1214
 
1215 1215
      }
1216 1216
 
@@ -1224,50 +1224,50 @@  discard block
 block discarded – undo
1224 1224
 
1225 1225
          global $post, $current_user;
1226 1226
 
1227
-         $lesson_id = (int) get_post_meta( $post->ID, '_quiz_lesson', true );
1228
-         $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true );
1229
-         $lesson_prerequisite = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
1227
+         $lesson_id = (int) get_post_meta($post->ID, '_quiz_lesson', true);
1228
+         $lesson_course_id = (int) get_post_meta($lesson_id, '_lesson_course', true);
1229
+         $lesson_prerequisite = (int) get_post_meta($lesson_id, '_lesson_prerequisite', true);
1230 1230
          $show_actions = true;
1231
-         $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $current_user->ID );
1231
+         $user_lesson_status = Sensei_Utils::user_lesson_status($lesson_id, $current_user->ID);
1232 1232
 
1233 1233
          //setup quiz grade
1234 1234
          $user_quiz_grade = '';
1235
-         if( ! empty( $user_lesson_status  ) ){
1236
-             $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
1235
+         if ( ! empty($user_lesson_status)) {
1236
+             $user_quiz_grade = get_comment_meta($user_lesson_status->comment_ID, 'grade', true);
1237 1237
          }
1238 1238
 
1239 1239
 
1240
-         if( intval( $lesson_prerequisite ) > 0 ) {
1240
+         if (intval($lesson_prerequisite) > 0) {
1241 1241
 
1242 1242
              // If the user hasn't completed the prereq then hide the current actions
1243
-             $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $current_user->ID );
1243
+             $show_actions = Sensei_Utils::user_completed_lesson($lesson_prerequisite, $current_user->ID);
1244 1244
 
1245 1245
          }
1246
-         if ( $show_actions && is_user_logged_in() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) {
1246
+         if ($show_actions && is_user_logged_in() && Sensei_Utils::user_started_course($lesson_course_id, $current_user->ID)) {
1247 1247
 
1248 1248
              // Get Reset Settings
1249
-             $reset_quiz_allowed = get_post_meta( $post->ID, '_enable_quiz_reset', true ); ?>
1249
+             $reset_quiz_allowed = get_post_meta($post->ID, '_enable_quiz_reset', true); ?>
1250 1250
 
1251 1251
              <!-- Action Nonce's -->
1252 1252
              <input type="hidden" name="woothemes_sensei_complete_quiz_nonce" id="woothemes_sensei_complete_quiz_nonce"
1253
-                    value="<?php echo esc_attr(  wp_create_nonce( 'woothemes_sensei_complete_quiz_nonce' ) ); ?>" />
1253
+                    value="<?php echo esc_attr(wp_create_nonce('woothemes_sensei_complete_quiz_nonce')); ?>" />
1254 1254
              <input type="hidden" name="woothemes_sensei_reset_quiz_nonce" id="woothemes_sensei_reset_quiz_nonce"
1255
-                    value="<?php echo esc_attr(  wp_create_nonce( 'woothemes_sensei_reset_quiz_nonce' ) ); ?>" />
1255
+                    value="<?php echo esc_attr(wp_create_nonce('woothemes_sensei_reset_quiz_nonce')); ?>" />
1256 1256
              <input type="hidden" name="woothemes_sensei_save_quiz_nonce" id="woothemes_sensei_save_quiz_nonce"
1257
-                    value="<?php echo esc_attr(  wp_create_nonce( 'woothemes_sensei_save_quiz_nonce' ) ); ?>" />
1257
+                    value="<?php echo esc_attr(wp_create_nonce('woothemes_sensei_save_quiz_nonce')); ?>" />
1258 1258
              <!--#end Action Nonce's -->
1259 1259
 
1260
-             <?php if ( '' == $user_quiz_grade) { ?>
1260
+             <?php if ('' == $user_quiz_grade) { ?>
1261 1261
 
1262
-                 <span><input type="submit" name="quiz_complete" class="quiz-submit complete" value="<?php  _e( 'Complete Quiz', 'woothemes-sensei' ); ?>"/></span>
1262
+                 <span><input type="submit" name="quiz_complete" class="quiz-submit complete" value="<?php  _e('Complete Quiz', 'woothemes-sensei'); ?>"/></span>
1263 1263
 
1264
-                 <span><input type="submit" name="quiz_save" class="quiz-submit save" value="<?php _e( 'Save Quiz', 'woothemes-sensei' ); ?>"/></span>
1264
+                 <span><input type="submit" name="quiz_save" class="quiz-submit save" value="<?php _e('Save Quiz', 'woothemes-sensei'); ?>"/></span>
1265 1265
 
1266 1266
              <?php } // End If Statement ?>
1267 1267
 
1268
-             <?php if ( isset( $reset_quiz_allowed ) && $reset_quiz_allowed ) { ?>
1268
+             <?php if (isset($reset_quiz_allowed) && $reset_quiz_allowed) { ?>
1269 1269
 
1270
-                 <span><input type="submit" name="quiz_reset" class="quiz-submit reset" value="<?php _e( 'Reset Quiz', 'woothemes-sensei' ); ?>"/></span>
1270
+                 <span><input type="submit" name="quiz_reset" class="quiz-submit reset" value="<?php _e('Reset Quiz', 'woothemes-sensei'); ?>"/></span>
1271 1271
 
1272 1272
              <?php } ?>
1273 1273
 
@@ -1285,13 +1285,13 @@  discard block
 block discarded – undo
1285 1285
       *
1286 1286
       * @return double $user_quiz_grade
1287 1287
       */
1288
-     public static function get_user_quiz_grade( $lesson_id, $user_id ){
1288
+     public static function get_user_quiz_grade($lesson_id, $user_id) {
1289 1289
 
1290 1290
          // get the quiz grade
1291
-         $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
1291
+         $user_lesson_status = Sensei_Utils::user_lesson_status($lesson_id, $user_id);
1292 1292
          $user_quiz_grade = 0;
1293
-         if( isset( $user_lesson_status->comment_ID ) ) {
1294
-             $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
1293
+         if (isset($user_lesson_status->comment_ID)) {
1294
+             $user_quiz_grade = get_comment_meta($user_lesson_status->comment_ID, 'grade', true);
1295 1295
          }
1296 1296
 
1297 1297
          return (double) $user_quiz_grade;
@@ -1309,13 +1309,13 @@  discard block
 block discarded – undo
1309 1309
       * @param int $lesson_id
1310 1310
       * @return bool
1311 1311
       */
1312
-     public static function is_reset_allowed( $lesson_id ){
1312
+     public static function is_reset_allowed($lesson_id) {
1313 1313
 
1314
-         $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
1314
+         $quiz_id = Sensei()->lesson->lesson_quizzes($lesson_id);
1315 1315
 
1316
-         $reset_allowed = get_post_meta( $quiz_id, '_enable_quiz_reset', true );
1316
+         $reset_allowed = get_post_meta($quiz_id, '_enable_quiz_reset', true);
1317 1317
          //backwards compatibility
1318
-         if( 'on' == $reset_allowed ) {
1318
+         if ('on' == $reset_allowed) {
1319 1319
              $reset_allowed = 1;
1320 1320
          }
1321 1321
 
@@ -1332,4 +1332,4 @@  discard block
 block discarded – undo
1332 1332
  * @ignore only for backward compatibility
1333 1333
  * @since 1.9.0
1334 1334
  */
1335
-class WooThemes_Sensei_Quiz extends Sensei_Quiz{}
1335
+class WooThemes_Sensei_Quiz extends Sensei_Quiz {}
Please login to merge, or discard this patch.
Indentation   +884 added lines, -884 removed lines patch added patch discarded remove patch
@@ -24,69 +24,69 @@  discard block
 block discarded – undo
24 24
 	 */
25 25
 	public function __construct ( $file = __FILE__ ) {
26 26
 		$this->file = $file;
27
-        $this->token = 'quiz';
27
+		$this->token = 'quiz';
28 28
 		$this->meta_fields = array( 'quiz_passmark', 'quiz_lesson', 'quiz_type', 'quiz_grade_type', 'pass_required','enable_quiz_reset' );
29 29
 		add_action( 'save_post', array( $this, 'update_author' ));
30 30
 
31 31
 		// listen to the reset button click
32 32
 		add_action( 'template_redirect', array( $this, 'reset_button_click_listener'  ) );
33 33
 
34
-        // fire the complete quiz button submit for grading action
35
-        add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'user_quiz_submit_listener' ) );
34
+		// fire the complete quiz button submit for grading action
35
+		add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'user_quiz_submit_listener' ) );
36 36
 
37 37
 		// fire the save user answers quiz button click responder
38 38
 		add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'user_save_quiz_answers_listener' ) );
39 39
 
40
-        // fire the load global data function
41
-        add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'load_global_quiz_data' ), 80 );
40
+		// fire the load global data function
41
+		add_action( 'sensei_single_quiz_content_inside_before', array( $this, 'load_global_quiz_data' ), 80 );
42 42
 
43
-        add_action( 'template_redirect', array ( $this, 'quiz_has_no_questions') );
43
+		add_action( 'template_redirect', array ( $this, 'quiz_has_no_questions') );
44 44
 
45 45
 
46
-    } // End __construct()
46
+	} // End __construct()
47 47
 
48 48
 	/**
49
-	* Update the quiz author when the lesson post type is save
50
-	*
51
-	* @param int $post_id
52
-	* @return void
53
-	*/
49
+	 * Update the quiz author when the lesson post type is save
50
+	 *
51
+	 * @param int $post_id
52
+	 * @return void
53
+	 */
54 54
 	public function update_author( $post_id ){
55 55
 
56 56
 		// If this isn't a 'lesson' post, don't update it.
57
-        // if this is a revision don't save it
58
-	    if ( isset( $_POST['post_type'] ) && 'lesson' != $_POST['post_type']
59
-            || wp_is_post_revision( $post_id ) ) {
57
+		// if this is a revision don't save it
58
+		if ( isset( $_POST['post_type'] ) && 'lesson' != $_POST['post_type']
59
+			|| wp_is_post_revision( $post_id ) ) {
60 60
 
61
-                return;
61
+				return;
62 62
 
63
-        }
64
-	    // get the lesson author id to be use late
65
-	    $saved_post = get_post( $post_id );
66
-	    $new_lesson_author_id =  $saved_post->post_author;
63
+		}
64
+		// get the lesson author id to be use late
65
+		$saved_post = get_post( $post_id );
66
+		$new_lesson_author_id =  $saved_post->post_author;
67 67
 
68
-	    //get the lessons quiz
68
+		//get the lessons quiz
69 69
 		$lesson_quizzes = Sensei()->lesson->lesson_quizzes( $post_id );
70
-	    foreach ( (array) $lesson_quizzes as $quiz_item ) {
70
+		foreach ( (array) $lesson_quizzes as $quiz_item ) {
71 71
 
72
-	    	if( ! $quiz_item ) {
73
-	    		continue;
74
-	    	}
72
+			if( ! $quiz_item ) {
73
+				continue;
74
+			}
75 75
 
76
-		    // setup the quiz items new author value
76
+			// setup the quiz items new author value
77 77
 			$my_post = array(
78
-			      'ID'           => $quiz_item,
79
-			      'post_author' =>  $new_lesson_author_id
78
+				  'ID'           => $quiz_item,
79
+				  'post_author' =>  $new_lesson_author_id
80 80
 			);
81 81
 
82
-            // remove the action so that it doesn't fire again
83
-            remove_action( 'save_post', array( $this, 'update_author' ));
82
+			// remove the action so that it doesn't fire again
83
+			remove_action( 'save_post', array( $this, 'update_author' ));
84 84
 
85 85
 			// Update the post into the database
86 86
 		  	wp_update_post( $my_post );
87
-	    }
87
+		}
88 88
 
89
-	    return;
89
+		return;
90 90
 	}// end update_author
91 91
 
92 92
 
@@ -117,32 +117,32 @@  discard block
 block discarded – undo
117 117
 	} // end lesson
118 118
 
119 119
 
120
-    /**
121
-     * user_save_quiz_answers_listener
122
-     *
123
-     * This function hooks into the quiz page and accepts the answer form save post.
124
-     * @since 1.7.3
125
-     * @return bool $saved;
126
-     */
127
-    public function user_save_quiz_answers_listener(){
120
+	/**
121
+	 * user_save_quiz_answers_listener
122
+	 *
123
+	 * This function hooks into the quiz page and accepts the answer form save post.
124
+	 * @since 1.7.3
125
+	 * @return bool $saved;
126
+	 */
127
+	public function user_save_quiz_answers_listener(){
128 128
 
129
-        if( ! isset( $_POST[ 'quiz_save' ])
130
-            || !isset( $_POST[ 'sensei_question' ] )
131
-            || empty( $_POST[ 'sensei_question' ] )
132
-            ||  ! wp_verify_nonce( $_POST['woothemes_sensei_save_quiz_nonce'], 'woothemes_sensei_save_quiz_nonce'  ) > 1 ) {
133
-            return;
134
-        }
129
+		if( ! isset( $_POST[ 'quiz_save' ])
130
+			|| !isset( $_POST[ 'sensei_question' ] )
131
+			|| empty( $_POST[ 'sensei_question' ] )
132
+			||  ! wp_verify_nonce( $_POST['woothemes_sensei_save_quiz_nonce'], 'woothemes_sensei_save_quiz_nonce'  ) > 1 ) {
133
+			return;
134
+		}
135 135
 
136
-        global $post;
137
-        $lesson_id = $this->get_lesson_id( $post->ID );
138
-        $quiz_answers = $_POST[ 'sensei_question' ];
139
-        // call the save function
140
-        self::save_user_answers( $quiz_answers, $_FILES , $lesson_id  , get_current_user_id() );
136
+		global $post;
137
+		$lesson_id = $this->get_lesson_id( $post->ID );
138
+		$quiz_answers = $_POST[ 'sensei_question' ];
139
+		// call the save function
140
+		self::save_user_answers( $quiz_answers, $_FILES , $lesson_id  , get_current_user_id() );
141 141
 
142
-        // remove the hook as it should only fire once per click
143
-        remove_action( 'sensei_single_quiz_content_inside_before', 'user_save_quiz_answers_listener' );
142
+		// remove the hook as it should only fire once per click
143
+		remove_action( 'sensei_single_quiz_content_inside_before', 'user_save_quiz_answers_listener' );
144 144
 
145
-    } // end user_save_quiz_answers_listener
145
+	} // end user_save_quiz_answers_listener
146 146
 
147 147
 	/**
148 148
 	 * Save the user answers for the given lesson's quiz
@@ -153,7 +153,7 @@  discard block
 block discarded – undo
153 153
 	 * @access public
154 154
 	 *
155 155
 	 * @param array $quiz_answers
156
-     * @param array $files from global $_FILES
156
+	 * @param array $files from global $_FILES
157 157
 	 * @param int $lesson_id
158 158
 	 * @param int $user_id
159 159
 	 *
@@ -161,11 +161,11 @@  discard block
 block discarded – undo
161 161
 	 */
162 162
 	public static function save_user_answers( $quiz_answers, $files = array(), $lesson_id , $user_id = 0 ){
163 163
 
164
-        if( ! ( $user_id > 0 ) ){
165
-            $user_id = get_current_user_id();
166
-        }
164
+		if( ! ( $user_id > 0 ) ){
165
+			$user_id = get_current_user_id();
166
+		}
167 167
 
168
-        // make sure the parameters are valid before continuing
168
+		// make sure the parameters are valid before continuing
169 169
 		if( empty( $lesson_id ) || empty( $user_id )
170 170
 			|| 'lesson' != get_post_type( $lesson_id )
171 171
 			||!get_userdata( $user_id )
@@ -176,25 +176,25 @@  discard block
 block discarded – undo
176 176
 		}
177 177
 
178 178
 
179
-        // start the lesson before saving the data in case the user has not started the lesson
180
-        $activity_logged = Sensei_Utils::sensei_start_lesson( $lesson_id, $user_id );
179
+		// start the lesson before saving the data in case the user has not started the lesson
180
+		$activity_logged = Sensei_Utils::sensei_start_lesson( $lesson_id, $user_id );
181 181
 
182 182
 		//prepare the answers
183 183
 		$prepared_answers = self::prepare_form_submitted_answers( $quiz_answers , $files );
184 184
 
185 185
 		// save the user data
186
-        $answers_saved = Sensei_Utils::add_user_data( 'quiz_answers', $lesson_id, $prepared_answers, $user_id ) ;
186
+		$answers_saved = Sensei_Utils::add_user_data( 'quiz_answers', $lesson_id, $prepared_answers, $user_id ) ;
187 187
 
188 188
 		// were the answers saved correctly?
189 189
 		if( intval( $answers_saved ) > 0){
190 190
 
191
-            // save transient to make retrieval faster
192
-            $transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
193
-            set_transient( $transient_key, $prepared_answers, 10 * DAY_IN_SECONDS );
191
+			// save transient to make retrieval faster
192
+			$transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
193
+			set_transient( $transient_key, $prepared_answers, 10 * DAY_IN_SECONDS );
194 194
 
195
-            // update the message showed to user
196
-            Sensei()->frontend->messages = '<div class="sensei-message note">' . __( 'Quiz Saved Successfully.', 'woothemes-sensei' )  . '</div>';
197
-        }
195
+			// update the message showed to user
196
+			Sensei()->frontend->messages = '<div class="sensei-message note">' . __( 'Quiz Saved Successfully.', 'woothemes-sensei' )  . '</div>';
197
+		}
198 198
 
199 199
 		return $answers_saved;
200 200
 
@@ -202,9 +202,9 @@  discard block
 block discarded – undo
202 202
 
203 203
 	/**
204 204
 	 * Get the user answers for the given lesson's quiz.
205
-     *
206
-     * This function returns the data that is stored on the lesson as meta and is not compatible with
207
-     * retrieving data for quiz answer before sensei 1.7.4
205
+	 *
206
+	 * This function returns the data that is stored on the lesson as meta and is not compatible with
207
+	 * retrieving data for quiz answer before sensei 1.7.4
208 208
 	 *
209 209
 	 *
210 210
 	 * @since 1.7.4
@@ -224,27 +224,27 @@  discard block
 block discarded – undo
224 224
 			return false;
225 225
 		}
226 226
 
227
-        // save some time and get the transient cached data
228
-        $transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
229
-        $transient_cached_answers = get_transient( $transient_key );
227
+		// save some time and get the transient cached data
228
+		$transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
229
+		$transient_cached_answers = get_transient( $transient_key );
230 230
 
231
-        // return the transient or get the values get the values from the comment meta
232
-        if( !empty( $transient_cached_answers  ) && false != $transient_cached_answers ){
231
+		// return the transient or get the values get the values from the comment meta
232
+		if( !empty( $transient_cached_answers  ) && false != $transient_cached_answers ){
233 233
 
234
-            $encoded_user_answers = $transient_cached_answers;
234
+			$encoded_user_answers = $transient_cached_answers;
235 235
 
236
-        }else{
236
+		}else{
237 237
 
238
-            $encoded_user_answers = Sensei_Utils::get_user_data( 'quiz_answers', $lesson_id  , $user_id );
238
+			$encoded_user_answers = Sensei_Utils::get_user_data( 'quiz_answers', $lesson_id  , $user_id );
239 239
 
240
-        } // end if transient check
240
+		} // end if transient check
241 241
 
242 242
 		if( ! is_array( $encoded_user_answers ) ){
243 243
 			return false;
244 244
 		}
245 245
 
246
-        //set the transient with the new valid data for faster retrieval in future
247
-        set_transient( $transient_key,  $encoded_user_answers, 10 * DAY_IN_SECONDS);
246
+		//set the transient with the new valid data for faster retrieval in future
247
+		set_transient( $transient_key,  $encoded_user_answers, 10 * DAY_IN_SECONDS);
248 248
 
249 249
 		// decode an unserialize all answers
250 250
 		foreach( $encoded_user_answers as $question_id => $encoded_answer ) {
@@ -278,8 +278,8 @@  discard block
 block discarded – undo
278 278
 		$current_quiz_id = $post->ID;
279 279
 		$lesson_id = $this->get_lesson_id( $current_quiz_id );
280 280
 
281
-        // reset all user data
282
-        $this->reset_user_lesson_data( $lesson_id, get_current_user_id() );
281
+		// reset all user data
282
+		$this->reset_user_lesson_data( $lesson_id, get_current_user_id() );
283 283
 
284 284
 		//this function should only run once
285 285
 		remove_action( 'template_redirect', array( $this, 'reset_button_click_listener'  ) );
@@ -290,7 +290,7 @@  discard block
 block discarded – undo
290 290
 	 * Complete/ submit  quiz hooked function
291 291
 	 *
292 292
 	 * This function listens to the complete button submit action and processes the users submitted answers
293
-     * not that this function submits the given users quiz answers for grading.
293
+	 * not that this function submits the given users quiz answers for grading.
294 294
 	 *
295 295
 	 * @since  1.7.4
296 296
 	 * @access public
@@ -300,90 +300,90 @@  discard block
 block discarded – undo
300 300
 	 */
301 301
 	public function user_quiz_submit_listener() {
302 302
 
303
-        // only respond to valid quiz completion submissions
304
-        if( ! isset( $_POST[ 'quiz_complete' ])
305
-            || !isset( $_POST[ 'sensei_question' ] )
306
-            || empty( $_POST[ 'sensei_question' ] )
307
-            ||  ! wp_verify_nonce( $_POST['woothemes_sensei_complete_quiz_nonce'], 'woothemes_sensei_complete_quiz_nonce'  ) > 1 ) {
308
-            return;
309
-        }
303
+		// only respond to valid quiz completion submissions
304
+		if( ! isset( $_POST[ 'quiz_complete' ])
305
+			|| !isset( $_POST[ 'sensei_question' ] )
306
+			|| empty( $_POST[ 'sensei_question' ] )
307
+			||  ! wp_verify_nonce( $_POST['woothemes_sensei_complete_quiz_nonce'], 'woothemes_sensei_complete_quiz_nonce'  ) > 1 ) {
308
+			return;
309
+		}
310 310
 
311
-        global $post, $current_user;
312
-        $lesson_id = $this->get_lesson_id( $post->ID );
313
-        $quiz_answers = $_POST[ 'sensei_question' ];
311
+		global $post, $current_user;
312
+		$lesson_id = $this->get_lesson_id( $post->ID );
313
+		$quiz_answers = $_POST[ 'sensei_question' ];
314 314
 
315
-        self::submit_answers_for_grading( $quiz_answers, $_FILES ,  $lesson_id  , $current_user->ID );
315
+		self::submit_answers_for_grading( $quiz_answers, $_FILES ,  $lesson_id  , $current_user->ID );
316 316
 
317 317
 	} // End sensei_complete_quiz()
318 318
 
319
-    /**
320
-     * This function set's up the data need for the quiz page
321
-     *
322
-     * This function hooks into sensei_complete_quiz and load the global data for the
323
-     * current quiz.
324
-     *
325
-     * @since 1.7.4
326
-     * @access public
327
-     *
328
-     */
329
-    public function load_global_quiz_data(){
319
+	/**
320
+	 * This function set's up the data need for the quiz page
321
+	 *
322
+	 * This function hooks into sensei_complete_quiz and load the global data for the
323
+	 * current quiz.
324
+	 *
325
+	 * @since 1.7.4
326
+	 * @access public
327
+	 *
328
+	 */
329
+	public function load_global_quiz_data(){
330 330
 
331
-        global  $post, $current_user;
332
-        $this->data = new stdClass();
331
+		global  $post, $current_user;
332
+		$this->data = new stdClass();
333 333
 
334
-        // Default grade
335
-        $grade = 0;
334
+		// Default grade
335
+		$grade = 0;
336 336
 
337
-        // Get Quiz Questions
338
-        $lesson_quiz_questions = Sensei()->lesson->lesson_quiz_questions( $post->ID );
337
+		// Get Quiz Questions
338
+		$lesson_quiz_questions = Sensei()->lesson->lesson_quiz_questions( $post->ID );
339 339
 
340
-        $quiz_lesson_id = absint( get_post_meta( $post->ID, '_quiz_lesson', true ) );
340
+		$quiz_lesson_id = absint( get_post_meta( $post->ID, '_quiz_lesson', true ) );
341 341
 
342
-        // Get quiz grade type
343
-        $quiz_grade_type = get_post_meta( $post->ID, '_quiz_grade_type', true );
342
+		// Get quiz grade type
343
+		$quiz_grade_type = get_post_meta( $post->ID, '_quiz_grade_type', true );
344 344
 
345
-        // Get quiz pass setting
346
-        $pass_required = get_post_meta( $post->ID, '_pass_required', true );
345
+		// Get quiz pass setting
346
+		$pass_required = get_post_meta( $post->ID, '_pass_required', true );
347 347
 
348
-        // Get quiz pass mark
349
-        $quiz_passmark = abs( round( doubleval( get_post_meta( $post->ID, '_quiz_passmark', true ) ), 2 ) );
348
+		// Get quiz pass mark
349
+		$quiz_passmark = abs( round( doubleval( get_post_meta( $post->ID, '_quiz_passmark', true ) ), 2 ) );
350 350
 
351
-        // Get latest quiz answers and grades
352
-        $lesson_id = Sensei()->quiz->get_lesson_id( $post->ID );
353
-        $user_quizzes = Sensei()->quiz->get_user_answers( $lesson_id, get_current_user_id() );
354
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $current_user->ID );
355
-        $user_quiz_grade = 0;
356
-        if( isset( $user_lesson_status->comment_ID ) ) {
357
-            $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
358
-        }
351
+		// Get latest quiz answers and grades
352
+		$lesson_id = Sensei()->quiz->get_lesson_id( $post->ID );
353
+		$user_quizzes = Sensei()->quiz->get_user_answers( $lesson_id, get_current_user_id() );
354
+		$user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $current_user->ID );
355
+		$user_quiz_grade = 0;
356
+		if( isset( $user_lesson_status->comment_ID ) ) {
357
+			$user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
358
+		}
359 359
 
360
-        if ( ! is_array($user_quizzes) ) { $user_quizzes = array(); }
360
+		if ( ! is_array($user_quizzes) ) { $user_quizzes = array(); }
361 361
 
362
-        // Check again that the lesson is complete
363
-        $user_lesson_end = Sensei_Utils::user_completed_lesson( $user_lesson_status );
364
-        $user_lesson_complete = false;
365
-        if ( $user_lesson_end ) {
366
-            $user_lesson_complete = true;
367
-        } // End If Statement
362
+		// Check again that the lesson is complete
363
+		$user_lesson_end = Sensei_Utils::user_completed_lesson( $user_lesson_status );
364
+		$user_lesson_complete = false;
365
+		if ( $user_lesson_end ) {
366
+			$user_lesson_complete = true;
367
+		} // End If Statement
368 368
 
369
-        $reset_allowed = get_post_meta( $post->ID, '_enable_quiz_reset', true );
370
-        //backwards compatibility
371
-        if( 'on' == $reset_allowed ) {
372
-            $reset_allowed = 1;
373
-        }
369
+		$reset_allowed = get_post_meta( $post->ID, '_enable_quiz_reset', true );
370
+		//backwards compatibility
371
+		if( 'on' == $reset_allowed ) {
372
+			$reset_allowed = 1;
373
+		}
374 374
 
375
-        // Build frontend data object for backwards compatibility
376
-        // using this is no longer recommended
377
-        $this->data->user_quiz_grade = $user_quiz_grade;// Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
378
-        $this->data->quiz_passmark = $quiz_passmark;
379
-        $this->data->quiz_lesson = $quiz_lesson_id;
380
-        $this->data->quiz_grade_type = $quiz_grade_type; // get_post_meta( $quiz_id, '_quiz_grade_type', true );
381
-        $this->data->user_lesson_end = $user_lesson_end;
382
-        $this->data->user_lesson_complete = $user_lesson_complete; //Sensei_Utils::user_completed_lesson( $lesson_id, get_current_user_id() );
383
-        $this->data->lesson_quiz_questions = $lesson_quiz_questions;
384
-        $this->data->reset_quiz_allowed = $reset_allowed; // Sensei_Quiz::is_reset_allowed( $lesson_id );
375
+		// Build frontend data object for backwards compatibility
376
+		// using this is no longer recommended
377
+		$this->data->user_quiz_grade = $user_quiz_grade;// Sensei_Quiz::get_user_quiz_grade( $lesson_id, get_current_user_id() );
378
+		$this->data->quiz_passmark = $quiz_passmark;
379
+		$this->data->quiz_lesson = $quiz_lesson_id;
380
+		$this->data->quiz_grade_type = $quiz_grade_type; // get_post_meta( $quiz_id, '_quiz_grade_type', true );
381
+		$this->data->user_lesson_end = $user_lesson_end;
382
+		$this->data->user_lesson_complete = $user_lesson_complete; //Sensei_Utils::user_completed_lesson( $lesson_id, get_current_user_id() );
383
+		$this->data->lesson_quiz_questions = $lesson_quiz_questions;
384
+		$this->data->reset_quiz_allowed = $reset_allowed; // Sensei_Quiz::is_reset_allowed( $lesson_id );
385 385
 
386
-    } // end load_global_quiz_data
386
+	} // end load_global_quiz_data
387 387
 
388 388
 
389 389
 	/**
@@ -413,25 +413,25 @@  discard block
 block discarded – undo
413 413
 		foreach( $unprepared_answers as $question_id => $answer ) {
414 414
 
415 415
 			//get the current questions question type
416
-            $question_type = Sensei()->question->get_question_type( $question_id );
416
+			$question_type = Sensei()->question->get_question_type( $question_id );
417 417
 
418 418
 			// Sanitise answer
419 419
 			if( 0 == get_magic_quotes_gpc() ) {
420 420
 				$answer = wp_unslash( $answer );
421 421
 			}
422 422
 
423
-            // compress the answer for saving
423
+			// compress the answer for saving
424 424
 			if( 'multi-line' == $question_type ) {
425
-                $answer = esc_html( $answer );
426
-            }elseif( 'file-upload' == $question_type  ){
427
-                $file_key = 'file_upload_' . $question_id;
428
-                if( isset( $files[ $file_key ] ) ) {
429
-                        $attachment_id = Sensei_Utils::upload_file(  $files[ $file_key ] );
430
-                        if( $attachment_id ) {
431
-                            $answer = $attachment_id;
432
-                        }
433
-                    }
434
-            } // end if
425
+				$answer = esc_html( $answer );
426
+			}elseif( 'file-upload' == $question_type  ){
427
+				$file_key = 'file_upload_' . $question_id;
428
+				if( isset( $files[ $file_key ] ) ) {
429
+						$attachment_id = Sensei_Utils::upload_file(  $files[ $file_key ] );
430
+						if( $attachment_id ) {
431
+							$answer = $attachment_id;
432
+						}
433
+					}
434
+			} // end if
435 435
 
436 436
 			$prepared_answers[ $question_id ] =  base64_encode( maybe_serialize( $answer ) );
437 437
 
@@ -440,813 +440,813 @@  discard block
 block discarded – undo
440 440
 		return $prepared_answers;
441 441
 	} // prepare_form_submitted_answers
442 442
 
443
-    /**
444
-     * Reset user submitted questions
445
-     *
446
-     * This function resets the quiz data for a user that has been submitted fro grading already. It is different to
447
-     * the save_user_answers as currently the saved and submitted answers are stored differently.
448
-     *
449
-     * @since 1.7.4
450
-     * @access public
451
-     *
452
-     * @return bool $reset_success
453
-     * @param int $user_id
454
-     * @param int $lesson_id
455
-     */
456
-    public function reset_user_lesson_data( $lesson_id , $user_id = 0 ){
443
+	/**
444
+	 * Reset user submitted questions
445
+	 *
446
+	 * This function resets the quiz data for a user that has been submitted fro grading already. It is different to
447
+	 * the save_user_answers as currently the saved and submitted answers are stored differently.
448
+	 *
449
+	 * @since 1.7.4
450
+	 * @access public
451
+	 *
452
+	 * @return bool $reset_success
453
+	 * @param int $user_id
454
+	 * @param int $lesson_id
455
+	 */
456
+	public function reset_user_lesson_data( $lesson_id , $user_id = 0 ){
457
+
458
+		//make sure the parameters are valid
459
+		if( empty( $lesson_id ) || empty( $user_id )
460
+			|| 'lesson' != get_post_type( $lesson_id )
461
+			|| ! get_userdata( $user_id ) ){
462
+			return false;
463
+		}
464
+
465
+
466
+
467
+		//get the users lesson status to make
468
+		$user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
469
+		if( ! isset( $user_lesson_status->comment_ID ) ) {
470
+			// this user is not taking this lesson so this process is not needed
471
+			return false;
472
+		}
473
+
474
+		//get the lesson quiz and course
475
+		$quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
476
+		$course_id = Sensei()->lesson->get_course_id( $lesson_id );
477
+
478
+		// reset the transients
479
+		$answers_transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
480
+		$grades_transient_key = 'quiz_grades_'.$user_id.'_'.$lesson_id;
481
+		$answers_feedback_transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
482
+		delete_transient( $answers_transient_key );
483
+		delete_transient( $grades_transient_key );
484
+		delete_transient( $answers_feedback_transient_key );
485
+
486
+		// reset the quiz answers and feedback notes
487
+		$deleted_answers = Sensei_Utils::delete_user_data( 'quiz_answers', $lesson_id, $user_id );
488
+		$deleted_grades = Sensei_Utils::delete_user_data( 'quiz_grades', $lesson_id, $user_id );
489
+		$deleted_user_feedback = Sensei_Utils::delete_user_data( 'quiz_answers_feedback', $lesson_id, $user_id );
490
+
491
+		// Delete quiz answers, this auto deletes the corresponding meta data, such as the question/answer grade
492
+		Sensei_Utils::sensei_delete_quiz_answers( $quiz_id, $user_id );
493
+
494
+		Sensei_Utils::update_lesson_status( $user_id , $lesson_id, 'in-progress', array( 'questions_asked' => '', 'grade' => '' ) );
495
+
496
+		// Update course completion
497
+		Sensei_Utils::update_course_status( $user_id, $course_id );
457 498
 
458
-        //make sure the parameters are valid
459
-        if( empty( $lesson_id ) || empty( $user_id )
460
-            || 'lesson' != get_post_type( $lesson_id )
461
-            || ! get_userdata( $user_id ) ){
462
-            return false;
463
-        }
464
-
465
-
466
-
467
-        //get the users lesson status to make
468
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
469
-        if( ! isset( $user_lesson_status->comment_ID ) ) {
470
-            // this user is not taking this lesson so this process is not needed
471
-            return false;
472
-        }
499
+		// Run any action on quiz/lesson reset (previously this didn't occur on resetting a quiz, see resetting a lesson in sensei_complete_lesson()
500
+		do_action( 'sensei_user_lesson_reset', $user_id, $lesson_id );
501
+		Sensei()->frontend->messages = '<div class="sensei-message note">' . __( 'Quiz Reset Successfully.', 'woothemes-sensei' ) . '</div>';
473 502
 
474
-        //get the lesson quiz and course
475
-        $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
476
-        $course_id = Sensei()->lesson->get_course_id( $lesson_id );
503
+		return ( $deleted_answers && $deleted_grades ) ;
477 504
 
478
-        // reset the transients
479
-        $answers_transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id;
480
-        $grades_transient_key = 'quiz_grades_'.$user_id.'_'.$lesson_id;
481
-        $answers_feedback_transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
482
-        delete_transient( $answers_transient_key );
483
-        delete_transient( $grades_transient_key );
484
-        delete_transient( $answers_feedback_transient_key );
505
+	} // end reset_user_lesson_data
485 506
 
486
-        // reset the quiz answers and feedback notes
487
-        $deleted_answers = Sensei_Utils::delete_user_data( 'quiz_answers', $lesson_id, $user_id );
488
-        $deleted_grades = Sensei_Utils::delete_user_data( 'quiz_grades', $lesson_id, $user_id );
489
-        $deleted_user_feedback = Sensei_Utils::delete_user_data( 'quiz_answers_feedback', $lesson_id, $user_id );
507
+	 /**
508
+	  * Submit the users quiz answers for grading
509
+	  *
510
+	  * This function accepts users answers and stores it but also initiates the grading
511
+	  * if a quiz can be graded automatically it will, if not the answers can be graded by the teacher.
512
+	  *
513
+	  * @since 1.7.4
514
+	  * @access public
515
+	  *
516
+	  * @param array $quiz_answers
517
+	  * @param array $files from $_FILES
518
+	  * @param int $user_id
519
+	  * @param int $lesson_id
520
+	  *
521
+	  * @return bool $answers_submitted
522
+	  */
523
+	 public static function submit_answers_for_grading( $quiz_answers , $files = array() , $lesson_id , $user_id = 0 ){
490 524
 
491
-        // Delete quiz answers, this auto deletes the corresponding meta data, such as the question/answer grade
492
-        Sensei_Utils::sensei_delete_quiz_answers( $quiz_id, $user_id );
525
+		 $answers_submitted = false;
493 526
 
494
-        Sensei_Utils::update_lesson_status( $user_id , $lesson_id, 'in-progress', array( 'questions_asked' => '', 'grade' => '' ) );
527
+		 // get the user_id if none was passed in use the current logged in user
528
+		 if( ! intval( $user_id ) > 0 ) {
529
+			 $user_id = get_current_user_id();
530
+		 }
495 531
 
496
-        // Update course completion
497
-        Sensei_Utils::update_course_status( $user_id, $course_id );
532
+		 // make sure the parameters are valid before continuing
533
+		 if( empty( $lesson_id ) || empty( $user_id )
534
+			 || 'lesson' != get_post_type( $lesson_id )
535
+			 ||!get_userdata( $user_id )
536
+			 || !is_array( $quiz_answers ) ){
498 537
 
499
-        // Run any action on quiz/lesson reset (previously this didn't occur on resetting a quiz, see resetting a lesson in sensei_complete_lesson()
500
-        do_action( 'sensei_user_lesson_reset', $user_id, $lesson_id );
501
-        Sensei()->frontend->messages = '<div class="sensei-message note">' . __( 'Quiz Reset Successfully.', 'woothemes-sensei' ) . '</div>';
538
+			 return false;
502 539
 
503
-        return ( $deleted_answers && $deleted_grades ) ;
540
+		 }
504 541
 
505
-    } // end reset_user_lesson_data
542
+		 // Default grade
543
+		 $grade = 0;
506 544
 
507
-     /**
508
-      * Submit the users quiz answers for grading
509
-      *
510
-      * This function accepts users answers and stores it but also initiates the grading
511
-      * if a quiz can be graded automatically it will, if not the answers can be graded by the teacher.
512
-      *
513
-      * @since 1.7.4
514
-      * @access public
515
-      *
516
-      * @param array $quiz_answers
517
-      * @param array $files from $_FILES
518
-      * @param int $user_id
519
-      * @param int $lesson_id
520
-      *
521
-      * @return bool $answers_submitted
522
-      */
523
-     public static function submit_answers_for_grading( $quiz_answers , $files = array() , $lesson_id , $user_id = 0 ){
545
+		 // Get Quiz ID
546
+		 $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
524 547
 
525
-         $answers_submitted = false;
548
+		 // Get quiz grade type
549
+		 $quiz_grade_type = get_post_meta( $quiz_id, '_quiz_grade_type', true );
526 550
 
527
-         // get the user_id if none was passed in use the current logged in user
528
-         if( ! intval( $user_id ) > 0 ) {
529
-             $user_id = get_current_user_id();
530
-         }
551
+		 // Get quiz pass setting
552
+		 $pass_required = get_post_meta( $quiz_id, '_pass_required', true );
531 553
 
532
-         // make sure the parameters are valid before continuing
533
-         if( empty( $lesson_id ) || empty( $user_id )
534
-             || 'lesson' != get_post_type( $lesson_id )
535
-             ||!get_userdata( $user_id )
536
-             || !is_array( $quiz_answers ) ){
554
+		 // Get the minimum percentage need to pass this quiz
555
+		 $quiz_pass_percentage = abs( round( doubleval( get_post_meta( $quiz_id, '_quiz_passmark', true ) ), 2 ) );
537 556
 
538
-             return false;
557
+		 // Handle Quiz Questions asked
558
+		 // This is to ensure we save the questions that we've asked this user and that this can't be change unless
559
+		 // the quiz is reset by admin or user( user: only if the setting is enabled ).
560
+		 // get the questions asked when when the quiz questions were generated for the user : Sensei_Lesson::lesson_quiz_questions
561
+		 $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
562
+		 $questions_asked = get_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', true );
563
+		 if( empty( $questions_asked ) ){
539 564
 
540
-         }
565
+			 $questions_asked = array_keys( $quiz_answers );
566
+			 $questions_asked_string = implode( ',', $questions_asked );
541 567
 
542
-         // Default grade
543
-         $grade = 0;
568
+			 // Save questions that were asked in this quiz
569
+			 update_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', $questions_asked_string );
544 570
 
545
-         // Get Quiz ID
546
-         $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
571
+		 }
547 572
 
548
-         // Get quiz grade type
549
-         $quiz_grade_type = get_post_meta( $quiz_id, '_quiz_grade_type', true );
573
+		 // Save Quiz Answers for grading, the save function also calls the sensei_start_lesson
574
+		 self::save_user_answers( $quiz_answers , $files , $lesson_id , $user_id );
550 575
 
551
-         // Get quiz pass setting
552
-         $pass_required = get_post_meta( $quiz_id, '_pass_required', true );
576
+		 // Grade quiz
577
+		 $grade = Sensei_Grading::grade_quiz_auto( $quiz_id, $quiz_answers, 0 , $quiz_grade_type );
553 578
 
554
-         // Get the minimum percentage need to pass this quiz
555
-         $quiz_pass_percentage = abs( round( doubleval( get_post_meta( $quiz_id, '_quiz_passmark', true ) ), 2 ) );
579
+		 // Get Lesson Grading Setting
580
+		 $lesson_metadata = array();
581
+		 $lesson_status = 'ungraded'; // Default when completing a quiz
556 582
 
557
-         // Handle Quiz Questions asked
558
-         // This is to ensure we save the questions that we've asked this user and that this can't be change unless
559
-         // the quiz is reset by admin or user( user: only if the setting is enabled ).
560
-         // get the questions asked when when the quiz questions were generated for the user : Sensei_Lesson::lesson_quiz_questions
561
-         $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
562
-         $questions_asked = get_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', true );
563
-         if( empty( $questions_asked ) ){
583
+		 // At this point the answers have been submitted
584
+		 $answers_submitted = true;
564 585
 
565
-             $questions_asked = array_keys( $quiz_answers );
566
-             $questions_asked_string = implode( ',', $questions_asked );
567
-
568
-             // Save questions that were asked in this quiz
569
-             update_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', $questions_asked_string );
586
+		 // if this condition is false the quiz should manually be graded by admin
587
+		 if ('auto' == $quiz_grade_type && ! is_wp_error( $grade )  ) {
570 588
 
571
-         }
589
+			 // Quiz has been automatically Graded
590
+			 if ( 'on' == $pass_required ) {
572 591
 
573
-         // Save Quiz Answers for grading, the save function also calls the sensei_start_lesson
574
-         self::save_user_answers( $quiz_answers , $files , $lesson_id , $user_id );
592
+				 // Student has reached the pass mark and lesson is complete
593
+				 if ( $quiz_pass_percentage <= $grade ) {
575 594
 
576
-         // Grade quiz
577
-         $grade = Sensei_Grading::grade_quiz_auto( $quiz_id, $quiz_answers, 0 , $quiz_grade_type );
595
+					 $lesson_status = 'passed';
578 596
 
579
-         // Get Lesson Grading Setting
580
-         $lesson_metadata = array();
581
-         $lesson_status = 'ungraded'; // Default when completing a quiz
597
+				 } else {
582 598
 
583
-         // At this point the answers have been submitted
584
-         $answers_submitted = true;
599
+					 $lesson_status = 'failed';
585 600
 
586
-         // if this condition is false the quiz should manually be graded by admin
587
-         if ('auto' == $quiz_grade_type && ! is_wp_error( $grade )  ) {
601
+				 } // End If Statement
588 602
 
589
-             // Quiz has been automatically Graded
590
-             if ( 'on' == $pass_required ) {
603
+			 } else {
591 604
 
592
-                 // Student has reached the pass mark and lesson is complete
593
-                 if ( $quiz_pass_percentage <= $grade ) {
605
+				 // Student only has to partake the quiz
606
+				 $lesson_status = 'graded';
607
+
608
+			 }
609
+
610
+			 $lesson_metadata['grade'] = $grade; // Technically already set as part of "WooThemes_Sensei_Utils::sensei_grade_quiz_auto()" above
611
+
612
+		 } // end if ! is_wp_error( $grade ...
613
+
614
+		 Sensei_Utils::update_lesson_status( $user_id, $lesson_id, $lesson_status, $lesson_metadata );
594 615
 
595
-                     $lesson_status = 'passed';
616
+		 if( 'passed' == $lesson_status || 'graded' == $lesson_status ){
596 617
 
597
-                 } else {
618
+			 /**
619
+			  * Lesson end action hook
620
+			  *
621
+			  * This hook is fired after a lesson quiz has been graded and the lesson status is 'passed' OR 'graded'
622
+			  *
623
+			  * @param int $user_id
624
+			  * @param int $lesson_id
625
+			  */
626
+			 do_action( 'sensei_user_lesson_end', $user_id, $lesson_id );
598 627
 
599
-                     $lesson_status = 'failed';
628
+		 }
600 629
 
601
-                 } // End If Statement
630
+		 /**
631
+		  * User quiz has been submitted
632
+		  *
633
+		  * Fires the end of the submit_answers_for_grading function. It will fire irrespective of the submission
634
+		  * results.
635
+		  *
636
+		  * @param int $user_id
637
+		  * @param int $quiz_id
638
+		  * @param string $grade
639
+		  * @param string $quiz_pass_percentage
640
+		  * @param string $quiz_grade_type
641
+		  */
642
+		 do_action( 'sensei_user_quiz_submitted', $user_id, $quiz_id, $grade, $quiz_pass_percentage, $quiz_grade_type );
602 643
 
603
-             } else {
644
+		 return $answers_submitted;
604 645
 
605
-                 // Student only has to partake the quiz
606
-                 $lesson_status = 'graded';
607
-
608
-             }
609
-
610
-             $lesson_metadata['grade'] = $grade; // Technically already set as part of "WooThemes_Sensei_Utils::sensei_grade_quiz_auto()" above
611
-
612
-         } // end if ! is_wp_error( $grade ...
613
-
614
-         Sensei_Utils::update_lesson_status( $user_id, $lesson_id, $lesson_status, $lesson_metadata );
646
+	 }// end submit_answers_for_grading
615 647
 
616
-         if( 'passed' == $lesson_status || 'graded' == $lesson_status ){
648
+	 /**
649
+	  * Get the user question answer
650
+	  *
651
+	  * This function gets the the users saved answer on given quiz for the given question parameter
652
+	  * this function allows for a fallback to users still using the question saved data from before 1.7.4
653
+	  *
654
+	  * @since 1.7.4
655
+	  *
656
+	  * @param int  $lesson_id
657
+	  * @param int $question_id
658
+	  * @param int  $user_id ( optional )
659
+	  *
660
+	  * @return bool|null $answers_submitted
661
+	  */
662
+	 public function get_user_question_answer( $lesson_id, $question_id, $user_id = 0 ){
617 663
 
618
-             /**
619
-              * Lesson end action hook
620
-              *
621
-              * This hook is fired after a lesson quiz has been graded and the lesson status is 'passed' OR 'graded'
622
-              *
623
-              * @param int $user_id
624
-              * @param int $lesson_id
625
-              */
626
-             do_action( 'sensei_user_lesson_end', $user_id, $lesson_id );
664
+		 // parameter validation
665
+		 if( empty( $lesson_id ) || empty( $question_id )
666
+			 || ! ( intval( $lesson_id  ) > 0 )
667
+			 || ! ( intval( $question_id  ) > 0 )
668
+			 || 'lesson' != get_post_type( $lesson_id )
669
+			 || 'question' != get_post_type( $question_id )) {
627 670
 
628
-         }
671
+			 return false;
672
+		 }
673
+
674
+		 if( ! ( intval( $user_id ) > 0 )   ){
675
+			 $user_id = get_current_user_id();
676
+		 }
677
+
678
+		 $users_answers = $this->get_user_answers( $lesson_id, $user_id );
679
+
680
+		 if( !$users_answers || empty( $users_answers )
681
+		 ||  ! is_array( $users_answers ) || ! isset( $users_answers[ $question_id ] ) ){
682
+
683
+			 //Fallback for pre 1.7.4 data
684
+			 $comment =  Sensei_Utils::sensei_check_for_activity( array( 'post_id' => $question_id, 'user_id' => $user_id, 'type' => 'sensei_user_answer' ), true );
685
+
686
+			 if( ! isset( $comment->comment_content ) ){
687
+				 return NULL;
688
+			 }
689
+
690
+			 return maybe_unserialize( base64_decode( $comment->comment_content ) );
691
+		 }
692
+
693
+		 return $users_answers[ $question_id ];
694
+
695
+	 }// end get_user_question_answer
696
+
697
+	 /**
698
+	  * Saving the users quiz question grades
699
+	  *
700
+	  * This function save all the grades for all the question in a given quiz on the lesson
701
+	  * comment meta. It makes use of transients to save the grades for easier access at a later stage
702
+	  *
703
+	  * @since 1.7.4
704
+	  *
705
+	  * @param array $quiz_grades{
706
+	  *      @type int $question_id
707
+	  *      @type int $question_grade
708
+	  * }
709
+	  * @param $lesson_id
710
+	  * @param $user_id (Optional) will use the current user if not supplied
711
+	  *
712
+	  * @return bool
713
+	  */
714
+	 public function set_user_grades( $quiz_grades, $lesson_id, $user_id = 0 ){
715
+
716
+		 // get the user_id if none was passed in use the current logged in user
717
+		 if( ! intval( $user_id ) > 0 ) {
718
+			 $user_id = get_current_user_id();
719
+		 }
720
+
721
+		 // make sure the parameters are valid before continuing
722
+		 if( empty( $lesson_id ) || empty( $user_id )
723
+			 || 'lesson' != get_post_type( $lesson_id )
724
+			 ||!get_userdata( $user_id )
725
+			 || !is_array( $quiz_grades ) ){
726
+
727
+			 return false;
728
+
729
+		 }
730
+
731
+		 $success = false;
732
+
733
+		 // save that data for the user on the lesson comment meta
734
+		 $comment_meta_id = Sensei_Utils::add_user_data( 'quiz_grades', $lesson_id, $quiz_grades, $user_id   );
735
+
736
+		 // were the grades save successfully ?
737
+		 if( intval( $comment_meta_id ) > 0 ) {
738
+
739
+			 $success = true;
740
+			 // save transient
741
+			 $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id;
742
+			 set_transient( $transient_key, $quiz_grades, 10 * DAY_IN_SECONDS );
743
+		 }
744
+
745
+		 return $success;
746
+
747
+	 }// end set_user_grades
748
+
749
+	 /**
750
+	  * Retrieve the users quiz question grades
751
+	  *
752
+	  * This function gets all the grades for all the questions in the given lesson quiz for a specific user.
753
+	  *
754
+	  * @since 1.7.4
755
+	  *
756
+	  * @param $lesson_id
757
+	  * @param $user_id (Optional) will use the current user if not supplied
758
+	  *
759
+	  * @return array $user_quiz_grades or false if none exists for this users
760
+	  */
761
+	 public function get_user_grades( $lesson_id, $user_id = 0 ){
762
+
763
+		 $user_grades = array();
764
+
765
+		 // get the user_id if none was passed in use the current logged in user
766
+		 if( ! intval( $user_id ) > 0 ) {
767
+			 $user_id = get_current_user_id();
768
+		 }
769
+
770
+		 if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
771
+			 || ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
772
+			 return false;
773
+		 }
774
+
775
+		 // save some time and get the transient cached data
776
+		 $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id;
777
+		 $user_grades = get_transient( $transient_key );
778
+
779
+		 // get the data if nothing was stored in the transient
780
+		 if( empty( $user_grades  ) || false != $user_grades ){
781
+
782
+			 $user_grades = Sensei_Utils::get_user_data( 'quiz_grades', $lesson_id, $user_id );
783
+
784
+			 //set the transient with the new valid data for faster retrieval in future
785
+			 set_transient( $transient_key,  $user_grades, 10 * DAY_IN_SECONDS );
786
+
787
+		 } // end if transient check
788
+
789
+		 // if there is no data for this user
790
+		 if( ! is_array( $user_grades ) ){
791
+			 return false;
792
+		 }
793
+
794
+		 return $user_grades;
795
+
796
+	 }// end  get_user_grades
797
+
798
+	 /**
799
+	  * Get the user question grade
800
+	  *
801
+	  * This function gets the grade on a quiz for the given question parameter
802
+	  * It does NOT do any grading. It simply retrieves the data that was stored during grading.
803
+	  * this function allows for a fallback to users still using the question saved data from before 1.7.4
804
+	  *
805
+	  * @since 1.7.4
806
+	  *
807
+	  * @param int  $lesson_id
808
+	  * @param int $question_id
809
+	  * @param int  $user_id ( optional )
810
+	  *
811
+	  * @return bool $question_grade
812
+	  */
813
+	 public function get_user_question_grade( $lesson_id, $question_id, $user_id = 0 ){
814
+
815
+		 // parameter validation
816
+		 if( empty( $lesson_id ) || empty( $question_id )
817
+			 || ! ( intval( $lesson_id  ) > 0 )
818
+			 || ! ( intval( $question_id  ) > 0 )
819
+			 || 'lesson' != get_post_type( $lesson_id )
820
+			 || 'question' != get_post_type( $question_id )) {
821
+
822
+			 return false;
823
+		 }
824
+
825
+		 $all_user_grades = self::get_user_grades( $lesson_id,$user_id );
826
+
827
+		 if( ! $all_user_grades || ! isset(  $all_user_grades[ $question_id ] ) ){
828
+
829
+			 //fallback to data pre 1.7.4
830
+			 $args = array(
831
+				 'post_id' => $question_id,
832
+				 'user_id' => $user_id,
833
+				 'type'    => 'sensei_user_answer'
834
+			 );
835
+
836
+			 $question_activity = Sensei_Utils::sensei_check_for_activity( $args , true );
837
+			 $fall_back_grade = false;
838
+			 if( isset( $question_activity->comment_ID ) ){
839
+				 $fall_back_grade = get_comment_meta(  $question_activity->comment_ID , 'user_grade', true );
840
+			 }
841
+
842
+			 return $fall_back_grade;
843
+
844
+		 } // end if $all_user_grades...
845
+
846
+		 return $all_user_grades[ $question_id ];
847
+
848
+	 }// end get_user_question_grade
849
+
850
+	 /**
851
+	  * Save the user's answers feedback
852
+	  *
853
+	  * For this function you must supply all three parameters. If will return false one is left out.
854
+	  * The data will be saved on the lesson ID supplied.
855
+	  *
856
+	  * @since 1.7.5
857
+	  * @access public
858
+	  *
859
+	  * @param array $answers_feedback{
860
+	  *  $type int $question_id
861
+	  *  $type string $question_feedback
862
+	  * }
863
+	  * @param int $lesson_id
864
+	  * @param int $user_id
865
+	  *
866
+	  * @return false or int $feedback_saved
867
+	  */
868
+	public function save_user_answers_feedback( $answers_feedback, $lesson_id , $user_id = 0 ){
869
+
870
+		// make sure the parameters are valid before continuing
871
+		if( empty( $lesson_id ) || empty( $user_id )
872
+			|| 'lesson' != get_post_type( $lesson_id )
873
+			||!get_userdata( $user_id )
874
+			|| !is_array( $answers_feedback ) ){
875
+
876
+			return false;
877
+
878
+		}
879
+
880
+
881
+		// check if the lesson is started before saving, if not start the lesson for the user
882
+		if ( !( 0 < intval( Sensei_Utils::user_started_lesson( $lesson_id, $user_id) ) ) ) {
883
+			Sensei_Utils::sensei_start_lesson( $lesson_id, $user_id );
884
+		}
629 885
 
630
-         /**
631
-          * User quiz has been submitted
632
-          *
633
-          * Fires the end of the submit_answers_for_grading function. It will fire irrespective of the submission
634
-          * results.
635
-          *
636
-          * @param int $user_id
637
-          * @param int $quiz_id
638
-          * @param string $grade
639
-          * @param string $quiz_pass_percentage
640
-          * @param string $quiz_grade_type
641
-          */
642
-         do_action( 'sensei_user_quiz_submitted', $user_id, $quiz_id, $grade, $quiz_pass_percentage, $quiz_grade_type );
886
+		// encode the feedback
887
+		$encoded_answers_feedback =  array();
888
+		foreach( $answers_feedback as $question_id => $feedback ){
889
+			$encoded_answers_feedback[ $question_id ] = base64_encode( $feedback );
890
+		}
891
+
892
+		// save the user data
893
+		$feedback_saved = Sensei_Utils::add_user_data( 'quiz_answers_feedback', $lesson_id , $encoded_answers_feedback, $user_id ) ;
894
+
895
+		//Were the the question feedback save correctly?
896
+		if( intval( $feedback_saved ) > 0){
897
+
898
+			// save transient to make retrieval faster in future
899
+			 $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
900
+			 set_transient( $transient_key, $encoded_answers_feedback, 10 * DAY_IN_SECONDS );
643 901
 
644
-         return $answers_submitted;
902
+		}
903
+
904
+		return $feedback_saved;
905
+
906
+	} // end save_user_answers_feedback
907
+
908
+	 /**
909
+	  * Get the user's answers feedback.
910
+	  *
911
+	  * This function returns the feedback submitted by the teacher/admin
912
+	  * during grading. Grading occurs manually or automatically.
913
+	  *
914
+	  * @since 1.7.5
915
+	  * @access public
916
+	  *
917
+	  * @param int $lesson_id
918
+	  * @param int $user_id
919
+	  *
920
+	  * @return false | array $answers_feedback{
921
+	  *  $type int $question_id
922
+	  *  $type string $question_feedback
923
+	  * }
924
+	  */
925
+	 public function get_user_answers_feedback( $lesson_id , $user_id = 0 ){
926
+
927
+		 $answers_feedback = array();
645 928
 
646
-     }// end submit_answers_for_grading
929
+		 // get the user_id if none was passed in use the current logged in user
930
+		 if( ! intval( $user_id ) > 0 ) {
931
+			 $user_id = get_current_user_id();
932
+		 }
647 933
 
648
-     /**
649
-      * Get the user question answer
650
-      *
651
-      * This function gets the the users saved answer on given quiz for the given question parameter
652
-      * this function allows for a fallback to users still using the question saved data from before 1.7.4
653
-      *
654
-      * @since 1.7.4
655
-      *
656
-      * @param int  $lesson_id
657
-      * @param int $question_id
658
-      * @param int  $user_id ( optional )
659
-      *
660
-      * @return bool|null $answers_submitted
661
-      */
662
-     public function get_user_question_answer( $lesson_id, $question_id, $user_id = 0 ){
934
+		 if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
935
+			 || ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
936
+			 return false;
937
+		 }
938
+
939
+		 // first check the transient to save a few split seconds
940
+		 $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
941
+		 $encoded_feedback = get_transient( $transient_key );
942
+
943
+		 // get the data if nothing was stored in the transient
944
+		 if( empty( $encoded_feedback  ) || !$encoded_feedback ){
945
+
946
+			 $encoded_feedback = Sensei_Utils::get_user_data( 'quiz_answers_feedback', $lesson_id, $user_id );
947
+
948
+			 //set the transient with the new valid data for faster retrieval in future
949
+			 set_transient( $transient_key,  $encoded_feedback, 10 * DAY_IN_SECONDS);
950
+
951
+		 } // end if transient check
663 952
 
664
-         // parameter validation
665
-         if( empty( $lesson_id ) || empty( $question_id )
666
-             || ! ( intval( $lesson_id  ) > 0 )
667
-             || ! ( intval( $question_id  ) > 0 )
668
-             || 'lesson' != get_post_type( $lesson_id )
669
-             || 'question' != get_post_type( $question_id )) {
953
+		 // if there is no data for this user
954
+		 if( ! is_array( $encoded_feedback ) ){
955
+			 return false;
956
+		 }
670 957
 
671
-             return false;
672
-         }
673
-
674
-         if( ! ( intval( $user_id ) > 0 )   ){
675
-             $user_id = get_current_user_id();
676
-         }
677
-
678
-         $users_answers = $this->get_user_answers( $lesson_id, $user_id );
679
-
680
-         if( !$users_answers || empty( $users_answers )
681
-         ||  ! is_array( $users_answers ) || ! isset( $users_answers[ $question_id ] ) ){
682
-
683
-             //Fallback for pre 1.7.4 data
684
-             $comment =  Sensei_Utils::sensei_check_for_activity( array( 'post_id' => $question_id, 'user_id' => $user_id, 'type' => 'sensei_user_answer' ), true );
685
-
686
-             if( ! isset( $comment->comment_content ) ){
687
-                 return NULL;
688
-             }
689
-
690
-             return maybe_unserialize( base64_decode( $comment->comment_content ) );
691
-         }
692
-
693
-         return $users_answers[ $question_id ];
694
-
695
-     }// end get_user_question_answer
696
-
697
-     /**
698
-      * Saving the users quiz question grades
699
-      *
700
-      * This function save all the grades for all the question in a given quiz on the lesson
701
-      * comment meta. It makes use of transients to save the grades for easier access at a later stage
702
-      *
703
-      * @since 1.7.4
704
-      *
705
-      * @param array $quiz_grades{
706
-      *      @type int $question_id
707
-      *      @type int $question_grade
708
-      * }
709
-      * @param $lesson_id
710
-      * @param $user_id (Optional) will use the current user if not supplied
711
-      *
712
-      * @return bool
713
-      */
714
-     public function set_user_grades( $quiz_grades, $lesson_id, $user_id = 0 ){
715
-
716
-         // get the user_id if none was passed in use the current logged in user
717
-         if( ! intval( $user_id ) > 0 ) {
718
-             $user_id = get_current_user_id();
719
-         }
720
-
721
-         // make sure the parameters are valid before continuing
722
-         if( empty( $lesson_id ) || empty( $user_id )
723
-             || 'lesson' != get_post_type( $lesson_id )
724
-             ||!get_userdata( $user_id )
725
-             || !is_array( $quiz_grades ) ){
726
-
727
-             return false;
728
-
729
-         }
730
-
731
-         $success = false;
732
-
733
-         // save that data for the user on the lesson comment meta
734
-         $comment_meta_id = Sensei_Utils::add_user_data( 'quiz_grades', $lesson_id, $quiz_grades, $user_id   );
735
-
736
-         // were the grades save successfully ?
737
-         if( intval( $comment_meta_id ) > 0 ) {
738
-
739
-             $success = true;
740
-             // save transient
741
-             $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id;
742
-             set_transient( $transient_key, $quiz_grades, 10 * DAY_IN_SECONDS );
743
-         }
744
-
745
-         return $success;
746
-
747
-     }// end set_user_grades
748
-
749
-     /**
750
-      * Retrieve the users quiz question grades
751
-      *
752
-      * This function gets all the grades for all the questions in the given lesson quiz for a specific user.
753
-      *
754
-      * @since 1.7.4
755
-      *
756
-      * @param $lesson_id
757
-      * @param $user_id (Optional) will use the current user if not supplied
758
-      *
759
-      * @return array $user_quiz_grades or false if none exists for this users
760
-      */
761
-     public function get_user_grades( $lesson_id, $user_id = 0 ){
762
-
763
-         $user_grades = array();
764
-
765
-         // get the user_id if none was passed in use the current logged in user
766
-         if( ! intval( $user_id ) > 0 ) {
767
-             $user_id = get_current_user_id();
768
-         }
769
-
770
-         if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
771
-             || ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
772
-             return false;
773
-         }
774
-
775
-         // save some time and get the transient cached data
776
-         $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id;
777
-         $user_grades = get_transient( $transient_key );
778
-
779
-         // get the data if nothing was stored in the transient
780
-         if( empty( $user_grades  ) || false != $user_grades ){
781
-
782
-             $user_grades = Sensei_Utils::get_user_data( 'quiz_grades', $lesson_id, $user_id );
783
-
784
-             //set the transient with the new valid data for faster retrieval in future
785
-             set_transient( $transient_key,  $user_grades, 10 * DAY_IN_SECONDS );
786
-
787
-         } // end if transient check
788
-
789
-         // if there is no data for this user
790
-         if( ! is_array( $user_grades ) ){
791
-             return false;
792
-         }
793
-
794
-         return $user_grades;
795
-
796
-     }// end  get_user_grades
797
-
798
-     /**
799
-      * Get the user question grade
800
-      *
801
-      * This function gets the grade on a quiz for the given question parameter
802
-      * It does NOT do any grading. It simply retrieves the data that was stored during grading.
803
-      * this function allows for a fallback to users still using the question saved data from before 1.7.4
804
-      *
805
-      * @since 1.7.4
806
-      *
807
-      * @param int  $lesson_id
808
-      * @param int $question_id
809
-      * @param int  $user_id ( optional )
810
-      *
811
-      * @return bool $question_grade
812
-      */
813
-     public function get_user_question_grade( $lesson_id, $question_id, $user_id = 0 ){
814
-
815
-         // parameter validation
816
-         if( empty( $lesson_id ) || empty( $question_id )
817
-             || ! ( intval( $lesson_id  ) > 0 )
818
-             || ! ( intval( $question_id  ) > 0 )
819
-             || 'lesson' != get_post_type( $lesson_id )
820
-             || 'question' != get_post_type( $question_id )) {
821
-
822
-             return false;
823
-         }
824
-
825
-         $all_user_grades = self::get_user_grades( $lesson_id,$user_id );
826
-
827
-         if( ! $all_user_grades || ! isset(  $all_user_grades[ $question_id ] ) ){
828
-
829
-             //fallback to data pre 1.7.4
830
-             $args = array(
831
-                 'post_id' => $question_id,
832
-                 'user_id' => $user_id,
833
-                 'type'    => 'sensei_user_answer'
834
-             );
835
-
836
-             $question_activity = Sensei_Utils::sensei_check_for_activity( $args , true );
837
-             $fall_back_grade = false;
838
-             if( isset( $question_activity->comment_ID ) ){
839
-                 $fall_back_grade = get_comment_meta(  $question_activity->comment_ID , 'user_grade', true );
840
-             }
841
-
842
-             return $fall_back_grade;
843
-
844
-         } // end if $all_user_grades...
845
-
846
-         return $all_user_grades[ $question_id ];
847
-
848
-     }// end get_user_question_grade
849
-
850
-     /**
851
-      * Save the user's answers feedback
852
-      *
853
-      * For this function you must supply all three parameters. If will return false one is left out.
854
-      * The data will be saved on the lesson ID supplied.
855
-      *
856
-      * @since 1.7.5
857
-      * @access public
858
-      *
859
-      * @param array $answers_feedback{
860
-      *  $type int $question_id
861
-      *  $type string $question_feedback
862
-      * }
863
-      * @param int $lesson_id
864
-      * @param int $user_id
865
-      *
866
-      * @return false or int $feedback_saved
867
-      */
868
-    public function save_user_answers_feedback( $answers_feedback, $lesson_id , $user_id = 0 ){
869
-
870
-        // make sure the parameters are valid before continuing
871
-        if( empty( $lesson_id ) || empty( $user_id )
872
-            || 'lesson' != get_post_type( $lesson_id )
873
-            ||!get_userdata( $user_id )
874
-            || !is_array( $answers_feedback ) ){
875
-
876
-            return false;
877
-
878
-        }
879
-
880
-
881
-        // check if the lesson is started before saving, if not start the lesson for the user
882
-        if ( !( 0 < intval( Sensei_Utils::user_started_lesson( $lesson_id, $user_id) ) ) ) {
883
-            Sensei_Utils::sensei_start_lesson( $lesson_id, $user_id );
884
-        }
885
-
886
-        // encode the feedback
887
-        $encoded_answers_feedback =  array();
888
-        foreach( $answers_feedback as $question_id => $feedback ){
889
-            $encoded_answers_feedback[ $question_id ] = base64_encode( $feedback );
890
-        }
891
-
892
-        // save the user data
893
-        $feedback_saved = Sensei_Utils::add_user_data( 'quiz_answers_feedback', $lesson_id , $encoded_answers_feedback, $user_id ) ;
894
-
895
-        //Were the the question feedback save correctly?
896
-        if( intval( $feedback_saved ) > 0){
897
-
898
-            // save transient to make retrieval faster in future
899
-             $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
900
-             set_transient( $transient_key, $encoded_answers_feedback, 10 * DAY_IN_SECONDS );
901
-
902
-        }
903
-
904
-        return $feedback_saved;
905
-
906
-    } // end save_user_answers_feedback
907
-
908
-     /**
909
-      * Get the user's answers feedback.
910
-      *
911
-      * This function returns the feedback submitted by the teacher/admin
912
-      * during grading. Grading occurs manually or automatically.
913
-      *
914
-      * @since 1.7.5
915
-      * @access public
916
-      *
917
-      * @param int $lesson_id
918
-      * @param int $user_id
919
-      *
920
-      * @return false | array $answers_feedback{
921
-      *  $type int $question_id
922
-      *  $type string $question_feedback
923
-      * }
924
-      */
925
-     public function get_user_answers_feedback( $lesson_id , $user_id = 0 ){
926
-
927
-         $answers_feedback = array();
928
-
929
-         // get the user_id if none was passed in use the current logged in user
930
-         if( ! intval( $user_id ) > 0 ) {
931
-             $user_id = get_current_user_id();
932
-         }
933
-
934
-         if ( ! intval( $lesson_id ) > 0 || 'lesson' != get_post_type( $lesson_id )
935
-             || ! intval( $user_id )  > 0 || !get_userdata( $user_id )  ) {
936
-             return false;
937
-         }
938
-
939
-         // first check the transient to save a few split seconds
940
-         $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id;
941
-         $encoded_feedback = get_transient( $transient_key );
942
-
943
-         // get the data if nothing was stored in the transient
944
-         if( empty( $encoded_feedback  ) || !$encoded_feedback ){
945
-
946
-             $encoded_feedback = Sensei_Utils::get_user_data( 'quiz_answers_feedback', $lesson_id, $user_id );
947
-
948
-             //set the transient with the new valid data for faster retrieval in future
949
-             set_transient( $transient_key,  $encoded_feedback, 10 * DAY_IN_SECONDS);
950
-
951
-         } // end if transient check
952
-
953
-         // if there is no data for this user
954
-         if( ! is_array( $encoded_feedback ) ){
955
-             return false;
956
-         }
957
-
958
-         foreach( $encoded_feedback as $question_id => $feedback ){
958
+		 foreach( $encoded_feedback as $question_id => $feedback ){
959 959
 
960
-             $answers_feedback[ $question_id ] = base64_decode( $feedback );
960
+			 $answers_feedback[ $question_id ] = base64_decode( $feedback );
961 961
 
962
-         }
962
+		 }
963 963
 
964
-         return $answers_feedback;
964
+		 return $answers_feedback;
965 965
 
966
-     } // end get_user_answers_feedback
966
+	 } // end get_user_answers_feedback
967 967
 
968
-     /**
969
-      * Get the user's answer feedback for a specific question.
970
-      *
971
-      * This function gives you a single answer note/feedback string
972
-      * for the user on the given question.
973
-      *
974
-      * @since 1.7.5
975
-      * @access public
976
-      *
977
-      * @param int $lesson_id
978
-      * @param int $question_id
979
-      * @param int $user_id
980
-      *
981
-      * @return string $feedback or bool if false
982
-      */
983
-     public function get_user_question_feedback( $lesson_id, $question_id, $user_id = 0 ){
968
+	 /**
969
+	  * Get the user's answer feedback for a specific question.
970
+	  *
971
+	  * This function gives you a single answer note/feedback string
972
+	  * for the user on the given question.
973
+	  *
974
+	  * @since 1.7.5
975
+	  * @access public
976
+	  *
977
+	  * @param int $lesson_id
978
+	  * @param int $question_id
979
+	  * @param int $user_id
980
+	  *
981
+	  * @return string $feedback or bool if false
982
+	  */
983
+	 public function get_user_question_feedback( $lesson_id, $question_id, $user_id = 0 ){
984 984
 
985
-         $feedback = false;
985
+		 $feedback = false;
986 986
 
987
-         // parameter validation
988
-         if( empty( $lesson_id ) || empty( $question_id )
989
-             || ! ( intval( $lesson_id  ) > 0 )
990
-             || ! ( intval( $question_id  ) > 0 )
991
-             || 'lesson' != get_post_type( $lesson_id )
992
-             || 'question' != get_post_type( $question_id )) {
987
+		 // parameter validation
988
+		 if( empty( $lesson_id ) || empty( $question_id )
989
+			 || ! ( intval( $lesson_id  ) > 0 )
990
+			 || ! ( intval( $question_id  ) > 0 )
991
+			 || 'lesson' != get_post_type( $lesson_id )
992
+			 || 'question' != get_post_type( $question_id )) {
993 993
 
994
-             return false;
995
-         }
994
+			 return false;
995
+		 }
996 996
 
997
-         // get all the feedback for the user on the given lesson
998
-         $all_feedback = $this->get_user_answers_feedback( $lesson_id, $user_id );
997
+		 // get all the feedback for the user on the given lesson
998
+		 $all_feedback = $this->get_user_answers_feedback( $lesson_id, $user_id );
999 999
 
1000
-         if( !$all_feedback || empty( $all_feedback )
1001
-             || ! is_array( $all_feedback ) || ! isset( $all_feedback[ $question_id ] ) ){
1000
+		 if( !$all_feedback || empty( $all_feedback )
1001
+			 || ! is_array( $all_feedback ) || ! isset( $all_feedback[ $question_id ] ) ){
1002 1002
 
1003
-             //fallback to data pre 1.7.4
1003
+			 //fallback to data pre 1.7.4
1004 1004
 
1005
-             // setup the sensei data query
1006
-             $args = array(
1007
-                 'post_id' => $question_id,
1008
-                 'user_id' => $user_id,
1009
-                 'type'    => 'sensei_user_answer'
1010
-             );
1011
-             $question_activity = Sensei_Utils::sensei_check_for_activity( $args , true );
1005
+			 // setup the sensei data query
1006
+			 $args = array(
1007
+				 'post_id' => $question_id,
1008
+				 'user_id' => $user_id,
1009
+				 'type'    => 'sensei_user_answer'
1010
+			 );
1011
+			 $question_activity = Sensei_Utils::sensei_check_for_activity( $args , true );
1012 1012
 
1013
-             // set the default to false and return that if no old data is available.
1014
-             if( isset( $question_activity->comment_ID ) ){
1015
-                 $feedback = base64_decode( get_comment_meta(  $question_activity->comment_ID , 'answer_note', true ) );
1016
-             }
1013
+			 // set the default to false and return that if no old data is available.
1014
+			 if( isset( $question_activity->comment_ID ) ){
1015
+				 $feedback = base64_decode( get_comment_meta(  $question_activity->comment_ID , 'answer_note', true ) );
1016
+			 }
1017 1017
 
1018
-             // finally use the default question feedback
1019
-             if( empty( $feedback ) ){
1020
-                 $feedback = get_post_meta( $question_id, '_answer_feedback', true );
1021
-             }
1018
+			 // finally use the default question feedback
1019
+			 if( empty( $feedback ) ){
1020
+				 $feedback = get_post_meta( $question_id, '_answer_feedback', true );
1021
+			 }
1022 1022
 
1023
-             return $feedback;
1023
+			 return $feedback;
1024 1024
 
1025
-         }
1025
+		 }
1026 1026
 
1027
-         return $all_feedback[ $question_id ];
1027
+		 return $all_feedback[ $question_id ];
1028 1028
 
1029
-     } // end get_user_question_feedback
1029
+	 } // end get_user_question_feedback
1030 1030
 
1031
-     /**
1032
-      * Check if a quiz has no questions, and redirect back to lesson.
1033
-      *
1034
-      * Though a quiz is created for each lesson, it should not be visible
1035
-      * unless it has questions.
1036
-      *
1037
-      * @since 1.9.0
1038
-      * @access public
1039
-      * @param none
1040
-      * @return void
1041
-      */
1031
+	 /**
1032
+	  * Check if a quiz has no questions, and redirect back to lesson.
1033
+	  *
1034
+	  * Though a quiz is created for each lesson, it should not be visible
1035
+	  * unless it has questions.
1036
+	  *
1037
+	  * @since 1.9.0
1038
+	  * @access public
1039
+	  * @param none
1040
+	  * @return void
1041
+	  */
1042 1042
 
1043
-     public function quiz_has_no_questions() {
1043
+	 public function quiz_has_no_questions() {
1044 1044
 
1045
-         if( ! is_singular( 'quiz' ) )  {
1046
-             return;
1047
-         }
1045
+		 if( ! is_singular( 'quiz' ) )  {
1046
+			 return;
1047
+		 }
1048 1048
 
1049
-         global $post;
1049
+		 global $post;
1050 1050
 
1051
-         $lesson_id = $this->get_lesson_id($post->ID);
1051
+		 $lesson_id = $this->get_lesson_id($post->ID);
1052 1052
 
1053
-         $has_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
1053
+		 $has_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
1054 1054
 
1055
-         $lesson = get_post($lesson_id);
1055
+		 $lesson = get_post($lesson_id);
1056 1056
 
1057
-         if ( is_singular('quiz') && ! $has_questions && $_SERVER['REQUEST_URI'] != "/lesson/$lesson->post_name" ) {
1057
+		 if ( is_singular('quiz') && ! $has_questions && $_SERVER['REQUEST_URI'] != "/lesson/$lesson->post_name" ) {
1058 1058
 
1059
-             wp_redirect(get_permalink($lesson->ID), 301);
1060
-             exit;
1059
+			 wp_redirect(get_permalink($lesson->ID), 301);
1060
+			 exit;
1061 1061
 
1062
-         }
1062
+		 }
1063 1063
 
1064
-     } // end quiz_has_no_questions
1064
+	 } // end quiz_has_no_questions
1065 1065
 
1066 1066
 /**
1067
-  * Deprecate the sensei_single_main_content on the single-quiz template.
1068
-  *
1069
-  * @deprecated since 1.9.0
1070
-  */
1067
+ * Deprecate the sensei_single_main_content on the single-quiz template.
1068
+ *
1069
+ * @deprecated since 1.9.0
1070
+ */
1071 1071
  public static function deprecate_quiz_sensei_single_main_content_hook(){
1072 1072
 
1073
-     sensei_do_deprecated_action('sensei_single_main_content', '1.9.0', 'sensei_single_quiz_content_inside_before or sensei_single_quiz_content_inside_after');
1073
+	 sensei_do_deprecated_action('sensei_single_main_content', '1.9.0', 'sensei_single_quiz_content_inside_before or sensei_single_quiz_content_inside_after');
1074 1074
 
1075 1075
  }
1076
-    /*
1076
+	/*
1077 1077
      * Deprecate the sensei_quiz_single_title on the single-quiz template.
1078 1078
      *
1079 1079
      * @deprecated since 1.9.0
1080 1080
      */
1081
-     public static function deprecate_quiz_sensei_quiz_single_title_hook(){
1081
+	 public static function deprecate_quiz_sensei_quiz_single_title_hook(){
1082 1082
 
1083
-         sensei_do_deprecated_action('sensei_quiz_single_title', '1.9.0', 'sensei_single_quiz_content_inside_before ');
1083
+		 sensei_do_deprecated_action('sensei_quiz_single_title', '1.9.0', 'sensei_single_quiz_content_inside_before ');
1084 1084
 
1085
-     }
1085
+	 }
1086 1086
 
1087
-     /**
1088
-      * Filter the single title and add the Quiz to it.
1089
-      *
1090
-      * @param string $title
1091
-      * @param int $id title post id
1092
-      * @return string $quiz_title
1093
-      */
1094
-     public static function single_quiz_title( $title, $post_id ){
1087
+	 /**
1088
+	  * Filter the single title and add the Quiz to it.
1089
+	  *
1090
+	  * @param string $title
1091
+	  * @param int $id title post id
1092
+	  * @return string $quiz_title
1093
+	  */
1094
+	 public static function single_quiz_title( $title, $post_id ){
1095 1095
 
1096
-         if( 'quiz' == get_post_type( $post_id ) ){
1096
+		 if( 'quiz' == get_post_type( $post_id ) ){
1097 1097
 
1098
-             $title_with_no_quizzes = $title;
1098
+			 $title_with_no_quizzes = $title;
1099 1099
 
1100
-             // if the title has quiz, remove it: legacy titles have the word quiz stored.
1101
-             if( 1 < substr_count( strtoupper( $title_with_no_quizzes ), 'QUIZ' ) ){
1100
+			 // if the title has quiz, remove it: legacy titles have the word quiz stored.
1101
+			 if( 1 < substr_count( strtoupper( $title_with_no_quizzes ), 'QUIZ' ) ){
1102 1102
 
1103
-                 // remove all possible appearances of quiz
1104
-                 $title_with_no_quizzes = str_replace( 'quiz', '', $title  );
1105
-                 $title_with_no_quizzes = str_replace( 'Quiz', '', $title_with_no_quizzes  );
1106
-                 $title_with_no_quizzes = str_replace( 'QUIZ', '', $title_with_no_quizzes  );
1103
+				 // remove all possible appearances of quiz
1104
+				 $title_with_no_quizzes = str_replace( 'quiz', '', $title  );
1105
+				 $title_with_no_quizzes = str_replace( 'Quiz', '', $title_with_no_quizzes  );
1106
+				 $title_with_no_quizzes = str_replace( 'QUIZ', '', $title_with_no_quizzes  );
1107 1107
 
1108
-             }
1108
+			 }
1109 1109
 
1110
-             $title = $title_with_no_quizzes .  ' ' . __( 'Quiz', 'woothemes-sensei' );
1111
-         }
1110
+			 $title = $title_with_no_quizzes .  ' ' . __( 'Quiz', 'woothemes-sensei' );
1111
+		 }
1112 1112
 
1113
-         /**
1114
-          * hook document in class-woothemes-sensei-message.php
1115
-          */
1116
-         return apply_filters( 'sensei_single_title', $title, get_post_type( ) );
1113
+		 /**
1114
+		  * hook document in class-woothemes-sensei-message.php
1115
+		  */
1116
+		 return apply_filters( 'sensei_single_title', $title, get_post_type( ) );
1117 1117
 
1118
-     }
1118
+	 }
1119 1119
 
1120
-     /**
1121
-      * Initialize the quiz question loop on the single quiz template
1122
-      *
1123
-      * The function will create a global quiz loop varialbe.
1124
-      *
1125
-      * @since 1.9.0
1126
-      *
1127
-      */
1128
-     public static function start_quiz_questions_loop(){
1120
+	 /**
1121
+	  * Initialize the quiz question loop on the single quiz template
1122
+	  *
1123
+	  * The function will create a global quiz loop varialbe.
1124
+	  *
1125
+	  * @since 1.9.0
1126
+	  *
1127
+	  */
1128
+	 public static function start_quiz_questions_loop(){
1129 1129
 
1130
-         global $sensei_question_loop;
1130
+		 global $sensei_question_loop;
1131 1131
 
1132
-         //intialize the questions loop object
1133
-         $sensei_question_loop['current'] = -1;
1134
-         $sensei_question_loop['total']   =  0;
1135
-         $sensei_question_loop['questions'] = array();
1132
+		 //intialize the questions loop object
1133
+		 $sensei_question_loop['current'] = -1;
1134
+		 $sensei_question_loop['total']   =  0;
1135
+		 $sensei_question_loop['questions'] = array();
1136 1136
 
1137 1137
 
1138
-         $questions = Sensei()->lesson->lesson_quiz_questions( get_the_ID() );
1138
+		 $questions = Sensei()->lesson->lesson_quiz_questions( get_the_ID() );
1139 1139
 
1140
-         if( count( $questions  ) > 0  ){
1140
+		 if( count( $questions  ) > 0  ){
1141 1141
 
1142
-             $sensei_question_loop['total']   =  count( $questions );
1143
-             $sensei_question_loop['questions'] = $questions;
1144
-             $sensei_question_loop['quiz_id'] = get_the_ID();
1142
+			 $sensei_question_loop['total']   =  count( $questions );
1143
+			 $sensei_question_loop['questions'] = $questions;
1144
+			 $sensei_question_loop['quiz_id'] = get_the_ID();
1145 1145
 
1146
-         }
1146
+		 }
1147 1147
 
1148
-     }// static function
1148
+	 }// static function
1149 1149
 
1150
-     /**
1151
-      * Initialize the quiz question loop on the single quiz template
1152
-      *
1153
-      * The function will create a global quiz loop varialbe.
1154
-      *
1155
-      * @since 1.9.0
1156
-      *
1157
-      */
1158
-     public static function stop_quiz_questions_loop(){
1150
+	 /**
1151
+	  * Initialize the quiz question loop on the single quiz template
1152
+	  *
1153
+	  * The function will create a global quiz loop varialbe.
1154
+	  *
1155
+	  * @since 1.9.0
1156
+	  *
1157
+	  */
1158
+	 public static function stop_quiz_questions_loop(){
1159 1159
 
1160
-         $sensei_question_loop['total']   =  0;
1161
-         $sensei_question_loop['questions'] = array();
1162
-         $sensei_question_loop['quiz_id'] = '';
1160
+		 $sensei_question_loop['total']   =  0;
1161
+		 $sensei_question_loop['questions'] = array();
1162
+		 $sensei_question_loop['quiz_id'] = '';
1163 1163
 
1164
-     }
1164
+	 }
1165 1165
 
1166
-     /**
1167
-      * Output the title for the single quiz page
1168
-      *
1169
-      * @since 1.9.0
1170
-      */
1171
-     public static function the_title(){
1172
-         ?>
1166
+	 /**
1167
+	  * Output the title for the single quiz page
1168
+	  *
1169
+	  * @since 1.9.0
1170
+	  */
1171
+	 public static function the_title(){
1172
+		 ?>
1173 1173
          <header>
1174 1174
 
1175 1175
              <h1>
1176 1176
 
1177 1177
                  <?php
1178
-                 /**
1179
-                  * Filter documented in class-sensei-messages.php the_title
1180
-                  */
1181
-                 echo apply_filters( 'sensei_single_title', get_the_title( get_post() ), get_post_type( get_the_ID() ) );
1182
-                 ?>
1178
+				 /**
1179
+				  * Filter documented in class-sensei-messages.php the_title
1180
+				  */
1181
+				 echo apply_filters( 'sensei_single_title', get_the_title( get_post() ), get_post_type( get_the_ID() ) );
1182
+				 ?>
1183 1183
 
1184 1184
              </h1>
1185 1185
 
1186 1186
          </header>
1187 1187
 
1188 1188
          <?php
1189
-     }//the_title
1189
+	 }//the_title
1190 1190
 
1191
-     /**
1192
-      * Output the sensei quiz status message.
1193
-      *
1194
-      * @param $quiz_id
1195
-      */
1196
-    public static function  the_user_status_message( $quiz_id ){
1191
+	 /**
1192
+	  * Output the sensei quiz status message.
1193
+	  *
1194
+	  * @param $quiz_id
1195
+	  */
1196
+	public static function  the_user_status_message( $quiz_id ){
1197 1197
 
1198
-        $lesson_id =  Sensei()->quiz->get_lesson_id( $quiz_id );
1199
-        $status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id , get_current_user_id() );
1200
-        echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
1198
+		$lesson_id =  Sensei()->quiz->get_lesson_id( $quiz_id );
1199
+		$status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id , get_current_user_id() );
1200
+		echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
1201 1201
 
1202
-    }
1202
+	}
1203 1203
 
1204
-     /**
1205
-      * This functions runs the old sensei_quiz_action_buttons action
1206
-      * for backwards compatiblity sake.
1207
-      *
1208
-      * @since 1.9.0
1209
-      * @deprecated
1210
-      */
1211
-     public static function deprecate_sensei_quiz_action_buttons_hook(){
1204
+	 /**
1205
+	  * This functions runs the old sensei_quiz_action_buttons action
1206
+	  * for backwards compatiblity sake.
1207
+	  *
1208
+	  * @since 1.9.0
1209
+	  * @deprecated
1210
+	  */
1211
+	 public static function deprecate_sensei_quiz_action_buttons_hook(){
1212 1212
 
1213
-         sensei_do_deprecated_action( 'sensei_quiz_action_buttons', '1.9.0', 'sensei_single_quiz_questions_after');
1213
+		 sensei_do_deprecated_action( 'sensei_quiz_action_buttons', '1.9.0', 'sensei_single_quiz_questions_after');
1214 1214
 
1215
-     }
1215
+	 }
1216 1216
 
1217
-     /**
1218
-      * The quiz action buttons needed to ouput quiz
1219
-      * action such as reset complete and save.
1220
-      *
1221
-      * @since 1.3.0
1222
-      */
1223
-     public static function action_buttons() {
1217
+	 /**
1218
+	  * The quiz action buttons needed to ouput quiz
1219
+	  * action such as reset complete and save.
1220
+	  *
1221
+	  * @since 1.3.0
1222
+	  */
1223
+	 public static function action_buttons() {
1224 1224
 
1225
-         global $post, $current_user;
1225
+		 global $post, $current_user;
1226 1226
 
1227
-         $lesson_id = (int) get_post_meta( $post->ID, '_quiz_lesson', true );
1228
-         $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true );
1229
-         $lesson_prerequisite = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
1230
-         $show_actions = true;
1231
-         $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $current_user->ID );
1227
+		 $lesson_id = (int) get_post_meta( $post->ID, '_quiz_lesson', true );
1228
+		 $lesson_course_id = (int) get_post_meta( $lesson_id, '_lesson_course', true );
1229
+		 $lesson_prerequisite = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
1230
+		 $show_actions = true;
1231
+		 $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $current_user->ID );
1232 1232
 
1233
-         //setup quiz grade
1234
-         $user_quiz_grade = '';
1235
-         if( ! empty( $user_lesson_status  ) ){
1236
-             $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
1237
-         }
1233
+		 //setup quiz grade
1234
+		 $user_quiz_grade = '';
1235
+		 if( ! empty( $user_lesson_status  ) ){
1236
+			 $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
1237
+		 }
1238 1238
 
1239 1239
 
1240
-         if( intval( $lesson_prerequisite ) > 0 ) {
1240
+		 if( intval( $lesson_prerequisite ) > 0 ) {
1241 1241
 
1242
-             // If the user hasn't completed the prereq then hide the current actions
1243
-             $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $current_user->ID );
1242
+			 // If the user hasn't completed the prereq then hide the current actions
1243
+			 $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $current_user->ID );
1244 1244
 
1245
-         }
1246
-         if ( $show_actions && is_user_logged_in() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) {
1245
+		 }
1246
+		 if ( $show_actions && is_user_logged_in() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) {
1247 1247
 
1248
-             // Get Reset Settings
1249
-             $reset_quiz_allowed = get_post_meta( $post->ID, '_enable_quiz_reset', true ); ?>
1248
+			 // Get Reset Settings
1249
+			 $reset_quiz_allowed = get_post_meta( $post->ID, '_enable_quiz_reset', true ); ?>
1250 1250
 
1251 1251
              <!-- Action Nonce's -->
1252 1252
              <input type="hidden" name="woothemes_sensei_complete_quiz_nonce" id="woothemes_sensei_complete_quiz_nonce"
@@ -1273,55 +1273,55 @@  discard block
 block discarded – undo
1273 1273
 
1274 1274
          <?php }
1275 1275
 
1276
-     } // End sensei_quiz_action_buttons()
1277
-
1278
-     /**
1279
-      * Fetch the quiz grade
1280
-      *
1281
-      * @since 1.9.0
1282
-      *
1283
-      * @param int $lesson_id
1284
-      * @param int $user_id
1285
-      *
1286
-      * @return double $user_quiz_grade
1287
-      */
1288
-     public static function get_user_quiz_grade( $lesson_id, $user_id ){
1289
-
1290
-         // get the quiz grade
1291
-         $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
1292
-         $user_quiz_grade = 0;
1293
-         if( isset( $user_lesson_status->comment_ID ) ) {
1294
-             $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
1295
-         }
1296
-
1297
-         return (double) $user_quiz_grade;
1298
-
1299
-     }
1300
-
1301
-     /**
1302
-      * Check the quiz reset property for a given lesson's quiz.
1303
-      *
1304
-      * The data is stored on the quiz but going forward the quiz post
1305
-      * type will be retired, hence the lesson_id is a require parameter.
1306
-      *
1307
-      * @since 1.9.0
1308
-      *
1309
-      * @param int $lesson_id
1310
-      * @return bool
1311
-      */
1312
-     public static function is_reset_allowed( $lesson_id ){
1313
-
1314
-         $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
1315
-
1316
-         $reset_allowed = get_post_meta( $quiz_id, '_enable_quiz_reset', true );
1317
-         //backwards compatibility
1318
-         if( 'on' == $reset_allowed ) {
1319
-             $reset_allowed = 1;
1320
-         }
1321
-
1322
-         return (bool) $reset_allowed;
1323
-
1324
-     }
1276
+	 } // End sensei_quiz_action_buttons()
1277
+
1278
+	 /**
1279
+	  * Fetch the quiz grade
1280
+	  *
1281
+	  * @since 1.9.0
1282
+	  *
1283
+	  * @param int $lesson_id
1284
+	  * @param int $user_id
1285
+	  *
1286
+	  * @return double $user_quiz_grade
1287
+	  */
1288
+	 public static function get_user_quiz_grade( $lesson_id, $user_id ){
1289
+
1290
+		 // get the quiz grade
1291
+		 $user_lesson_status = Sensei_Utils::user_lesson_status( $lesson_id, $user_id );
1292
+		 $user_quiz_grade = 0;
1293
+		 if( isset( $user_lesson_status->comment_ID ) ) {
1294
+			 $user_quiz_grade = get_comment_meta( $user_lesson_status->comment_ID, 'grade', true );
1295
+		 }
1296
+
1297
+		 return (double) $user_quiz_grade;
1298
+
1299
+	 }
1300
+
1301
+	 /**
1302
+	  * Check the quiz reset property for a given lesson's quiz.
1303
+	  *
1304
+	  * The data is stored on the quiz but going forward the quiz post
1305
+	  * type will be retired, hence the lesson_id is a require parameter.
1306
+	  *
1307
+	  * @since 1.9.0
1308
+	  *
1309
+	  * @param int $lesson_id
1310
+	  * @return bool
1311
+	  */
1312
+	 public static function is_reset_allowed( $lesson_id ){
1313
+
1314
+		 $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
1315
+
1316
+		 $reset_allowed = get_post_meta( $quiz_id, '_enable_quiz_reset', true );
1317
+		 //backwards compatibility
1318
+		 if( 'on' == $reset_allowed ) {
1319
+			 $reset_allowed = 1;
1320
+		 }
1321
+
1322
+		 return (bool) $reset_allowed;
1323
+
1324
+	 }
1325 1325
 
1326 1326
  } // End Class WooThemes_Sensei_Quiz
1327 1327
 
Please login to merge, or discard this patch.
includes/sensei-functions.php 4 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -178,8 +178,8 @@
 block discarded – undo
178 178
  *
179 179
  * @since 1.9.0
180 180
  *
181
- * @param $hook_tag
182
- * @param $version
181
+ * @param string $hook_tag
182
+ * @param string $version
183 183
  * @param $alternative
184 184
  * @param array $args
185 185
  */
Please login to merge, or discard this patch.
Braces   +4 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Sensei Analysis User Profile List Table Class
Please login to merge, or discard this patch.
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -45,16 +45,16 @@  discard block
 block discarded – undo
45 45
  */
46 46
 function sensei_all_access() {
47 47
 
48
-    $access = current_user_can( 'manage_sensei' ) || current_user_can( 'manage_sensei_grades' );
49
-
50
-    /**
51
-     * Filter sensei_all_access function result
52
-     * which determinse if the current user
53
-     * can access all of Sensei without restrictions
54
-     *
55
-     * @since 1.4.0
56
-     * @param bool $access
57
-     */
48
+	$access = current_user_can( 'manage_sensei' ) || current_user_can( 'manage_sensei_grades' );
49
+
50
+	/**
51
+	 * Filter sensei_all_access function result
52
+	 * which determinse if the current user
53
+	 * can access all of Sensei without restrictions
54
+	 *
55
+	 * @since 1.4.0
56
+	 * @param bool $access
57
+	 */
58 58
 	return apply_filters( 'sensei_all_access', $access );
59 59
 
60 60
 } // End sensei_all_access()
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
 	 */
73 73
 	function sensei_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
74 74
 
75
-	    $hex = str_replace( '#', '', $color );
75
+		$hex = str_replace( '#', '', $color );
76 76
 
77 77
 		$c_r = hexdec( substr( $hex, 0, 2 ) );
78 78
 		$c_g = hexdec( substr( $hex, 2, 2 ) );
@@ -119,15 +119,15 @@  discard block
 block discarded – undo
119 119
 		$color = '#';
120 120
 
121 121
 		foreach ($base as $k => $v) :
122
-	        $amount = $v / 100;
123
-	        $amount = round($amount * $factor);
124
-	        $new_decimal = $v - $amount;
125
-
126
-	        $new_hex_component = dechex($new_decimal);
127
-	        if(strlen($new_hex_component) < 2) :
128
-	        	$new_hex_component = "0".$new_hex_component;
129
-	        endif;
130
-	        $color .= $new_hex_component;
122
+			$amount = $v / 100;
123
+			$amount = round($amount * $factor);
124
+			$new_decimal = $v - $amount;
125
+
126
+			$new_hex_component = dechex($new_decimal);
127
+			if(strlen($new_hex_component) < 2) :
128
+				$new_hex_component = "0".$new_hex_component;
129
+			endif;
130
+			$color .= $new_hex_component;
131 131
 		endforeach;
132 132
 
133 133
 		return $color;
@@ -148,17 +148,17 @@  discard block
 block discarded – undo
148 148
 		$base = sensei_rgb_from_hex( $color );
149 149
 		$color = '#';
150 150
 
151
-	    foreach ($base as $k => $v) :
152
-	        $amount = 255 - $v;
153
-	        $amount = $amount / 100;
154
-	        $amount = round($amount * $factor);
155
-	        $new_decimal = $v + $amount;
156
-
157
-	        $new_hex_component = dechex($new_decimal);
158
-	        if(strlen($new_hex_component) < 2) :
159
-	        	$new_hex_component = "0".$new_hex_component;
160
-	        endif;
161
-	        $color .= $new_hex_component;
151
+		foreach ($base as $k => $v) :
152
+			$amount = 255 - $v;
153
+			$amount = $amount / 100;
154
+			$amount = round($amount * $factor);
155
+			$new_decimal = $v + $amount;
156
+
157
+			$new_hex_component = dechex($new_decimal);
158
+			if(strlen($new_hex_component) < 2) :
159
+				$new_hex_component = "0".$new_hex_component;
160
+			endif;
161
+			$color .= $new_hex_component;
162 162
 	   	endforeach;
163 163
 
164 164
 	   	return $color;
@@ -172,14 +172,14 @@  discard block
 block discarded – undo
172 172
  * @deprecated since 1.9.0 use  Sensei_WC::is_woocommerce_active()
173 173
  */
174 174
 if ( ! function_exists( 'is_woocommerce_active' ) ) {
175
-    function is_woocommerce_active() {
176
-        // calling is present instead of is active here
177
-        // as this function can override other is_woocommerce_active
178
-        // function in other woo plugins and Sensei_WC::is_woocommerce_active
179
-        // also check the sensei settings for enable WooCommerce support, which
180
-        // other plugins should not check against.
181
-        return Sensei_WC::is_woocommerce_present();
182
-    }
175
+	function is_woocommerce_active() {
176
+		// calling is present instead of is active here
177
+		// as this function can override other is_woocommerce_active
178
+		// function in other woo plugins and Sensei_WC::is_woocommerce_active
179
+		// also check the sensei settings for enable WooCommerce support, which
180
+		// other plugins should not check against.
181
+		return Sensei_WC::is_woocommerce_present();
182
+	}
183 183
 }
184 184
 
185 185
 /**
@@ -195,20 +195,20 @@  discard block
 block discarded – undo
195 195
  */
196 196
 function sensei_do_deprecated_action( $hook_tag, $version, $alternative="" , $args = array()  ){
197 197
 
198
-    if( has_action( $hook_tag ) ){
198
+	if( has_action( $hook_tag ) ){
199 199
 
200
-        $error_message = sprintf( __( "SENSEI: The hook '%s', has been deprecated since '%s'." , 'woothemes-sensei'), $hook_tag ,$version );
200
+		$error_message = sprintf( __( "SENSEI: The hook '%s', has been deprecated since '%s'." , 'woothemes-sensei'), $hook_tag ,$version );
201 201
 
202
-        if( !empty( $alternative ) ){
202
+		if( !empty( $alternative ) ){
203 203
 
204
-            $error_message .= sprintf( __("Please use '%s' instead.", 'woothemes-sensei'), $alternative ) ;
204
+			$error_message .= sprintf( __("Please use '%s' instead.", 'woothemes-sensei'), $alternative ) ;
205 205
 
206
-        }
206
+		}
207 207
 
208
-        trigger_error( $error_message );
209
-        do_action( $hook_tag , $args );
208
+		trigger_error( $error_message );
209
+		do_action( $hook_tag , $args );
210 210
 
211
-    }
211
+	}
212 212
 
213 213
 }// end sensei_do_deprecated_action
214 214
 
@@ -238,18 +238,18 @@  discard block
 block discarded – undo
238 238
  */
239 239
 function sensei_user_login_url(){
240 240
 
241
-    $my_courses_page_id = intval( Sensei()->settings->get( 'my_course_page' ) );
242
-    $page = get_post( $my_courses_page_id );
241
+	$my_courses_page_id = intval( Sensei()->settings->get( 'my_course_page' ) );
242
+	$page = get_post( $my_courses_page_id );
243 243
 
244
-    if ( $my_courses_page_id && isset( $page->ID ) && 'page' == get_post_type( $page->ID )  ){
244
+	if ( $my_courses_page_id && isset( $page->ID ) && 'page' == get_post_type( $page->ID )  ){
245 245
 
246
-        return get_permalink( $page->ID );
246
+		return get_permalink( $page->ID );
247 247
 
248
-    } else {
248
+	} else {
249 249
 
250
-        return wp_login_url();
250
+		return wp_login_url();
251 251
 
252
-    }
252
+	}
253 253
 
254 254
 }// end sensei_user_login_link
255 255
 
@@ -262,8 +262,8 @@  discard block
 block discarded – undo
262 262
  */
263 263
 function sensei_is_login_required(){
264 264
 
265
-    $login_required = isset( Sensei()->settings->settings['access_permission'] ) && ( true == Sensei()->settings->settings['access_permission'] );
265
+	$login_required = isset( Sensei()->settings->settings['access_permission'] ) && ( true == Sensei()->settings->settings['access_permission'] );
266 266
 
267
-    return $login_required;
267
+	return $login_required;
268 268
 
269 269
 }
270 270
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
4 4
 
5 5
 /**
6 6
  * Global Sensei functions
@@ -11,21 +11,21 @@  discard block
 block discarded – undo
11 11
 
12 12
 	$is_sensei = false;
13 13
 
14
-	$post_types = array( 'lesson', 'course', 'quiz', 'question' );
15
-	$taxonomies = array( 'course-category', 'quiz-type', 'question-type', 'lesson-tag' );
14
+	$post_types = array('lesson', 'course', 'quiz', 'question');
15
+	$taxonomies = array('course-category', 'quiz-type', 'question-type', 'lesson-tag');
16 16
 
17
-	if( is_post_type_archive( $post_types ) || is_singular( $post_types ) || is_tax( $taxonomies ) ) {
17
+	if (is_post_type_archive($post_types) || is_singular($post_types) || is_tax($taxonomies)) {
18 18
 
19 19
 		$is_sensei = true;
20 20
 
21 21
 	}
22 22
 
23
-	if( is_object( $post ) && ! is_wp_error( $post ) ) {
23
+	if (is_object($post) && ! is_wp_error($post)) {
24 24
 
25
-		$course_page_id = intval( Sensei()->settings->settings[ 'course_page' ] );
26
-		$my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
25
+		$course_page_id = intval(Sensei()->settings->settings['course_page']);
26
+		$my_courses_page_id = intval(Sensei()->settings->settings['my_course_page']);
27 27
 
28
-		if( in_array( $post->ID, array( $course_page_id, $my_courses_page_id ) ) ) {
28
+		if (in_array($post->ID, array($course_page_id, $my_courses_page_id))) {
29 29
 
30 30
 			$is_sensei = true;
31 31
 
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
 
34 34
 	}
35 35
 
36
-	return apply_filters( 'is_sensei', $is_sensei, $post );
36
+	return apply_filters('is_sensei', $is_sensei, $post);
37 37
 }
38 38
 
39 39
 /**
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
  */
46 46
 function sensei_all_access() {
47 47
 
48
-    $access = current_user_can( 'manage_sensei' ) || current_user_can( 'manage_sensei_grades' );
48
+    $access = current_user_can('manage_sensei') || current_user_can('manage_sensei_grades');
49 49
 
50 50
     /**
51 51
      * Filter sensei_all_access function result
@@ -55,11 +55,11 @@  discard block
 block discarded – undo
55 55
      * @since 1.4.0
56 56
      * @param bool $access
57 57
      */
58
-	return apply_filters( 'sensei_all_access', $access );
58
+	return apply_filters('sensei_all_access', $access);
59 59
 
60 60
 } // End sensei_all_access()
61 61
 
62
-if ( ! function_exists( 'sensei_light_or_dark' ) ) {
62
+if ( ! function_exists('sensei_light_or_dark')) {
63 63
 
64 64
 	/**
65 65
 	 * Detect if we should use a light or dark colour on a background colour
@@ -70,20 +70,20 @@  discard block
 block discarded – undo
70 70
 	 * @param string $light (default: '#FFFFFF')
71 71
 	 * @return string
72 72
 	 */
73
-	function sensei_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
73
+	function sensei_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') {
74 74
 
75
-	    $hex = str_replace( '#', '', $color );
75
+	    $hex = str_replace('#', '', $color);
76 76
 
77
-		$c_r = hexdec( substr( $hex, 0, 2 ) );
78
-		$c_g = hexdec( substr( $hex, 2, 2 ) );
79
-		$c_b = hexdec( substr( $hex, 4, 2 ) );
80
-		$brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
77
+		$c_r = hexdec(substr($hex, 0, 2));
78
+		$c_g = hexdec(substr($hex, 2, 2));
79
+		$c_b = hexdec(substr($hex, 4, 2));
80
+		$brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;
81 81
 
82 82
 		return $brightness > 155 ? $dark : $light;
83 83
 	}
84 84
 }
85 85
 
86
-if ( ! function_exists( 'sensei_rgb_from_hex' ) ) {
86
+if ( ! function_exists('sensei_rgb_from_hex')) {
87 87
 
88 88
 	/**
89 89
 	 * Hex darker/lighter/contrast functions for colours
@@ -92,19 +92,19 @@  discard block
 block discarded – undo
92 92
 	 * @param mixed $color
93 93
 	 * @return string
94 94
 	 */
95
-	function sensei_rgb_from_hex( $color ) {
96
-		$color = str_replace( '#', '', $color );
95
+	function sensei_rgb_from_hex($color) {
96
+		$color = str_replace('#', '', $color);
97 97
 		// Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"
98
-		$color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
98
+		$color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color);
99 99
 
100
-		$rgb['R'] = hexdec( $color{0}.$color{1} );
101
-		$rgb['G'] = hexdec( $color{2}.$color{3} );
102
-		$rgb['B'] = hexdec( $color{4}.$color{5} );
100
+		$rgb['R'] = hexdec($color{0}.$color{1} );
101
+		$rgb['G'] = hexdec($color{2}.$color{3} );
102
+		$rgb['B'] = hexdec($color{4}.$color{5} );
103 103
 		return $rgb;
104 104
 	}
105 105
 }
106 106
 
107
-if ( ! function_exists( 'sensei_hex_darker' ) ) {
107
+if ( ! function_exists('sensei_hex_darker')) {
108 108
 
109 109
 	/**
110 110
 	 * Hex darker/lighter/contrast functions for colours
@@ -114,8 +114,8 @@  discard block
 block discarded – undo
114 114
 	 * @param int $factor (default: 30)
115 115
 	 * @return string
116 116
 	 */
117
-	function sensei_hex_darker( $color, $factor = 30 ) {
118
-		$base = sensei_rgb_from_hex( $color );
117
+	function sensei_hex_darker($color, $factor = 30) {
118
+		$base = sensei_rgb_from_hex($color);
119 119
 		$color = '#';
120 120
 
121 121
 		foreach ($base as $k => $v) :
@@ -124,7 +124,7 @@  discard block
 block discarded – undo
124 124
 	        $new_decimal = $v - $amount;
125 125
 
126 126
 	        $new_hex_component = dechex($new_decimal);
127
-	        if(strlen($new_hex_component) < 2) :
127
+	        if (strlen($new_hex_component) < 2) :
128 128
 	        	$new_hex_component = "0".$new_hex_component;
129 129
 	        endif;
130 130
 	        $color .= $new_hex_component;
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
 	}
135 135
 }
136 136
 
137
-if ( ! function_exists( 'sensei_hex_lighter' ) ) {
137
+if ( ! function_exists('sensei_hex_lighter')) {
138 138
 
139 139
 	/**
140 140
 	 * Hex darker/lighter/contrast functions for colours
@@ -144,8 +144,8 @@  discard block
 block discarded – undo
144 144
 	 * @param int $factor (default: 30)
145 145
 	 * @return string
146 146
 	 */
147
-	function sensei_hex_lighter( $color, $factor = 30 ) {
148
-		$base = sensei_rgb_from_hex( $color );
147
+	function sensei_hex_lighter($color, $factor = 30) {
148
+		$base = sensei_rgb_from_hex($color);
149 149
 		$color = '#';
150 150
 
151 151
 	    foreach ($base as $k => $v) :
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 	        $new_decimal = $v + $amount;
156 156
 
157 157
 	        $new_hex_component = dechex($new_decimal);
158
-	        if(strlen($new_hex_component) < 2) :
158
+	        if (strlen($new_hex_component) < 2) :
159 159
 	        	$new_hex_component = "0".$new_hex_component;
160 160
 	        endif;
161 161
 	        $color .= $new_hex_component;
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
  * @since 1.9.0
172 172
  * @deprecated since 1.9.0 use  Sensei_WC::is_woocommerce_active()
173 173
  */
174
-if ( ! function_exists( 'is_woocommerce_active' ) ) {
174
+if ( ! function_exists('is_woocommerce_active')) {
175 175
     function is_woocommerce_active() {
176 176
         // calling is present instead of is active here
177 177
         // as this function can override other is_woocommerce_active
@@ -193,20 +193,20 @@  discard block
 block discarded – undo
193 193
  * @param $alternative
194 194
  * @param array $args
195 195
  */
196
-function sensei_do_deprecated_action( $hook_tag, $version, $alternative="" , $args = array()  ){
196
+function sensei_do_deprecated_action($hook_tag, $version, $alternative = "", $args = array()) {
197 197
 
198
-    if( has_action( $hook_tag ) ){
198
+    if (has_action($hook_tag)) {
199 199
 
200
-        $error_message = sprintf( __( "SENSEI: The hook '%s', has been deprecated since '%s'." , 'woothemes-sensei'), $hook_tag ,$version );
200
+        $error_message = sprintf(__("SENSEI: The hook '%s', has been deprecated since '%s'.", 'woothemes-sensei'), $hook_tag, $version);
201 201
 
202
-        if( !empty( $alternative ) ){
202
+        if ( ! empty($alternative)) {
203 203
 
204
-            $error_message .= sprintf( __("Please use '%s' instead.", 'woothemes-sensei'), $alternative ) ;
204
+            $error_message .= sprintf(__("Please use '%s' instead.", 'woothemes-sensei'), $alternative);
205 205
 
206 206
         }
207 207
 
208
-        trigger_error( $error_message );
209
-        do_action( $hook_tag , $args );
208
+        trigger_error($error_message);
209
+        do_action($hook_tag, $args);
210 210
 
211 211
     }
212 212
 
@@ -221,9 +221,9 @@  discard block
 block discarded – undo
221 221
  * @param $post_id
222 222
  * @return bool
223 223
  */
224
-function sensei_is_a_course( $post ){
224
+function sensei_is_a_course($post) {
225 225
 
226
-	return "course" == get_post_type( $post );
226
+	return "course" == get_post_type($post);
227 227
 
228 228
 }
229 229
 
@@ -236,14 +236,14 @@  discard block
 block discarded – undo
236 236
  *
237 237
  * @since 1.9.0
238 238
  */
239
-function sensei_user_login_url(){
239
+function sensei_user_login_url() {
240 240
 
241
-    $my_courses_page_id = intval( Sensei()->settings->get( 'my_course_page' ) );
242
-    $page = get_post( $my_courses_page_id );
241
+    $my_courses_page_id = intval(Sensei()->settings->get('my_course_page'));
242
+    $page = get_post($my_courses_page_id);
243 243
 
244
-    if ( $my_courses_page_id && isset( $page->ID ) && 'page' == get_post_type( $page->ID )  ){
244
+    if ($my_courses_page_id && isset($page->ID) && 'page' == get_post_type($page->ID)) {
245 245
 
246
-        return get_permalink( $page->ID );
246
+        return get_permalink($page->ID);
247 247
 
248 248
     } else {
249 249
 
@@ -260,9 +260,9 @@  discard block
 block discarded – undo
260 260
  * @since 1.9.0
261 261
  * @return bool
262 262
  */
263
-function sensei_is_login_required(){
263
+function sensei_is_login_required() {
264 264
 
265
-    $login_required = isset( Sensei()->settings->settings['access_permission'] ) && ( true == Sensei()->settings->settings['access_permission'] );
265
+    $login_required = isset(Sensei()->settings->settings['access_permission']) && (true == Sensei()->settings->settings['access_permission']);
266 266
 
267 267
     return $login_required;
268 268
 
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-legacy-shortcodes.php 4 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -103,8 +103,8 @@
 block discarded – undo
103 103
      *
104 104
      * @since 1.9.0
105 105
      *
106
-     * @param $title
107
-     * @param $shortcode_specific_override
106
+     * @param string $title
107
+     * @param string $shortcode_specific_override
108 108
      * @return string
109 109
      */
110 110
     public static function generate_shortcode_courses( $title , $shortcode_specific_override  ){
Please login to merge, or discard this patch.
Braces   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -166,7 +166,7 @@
 block discarded – undo
166 166
 
167 167
             Sensei_Templates::get_template( 'user/my-courses.php' );
168 168
 
169
-        }else{
169
+        } else{
170 170
 
171 171
             Sensei()->frontend->sensei_login_form();
172 172
 
Please login to merge, or discard this patch.
Indentation   +249 added lines, -249 removed lines patch added patch discarded remove patch
@@ -17,323 +17,323 @@  discard block
 block discarded – undo
17 17
  */
18 18
 class Sensei_Legacy_Shortcodes {
19 19
 
20
-    /**
21
-     * Add the legacy shortcodes to WordPress
22
-     *
23
-     * @since 1.9.0
24
-     */
25
-    public static function init(){
26
-
27
-        add_shortcode( 'allcourses',      array( __CLASS__, 'all_courses' ) );
28
-        add_shortcode( 'newcourses',      array( __CLASS__,'new_courses' ) );
29
-        add_shortcode( 'featuredcourses', array( __CLASS__,'featured_courses') );
30
-        add_shortcode( 'freecourses',     array( __CLASS__,'free_courses') );
31
-        add_shortcode( 'paidcourses',     array( __CLASS__,'paid_courses') );
32
-        add_shortcode( 'usercourses',     array( __CLASS__,'user_courses' ) );
33
-
34
-    }
35
-    /**
36
-     * all_courses shortcode output function.
37
-     *
38
-     * The function should only be called indirectly through do_shortcode()
39
-     *
40
-     * @access public
41
-     * @param mixed $atts
42
-     * @param mixed $content (default: null)
43
-     * @return string
44
-     */
45
-    public static function all_courses( $atts, $content = null ) {
46
-
47
-        return self::generate_shortcode_courses( '', 'allcourses' ); // all courses but no title
48
-
49
-    } // all_courses()
50
-
51
-    /**
52
-     * paid_courses function.
53
-     *
54
-     * @access public
55
-     * @param mixed $atts
56
-     * @param mixed $content (default: null)
57
-     * @return string
58
-     */
59
-    public static function paid_courses( $atts, $content = null ) {
60
-
61
-        return self::generate_shortcode_courses( 'Paid Courses', 'paidcourses' );
62
-
63
-    } // End paid_courses()
64
-
65
-
66
-    /**
67
-     * featured_courses function.
68
-     *
69
-     * @access public
70
-     * @param mixed $atts
71
-     * @param mixed $content (default: null)
72
-     * @return string
73
-     */
74
-    public static function featured_courses( $atts, $content = null ) {
75
-
76
-        return self::generate_shortcode_courses( 'Featured Courses', 'featuredcourses' );
20
+	/**
21
+	 * Add the legacy shortcodes to WordPress
22
+	 *
23
+	 * @since 1.9.0
24
+	 */
25
+	public static function init(){
26
+
27
+		add_shortcode( 'allcourses',      array( __CLASS__, 'all_courses' ) );
28
+		add_shortcode( 'newcourses',      array( __CLASS__,'new_courses' ) );
29
+		add_shortcode( 'featuredcourses', array( __CLASS__,'featured_courses') );
30
+		add_shortcode( 'freecourses',     array( __CLASS__,'free_courses') );
31
+		add_shortcode( 'paidcourses',     array( __CLASS__,'paid_courses') );
32
+		add_shortcode( 'usercourses',     array( __CLASS__,'user_courses' ) );
33
+
34
+	}
35
+	/**
36
+	 * all_courses shortcode output function.
37
+	 *
38
+	 * The function should only be called indirectly through do_shortcode()
39
+	 *
40
+	 * @access public
41
+	 * @param mixed $atts
42
+	 * @param mixed $content (default: null)
43
+	 * @return string
44
+	 */
45
+	public static function all_courses( $atts, $content = null ) {
46
+
47
+		return self::generate_shortcode_courses( '', 'allcourses' ); // all courses but no title
48
+
49
+	} // all_courses()
50
+
51
+	/**
52
+	 * paid_courses function.
53
+	 *
54
+	 * @access public
55
+	 * @param mixed $atts
56
+	 * @param mixed $content (default: null)
57
+	 * @return string
58
+	 */
59
+	public static function paid_courses( $atts, $content = null ) {
60
+
61
+		return self::generate_shortcode_courses( 'Paid Courses', 'paidcourses' );
62
+
63
+	} // End paid_courses()
64
+
65
+
66
+	/**
67
+	 * featured_courses function.
68
+	 *
69
+	 * @access public
70
+	 * @param mixed $atts
71
+	 * @param mixed $content (default: null)
72
+	 * @return string
73
+	 */
74
+	public static function featured_courses( $atts, $content = null ) {
75
+
76
+		return self::generate_shortcode_courses( 'Featured Courses', 'featuredcourses' );
77 77
 
78
-    } // End featured_courses()
78
+	} // End featured_courses()
79 79
 
80
-    /**
81
-     * shortcode_free_courses function.
82
-     *
83
-     * @access public
84
-     * @param mixed $atts
85
-     * @param mixed $content (default: null)
86
-     * @return string
87
-     */
88
-    public static function free_courses( $atts, $content = null ) {
80
+	/**
81
+	 * shortcode_free_courses function.
82
+	 *
83
+	 * @access public
84
+	 * @param mixed $atts
85
+	 * @param mixed $content (default: null)
86
+	 * @return string
87
+	 */
88
+	public static function free_courses( $atts, $content = null ) {
89 89
 
90
-        return self::generate_shortcode_courses( 'Free Courses', 'freecourses' );
90
+		return self::generate_shortcode_courses( 'Free Courses', 'freecourses' );
91 91
 
92
-    } // End free_courses()
92
+	} // End free_courses()
93 93
 
94
-    /**
95
-     * shortcode_new_courses function.
96
-     *
97
-     * @access public
98
-     * @param mixed $atts
99
-     * @param mixed $content (default: null)
100
-     * @return string
101
-     */
102
-    public static function new_courses( $atts, $content = null ) {
94
+	/**
95
+	 * shortcode_new_courses function.
96
+	 *
97
+	 * @access public
98
+	 * @param mixed $atts
99
+	 * @param mixed $content (default: null)
100
+	 * @return string
101
+	 */
102
+	public static function new_courses( $atts, $content = null ) {
103 103
 
104
-        return self::generate_shortcode_courses( 'New Courses', 'newcourses' );
104
+		return self::generate_shortcode_courses( 'New Courses', 'newcourses' );
105 105
 
106
-    } // End new_courses()
106
+	} // End new_courses()
107 107
 
108
-    /**
109
-     * Generate courses adding a title.
110
-     *
111
-     * @since 1.9.0
112
-     *
113
-     * @param $title
114
-     * @param $shortcode_specific_override
115
-     * @return string
116
-     */
117
-    public static function generate_shortcode_courses( $title , $shortcode_specific_override  ){
108
+	/**
109
+	 * Generate courses adding a title.
110
+	 *
111
+	 * @since 1.9.0
112
+	 *
113
+	 * @param $title
114
+	 * @param $shortcode_specific_override
115
+	 * @return string
116
+	 */
117
+	public static function generate_shortcode_courses( $title , $shortcode_specific_override  ){
118 118
 
119
-        global  $shortcode_override, $posts_array;
119
+		global  $shortcode_override, $posts_array;
120 120
 
121
-        $shortcode_override = $shortcode_specific_override;
121
+		$shortcode_override = $shortcode_specific_override;
122 122
 
123
-        // do not show this short code if there is a shortcode int he url and
124
-        // this specific shortcode is not the one requested in the ur.
125
-        $specific_shortcode_requested = isset( $_GET['action'] ) ?  sanitize_text_field(  $_GET['action']  ) : '';
126
-        if( ! empty( $specific_shortcode_requested) &&
127
-            $specific_shortcode_requested != $shortcode_override ){
123
+		// do not show this short code if there is a shortcode int he url and
124
+		// this specific shortcode is not the one requested in the ur.
125
+		$specific_shortcode_requested = isset( $_GET['action'] ) ?  sanitize_text_field(  $_GET['action']  ) : '';
126
+		if( ! empty( $specific_shortcode_requested) &&
127
+			$specific_shortcode_requested != $shortcode_override ){
128 128
 
129
-            return '';
129
+			return '';
130 130
 
131
-        }
131
+		}
132 132
 
133
-        // loop and get all courses html
134
-        ob_start();
135
-        self::initialise_legacy_course_loop();
136
-        $courses = ob_get_clean();
133
+		// loop and get all courses html
134
+		ob_start();
135
+		self::initialise_legacy_course_loop();
136
+		$courses = ob_get_clean();
137 137
 
138
-        $content = '';
139
-        if( count( $posts_array ) > 0 ){
138
+		$content = '';
139
+		if( count( $posts_array ) > 0 ){
140 140
 
141
-            $before = empty($title)? '' : '<header class="archive-header"><h2>'. $title .'</h2></header>';
142
-            $before .= '<section id="main-course" class="course-container">';
141
+			$before = empty($title)? '' : '<header class="archive-header"><h2>'. $title .'</h2></header>';
142
+			$before .= '<section id="main-course" class="course-container">';
143 143
 
144
-            $after = '</section>';
144
+			$after = '</section>';
145 145
 
146
-            //assemble
147
-            $content = $before . $courses . $after;
146
+			//assemble
147
+			$content = $before . $courses . $after;
148 148
 
149
-        }
149
+		}
150 150
 
151
-        return $content;
151
+		return $content;
152 152
 
153
-    }// end generate_shortcode_courses
153
+	}// end generate_shortcode_courses
154 154
 
155 155
 
156
-    /**
157
-     * user_courses function.
158
-     *
159
-     * @access public
160
-     * @param mixed $atts
161
-     * @param mixed $content (default: null)
162
-     * @return string
163
-     */
164
-    public static function user_courses( $atts, $content = null ) {
165
-        global $shortcode_override;
166
-        extract( shortcode_atts( array(	'amount' => 0 ), $atts ) );
156
+	/**
157
+	 * user_courses function.
158
+	 *
159
+	 * @access public
160
+	 * @param mixed $atts
161
+	 * @param mixed $content (default: null)
162
+	 * @return string
163
+	 */
164
+	public static function user_courses( $atts, $content = null ) {
165
+		global $shortcode_override;
166
+		extract( shortcode_atts( array(	'amount' => 0 ), $atts ) );
167 167
 
168
-        $shortcode_override = 'usercourses';
168
+		$shortcode_override = 'usercourses';
169 169
 
170
-        ob_start();
170
+		ob_start();
171 171
 
172
-        if( is_user_logged_in() ){
172
+		if( is_user_logged_in() ){
173 173
 
174
-            Sensei_Templates::get_template( 'user/my-courses.php' );
174
+			Sensei_Templates::get_template( 'user/my-courses.php' );
175 175
 
176
-        }else{
176
+		}else{
177 177
 
178
-            Sensei()->frontend->sensei_login_form();
178
+			Sensei()->frontend->sensei_login_form();
179 179
 
180
-        }
180
+		}
181 181
 
182
-        $content = ob_get_clean();
183
-        return $content;
182
+		$content = ob_get_clean();
183
+		return $content;
184 184
 
185
-    } // End user_courses()
185
+	} // End user_courses()
186 186
 
187
-    /**
188
-     * This function is simply to honor the legacy
189
-     * loop-course.php for the old shortcodes.
190
-     * @since 1.9.0
191
-     */
192
-    public static function initialise_legacy_course_loop(){
187
+	/**
188
+	 * This function is simply to honor the legacy
189
+	 * loop-course.php for the old shortcodes.
190
+	 * @since 1.9.0
191
+	 */
192
+	public static function initialise_legacy_course_loop(){
193 193
 
194
-        global  $post, $wp_query, $shortcode_override, $course_excludes;
194
+		global  $post, $wp_query, $shortcode_override, $course_excludes;
195 195
 
196
-        // Handle Query Type
197
-        $query_type = '';
196
+		// Handle Query Type
197
+		$query_type = '';
198 198
 
199
-        if ( isset( $_GET[ 'action' ] ) && ( '' != esc_html( $_GET[ 'action' ] ) ) ) {
200
-            $query_type = esc_html( $_GET[ 'action' ] );
201
-        } // End If Statement
199
+		if ( isset( $_GET[ 'action' ] ) && ( '' != esc_html( $_GET[ 'action' ] ) ) ) {
200
+			$query_type = esc_html( $_GET[ 'action' ] );
201
+		} // End If Statement
202 202
 
203
-        if ( '' != $shortcode_override ) {
204
-            $query_type = $shortcode_override;
205
-        } // End If Statement
203
+		if ( '' != $shortcode_override ) {
204
+			$query_type = $shortcode_override;
205
+		} // End If Statement
206 206
 
207
-        if ( !is_array( $course_excludes ) ) { $course_excludes = array(); }
207
+		if ( !is_array( $course_excludes ) ) { $course_excludes = array(); }
208 208
 
209
-        // Check that query returns results
210
-        // Handle Pagination
211
-        $paged = $wp_query->get( 'paged' );
212
-        $paged = empty( $paged ) ? 1 : $paged;
209
+		// Check that query returns results
210
+		// Handle Pagination
211
+		$paged = $wp_query->get( 'paged' );
212
+		$paged = empty( $paged ) ? 1 : $paged;
213 213
 
214 214
 
215
-        // Check for pagination settings
216
-        if ( isset( Sensei()->settings->settings[ 'course_archive_amount' ] ) && ( 0 < absint( Sensei()->settings->settings[ 'course_archive_amount' ] ) ) ) {
215
+		// Check for pagination settings
216
+		if ( isset( Sensei()->settings->settings[ 'course_archive_amount' ] ) && ( 0 < absint( Sensei()->settings->settings[ 'course_archive_amount' ] ) ) ) {
217 217
 
218
-            $amount = absint( Sensei()->settings->settings[ 'course_archive_amount' ] );
218
+			$amount = absint( Sensei()->settings->settings[ 'course_archive_amount' ] );
219 219
 
220
-        } else {
220
+		} else {
221 221
 
222
-            $amount = $wp_query->get( 'posts_per_page' );
222
+			$amount = $wp_query->get( 'posts_per_page' );
223 223
 
224
-        } // End If Statement
224
+		} // End If Statement
225 225
 
226
-        // This is not a paginated page (or it's simply the first page of a paginated page/post)
226
+		// This is not a paginated page (or it's simply the first page of a paginated page/post)
227 227
 
228
-        global $posts_array;
229
-        $course_includes   = array();
228
+		global $posts_array;
229
+		$course_includes   = array();
230 230
 
231
-        $query_args = Sensei()->course->get_archive_query_args( $shortcode_override, $amount, $course_includes, $course_excludes );
232
-        $course_query = new WP_Query( $query_args );
233
-        $posts_array = $course_query->get_posts();
231
+		$query_args = Sensei()->course->get_archive_query_args( $shortcode_override, $amount, $course_includes, $course_excludes );
232
+		$course_query = new WP_Query( $query_args );
233
+		$posts_array = $course_query->get_posts();
234 234
 
235
-        // output the courses
236
-        if( ! empty( $posts_array ) ) {
235
+		// output the courses
236
+		if( ! empty( $posts_array ) ) {
237 237
 
238
-            //output all courses for current query
239
-            self::loop_courses( $course_query, $amount );
238
+			//output all courses for current query
239
+			self::loop_courses( $course_query, $amount );
240 240
 
241
-        }
241
+		}
242 242
 
243
-    }
243
+	}
244 244
 
245
-    /**
246
-     * Loop through courses in the query and output the infomration needed
247
-     *
248
-     * @since 1.9.0
249
-     *
250
-     * @param WP_Query $course_query
251
-     */
252
-    public static function loop_courses( $course_query, $amount ){
245
+	/**
246
+	 * Loop through courses in the query and output the infomration needed
247
+	 *
248
+	 * @since 1.9.0
249
+	 *
250
+	 * @param WP_Query $course_query
251
+	 */
252
+	public static function loop_courses( $course_query, $amount ){
253 253
 
254
-        global $shortcode_override, $posts_array, $post, $wp_query, $shortcode_override, $course_excludes, $course_includes;
254
+		global $shortcode_override, $posts_array, $post, $wp_query, $shortcode_override, $course_excludes, $course_includes;
255 255
 
256
-        if ( count( $course_query->get_posts() ) > 0 ) {
256
+		if ( count( $course_query->get_posts() ) > 0 ) {
257 257
 
258
-            do_action( 'sensei_course_archive_header', $shortcode_override );
258
+			do_action( 'sensei_course_archive_header', $shortcode_override );
259 259
 
260
-            foreach ( $course_query->get_posts() as $course){
260
+			foreach ( $course_query->get_posts() as $course){
261 261
 
262
-                // Make sure the other loops dont include the same post twice!
263
-                array_push( $course_excludes, $course->ID );
262
+				// Make sure the other loops dont include the same post twice!
263
+				array_push( $course_excludes, $course->ID );
264 264
 
265
-                // output the course markup
266
-                self::the_course( $course->ID );
265
+				// output the course markup
266
+				self::the_course( $course->ID );
267 267
 
268
-            } // End For Loop
268
+			} // End For Loop
269 269
 
270
-            // More and Prev links
271
-            $posts_array_query = new WP_Query(Sensei()->course->course_query( $shortcode_override, $amount, $course_includes, $course_excludes ) );
272
-            $posts_array       = $posts_array_query->get_posts();
273
-            $max_pages = $course_query->found_posts / $amount;
274
-            if ( '' != $shortcode_override && ( $max_pages > $course_query->get( 'paged' ) ) ) {
270
+			// More and Prev links
271
+			$posts_array_query = new WP_Query(Sensei()->course->course_query( $shortcode_override, $amount, $course_includes, $course_excludes ) );
272
+			$posts_array       = $posts_array_query->get_posts();
273
+			$max_pages = $course_query->found_posts / $amount;
274
+			if ( '' != $shortcode_override && ( $max_pages > $course_query->get( 'paged' ) ) ) {
275 275
 
276
-                switch( $shortcode_override ){
277
-                    case 'paidcourses':
278
-                        $filter = 'paid';
279
-                        break;
280
-                    case 'featuredcourses':
281
-                        $filter = 'featured';
282
-                        break;
283
-                    case 'freecourses':
284
-                        $filter = 'free';
285
-                        break;
286
-                    default:
287
-                        $filter = '';
288
-                        break;
289
-                }
276
+				switch( $shortcode_override ){
277
+					case 'paidcourses':
278
+						$filter = 'paid';
279
+						break;
280
+					case 'featuredcourses':
281
+						$filter = 'featured';
282
+						break;
283
+					case 'freecourses':
284
+						$filter = 'free';
285
+						break;
286
+					default:
287
+						$filter = '';
288
+						break;
289
+				}
290 290
 
291
-                $quer_args = array();
292
-                $quer_args[ 'paged' ] = '2';
293
-                if( !empty( $filter ) ){
294
-                    $quer_args[ 'course_filter' ] = $filter;
295
-                }
291
+				$quer_args = array();
292
+				$quer_args[ 'paged' ] = '2';
293
+				if( !empty( $filter ) ){
294
+					$quer_args[ 'course_filter' ] = $filter;
295
+				}
296 296
 
297
-                $course_pagination_link = get_post_type_archive_link( 'course' );
298
-                $more_link_text = esc_html( Sensei()->settings->settings[ 'course_archive_more_link_text' ] );
299
-                $more_link_url =  esc_url( add_query_arg( $quer_args, $course_pagination_link ) );
297
+				$course_pagination_link = get_post_type_archive_link( 'course' );
298
+				$more_link_text = esc_html( Sensei()->settings->settings[ 'course_archive_more_link_text' ] );
299
+				$more_link_url =  esc_url( add_query_arg( $quer_args, $course_pagination_link ) );
300 300
 
301
-                // next/more
302
-                $html  = '<div class="navigation"><div class="nav-next">';
303
-                $html .= '<a href="' . $more_link_url . '">';
304
-                $html .= $more_link_text;
305
-                $html .= '<span class="meta-nav"></span></a></div>';
301
+				// next/more
302
+				$html  = '<div class="navigation"><div class="nav-next">';
303
+				$html .= '<a href="' . $more_link_url . '">';
304
+				$html .= $more_link_text;
305
+				$html .= '<span class="meta-nav"></span></a></div>';
306 306
 
307
-                echo apply_filters( 'course_archive_next_link', $html );
307
+				echo apply_filters( 'course_archive_next_link', $html );
308 308
 
309
-            } // End If Statement
309
+			} // End If Statement
310 310
 
311
-        } // End If Statement
312
-    }
311
+		} // End If Statement
312
+	}
313 313
 
314
-    /**
315
-     * Print a single course markup
316
-     *
317
-     * @param $course_id
318
-     */
319
-    public static function the_course( $course_id ){
314
+	/**
315
+	 * Print a single course markup
316
+	 *
317
+	 * @param $course_id
318
+	 */
319
+	public static function the_course( $course_id ){
320 320
 
321
-        // Get meta data
322
-        $course =  get_post( $course_id );
323
-        $user_info = get_userdata( absint( $course->post_author ) );
324
-        $author_link = get_author_posts_url( absint( $course->post_author ) );
325
-        $author_display_name = $user_info->display_name;
326
-        $author_id = $course->post_author;
327
-        $category_output = get_the_term_list( $course_id, 'course-category', '', ', ', '' );
328
-        $preview_lesson_count = intval( Sensei()->course->course_lesson_preview_count( $course_id ) );
329
-        $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
330
-        ?>
321
+		// Get meta data
322
+		$course =  get_post( $course_id );
323
+		$user_info = get_userdata( absint( $course->post_author ) );
324
+		$author_link = get_author_posts_url( absint( $course->post_author ) );
325
+		$author_display_name = $user_info->display_name;
326
+		$author_id = $course->post_author;
327
+		$category_output = get_the_term_list( $course_id, 'course-category', '', ', ', '' );
328
+		$preview_lesson_count = intval( Sensei()->course->course_lesson_preview_count( $course_id ) );
329
+		$is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
330
+		?>
331 331
 
332 332
         <article class="<?php echo esc_attr( join( ' ', get_post_class( array( 'course', 'post' ), $course_id ) ) ); ?>">
333 333
             <?php
334
-            // so that legacy shortcodes work with the party plugins that wants to hook in
335
-            do_action('sensei_course_content_before',$course->ID );
336
-            ?>
334
+			// so that legacy shortcodes work with the party plugins that wants to hook in
335
+			do_action('sensei_course_content_before',$course->ID );
336
+			?>
337 337
             <div class="course-content">
338 338
 
339 339
                 <?php Sensei()->course->course_image($course_id); ?>
@@ -369,7 +369,7 @@  discard block
 block discarded – undo
369 369
                     </p>
370 370
 
371 371
                     <?php if ( 0 < $preview_lesson_count && !$is_user_taking_course ) {
372
-                        $preview_lessons = sprintf( __( '(%d preview lessons)', 'woothemes-sensei' ), $preview_lesson_count ); ?>
372
+						$preview_lessons = sprintf( __( '(%d preview lessons)', 'woothemes-sensei' ), $preview_lesson_count ); ?>
373 373
                         <p class="sensei-free-lessons">
374 374
                             <a href="<?php echo get_permalink( $course_id ); ?>"><?php _e( 'Preview this course', 'woothemes-sensei' ) ?>
375 375
                             </a> - <?php echo $preview_lessons; ?>
@@ -380,15 +380,15 @@  discard block
 block discarded – undo
380 380
 
381 381
             </div>
382 382
             <?php
383
-            // so that legacy shortcodes work with thir party plugins that wants to hook in
384
-            do_action('sensei_course_content_after', $course->ID);
385
-            ?>
383
+			// so that legacy shortcodes work with thir party plugins that wants to hook in
384
+			do_action('sensei_course_content_after', $course->ID);
385
+			?>
386 386
 
387 387
         </article>
388 388
 
389 389
         <?php
390 390
 
391 391
 
392
-    } // end the_course
392
+	} // end the_course
393 393
 
394 394
 }// end class legacy shortcodes
395 395
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -22,14 +22,14 @@  discard block
 block discarded – undo
22 22
      *
23 23
      * @since 1.9.0
24 24
      */
25
-    public static function init(){
25
+    public static function init() {
26 26
 
27
-        add_shortcode( 'allcourses',      array( __CLASS__, 'all_courses' ) );
28
-        add_shortcode( 'newcourses',      array( __CLASS__,'new_courses' ) );
29
-        add_shortcode( 'featuredcourses', array( __CLASS__,'featured_courses') );
30
-        add_shortcode( 'freecourses',     array( __CLASS__,'free_courses') );
31
-        add_shortcode( 'paidcourses',     array( __CLASS__,'paid_courses') );
32
-        add_shortcode( 'usercourses',     array( __CLASS__,'user_courses' ) );
27
+        add_shortcode('allcourses', array(__CLASS__, 'all_courses'));
28
+        add_shortcode('newcourses', array(__CLASS__, 'new_courses'));
29
+        add_shortcode('featuredcourses', array(__CLASS__, 'featured_courses'));
30
+        add_shortcode('freecourses', array(__CLASS__, 'free_courses'));
31
+        add_shortcode('paidcourses', array(__CLASS__, 'paid_courses'));
32
+        add_shortcode('usercourses', array(__CLASS__, 'user_courses'));
33 33
 
34 34
     }
35 35
     /**
@@ -42,9 +42,9 @@  discard block
 block discarded – undo
42 42
      * @param mixed $content (default: null)
43 43
      * @return string
44 44
      */
45
-    public static function all_courses( $atts, $content = null ) {
45
+    public static function all_courses($atts, $content = null) {
46 46
 
47
-        return self::generate_shortcode_courses( '', 'allcourses' ); // all courses but no title
47
+        return self::generate_shortcode_courses('', 'allcourses'); // all courses but no title
48 48
 
49 49
     } // all_courses()
50 50
 
@@ -56,9 +56,9 @@  discard block
 block discarded – undo
56 56
      * @param mixed $content (default: null)
57 57
      * @return string
58 58
      */
59
-    public static function paid_courses( $atts, $content = null ) {
59
+    public static function paid_courses($atts, $content = null) {
60 60
 
61
-        return self::generate_shortcode_courses( 'Paid Courses', 'paidcourses' );
61
+        return self::generate_shortcode_courses('Paid Courses', 'paidcourses');
62 62
 
63 63
     } // End paid_courses()
64 64
 
@@ -71,9 +71,9 @@  discard block
 block discarded – undo
71 71
      * @param mixed $content (default: null)
72 72
      * @return string
73 73
      */
74
-    public static function featured_courses( $atts, $content = null ) {
74
+    public static function featured_courses($atts, $content = null) {
75 75
 
76
-        return self::generate_shortcode_courses( 'Featured Courses', 'featuredcourses' );
76
+        return self::generate_shortcode_courses('Featured Courses', 'featuredcourses');
77 77
 
78 78
     } // End featured_courses()
79 79
 
@@ -85,9 +85,9 @@  discard block
 block discarded – undo
85 85
      * @param mixed $content (default: null)
86 86
      * @return string
87 87
      */
88
-    public static function free_courses( $atts, $content = null ) {
88
+    public static function free_courses($atts, $content = null) {
89 89
 
90
-        return self::generate_shortcode_courses( 'Free Courses', 'freecourses' );
90
+        return self::generate_shortcode_courses('Free Courses', 'freecourses');
91 91
 
92 92
     } // End free_courses()
93 93
 
@@ -99,9 +99,9 @@  discard block
 block discarded – undo
99 99
      * @param mixed $content (default: null)
100 100
      * @return string
101 101
      */
102
-    public static function new_courses( $atts, $content = null ) {
102
+    public static function new_courses($atts, $content = null) {
103 103
 
104
-        return self::generate_shortcode_courses( 'New Courses', 'newcourses' );
104
+        return self::generate_shortcode_courses('New Courses', 'newcourses');
105 105
 
106 106
     } // End new_courses()
107 107
 
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
      * @param $shortcode_specific_override
115 115
      * @return string
116 116
      */
117
-    public static function generate_shortcode_courses( $title , $shortcode_specific_override  ){
117
+    public static function generate_shortcode_courses($title, $shortcode_specific_override) {
118 118
 
119 119
         global  $shortcode_override, $posts_array;
120 120
 
@@ -122,9 +122,9 @@  discard block
 block discarded – undo
122 122
 
123 123
         // do not show this short code if there is a shortcode int he url and
124 124
         // this specific shortcode is not the one requested in the ur.
125
-        $specific_shortcode_requested = isset( $_GET['action'] ) ?  sanitize_text_field(  $_GET['action']  ) : '';
126
-        if( ! empty( $specific_shortcode_requested) &&
127
-            $specific_shortcode_requested != $shortcode_override ){
125
+        $specific_shortcode_requested = isset($_GET['action']) ? sanitize_text_field($_GET['action']) : '';
126
+        if ( ! empty($specific_shortcode_requested) &&
127
+            $specific_shortcode_requested != $shortcode_override) {
128 128
 
129 129
             return '';
130 130
 
@@ -136,15 +136,15 @@  discard block
 block discarded – undo
136 136
         $courses = ob_get_clean();
137 137
 
138 138
         $content = '';
139
-        if( count( $posts_array ) > 0 ){
139
+        if (count($posts_array) > 0) {
140 140
 
141
-            $before = empty($title)? '' : '<header class="archive-header"><h2>'. $title .'</h2></header>';
141
+            $before = empty($title) ? '' : '<header class="archive-header"><h2>'.$title.'</h2></header>';
142 142
             $before .= '<section id="main-course" class="course-container">';
143 143
 
144 144
             $after = '</section>';
145 145
 
146 146
             //assemble
147
-            $content = $before . $courses . $after;
147
+            $content = $before.$courses.$after;
148 148
 
149 149
         }
150 150
 
@@ -161,19 +161,19 @@  discard block
 block discarded – undo
161 161
      * @param mixed $content (default: null)
162 162
      * @return string
163 163
      */
164
-    public static function user_courses( $atts, $content = null ) {
164
+    public static function user_courses($atts, $content = null) {
165 165
         global $shortcode_override;
166
-        extract( shortcode_atts( array(	'amount' => 0 ), $atts ) );
166
+        extract(shortcode_atts(array('amount' => 0), $atts));
167 167
 
168 168
         $shortcode_override = 'usercourses';
169 169
 
170 170
         ob_start();
171 171
 
172
-        if( is_user_logged_in() ){
172
+        if (is_user_logged_in()) {
173 173
 
174
-            Sensei_Templates::get_template( 'user/my-courses.php' );
174
+            Sensei_Templates::get_template('user/my-courses.php');
175 175
 
176
-        }else{
176
+        } else {
177 177
 
178 178
             Sensei()->frontend->sensei_login_form();
179 179
 
@@ -189,54 +189,54 @@  discard block
 block discarded – undo
189 189
      * loop-course.php for the old shortcodes.
190 190
      * @since 1.9.0
191 191
      */
192
-    public static function initialise_legacy_course_loop(){
192
+    public static function initialise_legacy_course_loop() {
193 193
 
194 194
         global  $post, $wp_query, $shortcode_override, $course_excludes;
195 195
 
196 196
         // Handle Query Type
197 197
         $query_type = '';
198 198
 
199
-        if ( isset( $_GET[ 'action' ] ) && ( '' != esc_html( $_GET[ 'action' ] ) ) ) {
200
-            $query_type = esc_html( $_GET[ 'action' ] );
199
+        if (isset($_GET['action']) && ('' != esc_html($_GET['action']))) {
200
+            $query_type = esc_html($_GET['action']);
201 201
         } // End If Statement
202 202
 
203
-        if ( '' != $shortcode_override ) {
203
+        if ('' != $shortcode_override) {
204 204
             $query_type = $shortcode_override;
205 205
         } // End If Statement
206 206
 
207
-        if ( !is_array( $course_excludes ) ) { $course_excludes = array(); }
207
+        if ( ! is_array($course_excludes)) { $course_excludes = array(); }
208 208
 
209 209
         // Check that query returns results
210 210
         // Handle Pagination
211
-        $paged = $wp_query->get( 'paged' );
212
-        $paged = empty( $paged ) ? 1 : $paged;
211
+        $paged = $wp_query->get('paged');
212
+        $paged = empty($paged) ? 1 : $paged;
213 213
 
214 214
 
215 215
         // Check for pagination settings
216
-        if ( isset( Sensei()->settings->settings[ 'course_archive_amount' ] ) && ( 0 < absint( Sensei()->settings->settings[ 'course_archive_amount' ] ) ) ) {
216
+        if (isset(Sensei()->settings->settings['course_archive_amount']) && (0 < absint(Sensei()->settings->settings['course_archive_amount']))) {
217 217
 
218
-            $amount = absint( Sensei()->settings->settings[ 'course_archive_amount' ] );
218
+            $amount = absint(Sensei()->settings->settings['course_archive_amount']);
219 219
 
220 220
         } else {
221 221
 
222
-            $amount = $wp_query->get( 'posts_per_page' );
222
+            $amount = $wp_query->get('posts_per_page');
223 223
 
224 224
         } // End If Statement
225 225
 
226 226
         // This is not a paginated page (or it's simply the first page of a paginated page/post)
227 227
 
228 228
         global $posts_array;
229
-        $course_includes   = array();
229
+        $course_includes = array();
230 230
 
231
-        $query_args = Sensei()->course->get_archive_query_args( $shortcode_override, $amount, $course_includes, $course_excludes );
232
-        $course_query = new WP_Query( $query_args );
231
+        $query_args = Sensei()->course->get_archive_query_args($shortcode_override, $amount, $course_includes, $course_excludes);
232
+        $course_query = new WP_Query($query_args);
233 233
         $posts_array = $course_query->get_posts();
234 234
 
235 235
         // output the courses
236
-        if( ! empty( $posts_array ) ) {
236
+        if ( ! empty($posts_array)) {
237 237
 
238 238
             //output all courses for current query
239
-            self::loop_courses( $course_query, $amount );
239
+            self::loop_courses($course_query, $amount);
240 240
 
241 241
         }
242 242
 
@@ -249,31 +249,31 @@  discard block
 block discarded – undo
249 249
      *
250 250
      * @param WP_Query $course_query
251 251
      */
252
-    public static function loop_courses( $course_query, $amount ){
252
+    public static function loop_courses($course_query, $amount) {
253 253
 
254 254
         global $shortcode_override, $posts_array, $post, $wp_query, $shortcode_override, $course_excludes, $course_includes;
255 255
 
256
-        if ( count( $course_query->get_posts() ) > 0 ) {
256
+        if (count($course_query->get_posts()) > 0) {
257 257
 
258
-            do_action( 'sensei_course_archive_header', $shortcode_override );
258
+            do_action('sensei_course_archive_header', $shortcode_override);
259 259
 
260
-            foreach ( $course_query->get_posts() as $course){
260
+            foreach ($course_query->get_posts() as $course) {
261 261
 
262 262
                 // Make sure the other loops dont include the same post twice!
263
-                array_push( $course_excludes, $course->ID );
263
+                array_push($course_excludes, $course->ID);
264 264
 
265 265
                 // output the course markup
266
-                self::the_course( $course->ID );
266
+                self::the_course($course->ID);
267 267
 
268 268
             } // End For Loop
269 269
 
270 270
             // More and Prev links
271
-            $posts_array_query = new WP_Query(Sensei()->course->course_query( $shortcode_override, $amount, $course_includes, $course_excludes ) );
271
+            $posts_array_query = new WP_Query(Sensei()->course->course_query($shortcode_override, $amount, $course_includes, $course_excludes));
272 272
             $posts_array       = $posts_array_query->get_posts();
273 273
             $max_pages = $course_query->found_posts / $amount;
274
-            if ( '' != $shortcode_override && ( $max_pages > $course_query->get( 'paged' ) ) ) {
274
+            if ('' != $shortcode_override && ($max_pages > $course_query->get('paged'))) {
275 275
 
276
-                switch( $shortcode_override ){
276
+                switch ($shortcode_override) {
277 277
                     case 'paidcourses':
278 278
                         $filter = 'paid';
279 279
                         break;
@@ -289,22 +289,22 @@  discard block
 block discarded – undo
289 289
                 }
290 290
 
291 291
                 $quer_args = array();
292
-                $quer_args[ 'paged' ] = '2';
293
-                if( !empty( $filter ) ){
294
-                    $quer_args[ 'course_filter' ] = $filter;
292
+                $quer_args['paged'] = '2';
293
+                if ( ! empty($filter)) {
294
+                    $quer_args['course_filter'] = $filter;
295 295
                 }
296 296
 
297
-                $course_pagination_link = get_post_type_archive_link( 'course' );
298
-                $more_link_text = esc_html( Sensei()->settings->settings[ 'course_archive_more_link_text' ] );
299
-                $more_link_url =  esc_url( add_query_arg( $quer_args, $course_pagination_link ) );
297
+                $course_pagination_link = get_post_type_archive_link('course');
298
+                $more_link_text = esc_html(Sensei()->settings->settings['course_archive_more_link_text']);
299
+                $more_link_url = esc_url(add_query_arg($quer_args, $course_pagination_link));
300 300
 
301 301
                 // next/more
302 302
                 $html  = '<div class="navigation"><div class="nav-next">';
303
-                $html .= '<a href="' . $more_link_url . '">';
303
+                $html .= '<a href="'.$more_link_url.'">';
304 304
                 $html .= $more_link_text;
305 305
                 $html .= '<span class="meta-nav"></span></a></div>';
306 306
 
307
-                echo apply_filters( 'course_archive_next_link', $html );
307
+                echo apply_filters('course_archive_next_link', $html);
308 308
 
309 309
             } // End If Statement
310 310
 
@@ -316,23 +316,23 @@  discard block
 block discarded – undo
316 316
      *
317 317
      * @param $course_id
318 318
      */
319
-    public static function the_course( $course_id ){
319
+    public static function the_course($course_id) {
320 320
 
321 321
         // Get meta data
322
-        $course =  get_post( $course_id );
323
-        $user_info = get_userdata( absint( $course->post_author ) );
324
-        $author_link = get_author_posts_url( absint( $course->post_author ) );
322
+        $course = get_post($course_id);
323
+        $user_info = get_userdata(absint($course->post_author));
324
+        $author_link = get_author_posts_url(absint($course->post_author));
325 325
         $author_display_name = $user_info->display_name;
326 326
         $author_id = $course->post_author;
327
-        $category_output = get_the_term_list( $course_id, 'course-category', '', ', ', '' );
328
-        $preview_lesson_count = intval( Sensei()->course->course_lesson_preview_count( $course_id ) );
329
-        $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
327
+        $category_output = get_the_term_list($course_id, 'course-category', '', ', ', '');
328
+        $preview_lesson_count = intval(Sensei()->course->course_lesson_preview_count($course_id));
329
+        $is_user_taking_course = Sensei_Utils::user_started_course($course_id, get_current_user_id());
330 330
         ?>
331 331
 
332
-        <article class="<?php echo esc_attr( join( ' ', get_post_class( array( 'course', 'post' ), $course_id ) ) ); ?>">
332
+        <article class="<?php echo esc_attr(join(' ', get_post_class(array('course', 'post'), $course_id))); ?>">
333 333
             <?php
334 334
             // so that legacy shortcodes work with the party plugins that wants to hook in
335
-            do_action('sensei_course_content_before',$course->ID );
335
+            do_action('sensei_course_content_before', $course->ID);
336 336
             ?>
337 337
             <div class="course-content">
338 338
 
@@ -348,19 +348,19 @@  discard block
 block discarded – undo
348 348
 
349 349
                     <p class="sensei-course-meta">
350 350
 
351
-                        <?php if ( isset( Sensei()->settings->settings[ 'course_author' ] ) && ( Sensei()->settings->settings[ 'course_author' ] ) ) { ?>
352
-                            <span class="course-author"><?php _e( 'by ', 'woothemes-sensei' ); ?><a href="<?php echo $author_link; ?>" title="<?php echo esc_attr( $author_display_name ); ?>"><?php echo esc_html( $author_display_name   ); ?></a></span>
351
+                        <?php if (isset(Sensei()->settings->settings['course_author']) && (Sensei()->settings->settings['course_author'])) { ?>
352
+                            <span class="course-author"><?php _e('by ', 'woothemes-sensei'); ?><a href="<?php echo $author_link; ?>" title="<?php echo esc_attr($author_display_name); ?>"><?php echo esc_html($author_display_name); ?></a></span>
353 353
                         <?php } // End If Statement ?>
354 354
 
355 355
                         <span class="course-lesson-count">
356
-                                    <?php echo Sensei()->course->course_lesson_count( $course_id ) . '&nbsp;' .  __( 'Lessons', 'woothemes-sensei' ); ?>
356
+                                    <?php echo Sensei()->course->course_lesson_count($course_id).'&nbsp;'.__('Lessons', 'woothemes-sensei'); ?>
357 357
                                 </span>
358 358
 
359
-                        <?php if ( '' != $category_output ) { ?>
360
-                            <span class="course-category"><?php echo sprintf( __( 'in %s', 'woothemes-sensei' ), $category_output ); ?></span>
359
+                        <?php if ('' != $category_output) { ?>
360
+                            <span class="course-category"><?php echo sprintf(__('in %s', 'woothemes-sensei'), $category_output); ?></span>
361 361
                         <?php } // End If Statement ?>
362 362
 
363
-                        <?php sensei_simple_course_price( $course_id ); ?>
363
+                        <?php sensei_simple_course_price($course_id); ?>
364 364
 
365 365
                     </p>
366 366
 
@@ -368,10 +368,10 @@  discard block
 block discarded – undo
368 368
 
369 369
                     </p>
370 370
 
371
-                    <?php if ( 0 < $preview_lesson_count && !$is_user_taking_course ) {
372
-                        $preview_lessons = sprintf( __( '(%d preview lessons)', 'woothemes-sensei' ), $preview_lesson_count ); ?>
371
+                    <?php if (0 < $preview_lesson_count && ! $is_user_taking_course) {
372
+                        $preview_lessons = sprintf(__('(%d preview lessons)', 'woothemes-sensei'), $preview_lesson_count); ?>
373 373
                         <p class="sensei-free-lessons">
374
-                            <a href="<?php echo get_permalink( $course_id ); ?>"><?php _e( 'Preview this course', 'woothemes-sensei' ) ?>
374
+                            <a href="<?php echo get_permalink($course_id); ?>"><?php _e('Preview this course', 'woothemes-sensei') ?>
375 375
                             </a> - <?php echo $preview_lessons; ?>
376 376
                         </p>
377 377
                     <?php } ?>
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-course-categories.php 4 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -114,7 +114,7 @@
 block discarded – undo
114 114
      *
115 115
      * @since 1.9.0
116 116
      *
117
-     * @param array $category_ids
117
+     * @param array $categories
118 118
      * @return array
119 119
      */
120 120
     public function generate_term_ids( $categories = array() ){
Please login to merge, or discard this patch.
Indentation   +92 added lines, -92 removed lines patch added patch discarded remove patch
@@ -24,135 +24,135 @@
 block discarded – undo
24 24
  */
25 25
 class Sensei_Shortcode_Course_Categories implements Sensei_Shortcode_Interface {
26 26
 
27
-    /**
28
-     * @var array list of taxonomy terms.
29
-     */
30
-    protected $sensei_course_taxonomy_terms;
27
+	/**
28
+	 * @var array list of taxonomy terms.
29
+	 */
30
+	protected $sensei_course_taxonomy_terms;
31 31
 
32
-    /**
33
-     * Setup the shortcode object
34
-     *
35
-     * @since 1.9.0
36
-     * @param array $attributes
37
-     * @param string $content
38
-     * @param string $shortcode the shortcode that was called for this instance
39
-     */
40
-    public function __construct( $attributes, $content, $shortcode ){
32
+	/**
33
+	 * Setup the shortcode object
34
+	 *
35
+	 * @since 1.9.0
36
+	 * @param array $attributes
37
+	 * @param string $content
38
+	 * @param string $shortcode the shortcode that was called for this instance
39
+	 */
40
+	public function __construct( $attributes, $content, $shortcode ){
41 41
 
42
-        $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'name';
43
-        $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'ASC';
44
-        $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '100';
45
-        $this->parent = isset( $attributes['parent'] ) ? $attributes['parent'] : '';
42
+		$this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'name';
43
+		$this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'ASC';
44
+		$this->number = isset( $attributes['number'] ) ? $attributes['number'] : '100';
45
+		$this->parent = isset( $attributes['parent'] ) ? $attributes['parent'] : '';
46 46
 
47
-        $include = isset( $attributes['include'] ) ? explode( ',' , $attributes['include'] ) : '';
48
-        $this->include = $this->generate_term_ids( $include );
47
+		$include = isset( $attributes['include'] ) ? explode( ',' , $attributes['include'] ) : '';
48
+		$this->include = $this->generate_term_ids( $include );
49 49
 
50
-        $exclude = isset( $attributes['exclude'] ) ? explode( ',' , $attributes['exclude'] ) : '';
51
-        $this->exclude = $this->generate_term_ids( $exclude );
50
+		$exclude = isset( $attributes['exclude'] ) ? explode( ',' , $attributes['exclude'] ) : '';
51
+		$this->exclude = $this->generate_term_ids( $exclude );
52 52
 
53
-        // make sure we handle string true/false values correctly with respective defaults
54
-        $hide_empty = isset( $attributes['hide_empty'] ) ? $attributes['hide_empty'] : 'false';
55
-        $this->hide_empty = 'true' == $hide_empty ? true: false;
53
+		// make sure we handle string true/false values correctly with respective defaults
54
+		$hide_empty = isset( $attributes['hide_empty'] ) ? $attributes['hide_empty'] : 'false';
55
+		$this->hide_empty = 'true' == $hide_empty ? true: false;
56 56
 
57
-        $this->setup_course_categories();
57
+		$this->setup_course_categories();
58 58
 
59
-    }
59
+	}
60 60
 
61
-    /**
62
-     * create the messages query .
63
-     *
64
-     * @return mixed
65
-     */
66
-    public function setup_course_categories(){
61
+	/**
62
+	 * create the messages query .
63
+	 *
64
+	 * @return mixed
65
+	 */
66
+	public function setup_course_categories(){
67 67
 
68
-        $args = array(
69
-            'orderby'       => $this->orderby,
70
-            'order'         => $this->order,
71
-            'exclude'       => $this->exclude,
72
-            'include'       => $this->include,
73
-            'number'        => $this->number,
74
-            'parent'        => $this->parent,
75
-            'hide_empty'    => $this->hide_empty,
76
-            'fields'        => 'all',
77
-        );
68
+		$args = array(
69
+			'orderby'       => $this->orderby,
70
+			'order'         => $this->order,
71
+			'exclude'       => $this->exclude,
72
+			'include'       => $this->include,
73
+			'number'        => $this->number,
74
+			'parent'        => $this->parent,
75
+			'hide_empty'    => $this->hide_empty,
76
+			'fields'        => 'all',
77
+		);
78 78
 
79
-        $this->sensei_course_taxonomy_terms = get_terms('course-category', $args);
79
+		$this->sensei_course_taxonomy_terms = get_terms('course-category', $args);
80 80
 
81
-    }
81
+	}
82 82
 
83
-    /**
84
-     * Rendering the shortcode this class is responsible for.
85
-     *
86
-     * @return string $content
87
-     */
88
-    public function render(){
83
+	/**
84
+	 * Rendering the shortcode this class is responsible for.
85
+	 *
86
+	 * @return string $content
87
+	 */
88
+	public function render(){
89 89
 
90
-        if( empty(  $this->sensei_course_taxonomy_terms  ) ){
90
+		if( empty(  $this->sensei_course_taxonomy_terms  ) ){
91 91
 
92
-            return __( 'No course categories found.', 'woothemes-sensei' );
92
+			return __( 'No course categories found.', 'woothemes-sensei' );
93 93
 
94
-        }
94
+		}
95 95
 
96
-        $terms_html = '';
96
+		$terms_html = '';
97 97
 
98
-        //set the wp_query to the current messages query
99
-        $terms_html .= '<ul class="sensei course-categories">';
100
-        foreach( $this->sensei_course_taxonomy_terms as $category ){
98
+		//set the wp_query to the current messages query
99
+		$terms_html .= '<ul class="sensei course-categories">';
100
+		foreach( $this->sensei_course_taxonomy_terms as $category ){
101 101
 
102
-            $category_link = '<a href="'. get_term_link( $category ) . '">' . $category->name  . '</a>';
103
-            $terms_html .=  '<li class="sensei course-category" >' . $category_link . '</li>';
102
+			$category_link = '<a href="'. get_term_link( $category ) . '">' . $category->name  . '</a>';
103
+			$terms_html .=  '<li class="sensei course-category" >' . $category_link . '</li>';
104 104
 
105
-        }
106
-        $terms_html .= '<ul>';
105
+		}
106
+		$terms_html .= '<ul>';
107 107
 
108
-        return $terms_html;
108
+		return $terms_html;
109 109
 
110
-    }// end render
110
+	}// end render
111 111
 
112
-    /**
113
-     * Convert an array of mixed ids, slugs or names to only the id's of those terms
114
-     *
115
-     * @since 1.9.0
116
-     *
117
-     * @param array $category_ids
118
-     * @return array
119
-     */
120
-    public function generate_term_ids( $categories = array() ){
112
+	/**
113
+	 * Convert an array of mixed ids, slugs or names to only the id's of those terms
114
+	 *
115
+	 * @since 1.9.0
116
+	 *
117
+	 * @param array $category_ids
118
+	 * @return array
119
+	 */
120
+	public function generate_term_ids( $categories = array() ){
121 121
 
122
-        $cat_ids = array();
122
+		$cat_ids = array();
123 123
 
124
-        if ( is_array($categories) ) {
125
-            foreach ($categories as $cat) {
124
+		if ( is_array($categories) ) {
125
+			foreach ($categories as $cat) {
126 126
 
127
-                if (!is_numeric($cat)) {
127
+				if (!is_numeric($cat)) {
128 128
 
129
-                    // try the slug
130
-                    $term = get_term_by('slug', $cat, 'course-category');
129
+					// try the slug
130
+					$term = get_term_by('slug', $cat, 'course-category');
131 131
 
132
-                    // if the slug didn't work try the name
133
-                    if (!$term) {
132
+					// if the slug didn't work try the name
133
+					if (!$term) {
134 134
 
135
-                        $term = get_term_by('name', $cat, 'course-category');
135
+						$term = get_term_by('name', $cat, 'course-category');
136 136
 
137
-                    }
137
+					}
138 138
 
139
-                    if ($term) {
140
-                        $cat_ids[] = $term->term_id;
141
-                    }
139
+					if ($term) {
140
+						$cat_ids[] = $term->term_id;
141
+					}
142 142
 
143
-                } else {
143
+				} else {
144 144
 
145
-                    $cat_ids[] = $cat;
145
+					$cat_ids[] = $cat;
146 146
 
147
-                }
147
+				}
148 148
 
149
-            }
149
+			}
150 150
 
151
-        }
151
+		}
152 152
 
153
-        return $cat_ids;
153
+		return $cat_ids;
154 154
 
155
-    }// end generate_term_ids
155
+	}// end generate_term_ids
156 156
 
157 157
 }// end class
158 158
 
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 /**
4 4
  *
5 5
  * Renders the [sensei_course_categories] shortcode. Show the list or course categories as links to their archive
@@ -37,22 +37,22 @@  discard block
 block discarded – undo
37 37
      * @param string $content
38 38
      * @param string $shortcode the shortcode that was called for this instance
39 39
      */
40
-    public function __construct( $attributes, $content, $shortcode ){
40
+    public function __construct($attributes, $content, $shortcode) {
41 41
 
42
-        $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'name';
43
-        $this->order = isset( $attributes['order'] ) ? $attributes['order'] : 'ASC';
44
-        $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '100';
45
-        $this->parent = isset( $attributes['parent'] ) ? $attributes['parent'] : '';
42
+        $this->orderby = isset($attributes['orderby']) ? $attributes['orderby'] : 'name';
43
+        $this->order = isset($attributes['order']) ? $attributes['order'] : 'ASC';
44
+        $this->number = isset($attributes['number']) ? $attributes['number'] : '100';
45
+        $this->parent = isset($attributes['parent']) ? $attributes['parent'] : '';
46 46
 
47
-        $include = isset( $attributes['include'] ) ? explode( ',' , $attributes['include'] ) : '';
48
-        $this->include = $this->generate_term_ids( $include );
47
+        $include = isset($attributes['include']) ? explode(',', $attributes['include']) : '';
48
+        $this->include = $this->generate_term_ids($include);
49 49
 
50
-        $exclude = isset( $attributes['exclude'] ) ? explode( ',' , $attributes['exclude'] ) : '';
51
-        $this->exclude = $this->generate_term_ids( $exclude );
50
+        $exclude = isset($attributes['exclude']) ? explode(',', $attributes['exclude']) : '';
51
+        $this->exclude = $this->generate_term_ids($exclude);
52 52
 
53 53
         // make sure we handle string true/false values correctly with respective defaults
54
-        $hide_empty = isset( $attributes['hide_empty'] ) ? $attributes['hide_empty'] : 'false';
55
-        $this->hide_empty = 'true' == $hide_empty ? true: false;
54
+        $hide_empty = isset($attributes['hide_empty']) ? $attributes['hide_empty'] : 'false';
55
+        $this->hide_empty = 'true' == $hide_empty ? true : false;
56 56
 
57 57
         $this->setup_course_categories();
58 58
 
@@ -63,7 +63,7 @@  discard block
 block discarded – undo
63 63
      *
64 64
      * @return mixed
65 65
      */
66
-    public function setup_course_categories(){
66
+    public function setup_course_categories() {
67 67
 
68 68
         $args = array(
69 69
             'orderby'       => $this->orderby,
@@ -85,11 +85,11 @@  discard block
 block discarded – undo
85 85
      *
86 86
      * @return string $content
87 87
      */
88
-    public function render(){
88
+    public function render() {
89 89
 
90
-        if( empty(  $this->sensei_course_taxonomy_terms  ) ){
90
+        if (empty($this->sensei_course_taxonomy_terms)) {
91 91
 
92
-            return __( 'No course categories found.', 'woothemes-sensei' );
92
+            return __('No course categories found.', 'woothemes-sensei');
93 93
 
94 94
         }
95 95
 
@@ -97,10 +97,10 @@  discard block
 block discarded – undo
97 97
 
98 98
         //set the wp_query to the current messages query
99 99
         $terms_html .= '<ul class="sensei course-categories">';
100
-        foreach( $this->sensei_course_taxonomy_terms as $category ){
100
+        foreach ($this->sensei_course_taxonomy_terms as $category) {
101 101
 
102
-            $category_link = '<a href="'. get_term_link( $category ) . '">' . $category->name  . '</a>';
103
-            $terms_html .=  '<li class="sensei course-category" >' . $category_link . '</li>';
102
+            $category_link = '<a href="'.get_term_link($category).'">'.$category->name.'</a>';
103
+            $terms_html .= '<li class="sensei course-category" >'.$category_link.'</li>';
104 104
 
105 105
         }
106 106
         $terms_html .= '<ul>';
@@ -117,20 +117,20 @@  discard block
 block discarded – undo
117 117
      * @param array $category_ids
118 118
      * @return array
119 119
      */
120
-    public function generate_term_ids( $categories = array() ){
120
+    public function generate_term_ids($categories = array()) {
121 121
 
122 122
         $cat_ids = array();
123 123
 
124
-        if ( is_array($categories) ) {
124
+        if (is_array($categories)) {
125 125
             foreach ($categories as $cat) {
126 126
 
127
-                if (!is_numeric($cat)) {
127
+                if ( ! is_numeric($cat)) {
128 128
 
129 129
                     // try the slug
130 130
                     $term = get_term_by('slug', $cat, 'course-category');
131 131
 
132 132
                     // if the slug didn't work try the name
133
-                    if (!$term) {
133
+                    if ( ! $term) {
134 134
 
135 135
                         $term = get_term_by('name', $cat, 'course-category');
136 136
 
Please login to merge, or discard this patch.
Braces   +4 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Sensei Analysis User Profile List Table Class
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-user-courses.php 4 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -325,7 +325,7 @@
 block discarded – undo
325 325
      *
326 326
      * @param array $classes
327 327
      * @param WP_Post $course
328
-     * @return array $classes
328
+     * @return string[] $classes
329 329
      */
330 330
     public function course_status_class_tagging($classes, $course){
331 331
 
Please login to merge, or discard this patch.
Braces   +8 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 /**
4 7
  * This class is loaded int WP by the shortcode loader class.
5 8
  *
@@ -75,7 +78,7 @@  discard block
 block discarded – undo
75 78
 
76 79
             $this->order =  'ASC';
77 80
 
78
-        }else{
81
+        } else{
79 82
 
80 83
             // for everything else use the value passed or the default DESC
81 84
             $this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'ASC';
@@ -121,11 +124,11 @@  discard block
 block discarded – undo
121 124
             $included_courses =  $completed_ids;
122 125
 
123 126
 
124
-        }elseif( 'active'==$this->status ){
127
+        } elseif( 'active'==$this->status ){
125 128
 
126 129
             $included_courses =  $active_ids;
127 130
 
128
-        }else{ // all courses
131
+        } else{ // all courses
129 132
 
130 133
             if( empty( $completed_ids ) ){
131 134
 
@@ -142,7 +145,7 @@  discard block
 block discarded – undo
142 145
 
143 146
                 $included_courses = array('-1000'); // don't show any courses
144 147
 
145
-            }else{
148
+            } else{
146 149
                 $included_courses = Sensei_Utils::array_zip_merge( $active_ids, $completed_ids );
147 150
             }
148 151
 
Please login to merge, or discard this patch.
Spacing   +61 added lines, -61 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined('ABSPATH')) exit; // Exit if accessed directly
3 3
 /**
4 4
  * This class is loaded int WP by the shortcode loader class.
5 5
  *
@@ -61,28 +61,28 @@  discard block
 block discarded – undo
61 61
      * @param string $content
62 62
      * @param string $shortcode the shortcode that was called for this instance
63 63
      */
64
-    public function __construct( $attributes, $content, $shortcode ){
64
+    public function __construct($attributes, $content, $shortcode) {
65 65
 
66
-        if(!  is_user_logged_in() ) {
66
+        if ( ! is_user_logged_in()) {
67 67
             // show the login form
68 68
             Sensei_Templates::get_template('user/login-form.php');
69 69
             return;
70 70
         }
71 71
 
72 72
         // set up all argument need for constructing the course query
73
-        $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
74
-        $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'title';
75
-        $this->status = isset( $attributes['status'] ) ? $attributes['status'] : 'all';
73
+        $this->number = isset($attributes['number']) ? $attributes['number'] : '10';
74
+        $this->orderby = isset($attributes['orderby']) ? $attributes['orderby'] : 'title';
75
+        $this->status = isset($attributes['status']) ? $attributes['status'] : 'all';
76 76
 
77 77
         // set the default for menu_order to be ASC
78
-        if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
78
+        if ('menu_order' == $this->orderby && ! isset($attributes['order'])) {
79 79
 
80
-            $this->order =  'ASC';
80
+            $this->order = 'ASC';
81 81
 
82
-        }else{
82
+        } else {
83 83
 
84 84
             // for everything else use the value passed or the default DESC
85
-            $this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'ASC';
85
+            $this->order = isset($attributes['order']) ? $attributes['order'] : 'ASC';
86 86
 
87 87
         }
88 88
 
@@ -96,20 +96,20 @@  discard block
 block discarded – undo
96 96
      *
97 97
      * @since 1.9.0
98 98
      */
99
-    protected function setup_course_query(){
99
+    protected function setup_course_query() {
100 100
 
101
-        $status_query = array( 'user_id' => get_current_user_id(), 'type' => 'sensei_course_status' );
102
-        $user_courses_logs = Sensei_Utils::sensei_check_for_activity( $status_query , true );
103
-        if ( !is_array($user_courses_logs) ) {
101
+        $status_query = array('user_id' => get_current_user_id(), 'type' => 'sensei_course_status');
102
+        $user_courses_logs = Sensei_Utils::sensei_check_for_activity($status_query, true);
103
+        if ( ! is_array($user_courses_logs)) {
104 104
 
105
-            $user_courses_logs = array( $user_courses_logs );
105
+            $user_courses_logs = array($user_courses_logs);
106 106
 
107 107
         }
108 108
 
109 109
         $completed_ids = $active_ids = array();
110
-        foreach( $user_courses_logs as $course_status ) {
110
+        foreach ($user_courses_logs as $course_status) {
111 111
 
112
-            if ( Sensei_Utils::user_completed_course( $course_status, get_current_user_id() ) ) {
112
+            if (Sensei_Utils::user_completed_course($course_status, get_current_user_id())) {
113 113
 
114 114
                 $completed_ids[] = $course_status->comment_post_ID;
115 115
 
@@ -120,34 +120,34 @@  discard block
 block discarded – undo
120 120
             }
121 121
         }
122 122
 
123
-        if( 'completed' == $this->status ){
123
+        if ('completed' == $this->status) {
124 124
 
125
-            $included_courses =  $completed_ids;
125
+            $included_courses = $completed_ids;
126 126
 
127 127
 
128
-        }elseif( 'active'==$this->status ){
128
+        }elseif ('active' == $this->status) {
129 129
 
130
-            $included_courses =  $active_ids;
130
+            $included_courses = $active_ids;
131 131
 
132
-        }else{ // all courses
132
+        } else { // all courses
133 133
 
134
-            if( empty( $completed_ids ) ){
134
+            if (empty($completed_ids)) {
135 135
 
136
-                add_action( 'sensei_loop_course_inside_before', array( $this, 'completed_no_course_message_output' ) );
136
+                add_action('sensei_loop_course_inside_before', array($this, 'completed_no_course_message_output'));
137 137
             }
138 138
 
139
-            if( empty( $active_ids ) ){
139
+            if (empty($active_ids)) {
140 140
 
141
-                add_action( 'sensei_loop_course_inside_before', array( $this, 'active_no_course_message_output' ) );
141
+                add_action('sensei_loop_course_inside_before', array($this, 'active_no_course_message_output'));
142 142
 
143 143
             }
144 144
 
145
-            if( empty( $completed_ids ) &&  empty( $active_ids )  ){
145
+            if (empty($completed_ids) && empty($active_ids)) {
146 146
 
147 147
                 $included_courses = array('-1000'); // don't show any courses
148 148
 
149
-            }else{
150
-                $included_courses = Sensei_Utils::array_zip_merge( (array)$active_ids, (array)$completed_ids );
149
+            } else {
150
+                $included_courses = Sensei_Utils::array_zip_merge((array) $active_ids, (array) $completed_ids);
151 151
             }
152 152
 
153 153
 
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
         // if the shortcode is not active or in active and the active and completed
159 159
         // tabs show up.
160 160
         $number_of_posts = $this->number;
161
-        if( 'active' != $this->status && 'complete' != $this->status  ){
161
+        if ('active' != $this->status && 'complete' != $this->status) {
162 162
             $number_of_posts = 1000;
163 163
         }
164 164
 
@@ -169,12 +169,12 @@  discard block
 block discarded – undo
169 169
             'post_status'      => 'publish',
170 170
             'orderby'          => $this->orderby,
171 171
             'order'            => $this->order,
172
-            'paged' => empty( $query_var_paged )? 1 : $query_var_paged,
172
+            'paged' => empty($query_var_paged) ? 1 : $query_var_paged,
173 173
             'posts_per_page'   => $number_of_posts,
174 174
             'post__in'         => $included_courses,
175 175
         );
176 176
 
177
-        $this->query = new WP_Query( $query_args );
177
+        $this->query = new WP_Query($query_args);
178 178
 
179 179
     }// end setup _course_query
180 180
 
@@ -184,12 +184,12 @@  discard block
 block discarded – undo
184 184
      *
185 185
      * @since 1.9.0
186 186
      */
187
-    public function completed_no_course_message_output(){
187
+    public function completed_no_course_message_output() {
188 188
         ?>
189 189
         <li class="user-completed">
190 190
             <div class="sensei-message info">
191 191
 
192
-                <?php _e( 'You have not completed any courses yet.', 'woothemes-sensei' ); ?>
192
+                <?php _e('You have not completed any courses yet.', 'woothemes-sensei'); ?>
193 193
 
194 194
             </div>
195 195
         </li>
@@ -202,17 +202,17 @@  discard block
 block discarded – undo
202 202
      *
203 203
      * @since 1.9.0
204 204
      */
205
-    public function active_no_course_message_output(){
205
+    public function active_no_course_message_output() {
206 206
         ?>
207 207
 
208 208
         <li class="user-active">
209 209
             <div class="sensei-message info">
210 210
 
211
-                <?php _e( 'You have no active courses.', 'woothemes-sensei' ); ?>
211
+                <?php _e('You have no active courses.', 'woothemes-sensei'); ?>
212 212
 
213
-                <a href="<?php esc_attr_e( Sensei_Course::get_courses_page_url() ); ?>">
213
+                <a href="<?php esc_attr_e(Sensei_Course::get_courses_page_url()); ?>">
214 214
 
215
-                    <?php  _e( 'Start a Course!', 'woothemes-sensei' ); ?>
215
+                    <?php  _e('Start a Course!', 'woothemes-sensei'); ?>
216 216
 
217 217
                 </a>
218 218
 
@@ -226,11 +226,11 @@  discard block
 block discarded – undo
226 226
      *
227 227
      * @return string $content
228 228
      */
229
-    public function render(){
229
+    public function render() {
230 230
 
231 231
         global $wp_query;
232 232
 
233
-        if(!  is_user_logged_in() ) {
233
+        if ( ! is_user_logged_in()) {
234 234
             return '';
235 235
         }
236 236
 
@@ -249,7 +249,7 @@  discard block
 block discarded – undo
249 249
         Sensei_Templates::get_template('globals/pagination.php');
250 250
         echo '</section>';
251 251
 
252
-        $shortcode_output =  ob_get_clean();
252
+        $shortcode_output = ob_get_clean();
253 253
 
254 254
         $this->detach_shortcode_hooks();
255 255
 
@@ -265,23 +265,23 @@  discard block
 block discarded – undo
265 265
      *
266 266
      * @since 1.9.0
267 267
      */
268
-    public function attach_shortcode_hooks(){
268
+    public function attach_shortcode_hooks() {
269 269
 
270 270
         // attach the toggle functionality
271 271
         // don't show the toggle action if the user specified complete or active for this shortcode
272
-        if( ! in_array( $this->status, array( 'active', 'complete' ) ) ){
272
+        if ( ! in_array($this->status, array('active', 'complete'))) {
273 273
 
274
-            add_action( 'sensei_loop_course_before', array( $this, 'course_toggle_actions' ) );
275
-            add_action( 'wp_footer', array( $this, 'print_course_toggle_actions_inline_script' ), 90 );
274
+            add_action('sensei_loop_course_before', array($this, 'course_toggle_actions'));
275
+            add_action('wp_footer', array($this, 'print_course_toggle_actions_inline_script'), 90);
276 276
 
277 277
         }
278 278
 
279 279
         // add extra classes to distinguish the course based on user completed or active
280
-        add_filter( 'sensei_course_loop_content_class', array( $this, 'course_status_class_tagging' ), 20, 2 );
280
+        add_filter('sensei_course_loop_content_class', array($this, 'course_status_class_tagging'), 20, 2);
281 281
 
282 282
         // attach progress meter below course
283
-        add_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_progress' ) );
284
-        add_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_buttons' ) );
283
+        add_action('sensei_course_content_inside_after', array($this, 'attach_course_progress'));
284
+        add_action('sensei_course_content_inside_after', array($this, 'attach_course_buttons'));
285 285
 
286 286
     }
287 287
 
@@ -290,13 +290,13 @@  discard block
 block discarded – undo
290 290
      *
291 291
      * @since 1.9.0
292 292
      */
293
-    public function detach_shortcode_hooks(){
293
+    public function detach_shortcode_hooks() {
294 294
 
295 295
         //remove all hooks after the output is generated
296
-        remove_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_progress' ) );
297
-        remove_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_buttons' ) );
298
-        remove_filter( 'sensei_course_loop_content_class', array( $this, 'course_status_class_tagging' ), 20, 2 );
299
-        remove_action( 'sensei_loop_course_before', array( $this, 'course_toggle_actions' ) );
296
+        remove_action('sensei_course_content_inside_after', array($this, 'attach_course_progress'));
297
+        remove_action('sensei_course_content_inside_after', array($this, 'attach_course_buttons'));
298
+        remove_filter('sensei_course_loop_content_class', array($this, 'course_status_class_tagging'), 20, 2);
299
+        remove_action('sensei_loop_course_before', array($this, 'course_toggle_actions'));
300 300
     }
301 301
 
302 302
     /**
@@ -304,10 +304,10 @@  discard block
 block discarded – undo
304 304
      *
305 305
      * @param $course
306 306
      */
307
-    public function attach_course_progress( $course_id ){
307
+    public function attach_course_progress($course_id) {
308 308
 
309
-        $percentage = Sensei()->course->get_completion_percentage( $course_id, get_current_user_id() );
310
-        echo Sensei()->course->get_progress_meter( $percentage );
309
+        $percentage = Sensei()->course->get_completion_percentage($course_id, get_current_user_id());
310
+        echo Sensei()->course->get_progress_meter($percentage);
311 311
 
312 312
     }// attach_course_progress
313 313
 
@@ -319,9 +319,9 @@  discard block
 block discarded – undo
319 319
      *
320 320
      * @param integer $course_id
321 321
      */
322
-    public function attach_course_buttons( $course_id ){
322
+    public function attach_course_buttons($course_id) {
323 323
 
324
-        Sensei()->course->the_course_action_buttons( get_post( $course_id ) );
324
+        Sensei()->course->the_course_action_buttons(get_post($course_id));
325 325
 
326 326
     }// attach_course_buttons
327 327
 
@@ -334,9 +334,9 @@  discard block
 block discarded – undo
334 334
      * @param WP_Post $course
335 335
      * @return array $classes
336 336
      */
337
-    public function course_status_class_tagging($classes, $course){
337
+    public function course_status_class_tagging($classes, $course) {
338 338
 
339
-        if ( Sensei_Utils::user_completed_course( $course, get_current_user_id() ) ) {
339
+        if (Sensei_Utils::user_completed_course($course, get_current_user_id())) {
340 340
 
341 341
             $classes[] = 'user-completed';
342 342
 
@@ -353,7 +353,7 @@  discard block
 block discarded – undo
353 353
     /**
354 354
      * Output the course toggle functionality
355 355
      */
356
-    public function course_toggle_actions(){ ?>
356
+    public function course_toggle_actions() { ?>
357 357
 
358 358
         <section id="user-course-status-toggle">
359 359
             <a id="sensei-user-courses-active-action" href=""><?php _e('Active Courses'); ?></a>
Please login to merge, or discard this patch.
Indentation   +235 added lines, -235 removed lines patch added patch discarded remove patch
@@ -25,167 +25,167 @@  discard block
 block discarded – undo
25 25
  */
26 26
 class Sensei_Shortcode_User_Courses implements Sensei_Shortcode_Interface {
27 27
 
28
-    /**
29
-     * @var WP_Query to help setup the query needed by the render method.
30
-     */
31
-    protected $query;
28
+	/**
29
+	 * @var WP_Query to help setup the query needed by the render method.
30
+	 */
31
+	protected $query;
32 32
 
33
-    /**
34
-     * @var string number of items to show on the current page
35
-     * Default: -1.
36
-     */
37
-    protected $number;
33
+	/**
34
+	 * @var string number of items to show on the current page
35
+	 * Default: -1.
36
+	 */
37
+	protected $number;
38 38
 
39
-    /**
40
-     * @var string ordery by course field
41
-     * Default: date
42
-     */
43
-    protected $orderby;
39
+	/**
40
+	 * @var string ordery by course field
41
+	 * Default: date
42
+	 */
43
+	protected $orderby;
44 44
 
45
-    /**
46
-     * @var string ASC or DESC
47
-     * Default: 'DESC'
48
-     */
49
-    protected  $order;
45
+	/**
46
+	 * @var string ASC or DESC
47
+	 * Default: 'DESC'
48
+	 */
49
+	protected  $order;
50 50
 
51
-    /**
52
-     * @var status can be completed or active. If none is specified all will be shown
53
-     */
54
-    protected $status;
51
+	/**
52
+	 * @var status can be completed or active. If none is specified all will be shown
53
+	 */
54
+	protected $status;
55 55
 
56
-    /**
57
-     * Setup the shortcode object
58
-     *
59
-     * @since 1.9.0
60
-     * @param array $attributes
61
-     * @param string $content
62
-     * @param string $shortcode the shortcode that was called for this instance
63
-     */
64
-    public function __construct( $attributes, $content, $shortcode ){
56
+	/**
57
+	 * Setup the shortcode object
58
+	 *
59
+	 * @since 1.9.0
60
+	 * @param array $attributes
61
+	 * @param string $content
62
+	 * @param string $shortcode the shortcode that was called for this instance
63
+	 */
64
+	public function __construct( $attributes, $content, $shortcode ){
65 65
 
66
-        if(!  is_user_logged_in() ) {
67
-            // show the login form
68
-            Sensei()->frontend->sensei_login_form();
69
-            return;
70
-        }
66
+		if(!  is_user_logged_in() ) {
67
+			// show the login form
68
+			Sensei()->frontend->sensei_login_form();
69
+			return;
70
+		}
71 71
 
72
-        // set up all argument need for constructing the course query
73
-        $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
74
-        $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'title';
75
-        $this->status = isset( $attributes['status'] ) ? $attributes['status'] : 'all';
72
+		// set up all argument need for constructing the course query
73
+		$this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
74
+		$this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'title';
75
+		$this->status = isset( $attributes['status'] ) ? $attributes['status'] : 'all';
76 76
 
77
-        // set the default for menu_order to be ASC
78
-        if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
77
+		// set the default for menu_order to be ASC
78
+		if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
79 79
 
80
-            $this->order =  'ASC';
80
+			$this->order =  'ASC';
81 81
 
82
-        }else{
82
+		}else{
83 83
 
84
-            // for everything else use the value passed or the default DESC
85
-            $this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'ASC';
84
+			// for everything else use the value passed or the default DESC
85
+			$this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'ASC';
86 86
 
87
-        }
87
+		}
88 88
 
89
-        // setup the course query that will be used when rendering
90
-        $this->setup_course_query();
91
-    }
89
+		// setup the course query that will be used when rendering
90
+		$this->setup_course_query();
91
+	}
92 92
 
93
-    /**
94
-     * Sets up the object course query
95
-     * that will be used in the render method.
96
-     *
97
-     * @since 1.9.0
98
-     */
99
-    protected function setup_course_query(){
93
+	/**
94
+	 * Sets up the object course query
95
+	 * that will be used in the render method.
96
+	 *
97
+	 * @since 1.9.0
98
+	 */
99
+	protected function setup_course_query(){
100 100
 
101
-        $status_query = array( 'user_id' => get_current_user_id(), 'type' => 'sensei_course_status' );
102
-        $user_courses_logs = Sensei_Utils::sensei_check_for_activity( $status_query , true );
103
-        if ( !is_array($user_courses_logs) ) {
101
+		$status_query = array( 'user_id' => get_current_user_id(), 'type' => 'sensei_course_status' );
102
+		$user_courses_logs = Sensei_Utils::sensei_check_for_activity( $status_query , true );
103
+		if ( !is_array($user_courses_logs) ) {
104 104
 
105
-            $user_courses_logs = array( $user_courses_logs );
105
+			$user_courses_logs = array( $user_courses_logs );
106 106
 
107
-        }
107
+		}
108 108
 
109
-        $completed_ids = $active_ids = array();
110
-        foreach( $user_courses_logs as $course_status ) {
109
+		$completed_ids = $active_ids = array();
110
+		foreach( $user_courses_logs as $course_status ) {
111 111
 
112
-            if ( Sensei_Utils::user_completed_course( $course_status, get_current_user_id() ) ) {
112
+			if ( Sensei_Utils::user_completed_course( $course_status, get_current_user_id() ) ) {
113 113
 
114
-                $completed_ids[] = $course_status->comment_post_ID;
114
+				$completed_ids[] = $course_status->comment_post_ID;
115 115
 
116
-            } else {
116
+			} else {
117 117
 
118
-                $active_ids[] = $course_status->comment_post_ID;
118
+				$active_ids[] = $course_status->comment_post_ID;
119 119
 
120
-            }
121
-        }
120
+			}
121
+		}
122 122
 
123
-        if( 'completed' == $this->status ){
123
+		if( 'completed' == $this->status ){
124 124
 
125
-            $included_courses =  $completed_ids;
125
+			$included_courses =  $completed_ids;
126 126
 
127 127
 
128
-        }elseif( 'active'==$this->status ){
128
+		}elseif( 'active'==$this->status ){
129 129
 
130
-            $included_courses =  $active_ids;
130
+			$included_courses =  $active_ids;
131 131
 
132
-        }else{ // all courses
132
+		}else{ // all courses
133 133
 
134
-            if( empty( $completed_ids ) ){
134
+			if( empty( $completed_ids ) ){
135 135
 
136
-                add_action( 'sensei_loop_course_inside_before', array( $this, 'completed_no_course_message_output' ) );
137
-            }
136
+				add_action( 'sensei_loop_course_inside_before', array( $this, 'completed_no_course_message_output' ) );
137
+			}
138 138
 
139
-            if( empty( $active_ids ) ){
139
+			if( empty( $active_ids ) ){
140 140
 
141
-                add_action( 'sensei_loop_course_inside_before', array( $this, 'active_no_course_message_output' ) );
141
+				add_action( 'sensei_loop_course_inside_before', array( $this, 'active_no_course_message_output' ) );
142 142
 
143
-            }
143
+			}
144 144
 
145
-            if( empty( $completed_ids ) &&  empty( $active_ids )  ){
145
+			if( empty( $completed_ids ) &&  empty( $active_ids )  ){
146 146
 
147
-                $included_courses = array('-1000'); // don't show any courses
147
+				$included_courses = array('-1000'); // don't show any courses
148 148
 
149
-            }else{
150
-                $included_courses = Sensei_Utils::array_zip_merge( (array)$active_ids, (array)$completed_ids );
151
-            }
149
+			}else{
150
+				$included_courses = Sensei_Utils::array_zip_merge( (array)$active_ids, (array)$completed_ids );
151
+			}
152
+
153
+
154
+		}
155
+
156
+		// temporary work around to hide pagination on the courses page
157
+		// this is in place until we can load the course for each tab via ajax
158
+		// if the shortcode is not active or in active and the active and completed
159
+		// tabs show up.
160
+		$number_of_posts = $this->number;
161
+		if( 'active' != $this->status && 'complete' != $this->status  ){
162
+			$number_of_posts = 1000;
163
+		}
164
+
165
+		// course query parameters
166
+		$query_var_paged = get_query_var('paged');
167
+		$query_args = array(
168
+			'post_type'        => 'course',
169
+			'post_status'      => 'publish',
170
+			'orderby'          => $this->orderby,
171
+			'order'            => $this->order,
172
+			'paged' => empty( $query_var_paged )? 1 : $query_var_paged,
173
+			'posts_per_page'   => $number_of_posts,
174
+			'post__in'         => $included_courses,
175
+		);
176
+
177
+		$this->query = new WP_Query( $query_args );
152 178
 
179
+	}// end setup _course_query
153 180
 
154
-        }
155
-
156
-        // temporary work around to hide pagination on the courses page
157
-        // this is in place until we can load the course for each tab via ajax
158
-        // if the shortcode is not active or in active and the active and completed
159
-        // tabs show up.
160
-        $number_of_posts = $this->number;
161
-        if( 'active' != $this->status && 'complete' != $this->status  ){
162
-            $number_of_posts = 1000;
163
-        }
164
-
165
-        // course query parameters
166
-        $query_var_paged = get_query_var('paged');
167
-        $query_args = array(
168
-            'post_type'        => 'course',
169
-            'post_status'      => 'publish',
170
-            'orderby'          => $this->orderby,
171
-            'order'            => $this->order,
172
-            'paged' => empty( $query_var_paged )? 1 : $query_var_paged,
173
-            'posts_per_page'   => $number_of_posts,
174
-            'post__in'         => $included_courses,
175
-        );
176
-
177
-        $this->query = new WP_Query( $query_args );
178
-
179
-    }// end setup _course_query
180
-
181
-    /**
182
-     * Output the message that tells the user they have
183
-     * no completed courses.
184
-     *
185
-     * @since 1.9.0
186
-     */
187
-    public function completed_no_course_message_output(){
188
-        ?>
181
+	/**
182
+	 * Output the message that tells the user they have
183
+	 * no completed courses.
184
+	 *
185
+	 * @since 1.9.0
186
+	 */
187
+	public function completed_no_course_message_output(){
188
+		?>
189 189
         <li class="user-completed">
190 190
             <div class="sensei-message info">
191 191
 
@@ -194,16 +194,16 @@  discard block
 block discarded – undo
194 194
             </div>
195 195
         </li>
196 196
         <?php
197
-    }
197
+	}
198 198
 
199
-    /**
200
-     * Output the message that tells the user they have
201
-     * no active courses.
202
-     *
203
-     * @since 1.9.0
204
-     */
205
-    public function active_no_course_message_output(){
206
-        ?>
199
+	/**
200
+	 * Output the message that tells the user they have
201
+	 * no active courses.
202
+	 *
203
+	 * @since 1.9.0
204
+	 */
205
+	public function active_no_course_message_output(){
206
+		?>
207 207
 
208 208
         <li class="user-active">
209 209
             <div class="sensei-message info">
@@ -219,141 +219,141 @@  discard block
 block discarded – undo
219 219
             </div>
220 220
         </li>
221 221
         <?php
222
-    }
222
+	}
223 223
 
224
-    /**
225
-     * Rendering the shortcode this class is responsible for.
226
-     *
227
-     * @return string $content
228
-     */
229
-    public function render(){
224
+	/**
225
+	 * Rendering the shortcode this class is responsible for.
226
+	 *
227
+	 * @return string $content
228
+	 */
229
+	public function render(){
230 230
 
231
-        global $wp_query;
231
+		global $wp_query;
232 232
 
233
-        if(!  is_user_logged_in() ) {
234
-            return '';
235
-        }
233
+		if(!  is_user_logged_in() ) {
234
+			return '';
235
+		}
236 236
 
237
-        // keep a reference to old query
238
-        $current_global_query = $wp_query;
237
+		// keep a reference to old query
238
+		$current_global_query = $wp_query;
239 239
 
240
-        // assign the query setup in $this-> setup_course_query
241
-        $wp_query = $this->query;
240
+		// assign the query setup in $this-> setup_course_query
241
+		$wp_query = $this->query;
242 242
 
243
-        $this->attach_shortcode_hooks();
243
+		$this->attach_shortcode_hooks();
244 244
 
245
-        ob_start();
246
-        echo '<section id="sensei-user-courses">';
247
-        Sensei_Messages::the_my_messages_link();
248
-        Sensei_Templates::get_template('loop-course.php');
249
-        Sensei_Templates::get_template('globals/pagination.php');
250
-        echo '</section>';
245
+		ob_start();
246
+		echo '<section id="sensei-user-courses">';
247
+		Sensei_Messages::the_my_messages_link();
248
+		Sensei_Templates::get_template('loop-course.php');
249
+		Sensei_Templates::get_template('globals/pagination.php');
250
+		echo '</section>';
251 251
 
252
-        $shortcode_output =  ob_get_clean();
252
+		$shortcode_output =  ob_get_clean();
253 253
 
254
-        $this->detach_shortcode_hooks();
254
+		$this->detach_shortcode_hooks();
255 255
 
256
-        //restore old query
257
-        $wp_query = $current_global_query;
256
+		//restore old query
257
+		$wp_query = $current_global_query;
258 258
 
259
-        return $shortcode_output;
259
+		return $shortcode_output;
260 260
 
261
-    }// end render
261
+	}// end render
262 262
 
263
-    /**
264
-     * Add hooks for the shortcode
265
-     *
266
-     * @since 1.9.0
267
-     */
268
-    public function attach_shortcode_hooks(){
263
+	/**
264
+	 * Add hooks for the shortcode
265
+	 *
266
+	 * @since 1.9.0
267
+	 */
268
+	public function attach_shortcode_hooks(){
269 269
 
270
-        // attach the toggle functionality
271
-        // don't show the toggle action if the user specified complete or active for this shortcode
272
-        if( ! in_array( $this->status, array( 'active', 'complete' ) ) ){
270
+		// attach the toggle functionality
271
+		// don't show the toggle action if the user specified complete or active for this shortcode
272
+		if( ! in_array( $this->status, array( 'active', 'complete' ) ) ){
273 273
 
274
-            add_action( 'sensei_loop_course_before', array( $this, 'course_toggle_actions' ) );
275
-            add_action( 'wp_footer', array( $this, 'print_course_toggle_actions_inline_script' ), 90 );
274
+			add_action( 'sensei_loop_course_before', array( $this, 'course_toggle_actions' ) );
275
+			add_action( 'wp_footer', array( $this, 'print_course_toggle_actions_inline_script' ), 90 );
276 276
 
277
-        }
277
+		}
278 278
 
279
-        // add extra classes to distinguish the course based on user completed or active
280
-        add_filter( 'sensei_course_loop_content_class', array( $this, 'course_status_class_tagging' ), 20, 2 );
279
+		// add extra classes to distinguish the course based on user completed or active
280
+		add_filter( 'sensei_course_loop_content_class', array( $this, 'course_status_class_tagging' ), 20, 2 );
281 281
 
282
-        // attach progress meter below course
283
-        add_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_progress' ) );
284
-        add_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_buttons' ) );
282
+		// attach progress meter below course
283
+		add_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_progress' ) );
284
+		add_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_buttons' ) );
285 285
 
286
-    }
286
+	}
287 287
 
288
-    /**
289
-     * Remove hooks for the shortcode
290
-     *
291
-     * @since 1.9.0
292
-     */
293
-    public function detach_shortcode_hooks(){
288
+	/**
289
+	 * Remove hooks for the shortcode
290
+	 *
291
+	 * @since 1.9.0
292
+	 */
293
+	public function detach_shortcode_hooks(){
294 294
 
295
-        //remove all hooks after the output is generated
296
-        remove_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_progress' ) );
297
-        remove_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_buttons' ) );
298
-        remove_filter( 'sensei_course_loop_content_class', array( $this, 'course_status_class_tagging' ), 20, 2 );
299
-        remove_action( 'sensei_loop_course_before', array( $this, 'course_toggle_actions' ) );
300
-    }
295
+		//remove all hooks after the output is generated
296
+		remove_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_progress' ) );
297
+		remove_action( 'sensei_course_content_inside_after', array( $this, 'attach_course_buttons' ) );
298
+		remove_filter( 'sensei_course_loop_content_class', array( $this, 'course_status_class_tagging' ), 20, 2 );
299
+		remove_action( 'sensei_loop_course_before', array( $this, 'course_toggle_actions' ) );
300
+	}
301 301
 
302
-    /**
303
-     * Hooks into sensei_course_content_inside_after
304
-     *
305
-     * @param $course
306
-     */
307
-    public function attach_course_progress( $course_id ){
302
+	/**
303
+	 * Hooks into sensei_course_content_inside_after
304
+	 *
305
+	 * @param $course
306
+	 */
307
+	public function attach_course_progress( $course_id ){
308 308
 
309
-        $percentage = Sensei()->course->get_completion_percentage( $course_id, get_current_user_id() );
310
-        echo Sensei()->course->get_progress_meter( $percentage );
309
+		$percentage = Sensei()->course->get_completion_percentage( $course_id, get_current_user_id() );
310
+		echo Sensei()->course->get_progress_meter( $percentage );
311 311
 
312
-    }// attach_course_progress
312
+	}// attach_course_progress
313 313
 
314 314
 
315
-    /**
316
-     * Hooked into sensei_course_content_inside_after
317
-     *
318
-     * Prints out the course action buttons
319
-     *
320
-     * @param integer $course_id
321
-     */
322
-    public function attach_course_buttons( $course_id ){
315
+	/**
316
+	 * Hooked into sensei_course_content_inside_after
317
+	 *
318
+	 * Prints out the course action buttons
319
+	 *
320
+	 * @param integer $course_id
321
+	 */
322
+	public function attach_course_buttons( $course_id ){
323 323
 
324
-        Sensei()->course->the_course_action_buttons( get_post( $course_id ) );
324
+		Sensei()->course->the_course_action_buttons( get_post( $course_id ) );
325 325
 
326
-    }// attach_course_buttons
326
+	}// attach_course_buttons
327 327
 
328
-    /**
329
-     * Add a the user status class for the given course.
330
-     *
331
-     * @since 1.9
332
-     *
333
-     * @param array $classes
334
-     * @param WP_Post $course
335
-     * @return array $classes
336
-     */
337
-    public function course_status_class_tagging($classes, $course){
328
+	/**
329
+	 * Add a the user status class for the given course.
330
+	 *
331
+	 * @since 1.9
332
+	 *
333
+	 * @param array $classes
334
+	 * @param WP_Post $course
335
+	 * @return array $classes
336
+	 */
337
+	public function course_status_class_tagging($classes, $course){
338 338
 
339
-        if ( Sensei_Utils::user_completed_course( $course, get_current_user_id() ) ) {
339
+		if ( Sensei_Utils::user_completed_course( $course, get_current_user_id() ) ) {
340 340
 
341
-            $classes[] = 'user-completed';
341
+			$classes[] = 'user-completed';
342 342
 
343
-        } else {
343
+		} else {
344 344
 
345
-            $classes[] = 'user-active';
345
+			$classes[] = 'user-active';
346 346
 
347
-        }
347
+		}
348 348
 
349
-        return $classes;
349
+		return $classes;
350 350
 
351
-    }// end course_status_class_tagging
351
+	}// end course_status_class_tagging
352 352
 
353
-    /**
354
-     * Output the course toggle functionality
355
-     */
356
-    public function course_toggle_actions(){ ?>
353
+	/**
354
+	 * Output the course toggle functionality
355
+	 */
356
+	public function course_toggle_actions(){ ?>
357 357
 
358 358
         <section id="user-course-status-toggle">
359 359
             <a id="sensei-user-courses-active-action" href=""><?php _e('Active Courses'); ?></a>
@@ -363,12 +363,12 @@  discard block
 block discarded – undo
363 363
 
364 364
     <?php }
365 365
 
366
-    /**
367
-     * Load the javascript for the toggle functionality
368
-     *
369
-     * @since 1.9.0
370
-     */
371
-    function print_course_toggle_actions_inline_script() { ?>
366
+	/**
367
+	 * Load the javascript for the toggle functionality
368
+	 *
369
+	 * @since 1.9.0
370
+	 */
371
+	function print_course_toggle_actions_inline_script() { ?>
372 372
 
373 373
         <script type="text/javascript">
374 374
             var buttonContainer = jQuery('#user-course-status-toggle');
Please login to merge, or discard this patch.