Completed
Push — master ( 0fef01...2dfc11 )
by Dwain
04:48
created
includes/class-sensei-analysis-user-profile-list-table.php 3 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -201,7 +201,7 @@
 block discarded – undo
201 201
 
202 202
 		if( 'complete' == $item->comment_approved ) {
203 203
 
204
-            $status =  __( 'Completed', 'woothemes-sensei' );
204
+			$status =  __( 'Completed', 'woothemes-sensei' );
205 205
 			$status_class = 'graded';
206 206
 
207 207
 			$course_end_date = $item->comment_date;
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.
Spacing   +78 added lines, -78 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 Analysis User Profile List Table Class
@@ -21,17 +21,17 @@  discard block
 block discarded – undo
21 21
 	 * @since  1.2.0
22 22
 	 * @return  void
23 23
 	 */
24
-	public function __construct ( $user_id = 0 ) {
25
-		$this->user_id = intval( $user_id );
24
+	public function __construct($user_id = 0) {
25
+		$this->user_id = intval($user_id);
26 26
 
27 27
 		// Load Parent token into constructor
28
-		parent::__construct( 'analysis_user_profile' );
28
+		parent::__construct('analysis_user_profile');
29 29
 
30 30
 		// Actions
31
-		add_action( 'sensei_before_list_table', array( $this, 'data_table_header' ) );
32
-		add_action( 'sensei_after_list_table', array( $this, 'data_table_footer' ) );
31
+		add_action('sensei_before_list_table', array($this, 'data_table_header'));
32
+		add_action('sensei_after_list_table', array($this, 'data_table_footer'));
33 33
 
34
-		add_filter( 'sensei_list_table_search_button_text', array( $this, 'search_button' ) );
34
+		add_filter('sensei_list_table_search_button_text', array($this, 'search_button'));
35 35
 	} // End __construct()
36 36
 
37 37
 	/**
@@ -41,14 +41,14 @@  discard block
 block discarded – undo
41 41
 	 */
42 42
 	function get_columns() {
43 43
 		$columns = array(
44
-			'title' => __( 'Course', 'woothemes-sensei' ),
45
-			'started' => __( 'Date Started', 'woothemes-sensei' ),
46
-			'completed' => __( 'Date Completed', 'woothemes-sensei' ),
47
-			'status' => __( 'Status', 'woothemes-sensei' ),
44
+			'title' => __('Course', 'woothemes-sensei'),
45
+			'started' => __('Date Started', 'woothemes-sensei'),
46
+			'completed' => __('Date Completed', 'woothemes-sensei'),
47
+			'status' => __('Status', 'woothemes-sensei'),
48 48
 //			'grade' => __( 'Grade', 'woothemes-sensei' ),
49
-			'percent' => __( 'Percent Complete', 'woothemes-sensei' ),
49
+			'percent' => __('Percent Complete', 'woothemes-sensei'),
50 50
 		);
51
-		$columns = apply_filters( 'sensei_analysis_user_profile_columns', $columns );
51
+		$columns = apply_filters('sensei_analysis_user_profile_columns', $columns);
52 52
 		return $columns;
53 53
 	}
54 54
 
@@ -59,14 +59,14 @@  discard block
 block discarded – undo
59 59
 	 */
60 60
 	function get_sortable_columns() {
61 61
 		$columns = array(
62
-			'title' => array( 'title', false ),
63
-			'started' => array( 'started', false ),
64
-			'completed' => array( 'completed', false ),
65
-			'status' => array( 'status', false ),
62
+			'title' => array('title', false),
63
+			'started' => array('started', false),
64
+			'completed' => array('completed', false),
65
+			'status' => array('status', false),
66 66
 //			'grade' => array( 'grade', false ),
67
-			'percent' => array( 'percent', false )
67
+			'percent' => array('percent', false)
68 68
 		);
69
-		$columns = apply_filters( 'sensei_analysis_user_profile_columns_sortable', $columns );
69
+		$columns = apply_filters('sensei_analysis_user_profile_columns_sortable', $columns);
70 70
 		return $columns;
71 71
 	}
72 72
 
@@ -80,32 +80,32 @@  discard block
 block discarded – undo
80 80
 
81 81
 		// Handle orderby (needs work)
82 82
 		$orderby = '';
83
-		if ( !empty( $_GET['orderby'] ) ) {
84
-			if ( array_key_exists( esc_html( $_GET['orderby'] ), $this->get_sortable_columns() ) ) {
85
-				$orderby = esc_html( $_GET['orderby'] );
83
+		if ( ! empty($_GET['orderby'])) {
84
+			if (array_key_exists(esc_html($_GET['orderby']), $this->get_sortable_columns())) {
85
+				$orderby = esc_html($_GET['orderby']);
86 86
 			} // End If Statement
87 87
 		}
88 88
 
89 89
 		// Handle order
90 90
 		$order = 'ASC';
91
-		if ( !empty( $_GET['order'] ) ) {
92
-			$order = ( 'ASC' == strtoupper($_GET['order']) ) ? 'ASC' : 'DESC';
91
+		if ( ! empty($_GET['order'])) {
92
+			$order = ('ASC' == strtoupper($_GET['order'])) ? 'ASC' : 'DESC';
93 93
 		}
94 94
 
95 95
 		// Handle search, need 4.1 version of WP to be able to restrict statuses to known post_ids
96 96
 		$search = false;
97
-		if ( !empty( $_GET['s'] ) ) {
98
-			$search = esc_html( $_GET['s'] );
97
+		if ( ! empty($_GET['s'])) {
98
+			$search = esc_html($_GET['s']);
99 99
 		} // End If Statement
100 100
 		$this->search = $search;
101 101
 
102
-		$per_page = $this->get_items_per_page( 'sensei_comments_per_page' );
103
-		$per_page = apply_filters( 'sensei_comments_per_page', $per_page, 'sensei_comments' );
102
+		$per_page = $this->get_items_per_page('sensei_comments_per_page');
103
+		$per_page = apply_filters('sensei_comments_per_page', $per_page, 'sensei_comments');
104 104
 
105 105
 		$paged = $this->get_pagenum();
106 106
 		$offset = 0;
107
-		if ( !empty($paged) ) {
108
-			$offset = $per_page * ( $paged - 1 );
107
+		if ( ! empty($paged)) {
108
+			$offset = $per_page * ($paged - 1);
109 109
 		} // End If Statement
110 110
 
111 111
 		$args = array(
@@ -114,19 +114,19 @@  discard block
 block discarded – undo
114 114
 			'orderby' => $orderby,
115 115
 			'order' => $order,
116 116
 		);
117
-		if ( $this->search ) {
117
+		if ($this->search) {
118 118
 			$args['search'] = $this->search;
119 119
 		} // End If Statement
120 120
 
121
-		$this->items = $this->get_course_statuses( $args );
121
+		$this->items = $this->get_course_statuses($args);
122 122
 
123 123
 		$total_items = $this->total_items;
124
-		$total_pages = ceil( $total_items / $per_page );
125
-		$this->set_pagination_args( array(
124
+		$total_pages = ceil($total_items / $per_page);
125
+		$this->set_pagination_args(array(
126 126
 			'total_items' => $total_items,
127 127
 			'total_pages' => $total_pages,
128 128
 			'per_page' => $per_page
129
-		) );
129
+		));
130 130
 	}
131 131
 
132 132
 	/**
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
 	 * @since  1.7.0
135 135
 	 * @return data
136 136
 	 */
137
-	public function generate_report( $report ) {
137
+	public function generate_report($report) {
138 138
 
139 139
 		$data = array();
140 140
 
@@ -142,22 +142,22 @@  discard block
 block discarded – undo
142 142
 
143 143
 		// Handle orderby
144 144
 		$orderby = '';
145
-		if ( !empty( $_GET['orderby'] ) ) {
146
-			if ( array_key_exists( esc_html( $_GET['orderby'] ), $this->get_sortable_columns() ) ) {
147
-				$orderby = esc_html( $_GET['orderby'] );
145
+		if ( ! empty($_GET['orderby'])) {
146
+			if (array_key_exists(esc_html($_GET['orderby']), $this->get_sortable_columns())) {
147
+				$orderby = esc_html($_GET['orderby']);
148 148
 			} // End If Statement
149 149
 		}
150 150
 
151 151
 		// Handle order
152 152
 		$order = 'ASC';
153
-		if ( !empty( $_GET['order'] ) ) {
154
-			$order = ( 'ASC' == strtoupper($_GET['order']) ) ? 'ASC' : 'DESC';
153
+		if ( ! empty($_GET['order'])) {
154
+			$order = ('ASC' == strtoupper($_GET['order'])) ? 'ASC' : 'DESC';
155 155
 		}
156 156
 
157 157
 		// Handle search
158 158
 		$search = false;
159
-		if ( !empty( $_GET['s'] ) ) {
160
-			$search = esc_html( $_GET['s'] );
159
+		if ( ! empty($_GET['s'])) {
160
+			$search = esc_html($_GET['s']);
161 161
 		} // End If Statement
162 162
 		$this->search = $search;
163 163
 
@@ -165,23 +165,23 @@  discard block
 block discarded – undo
165 165
 			'orderby' => $orderby,
166 166
 			'order' => $order,
167 167
 		);
168
-		if ( $this->search ) {
168
+		if ($this->search) {
169 169
 			$args['search'] = $this->search;
170 170
 		} // End If Statement
171 171
 
172 172
 		// Start the csv with the column headings
173 173
 		$column_headers = array();
174 174
 		$columns = $this->get_columns();
175
-		foreach( $columns AS $key => $title ) {
175
+		foreach ($columns AS $key => $title) {
176 176
 			$column_headers[] = $title;
177 177
 		}
178 178
 		$data[] = $column_headers;
179 179
 
180
-		$this->items = $this->get_course_statuses( $args );
180
+		$this->items = $this->get_course_statuses($args);
181 181
 
182 182
 		// Process each row
183
-		foreach( $this->items AS $item) {
184
-			$data[] = $this->get_row_data( $item );
183
+		foreach ($this->items AS $item) {
184
+			$data[] = $this->get_row_data($item);
185 185
 		}
186 186
 
187 187
 		return $data;
@@ -192,43 +192,43 @@  discard block
 block discarded – undo
192 192
 	 * @since  1.7.0
193 193
 	 * @param object $item The current item
194 194
 	 */
195
-	protected function get_row_data( $item ) {
195
+	protected function get_row_data($item) {
196 196
 
197
-		$course_title =  get_the_title( $item->comment_post_ID );
198
-		$course_percent = get_comment_meta( $item->comment_ID, 'percent', true );
199
-		$course_start_date = get_comment_meta( $item->comment_ID, 'start', true );
197
+		$course_title = get_the_title($item->comment_post_ID);
198
+		$course_percent = get_comment_meta($item->comment_ID, 'percent', true);
199
+		$course_start_date = get_comment_meta($item->comment_ID, 'start', true);
200 200
 		$course_end_date = '';
201 201
 
202
-		if( 'complete' == $item->comment_approved ) {
202
+		if ('complete' == $item->comment_approved) {
203 203
 
204
-            $status =  __( 'Completed', 'woothemes-sensei' );
204
+            $status = __('Completed', 'woothemes-sensei');
205 205
 			$status_class = 'graded';
206 206
 
207 207
 			$course_end_date = $item->comment_date;
208 208
 
209 209
 		} else {
210 210
 
211
-			$status =  __( 'In Progress', 'woothemes-sensei' );
211
+			$status = __('In Progress', 'woothemes-sensei');
212 212
 			$status_class = 'in-progress';
213 213
 
214 214
 		}
215 215
 
216 216
 		// Output users data
217
-		if ( !$this->csv_output ) {
218
-			$url = add_query_arg( array( 'page' => $this->page_slug, 'user_id' => $this->user_id, 'course_id' => $item->comment_post_ID ), admin_url( 'admin.php' ) );
217
+		if ( ! $this->csv_output) {
218
+			$url = add_query_arg(array('page' => $this->page_slug, 'user_id' => $this->user_id, 'course_id' => $item->comment_post_ID), admin_url('admin.php'));
219 219
 
220
-			$course_title = '<strong><a class="row-title" href="' . esc_url( $url ) . '">' . $course_title . '</a></strong>';
221
-			$status = sprintf( '<span class="%s">%s</span>', $status_class, $status );
222
-			if ( is_numeric($course_percent) ) {
220
+			$course_title = '<strong><a class="row-title" href="'.esc_url($url).'">'.$course_title.'</a></strong>';
221
+			$status = sprintf('<span class="%s">%s</span>', $status_class, $status);
222
+			if (is_numeric($course_percent)) {
223 223
 				$course_percent .= '%';
224 224
 			}
225 225
 		} // End If Statement
226
-		$column_data = apply_filters( 'sensei_analysis_user_profile_column_data', array( 'title' => $course_title,
226
+		$column_data = apply_filters('sensei_analysis_user_profile_column_data', array('title' => $course_title,
227 227
 										'started' => $course_start_date,
228 228
 										'completed' => $course_end_date,
229 229
 										'status' => $status,
230 230
 										'percent' => $course_percent,
231
-									), $item );
231
+									), $item);
232 232
 
233 233
 		return $column_data;
234 234
 	}
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
 	 * @since  1.7.0
239 239
 	 * @return array statuses
240 240
 	 */
241
-	private function get_course_statuses( $args ) {
241
+	private function get_course_statuses($args) {
242 242
 
243 243
 		$activity_args = array( 
244 244
 				'user_id' => $this->user_id,
@@ -250,23 +250,23 @@  discard block
 block discarded – undo
250 250
 				'status' => 'any',
251 251
 			);
252 252
 
253
-		$activity_args = apply_filters( 'sensei_analysis_user_profile_filter_statuses', $activity_args );
253
+		$activity_args = apply_filters('sensei_analysis_user_profile_filter_statuses', $activity_args);
254 254
 
255 255
 		// WP_Comment_Query doesn't support SQL_CALC_FOUND_ROWS, so instead do this twice
256
-		$this->total_items = Sensei_Utils::sensei_check_for_activity( array_merge( $activity_args, array('count' => true, 'offset' => 0, 'number' => 0) ) );
256
+		$this->total_items = Sensei_Utils::sensei_check_for_activity(array_merge($activity_args, array('count' => true, 'offset' => 0, 'number' => 0)));
257 257
 
258 258
 		// Ensure we change our range to fit (in case a search threw off the pagination) - Should this be added to all views?
259
-		if ( $this->total_items < $activity_args['offset'] ) {
259
+		if ($this->total_items < $activity_args['offset']) {
260 260
 
261
-			$new_paged = floor( $this->total_items / $activity_args['number'] );
261
+			$new_paged = floor($this->total_items / $activity_args['number']);
262 262
 			$activity_args['offset'] = $new_paged * $activity_args['number'];
263 263
 
264 264
 		}
265
-		$statuses = Sensei_Utils::sensei_check_for_activity( $activity_args, true );
265
+		$statuses = Sensei_Utils::sensei_check_for_activity($activity_args, true);
266 266
 
267 267
 		// Need to always return an array, even with only 1 item
268
-		if ( !is_array($statuses) ) {
269
-			$statuses = array( $statuses );
268
+		if ( ! is_array($statuses)) {
269
+			$statuses = array($statuses);
270 270
 		}
271 271
 
272 272
 		return $statuses;
@@ -279,7 +279,7 @@  discard block
 block discarded – undo
279 279
 	 * @return void
280 280
 	 */
281 281
 	public function no_items() {
282
-		echo  __( 'No courses found.', 'woothemes-sensei' );
282
+		echo  __('No courses found.', 'woothemes-sensei');
283 283
 	} // End no_items()
284 284
 
285 285
 	/**
@@ -288,7 +288,7 @@  discard block
 block discarded – undo
288 288
 	 * @return void
289 289
 	 */
290 290
 	public function data_table_header() {
291
-		echo '<strong>' . __( 'Courses', 'woothemes-sensei' ) . '</strong>';
291
+		echo '<strong>'.__('Courses', 'woothemes-sensei').'</strong>';
292 292
 	}
293 293
 
294 294
 	/**
@@ -297,10 +297,10 @@  discard block
 block discarded – undo
297 297
 	 * @return void
298 298
 	 */
299 299
 	public function data_table_footer() {
300
-		$user = get_user_by( 'id', $this->user_id );
301
-		$report = sanitize_title( $user->display_name ) . '-course-overview';
302
-		$url = add_query_arg( array( 'page' => $this->page_slug, 'user_id' => $this->user_id, 'sensei_report_download' => $report ), admin_url( 'admin.php' ) );
303
-		echo '<a class="button button-primary" href="' . esc_url( wp_nonce_url( $url, 'sensei_csv_download-' . $report, '_sdl_nonce' ) ) . '">' . __( 'Export all rows (CSV)', 'woothemes-sensei' ) . '</a>';
300
+		$user = get_user_by('id', $this->user_id);
301
+		$report = sanitize_title($user->display_name).'-course-overview';
302
+		$url = add_query_arg(array('page' => $this->page_slug, 'user_id' => $this->user_id, 'sensei_report_download' => $report), admin_url('admin.php'));
303
+		echo '<a class="button button-primary" href="'.esc_url(wp_nonce_url($url, 'sensei_csv_download-'.$report, '_sdl_nonce')).'">'.__('Export all rows (CSV)', 'woothemes-sensei').'</a>';
304 304
 	}
305 305
 
306 306
 	/**
@@ -308,8 +308,8 @@  discard block
 block discarded – undo
308 308
 	 * @since  1.7.0
309 309
 	 * @return void
310 310
 	 */
311
-	public function search_button( $text = '' ) {
312
-		return __( 'Search Courses', 'woothemes-sensei' );;
311
+	public function search_button($text = '') {
312
+		return __('Search Courses', 'woothemes-sensei'); ;
313 313
 	}
314 314
 
315 315
 } // End Class
Please login to merge, or discard this patch.
includes/class-sensei-admin.php 4 patches
Braces   +18 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 Administration Class
@@ -210,13 +213,15 @@  discard block
 block discarded – undo
210 213
 
211 214
 		$option_value = get_option( $option );
212 215
 
213
-		if ( $option_value > 0 && get_post( $option_value ) )
214
-			return;
216
+		if ( $option_value > 0 && get_post( $option_value ) ) {
217
+					return;
218
+		}
215 219
 
216 220
 		$page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->posts . " WHERE post_name = %s LIMIT 1;", $slug ) );
217 221
 		if ( $page_found ) :
218
-			if ( ! $option_value )
219
-				update_option( $option, $page_found );
222
+			if ( ! $option_value ) {
223
+							update_option( $option, $page_found );
224
+			}
220 225
 			return;
221 226
 		endif;
222 227
 
@@ -723,7 +728,9 @@  discard block
 block discarded – undo
723 728
 		$types = array( 'course', 'lesson', 'question' );
724 729
 
725 730
 		foreach( $types as $type ) {
726
-			if( ! post_type_exists( $type ) ) continue;
731
+			if( ! post_type_exists( $type ) ) {
732
+				continue;
733
+			}
727 734
 
728 735
 			$num_posts = wp_count_posts( $type );
729 736
 
@@ -791,7 +798,9 @@  discard block
 block discarded – undo
791 798
 
792 799
 		$html = '';
793 800
 
794
-		if( 0 == count( $settings ) ) return $html;
801
+		if( 0 == count( $settings ) ) {
802
+			return $html;
803
+		}
795 804
 
796 805
 		$html .= '<div class="sensei-options-panel">' . "\n";
797 806
 
@@ -873,11 +882,11 @@  discard block
 block discarded – undo
873 882
                                     //backwards compatibility
874 883
                                     if( empty( $data ) || 'on' == $data ){
875 884
                                         $checked_value = 'on';
876
-                                    }elseif( 'yes' == $data  ) {
885
+                                    } elseif( 'yes' == $data  ) {
877 886
 
878 887
                                         $checked_value = 'yes';
879 888
 
880
-                                    }elseif( 'auto' == $data  ) {
889
+                                    } elseif( 'auto' == $data  ) {
881 890
 
882 891
                                         $checked_value = 'auto';
883 892
 
Please login to merge, or discard this patch.
Doc Comments   +4 added lines, -1 removed lines patch added patch discarded remove patch
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
 	 *
200 200
 	 * @access public
201 201
 	 * @param mixed $slug
202
-	 * @param mixed $option
202
+	 * @param string $option
203 203
 	 * @param string $page_title (default: '')
204 204
 	 * @param string $page_content (default: '')
205 205
 	 * @param int $post_parent (default: 0)
@@ -1047,6 +1047,9 @@  discard block
 block discarded – undo
1047 1047
 		?></div><?php
1048 1048
 	}
1049 1049
 
1050
+	/**
1051
+	 * @return string
1052
+	 */
1050 1053
 	public function get_course_order() {
1051 1054
 		return get_option( 'sensei_course_order', '' );
1052 1055
 	}
Please login to merge, or discard this patch.
Indentation   +245 added lines, -245 removed lines patch added patch discarded remove patch
@@ -20,11 +20,11 @@  discard block
 block discarded – undo
20 20
 	 */
21 21
 	public function __construct () {
22 22
 
23
-        //register admin styles
23
+		//register admin styles
24 24
 		add_action( 'admin_enqueue_scripts', array( $this, 'admin_styles_global' ) );
25 25
 
26
-        //register admin scripts
27
-        add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) );
26
+		//register admin scripts
27
+		add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) );
28 28
 
29 29
 		add_action( 'admin_print_styles', array( $this, 'admin_notices_styles' ) );
30 30
 		add_action( 'settings_before_form', array( $this, 'install_pages_output' ) );
@@ -33,7 +33,7 @@  discard block
 block discarded – undo
33 33
 		add_action( 'admin_head', array( $this, 'admin_menu_highlight' ) );
34 34
 		add_action( 'admin_init', array( $this, 'page_redirect' ) );
35 35
 		add_action( 'admin_init', array( $this, 'sensei_add_custom_menu_items' ) );
36
-        add_action( 'admin_init', array( __CLASS__, 'install_pages' ));
36
+		add_action( 'admin_init', array( __CLASS__, 'install_pages' ));
37 37
 
38 38
 		// Duplicate lesson & courses
39 39
 		add_filter( 'post_row_actions', array( $this, 'duplicate_action_link' ), 10, 2 );
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 
85 85
 		if( $menu_cap ) {
86 86
 			$menu[] = array( '', 'read', 'separator-sensei', '', 'wp-menu-separator sensei' );
87
-            add_menu_page( 'Sensei', 'Sensei', $menu_cap, 'sensei' , array( Sensei()->analysis, 'analysis_page' ) , '', '50' );
87
+			add_menu_page( 'Sensei', 'Sensei', $menu_cap, 'sensei' , array( Sensei()->analysis, 'analysis_page' ) , '', '50' );
88 88
 		}
89 89
 
90 90
 		add_submenu_page( 'edit.php?post_type=course', __( 'Order Courses', 'woothemes-sensei' ), __( 'Order Courses', 'woothemes-sensei' ), 'manage_sensei', 'course-order', array( $this, 'course_order_screen' ) );
@@ -141,14 +141,14 @@  discard block
 block discarded – undo
141 141
 			$submenu_file = 'edit-tags.php?taxonomy=course-category&amp;post_type=course';
142 142
 			$parent_file  = 'edit.php?post_type=course';
143 143
 
144
-        } elseif ( $screen->base == 'edit-tags' && $taxonomy == 'module' ) {
144
+		} elseif ( $screen->base == 'edit-tags' && $taxonomy == 'module' ) {
145 145
 
146
-            $submenu_file = 'edit-tags.php?taxonomy=module';
147
-            $parent_file  = 'edit.php?post_type=course';
146
+			$submenu_file = 'edit-tags.php?taxonomy=module';
147
+			$parent_file  = 'edit.php?post_type=course';
148 148
 
149 149
 		} elseif ( in_array( $screen->id, array( 'sensei_message', 'edit-sensei_message' ) ) ) {
150 150
 
151
-            $submenu_file = 'edit.php?post_type=sensei_message';
151
+			$submenu_file = 'edit.php?post_type=sensei_message';
152 152
 			$parent_file  = 'sensei';
153 153
 
154 154
 		}
@@ -176,9 +176,9 @@  discard block
 block discarded – undo
176 176
 	 */
177 177
 	function install_pages_output() {
178 178
 
179
-        if( isset($_GET['sensei_install_complete']) && 'true' == $_GET['sensei_install_complete']) {
179
+		if( isset($_GET['sensei_install_complete']) && 'true' == $_GET['sensei_install_complete']) {
180 180
 
181
-            ?>
181
+			?>
182 182
             <div id="message" class="updated sensei-message sensei-connect">
183 183
                 <p><?php _e( '<strong>Congratulations!</strong> &#8211; Sensei has been installed and set up.', 'woothemes-sensei' ); ?></p>
184 184
                 <p><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.woothemes.com/sensei/" data-text="A premium Learning Management plugin for #WordPress that helps you create courses. Beautifully." data-via="WooThemes" data-size="large" data-hashtags="Sensei">Tweet</a>
@@ -186,7 +186,7 @@  discard block
 block discarded – undo
186 186
             </div>
187 187
             <?php
188 188
 
189
-        }
189
+		}
190 190
 
191 191
 	} // End install_pages_output()
192 192
 
@@ -218,18 +218,18 @@  discard block
 block discarded – undo
218 218
 		endif;
219 219
 
220 220
 		$page_data = array(
221
-	        'post_status' 		=> 'publish',
222
-	        'post_type' 		=> 'page',
223
-	        'post_author' 		=> 1,
224
-	        'post_name' 		=> $slug,
225
-	        'post_title' 		=> $page_title,
226
-	        'post_content' 		=> $page_content,
227
-	        'post_parent' 		=> $post_parent,
228
-	        'comment_status' 	=> 'closed'
229
-	    );
230
-	    $page_id = wp_insert_post( $page_data );
231
-
232
-	    update_option( $option, $page_id );
221
+			'post_status' 		=> 'publish',
222
+			'post_type' 		=> 'page',
223
+			'post_author' 		=> 1,
224
+			'post_name' 		=> $slug,
225
+			'post_title' 		=> $page_title,
226
+			'post_content' 		=> $page_content,
227
+			'post_parent' 		=> $post_parent,
228
+			'comment_status' 	=> 'closed'
229
+		);
230
+		$page_id = wp_insert_post( $page_data );
231
+
232
+		update_option( $option, $page_id );
233 233
 	} // End create_page()
234 234
 
235 235
 
@@ -242,10 +242,10 @@  discard block
 block discarded – undo
242 242
 	function create_pages() {
243 243
 
244 244
 		// Courses page
245
-	    $this->create_page( esc_sql( _x('courses-overview', 'page_slug', 'woothemes-sensei') ), 'woothemes-sensei_courses_page_id', __('Courses', 'woothemes-sensei'), '[newcourses][featuredcourses][freecourses][paidcourses]' );
245
+		$this->create_page( esc_sql( _x('courses-overview', 'page_slug', 'woothemes-sensei') ), 'woothemes-sensei_courses_page_id', __('Courses', 'woothemes-sensei'), '[newcourses][featuredcourses][freecourses][paidcourses]' );
246 246
 
247 247
 		// User Dashboard page
248
-	    $this->create_page( esc_sql( _x('my-courses', 'page_slug', 'woothemes-sensei') ), 'woothemes-sensei_user_dashboard_page_id', __('My Courses', 'woothemes-sensei'), '[usercourses]' );
248
+		$this->create_page( esc_sql( _x('my-courses', 'page_slug', 'woothemes-sensei') ), 'woothemes-sensei_user_dashboard_page_id', __('My Courses', 'woothemes-sensei'), '[usercourses]' );
249 249
 
250 250
 	} // End create_pages()
251 251
 
@@ -266,8 +266,8 @@  discard block
 block discarded – undo
266 266
 		wp_register_style( 'woothemes-sensei-global', Sensei()->plugin_url . 'assets/css/global.css', '', Sensei()->version, 'screen' );
267 267
 		wp_enqueue_style( 'woothemes-sensei-global' );
268 268
 
269
-        // Select 2 styles
270
-        wp_enqueue_style( 'select2', Sensei()->plugin_url . 'assets/css/select2/select2.css', '', Sensei()->version, 'screen' );
269
+		// Select 2 styles
270
+		wp_enqueue_style( 'select2', Sensei()->plugin_url . 'assets/css/select2/select2.css', '', Sensei()->version, 'screen' );
271 271
 
272 272
 		// Test for Write Panel Pages
273 273
 		if ( ( ( isset( $post_type ) && in_array( $post_type, $allowed_post_types ) ) && ( isset( $hook ) && in_array( $hook, $allowed_post_type_pages ) ) ) || ( isset( $_GET['page'] ) && in_array( $_GET['page'], $allowed_pages ) ) ) {
@@ -280,32 +280,32 @@  discard block
 block discarded – undo
280 280
 	} // End admin_styles_global()
281 281
 
282 282
 
283
-    /**
284
-     * Globally register all scripts needed in admin.
285
-     *
286
-     * The script users should enqueue the script when needed.
287
-     *
288
-     * @since 1.8.2
289
-     * @access public
290
-     */
291
-    public function register_scripts( $hook ){
283
+	/**
284
+	 * Globally register all scripts needed in admin.
285
+	 *
286
+	 * The script users should enqueue the script when needed.
287
+	 *
288
+	 * @since 1.8.2
289
+	 * @access public
290
+	 */
291
+	public function register_scripts( $hook ){
292 292
 
293
-        $screen = get_current_screen();
293
+		$screen = get_current_screen();
294 294
 
295
-        // Allow developers to load non-minified versions of scripts
296
-        $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
295
+		// Allow developers to load non-minified versions of scripts
296
+		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
297 297
 
298
-        // Select2 script used to enhance all select boxes
299
-        wp_register_script( 'select2', Sensei()->plugin_url . '/assets/js/select2/select2' . $suffix . '.js', array( 'jquery' ), Sensei()->version );
298
+		// Select2 script used to enhance all select boxes
299
+		wp_register_script( 'select2', Sensei()->plugin_url . '/assets/js/select2/select2' . $suffix . '.js', array( 'jquery' ), Sensei()->version );
300 300
 
301
-        // load edit module scripts
302
-        if( 'edit-module' ==  $screen->id ){
301
+		// load edit module scripts
302
+		if( 'edit-module' ==  $screen->id ){
303 303
 
304
-            wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery.min.js', array( 'jquery', 'sensei-chosen' ), Sensei()->version, true );
304
+			wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery.min.js', array( 'jquery', 'sensei-chosen' ), Sensei()->version, true );
305 305
 
306
-        }
306
+		}
307 307
 
308
-    }
308
+	}
309 309
 
310 310
 
311 311
 	/**
@@ -315,7 +315,7 @@  discard block
 block discarded – undo
315 315
 	 * @return void
316 316
 	 */
317 317
 	function admin_install_notice() {
318
-	    ?>
318
+		?>
319 319
 	    <div id="message" class="updated sensei-message sensei-connect">
320 320
 
321 321
             <p>
@@ -350,7 +350,7 @@  discard block
 block discarded – undo
350 350
 	 * @return void
351 351
 	 */
352 352
 	function admin_installed_notice() {
353
-	    ?>
353
+		?>
354 354
 	    <div id="message" class="updated sensei-message sensei-connect">
355 355
 
356 356
 	    	<p>
@@ -378,8 +378,8 @@  discard block
 block discarded – undo
378 378
 	    </div>
379 379
 	    <?php
380 380
 
381
-	    // Set installed option
382
-	    update_option('sensei_installed', 0);
381
+		// Set installed option
382
+		update_option('sensei_installed', 0);
383 383
 	} // End admin_installed_notice()
384 384
 
385 385
 
@@ -411,21 +411,21 @@  discard block
 block discarded – undo
411 411
 	function admin_notices_styles() {
412 412
 
413 413
 		// Installed notices
414
-	    if ( 1 == get_option( 'sensei_installed' ) ) {
414
+		if ( 1 == get_option( 'sensei_installed' ) ) {
415 415
 
416
-	    	wp_enqueue_style( 'sensei-activation', plugins_url(  '/assets/css/activation.css', dirname( __FILE__ ) ), '', Sensei()->version );
416
+			wp_enqueue_style( 'sensei-activation', plugins_url(  '/assets/css/activation.css', dirname( __FILE__ ) ), '', Sensei()->version );
417 417
 
418
-	    	if (get_option('skip_install_sensei_pages')!=1 && Sensei()->get_page_id('course')<1 && !isset($_GET['install_sensei_pages']) && !isset($_GET['skip_install_sensei_pages'])) {
419
-	    		add_action( 'admin_notices', array( $this, 'admin_install_notice' ) );
420
-	    	} elseif ( !isset($_GET['page']) || $_GET['page']!='woothemes-sensei-settings' ) {
421
-	    		add_action( 'admin_notices', array( $this, 'admin_installed_notice' ) );
422
-	    	} // End If Statement
418
+			if (get_option('skip_install_sensei_pages')!=1 && Sensei()->get_page_id('course')<1 && !isset($_GET['install_sensei_pages']) && !isset($_GET['skip_install_sensei_pages'])) {
419
+				add_action( 'admin_notices', array( $this, 'admin_install_notice' ) );
420
+			} elseif ( !isset($_GET['page']) || $_GET['page']!='woothemes-sensei-settings' ) {
421
+				add_action( 'admin_notices', array( $this, 'admin_installed_notice' ) );
422
+			} // End If Statement
423 423
 
424
-	    } // End If Statement
424
+		} // End If Statement
425 425
 
426
-	    if ( Sensei_Language_Pack_Manager::has_language_pack_available() ) {
427
-	    	add_action( 'admin_notices', array( $this, 'language_pack_install_notice' ) );
428
-	    }
426
+		if ( Sensei_Language_Pack_Manager::has_language_pack_available() ) {
427
+			add_action( 'admin_notices', array( $this, 'language_pack_install_notice' ) );
428
+		}
429 429
 
430 430
 	} // End admin_notices_styles()
431 431
 
@@ -541,30 +541,30 @@  discard block
 block discarded – undo
541 541
 	 */
542 542
 	private function duplicate_lesson_quizzes( $old_lesson_id, $new_lesson_id ) {
543 543
 
544
-        $old_quiz_id = Sensei()->lesson->lesson_quizzes( $old_lesson_id );
545
-        $old_quiz_questions = Sensei()->lesson->lesson_quiz_questions( $old_quiz_id );
544
+		$old_quiz_id = Sensei()->lesson->lesson_quizzes( $old_lesson_id );
545
+		$old_quiz_questions = Sensei()->lesson->lesson_quiz_questions( $old_quiz_id );
546 546
 
547
-        // duplicate the generic wp post information
547
+		// duplicate the generic wp post information
548 548
 		$new_quiz = $this->duplicate_post( get_post( $old_quiz_id ), '' );
549 549
 
550 550
 		//update the new lesson data
551
-        add_post_meta( $new_lesson_id, '_lesson_quiz', $new_quiz->ID );
551
+		add_post_meta( $new_lesson_id, '_lesson_quiz', $new_quiz->ID );
552 552
 
553 553
 		//update the new quiz data
554
-        add_post_meta( $new_quiz->ID, '_quiz_lesson', $new_lesson_id );
555
-        wp_update_post(
556
-            array(
557
-                'ID' => $new_quiz->ID,
558
-                'post_parent' => $new_lesson_id
559
-            )
560
-        );
554
+		add_post_meta( $new_quiz->ID, '_quiz_lesson', $new_lesson_id );
555
+		wp_update_post(
556
+			array(
557
+				'ID' => $new_quiz->ID,
558
+				'post_parent' => $new_lesson_id
559
+			)
560
+		);
561 561
 
562 562
 		foreach( $old_quiz_questions as $question ) {
563 563
 
564 564
 			// copy the question order over to the new quiz
565 565
 			$old_question_order = get_post_meta( $question->ID, '_quiz_question_order'. $old_quiz_id, true );
566
-            $new_question_order = str_ireplace( $old_quiz_id, $new_quiz->ID , $old_question_order );
567
-            add_post_meta( $question->ID, '_quiz_question_order' . $new_quiz->ID, $new_question_order );
566
+			$new_question_order = str_ireplace( $old_quiz_id, $new_quiz->ID , $old_question_order );
567
+			add_post_meta( $question->ID, '_quiz_question_order' . $new_quiz->ID, $new_question_order );
568 568
 
569 569
 			// Add question to quiz
570 570
 			add_post_meta( $question->ID, '_quiz_id', $new_quiz->ID, false );
@@ -886,21 +886,21 @@  discard block
 block discarded – undo
886 886
 								break;
887 887
 
888 888
 								case 'checkbox':
889
-                                    //backwards compatibility
890
-                                    if( empty( $data ) || 'on' == $data ){
891
-                                        $checked_value = 'on';
892
-                                    }elseif( 'yes' == $data  ) {
889
+									//backwards compatibility
890
+									if( empty( $data ) || 'on' == $data ){
891
+										$checked_value = 'on';
892
+									}elseif( 'yes' == $data  ) {
893 893
 
894
-                                        $checked_value = 'yes';
894
+										$checked_value = 'yes';
895 895
 
896
-                                    }elseif( 'auto' == $data  ) {
896
+									}elseif( 'auto' == $data  ) {
897 897
 
898
-                                        $checked_value = 'auto';
898
+										$checked_value = 'auto';
899 899
 
900
-                                    } else {
901
-                                        $checked_value = 1;
902
-                                        $data = intval( $data );
903
-                                    }
900
+									} else {
901
+										$checked_value = 1;
902
+										$data = intval( $data );
903
+									}
904 904
 									$checked = checked( $checked_value, $data, false );
905 905
 									$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . $field['type'] . '" name="' . esc_attr( $field['id'] ) . '" ' . $checked . ' ' . $disabled . '/>' . "\n";
906 906
 								break;
@@ -1004,26 +1004,26 @@  discard block
 block discarded – undo
1004 1004
 
1005 1005
 		if( 0 < count( $courses ) ) {
1006 1006
 
1007
-            // order the courses as set by the users
1008
-            $all_course_ids = array();
1009
-            foreach( $courses as $course ){
1007
+			// order the courses as set by the users
1008
+			$all_course_ids = array();
1009
+			foreach( $courses as $course ){
1010 1010
 
1011
-                $all_course_ids[] = (string)$course->ID;
1011
+				$all_course_ids[] = (string)$course->ID;
1012 1012
 
1013
-            }
1014
-            $order_string = $this->get_course_order();
1013
+			}
1014
+			$order_string = $this->get_course_order();
1015 1015
 
1016
-            if( !empty( $order_string ) ){
1017
-                $ordered_course_ids = explode(',' , $order_string );
1018
-                $all_course_ids = array_unique( array_merge( $ordered_course_ids , $all_course_ids ) );
1019
-            }
1016
+			if( !empty( $order_string ) ){
1017
+				$ordered_course_ids = explode(',' , $order_string );
1018
+				$all_course_ids = array_unique( array_merge( $ordered_course_ids , $all_course_ids ) );
1019
+			}
1020 1020
 
1021 1021
 
1022 1022
 			$html .= '<form id="editgrouping" method="post" action="" class="validate">' . "\n";
1023 1023
 			$html .= '<ul class="sortable-course-list">' . "\n";
1024 1024
 			$count = 0;
1025 1025
 			foreach ( $all_course_ids as $course_id ) {
1026
-                $course = get_post( $course_id );
1026
+				$course = get_post( $course_id );
1027 1027
 				$count++;
1028 1028
 				$class = 'course';
1029 1029
 				if ( $count == 1 ) { $class .= ' first'; }
@@ -1138,73 +1138,73 @@  discard block
 block discarded – undo
1138 1138
 
1139 1139
 				$displayed_lessons = array();
1140 1140
 
1141
-                $modules = Sensei()->modules->get_course_modules( intval( $course_id ) );
1142
-
1143
-                foreach( $modules as $module ) {
1144
-
1145
-                    $args = array(
1146
-                        'post_type' => 'lesson',
1147
-                        'post_status' => 'publish',
1148
-                        'posts_per_page' => -1,
1149
-                        'meta_query' => array(
1150
-                            array(
1151
-                                'key' => '_lesson_course',
1152
-                                'value' => intval( $course_id ),
1153
-                                'compare' => '='
1154
-                            )
1155
-                        ),
1156
-                        'tax_query' => array(
1157
-                            array(
1158
-                                'taxonomy' => Sensei()->modules->taxonomy,
1159
-                                'field' => 'id',
1160
-                                'terms' => intval( $module->term_id )
1161
-                            )
1162
-                        ),
1163
-                        'meta_key' => '_order_module_' . $module->term_id,
1164
-                        'orderby' => 'meta_value_num date',
1165
-                        'order' => 'ASC',
1166
-                        'suppress_filters' => 0
1167
-                    );
1168
-
1169
-                    $lessons = get_posts( $args );
1170
-
1171
-                    if( count( $lessons ) > 0 ) {
1172
-                        $html .= '<h3>' . $module->name . '</h3>' . "\n";
1173
-                        $html .= '<ul class="sortable-lesson-list" data-module_id="' . $module->term_id . '">' . "\n";
1174
-
1175
-                        $count = 0;
1176
-                        foreach( $lessons as $lesson ) {
1177
-                            $count++;
1178
-                            $class = 'lesson';
1179
-                            if ( $count == 1 ) { $class .= ' first'; }
1180
-                            if ( $count == count( $lesson ) ) { $class .= ' last'; }
1181
-                            if ( $count % 2 != 0 ) {
1182
-                                $class .= ' alternate';
1183
-                            }
1184
-
1185
-                            $html .= '<li class="' . esc_attr( $class ) . '"><span rel="' . esc_attr( $lesson->ID ) . '" style="width: 100%;"> ' . $lesson->post_title . '</span></li>' . "\n";
1186
-
1187
-                            $displayed_lessons[] = $lesson->ID;
1188
-                        }
1189
-
1190
-                        $html .= '</ul>' . "\n";
1191
-
1192
-                        $html .= '<input type="hidden" name="lesson-order-module-' . $module->term_id . '" value="" />' . "\n";
1193
-                    }
1194
-                }
1195
-
1196
-
1197
-                $lessons = Sensei()->course->course_lessons( $course_id );
1141
+				$modules = Sensei()->modules->get_course_modules( intval( $course_id ) );
1142
+
1143
+				foreach( $modules as $module ) {
1144
+
1145
+					$args = array(
1146
+						'post_type' => 'lesson',
1147
+						'post_status' => 'publish',
1148
+						'posts_per_page' => -1,
1149
+						'meta_query' => array(
1150
+							array(
1151
+								'key' => '_lesson_course',
1152
+								'value' => intval( $course_id ),
1153
+								'compare' => '='
1154
+							)
1155
+						),
1156
+						'tax_query' => array(
1157
+							array(
1158
+								'taxonomy' => Sensei()->modules->taxonomy,
1159
+								'field' => 'id',
1160
+								'terms' => intval( $module->term_id )
1161
+							)
1162
+						),
1163
+						'meta_key' => '_order_module_' . $module->term_id,
1164
+						'orderby' => 'meta_value_num date',
1165
+						'order' => 'ASC',
1166
+						'suppress_filters' => 0
1167
+					);
1168
+
1169
+					$lessons = get_posts( $args );
1170
+
1171
+					if( count( $lessons ) > 0 ) {
1172
+						$html .= '<h3>' . $module->name . '</h3>' . "\n";
1173
+						$html .= '<ul class="sortable-lesson-list" data-module_id="' . $module->term_id . '">' . "\n";
1174
+
1175
+						$count = 0;
1176
+						foreach( $lessons as $lesson ) {
1177
+							$count++;
1178
+							$class = 'lesson';
1179
+							if ( $count == 1 ) { $class .= ' first'; }
1180
+							if ( $count == count( $lesson ) ) { $class .= ' last'; }
1181
+							if ( $count % 2 != 0 ) {
1182
+								$class .= ' alternate';
1183
+							}
1184
+
1185
+							$html .= '<li class="' . esc_attr( $class ) . '"><span rel="' . esc_attr( $lesson->ID ) . '" style="width: 100%;"> ' . $lesson->post_title . '</span></li>' . "\n";
1186
+
1187
+							$displayed_lessons[] = $lesson->ID;
1188
+						}
1189
+
1190
+						$html .= '</ul>' . "\n";
1191
+
1192
+						$html .= '<input type="hidden" name="lesson-order-module-' . $module->term_id . '" value="" />' . "\n";
1193
+					}
1194
+				}
1195
+
1196
+
1197
+				$lessons = Sensei()->course->course_lessons( $course_id );
1198 1198
 
1199 1199
 				if( 0 < count( $lessons ) ) {
1200 1200
 
1201
-                    //get module term ids, will be used to exclude lessons
1202
-                    $module_items_ids = array();
1203
-                    if( ! empty( $modules ) ) {
1204
-                        foreach ($modules as $module) {
1205
-                            $module_items_ids[] = $module->term_id;
1206
-                        }
1207
-                    }
1201
+					//get module term ids, will be used to exclude lessons
1202
+					$module_items_ids = array();
1203
+					if( ! empty( $modules ) ) {
1204
+						foreach ($modules as $module) {
1205
+							$module_items_ids[] = $module->term_id;
1206
+						}
1207
+					}
1208 1208
 
1209 1209
 					if( 0 < count( $displayed_lessons ) ) {
1210 1210
 						$html .= '<h3>' . __( 'Other Lessons', 'woothemes-sensei' ) . '</h3>' . "\n";
@@ -1214,13 +1214,13 @@  discard block
 block discarded – undo
1214 1214
 					$count = 0;
1215 1215
 					foreach ( $lessons as $lesson ) {
1216 1216
 
1217
-                        // if lesson belongs to one fo the course modules then exclude it here
1218
-                        // as it is listed above
1219
-                        if( has_term( $module_items_ids, 'module', $lesson->ID )  ){
1217
+						// if lesson belongs to one fo the course modules then exclude it here
1218
+						// as it is listed above
1219
+						if( has_term( $module_items_ids, 'module', $lesson->ID )  ){
1220 1220
 
1221
-                            continue;
1221
+							continue;
1222 1222
 
1223
-                        }
1223
+						}
1224 1224
 
1225 1225
 						$count++;
1226 1226
 						$class = 'lesson';
@@ -1264,23 +1264,23 @@  discard block
 block discarded – undo
1264 1264
 
1265 1265
 		if( $course_id ) {
1266 1266
 
1267
-            $modules = Sensei()->modules->get_course_modules( intval( $course_id ) );
1267
+			$modules = Sensei()->modules->get_course_modules( intval( $course_id ) );
1268 1268
 
1269
-            foreach( $modules as $module ) {
1269
+			foreach( $modules as $module ) {
1270 1270
 
1271
-                $module_order_string = $_POST[ 'lesson-order-module-' . $module->term_id ];
1271
+				$module_order_string = $_POST[ 'lesson-order-module-' . $module->term_id ];
1272 1272
 
1273
-                if( $module_order_string ) {
1274
-                    $order = explode( ',', $module_order_string );
1275
-                    $i = 1;
1276
-                    foreach( $order as $lesson_id ) {
1277
-                        if( $lesson_id ) {
1278
-                            update_post_meta( $lesson_id, '_order_module_' . $module->term_id, $i );
1279
-                            ++$i;
1280
-                        }
1281
-                    }
1282
-                }
1283
-            }
1273
+				if( $module_order_string ) {
1274
+					$order = explode( ',', $module_order_string );
1275
+					$i = 1;
1276
+					foreach( $order as $lesson_id ) {
1277
+						if( $lesson_id ) {
1278
+							update_post_meta( $lesson_id, '_order_module_' . $module->term_id, $i );
1279
+							++$i;
1280
+						}
1281
+					}
1282
+				}
1283
+			}
1284 1284
 
1285 1285
 
1286 1286
 			if( $order_string ) {
@@ -1363,47 +1363,47 @@  discard block
 block discarded – undo
1363 1363
 
1364 1364
 	/**
1365 1365
 	 * Adding admin notice if the current
1366
-     * installed theme is not compatible
1367
-     *
1366
+	 * installed theme is not compatible
1367
+	 *
1368 1368
 	 * @return void
1369 1369
 	 */
1370 1370
 	public function theme_compatibility_notices() {
1371 1371
 
1372
-        if( isset( $_GET['sensei_hide_notice'] ) ) {
1373
-        	switch( esc_attr( $_GET['sensei_hide_notice'] ) ) {
1372
+		if( isset( $_GET['sensei_hide_notice'] ) ) {
1373
+			switch( esc_attr( $_GET['sensei_hide_notice'] ) ) {
1374 1374
 				case 'menu_settings': add_user_meta( get_current_user_id(), 'sensei_hide_menu_settings_notice', true ); break;
1375 1375
 				case 'theme_check': add_user_meta( get_current_user_id(), 'sensei_hide_theme_check_notice', true ); break;
1376 1376
 			}
1377
-        }
1377
+		}
1378 1378
 
1379
-        // white list templates that are already support by default and do not show notice for them
1380
-        $template = get_option( 'template' );
1379
+		// white list templates that are already support by default and do not show notice for them
1380
+		$template = get_option( 'template' );
1381 1381
 
1382
-        $white_list = array(    'twentyeleven',
1383
-                                'twentytwelve',
1384
-                                'twentyfourteen',
1385
-                                'twentyfifteen',
1386
-                                'twentysixteen',
1387
-                                'storefront',
1388
-                                                );
1382
+		$white_list = array(    'twentyeleven',
1383
+								'twentytwelve',
1384
+								'twentyfourteen',
1385
+								'twentyfifteen',
1386
+								'twentysixteen',
1387
+								'storefront',
1388
+												);
1389 1389
 
1390
-        if ( in_array( $template, $white_list ) ) {
1390
+		if ( in_array( $template, $white_list ) ) {
1391 1391
 
1392
-            return;
1392
+			return;
1393 1393
 
1394
-        }
1394
+		}
1395 1395
 
1396
-        // don't show the notice if the user chose to hide it
1397
-        $hide_theme_check_notice = get_user_meta( get_current_user_id(), 'sensei_hide_theme_check_notice', true );
1398
-        if(  $hide_theme_check_notice ) {
1396
+		// don't show the notice if the user chose to hide it
1397
+		$hide_theme_check_notice = get_user_meta( get_current_user_id(), 'sensei_hide_theme_check_notice', true );
1398
+		if(  $hide_theme_check_notice ) {
1399 1399
 
1400
-            return;
1400
+			return;
1401 1401
 
1402
-        }
1402
+		}
1403 1403
 
1404
-        // show the notice for themes not supporting sensei
1405
-	    if ( ! current_theme_supports( 'sensei' ) ) {
1406
-            ?>
1404
+		// show the notice for themes not supporting sensei
1405
+		if ( ! current_theme_supports( 'sensei' ) ) {
1406
+			?>
1407 1407
 
1408 1408
             <div id="message" class="error sensei-message sensei-connect">
1409 1409
                     <p>
@@ -1439,7 +1439,7 @@  discard block
 block discarded – undo
1439 1439
 	public function reset_theme_check_notices() {
1440 1440
 		global $current_user;
1441 1441
 		wp_get_current_user();
1442
-        $user_id = $current_user->ID;
1442
+		$user_id = $current_user->ID;
1443 1443
 
1444 1444
 		delete_user_meta( $user_id, 'sensei_hide_theme_check_notice' );
1445 1445
 	}
@@ -1459,60 +1459,60 @@  discard block
 block discarded – undo
1459 1459
 		return $prevent_access;
1460 1460
 	}
1461 1461
 
1462
-    /**
1463
-     * Hooked onto admin_init. Listens for install_sensei_pages and skip_install_sensei_pages query args
1464
-     * on the sensei settings page.
1465
-     *
1466
-     * The function
1467
-     *
1468
-     * @since 1.8.7
1469
-     */
1470
-    public  static function install_pages(){
1462
+	/**
1463
+	 * Hooked onto admin_init. Listens for install_sensei_pages and skip_install_sensei_pages query args
1464
+	 * on the sensei settings page.
1465
+	 *
1466
+	 * The function
1467
+	 *
1468
+	 * @since 1.8.7
1469
+	 */
1470
+	public  static function install_pages(){
1471 1471
 
1472
-        // only fire on the settings page
1473
-        if( ! isset( $_GET['page'] )
1474
-            || 'woothemes-sensei-settings' != $_GET['page']
1475
-            || 1 == get_option('skip_install_sensei_pages') ){
1472
+		// only fire on the settings page
1473
+		if( ! isset( $_GET['page'] )
1474
+			|| 'woothemes-sensei-settings' != $_GET['page']
1475
+			|| 1 == get_option('skip_install_sensei_pages') ){
1476 1476
 
1477
-            return;
1477
+			return;
1478 1478
 
1479
-        }
1479
+		}
1480 1480
 
1481
-        // Install/page installer
1482
-        $install_complete = false;
1481
+		// Install/page installer
1482
+		$install_complete = false;
1483 1483
 
1484
-        // Add pages button
1485
-        $settings_url = '';
1486
-        if (isset($_GET['install_sensei_pages']) && $_GET['install_sensei_pages']) {
1484
+		// Add pages button
1485
+		$settings_url = '';
1486
+		if (isset($_GET['install_sensei_pages']) && $_GET['install_sensei_pages']) {
1487 1487
 
1488
-            Sensei()->admin->create_pages();
1489
-            update_option('skip_install_sensei_pages', 1);
1490
-            $install_complete = true;
1491
-            $settings_url = remove_query_arg('install_sensei_pages');
1488
+			Sensei()->admin->create_pages();
1489
+			update_option('skip_install_sensei_pages', 1);
1490
+			$install_complete = true;
1491
+			$settings_url = remove_query_arg('install_sensei_pages');
1492 1492
 
1493
-            // Skip button
1494
-        } elseif (isset($_GET['skip_install_sensei_pages']) && $_GET['skip_install_sensei_pages']) {
1493
+			// Skip button
1494
+		} elseif (isset($_GET['skip_install_sensei_pages']) && $_GET['skip_install_sensei_pages']) {
1495 1495
 
1496
-            update_option('skip_install_sensei_pages', 1);
1497
-            $install_complete = true;
1498
-            $settings_url = remove_query_arg('skip_install_sensei_pages');
1496
+			update_option('skip_install_sensei_pages', 1);
1497
+			$install_complete = true;
1498
+			$settings_url = remove_query_arg('skip_install_sensei_pages');
1499 1499
 
1500
-        }
1500
+		}
1501 1501
 
1502
-        if ($install_complete) {
1502
+		if ($install_complete) {
1503 1503
 
1504
-            // Flush rules after install
1505
-            flush_rewrite_rules( true );
1504
+			// Flush rules after install
1505
+			flush_rewrite_rules( true );
1506 1506
 
1507
-            // Set installed option
1508
-            update_option('sensei_installed', 0);
1507
+			// Set installed option
1508
+			update_option('sensei_installed', 0);
1509 1509
 
1510
-            $complete_url = add_query_arg( 'sensei_install_complete', 'true', $settings_url  );
1511
-            wp_redirect( $complete_url );
1510
+			$complete_url = add_query_arg( 'sensei_install_complete', 'true', $settings_url  );
1511
+			wp_redirect( $complete_url );
1512 1512
 
1513
-        }
1513
+		}
1514 1514
 
1515
-    }// end install_pages
1515
+	}// end install_pages
1516 1516
 
1517 1517
 } // End Class
1518 1518
 
Please login to merge, or discard this patch.
Spacing   +419 added lines, -419 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 Administration Class
@@ -18,51 +18,51 @@  discard block
 block discarded – undo
18 18
 	 * Constructor.
19 19
 	 * @since  1.0.0
20 20
 	 */
21
-	public function __construct () {
21
+	public function __construct() {
22 22
 
23 23
         //register admin styles
24
-		add_action( 'admin_enqueue_scripts', array( $this, 'admin_styles_global' ) );
24
+		add_action('admin_enqueue_scripts', array($this, 'admin_styles_global'));
25 25
 
26 26
         //register admin scripts
27
-        add_action( 'admin_enqueue_scripts', array( $this, 'register_scripts' ) );
27
+        add_action('admin_enqueue_scripts', array($this, 'register_scripts'));
28 28
 
29
-		add_action( 'admin_print_styles', array( $this, 'admin_notices_styles' ) );
30
-		add_action( 'settings_before_form', array( $this, 'install_pages_output' ) );
31
-		add_action( 'admin_menu', array( $this, 'admin_menu' ), 10 );
32
-		add_action( 'menu_order', array( $this, 'admin_menu_order' ) );
33
-		add_action( 'admin_head', array( $this, 'admin_menu_highlight' ) );
34
-		add_action( 'admin_init', array( $this, 'page_redirect' ) );
35
-		add_action( 'admin_init', array( $this, 'sensei_add_custom_menu_items' ) );
36
-        add_action( 'admin_init', array( __CLASS__, 'install_pages' ));
29
+		add_action('admin_print_styles', array($this, 'admin_notices_styles'));
30
+		add_action('settings_before_form', array($this, 'install_pages_output'));
31
+		add_action('admin_menu', array($this, 'admin_menu'), 10);
32
+		add_action('menu_order', array($this, 'admin_menu_order'));
33
+		add_action('admin_head', array($this, 'admin_menu_highlight'));
34
+		add_action('admin_init', array($this, 'page_redirect'));
35
+		add_action('admin_init', array($this, 'sensei_add_custom_menu_items'));
36
+        add_action('admin_init', array(__CLASS__, 'install_pages'));
37 37
 
38 38
 		// Duplicate lesson & courses
39
-		add_filter( 'post_row_actions', array( $this, 'duplicate_action_link' ), 10, 2 );
40
-		add_action( 'admin_action_duplicate_lesson', array( $this, 'duplicate_lesson_action' ) );
41
-		add_action( 'admin_action_duplicate_course', array( $this, 'duplicate_course_action' ) );
42
-		add_action( 'admin_action_duplicate_course_with_lessons', array( $this, 'duplicate_course_with_lessons_action' ) );
39
+		add_filter('post_row_actions', array($this, 'duplicate_action_link'), 10, 2);
40
+		add_action('admin_action_duplicate_lesson', array($this, 'duplicate_lesson_action'));
41
+		add_action('admin_action_duplicate_course', array($this, 'duplicate_course_action'));
42
+		add_action('admin_action_duplicate_course_with_lessons', array($this, 'duplicate_course_with_lessons_action'));
43 43
 
44 44
 		// Handle lessons list table filtering
45
-		add_action( 'restrict_manage_posts', array( $this, 'lesson_filter_options' ) );
46
-		add_filter( 'request', array( $this, 'lesson_filter_actions' ) );
45
+		add_action('restrict_manage_posts', array($this, 'lesson_filter_options'));
46
+		add_filter('request', array($this, 'lesson_filter_actions'));
47 47
 
48 48
 		// Add Sensei items to 'at a glance' widget
49
-		add_filter( 'dashboard_glance_items', array( $this, 'glance_items' ), 10, 1 );
49
+		add_filter('dashboard_glance_items', array($this, 'glance_items'), 10, 1);
50 50
 
51 51
 		// Handle course and lesson deletions
52
-		add_action( 'trash_course', array( $this, 'delete_content' ), 10, 2 );
53
-		add_action( 'trash_lesson', array( $this, 'delete_content' ), 10, 2 );
52
+		add_action('trash_course', array($this, 'delete_content'), 10, 2);
53
+		add_action('trash_lesson', array($this, 'delete_content'), 10, 2);
54 54
 
55 55
 		// Delete user activity when user is deleted
56
-		add_action( 'deleted_user', array( $this, 'delete_user_activity' ), 10, 1 );
56
+		add_action('deleted_user', array($this, 'delete_user_activity'), 10, 1);
57 57
 
58 58
 		// Add notices to WP dashboard
59
-		add_action( 'admin_notices', array( $this, 'theme_compatibility_notices' ) );
59
+		add_action('admin_notices', array($this, 'theme_compatibility_notices'));
60 60
 
61 61
 		// Reset theme notices when switching themes
62
-		add_action( 'switch_theme', array( $this, 'reset_theme_check_notices' ) );
62
+		add_action('switch_theme', array($this, 'reset_theme_check_notices'));
63 63
 
64 64
 		// Allow Teacher access the admin area
65
-		add_filter( 'woocommerce_prevent_admin_access', array( $this, 'admin_access' ) );
65
+		add_filter('woocommerce_prevent_admin_access', array($this, 'admin_access'));
66 66
 
67 67
 	} // End __construct()
68 68
 
@@ -74,21 +74,21 @@  discard block
 block discarded – undo
74 74
 	public function admin_menu() {
75 75
 		global $menu;
76 76
 		$menu_cap = '';
77
-		if( current_user_can( 'manage_sensei' ) ) {
77
+		if (current_user_can('manage_sensei')) {
78 78
 			$menu_cap = 'manage_sensei';
79 79
 		} else {
80
-			if( current_user_can( 'manage_sensei_grades' ) ) {
80
+			if (current_user_can('manage_sensei_grades')) {
81 81
 				$menu_cap = 'manage_sensei_grades';
82 82
 			}
83 83
 		}
84 84
 
85
-		if( $menu_cap ) {
86
-			$menu[] = array( '', 'read', 'separator-sensei', '', 'wp-menu-separator sensei' );
87
-            add_menu_page( 'Sensei', 'Sensei', $menu_cap, 'sensei' , array( Sensei()->analysis, 'analysis_page' ) , '', '50' );
85
+		if ($menu_cap) {
86
+			$menu[] = array('', 'read', 'separator-sensei', '', 'wp-menu-separator sensei');
87
+            add_menu_page('Sensei', 'Sensei', $menu_cap, 'sensei', array(Sensei()->analysis, 'analysis_page'), '', '50');
88 88
 		}
89 89
 
90
-		add_submenu_page( 'edit.php?post_type=course', __( 'Order Courses', 'woothemes-sensei' ), __( 'Order Courses', 'woothemes-sensei' ), 'manage_sensei', 'course-order', array( $this, 'course_order_screen' ) );
91
-		add_submenu_page( 'edit.php?post_type=lesson', __( 'Order Lessons', 'woothemes-sensei' ), __( 'Order Lessons', 'woothemes-sensei' ), 'edit_lessons', 'lesson-order', array( $this, 'lesson_order_screen' ) );
90
+		add_submenu_page('edit.php?post_type=course', __('Order Courses', 'woothemes-sensei'), __('Order Courses', 'woothemes-sensei'), 'manage_sensei', 'course-order', array($this, 'course_order_screen'));
91
+		add_submenu_page('edit.php?post_type=lesson', __('Order Lessons', 'woothemes-sensei'), __('Order Lessons', 'woothemes-sensei'), 'edit_lessons', 'lesson-order', array($this, 'lesson_order_screen'));
92 92
 	}
93 93
 
94 94
 	/**
@@ -97,22 +97,22 @@  discard block
 block discarded – undo
97 97
 	 * @param  array $menu_order Existing menu order
98 98
 	 * @return array 			 Modified menu order for Sensei
99 99
 	 */
100
-	public function admin_menu_order( $menu_order ) {
100
+	public function admin_menu_order($menu_order) {
101 101
 
102 102
 		// Initialize our custom order array
103 103
 		$sensei_menu_order = array();
104 104
 
105 105
 		// Get the index of our custom separator
106
-		$sensei_separator = array_search( 'separator-sensei', $menu_order );
106
+		$sensei_separator = array_search('separator-sensei', $menu_order);
107 107
 
108 108
 		// Loop through menu order and do some rearranging
109
-		foreach ( $menu_order as $index => $item ) :
109
+		foreach ($menu_order as $index => $item) :
110 110
 
111
-			if ( ( ( 'sensei' ) == $item ) ) :
111
+			if ((('sensei') == $item)) :
112 112
 				$sensei_menu_order[] = 'separator-sensei';
113 113
 				$sensei_menu_order[] = $item;
114
-				unset( $menu_order[$sensei_separator] );
115
-			elseif ( !in_array( $item, array( 'separator-sensei' ) ) ) :
114
+				unset($menu_order[$sensei_separator]);
115
+			elseif ( ! in_array($item, array('separator-sensei'))) :
116 116
 				$sensei_menu_order[] = $item;
117 117
 			endif;
118 118
 
@@ -132,24 +132,24 @@  discard block
 block discarded – undo
132 132
 
133 133
 		$screen = get_current_screen();
134 134
 
135
-		if ( $screen->base == 'post' && $post_type == 'course' ) {
135
+		if ($screen->base == 'post' && $post_type == 'course') {
136 136
 
137
-			$parent_file  = 'edit.php?post_type=course';
137
+			$parent_file = 'edit.php?post_type=course';
138 138
 
139
-		} elseif ( $screen->base == 'edit-tags' && $taxonomy == 'course-category' ) {
139
+		} elseif ($screen->base == 'edit-tags' && $taxonomy == 'course-category') {
140 140
 
141 141
 			$submenu_file = 'edit-tags.php?taxonomy=course-category&amp;post_type=course';
142 142
 			$parent_file  = 'edit.php?post_type=course';
143 143
 
144
-        } elseif ( $screen->base == 'edit-tags' && $taxonomy == 'module' ) {
144
+        } elseif ($screen->base == 'edit-tags' && $taxonomy == 'module') {
145 145
 
146 146
             $submenu_file = 'edit-tags.php?taxonomy=module';
147 147
             $parent_file  = 'edit.php?post_type=course';
148 148
 
149
-		} elseif ( in_array( $screen->id, array( 'sensei_message', 'edit-sensei_message' ) ) ) {
149
+		} elseif (in_array($screen->id, array('sensei_message', 'edit-sensei_message'))) {
150 150
 
151 151
             $submenu_file = 'edit.php?post_type=sensei_message';
152
-			$parent_file  = 'sensei';
152
+			$parent_file = 'sensei';
153 153
 
154 154
 		}
155 155
 	}
@@ -160,8 +160,8 @@  discard block
 block discarded – undo
160 160
 	 * @return void
161 161
 	 */
162 162
 	public function page_redirect() {
163
-		if( isset( $_GET['page'] ) && $_GET['page'] == 'sensei' ) {
164
-			wp_safe_redirect( 'admin.php?page=sensei_analysis' );
163
+		if (isset($_GET['page']) && $_GET['page'] == 'sensei') {
164
+			wp_safe_redirect('admin.php?page=sensei_analysis');
165 165
 			exit;
166 166
 		}
167 167
 	}
@@ -176,11 +176,11 @@  discard block
 block discarded – undo
176 176
 	 */
177 177
 	function install_pages_output() {
178 178
 
179
-        if( isset($_GET['sensei_install_complete']) && 'true' == $_GET['sensei_install_complete']) {
179
+        if (isset($_GET['sensei_install_complete']) && 'true' == $_GET['sensei_install_complete']) {
180 180
 
181 181
             ?>
182 182
             <div id="message" class="updated sensei-message sensei-connect">
183
-                <p><?php _e( '<strong>Congratulations!</strong> &#8211; Sensei has been installed and set up.', 'woothemes-sensei' ); ?></p>
183
+                <p><?php _e('<strong>Congratulations!</strong> &#8211; Sensei has been installed and set up.', 'woothemes-sensei'); ?></p>
184 184
                 <p><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.woothemes.com/sensei/" data-text="A premium Learning Management plugin for #WordPress that helps you create courses. Beautifully." data-via="WooThemes" data-size="large" data-hashtags="Sensei">Tweet</a>
185 185
                 <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></p>
186 186
             </div>
@@ -202,18 +202,18 @@  discard block
 block discarded – undo
202 202
 	 * @param int $post_parent (default: 0)
203 203
 	 * @return void
204 204
 	 */
205
-	function create_page( $slug, $option, $page_title = '', $page_content = '', $post_parent = 0 ) {
205
+	function create_page($slug, $option, $page_title = '', $page_content = '', $post_parent = 0) {
206 206
 		global $wpdb;
207 207
 
208
-		$option_value = get_option( $option );
208
+		$option_value = get_option($option);
209 209
 
210
-		if ( $option_value > 0 && get_post( $option_value ) )
210
+		if ($option_value > 0 && get_post($option_value))
211 211
 			return;
212 212
 
213
-		$page_found = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->posts . " WHERE post_name = %s LIMIT 1;", $slug ) );
214
-		if ( $page_found ) :
215
-			if ( ! $option_value )
216
-				update_option( $option, $page_found );
213
+		$page_found = $wpdb->get_var($wpdb->prepare("SELECT ID FROM ".$wpdb->posts." WHERE post_name = %s LIMIT 1;", $slug));
214
+		if ($page_found) :
215
+			if ( ! $option_value)
216
+				update_option($option, $page_found);
217 217
 			return;
218 218
 		endif;
219 219
 
@@ -227,9 +227,9 @@  discard block
 block discarded – undo
227 227
 	        'post_parent' 		=> $post_parent,
228 228
 	        'comment_status' 	=> 'closed'
229 229
 	    );
230
-	    $page_id = wp_insert_post( $page_data );
230
+	    $page_id = wp_insert_post($page_data);
231 231
 
232
-	    update_option( $option, $page_id );
232
+	    update_option($option, $page_id);
233 233
 	} // End create_page()
234 234
 
235 235
 
@@ -242,10 +242,10 @@  discard block
 block discarded – undo
242 242
 	function create_pages() {
243 243
 
244 244
 		// Courses page
245
-	    $this->create_page( esc_sql( _x('courses-overview', 'page_slug', 'woothemes-sensei') ), 'woothemes-sensei_courses_page_id', __('Courses', 'woothemes-sensei'), '[newcourses][featuredcourses][freecourses][paidcourses]' );
245
+	    $this->create_page(esc_sql(_x('courses-overview', 'page_slug', 'woothemes-sensei')), 'woothemes-sensei_courses_page_id', __('Courses', 'woothemes-sensei'), '[newcourses][featuredcourses][freecourses][paidcourses]');
246 246
 
247 247
 		// User Dashboard page
248
-	    $this->create_page( esc_sql( _x('my-courses', 'page_slug', 'woothemes-sensei') ), 'woothemes-sensei_user_dashboard_page_id', __('My Courses', 'woothemes-sensei'), '[usercourses]' );
248
+	    $this->create_page(esc_sql(_x('my-courses', 'page_slug', 'woothemes-sensei')), 'woothemes-sensei_user_dashboard_page_id', __('My Courses', 'woothemes-sensei'), '[usercourses]');
249 249
 
250 250
 	} // End create_pages()
251 251
 
@@ -255,25 +255,25 @@  discard block
 block discarded – undo
255 255
 	 * @since 1.0.0
256 256
 	 * @return void
257 257
 	 */
258
-	public function admin_styles_global ( $hook ) {
258
+	public function admin_styles_global($hook) {
259 259
 		global $post_type;
260 260
 
261
-		$allowed_post_types = apply_filters( 'sensei_scripts_allowed_post_types', array( 'lesson', 'course', 'question' ) );
262
-		$allowed_post_type_pages = apply_filters( 'sensei_scripts_allowed_post_type_pages', array( 'edit.php', 'post-new.php', 'post.php', 'edit-tags.php' ) );
263
-		$allowed_pages = apply_filters( 'sensei_scripts_allowed_pages', array( 'sensei_grading', 'sensei_analysis', 'sensei_learners', 'sensei_updates', 'woothemes-sensei-settings', 'lesson-order', 'course-order' ) );
261
+		$allowed_post_types = apply_filters('sensei_scripts_allowed_post_types', array('lesson', 'course', 'question'));
262
+		$allowed_post_type_pages = apply_filters('sensei_scripts_allowed_post_type_pages', array('edit.php', 'post-new.php', 'post.php', 'edit-tags.php'));
263
+		$allowed_pages = apply_filters('sensei_scripts_allowed_pages', array('sensei_grading', 'sensei_analysis', 'sensei_learners', 'sensei_updates', 'woothemes-sensei-settings', 'lesson-order', 'course-order'));
264 264
 
265 265
 		// Global Styles for icons and menu items
266
-		wp_register_style( 'woothemes-sensei-global', Sensei()->plugin_url . 'assets/css/global.css', '', Sensei()->version, 'screen' );
267
-		wp_enqueue_style( 'woothemes-sensei-global' );
266
+		wp_register_style('woothemes-sensei-global', Sensei()->plugin_url.'assets/css/global.css', '', Sensei()->version, 'screen');
267
+		wp_enqueue_style('woothemes-sensei-global');
268 268
 
269 269
         // Select 2 styles
270
-        wp_enqueue_style( 'select2', Sensei()->plugin_url . 'assets/css/select2/select2.css', '', Sensei()->version, 'screen' );
270
+        wp_enqueue_style('select2', Sensei()->plugin_url.'assets/css/select2/select2.css', '', Sensei()->version, 'screen');
271 271
 
272 272
 		// Test for Write Panel Pages
273
-		if ( ( ( isset( $post_type ) && in_array( $post_type, $allowed_post_types ) ) && ( isset( $hook ) && in_array( $hook, $allowed_post_type_pages ) ) ) || ( isset( $_GET['page'] ) && in_array( $_GET['page'], $allowed_pages ) ) ) {
273
+		if (((isset($post_type) && in_array($post_type, $allowed_post_types)) && (isset($hook) && in_array($hook, $allowed_post_type_pages))) || (isset($_GET['page']) && in_array($_GET['page'], $allowed_pages))) {
274 274
 
275
-			wp_register_style( 'woothemes-sensei-admin-custom', Sensei()->plugin_url . 'assets/css/admin-custom.css', '', Sensei()->version, 'screen' );
276
-			wp_enqueue_style( 'woothemes-sensei-admin-custom' );
275
+			wp_register_style('woothemes-sensei-admin-custom', Sensei()->plugin_url.'assets/css/admin-custom.css', '', Sensei()->version, 'screen');
276
+			wp_enqueue_style('woothemes-sensei-admin-custom');
277 277
 
278 278
 		}
279 279
 
@@ -288,20 +288,20 @@  discard block
 block discarded – undo
288 288
      * @since 1.8.2
289 289
      * @access public
290 290
      */
291
-    public function register_scripts( $hook ){
291
+    public function register_scripts($hook) {
292 292
 
293 293
         $screen = get_current_screen();
294 294
 
295 295
         // Allow developers to load non-minified versions of scripts
296
-        $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
296
+        $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
297 297
 
298 298
         // Select2 script used to enhance all select boxes
299
-        wp_register_script( 'select2', Sensei()->plugin_url . '/assets/js/select2/select2' . $suffix . '.js', array( 'jquery' ), Sensei()->version );
299
+        wp_register_script('select2', Sensei()->plugin_url.'/assets/js/select2/select2'.$suffix.'.js', array('jquery'), Sensei()->version);
300 300
 
301 301
         // load edit module scripts
302
-        if( 'edit-module' ==  $screen->id ){
302
+        if ('edit-module' == $screen->id) {
303 303
 
304
-            wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery.min.js', array( 'jquery', 'sensei-chosen' ), Sensei()->version, true );
304
+            wp_enqueue_script('sensei-chosen-ajax', Sensei()->plugin_url.'assets/chosen/ajax-chosen.jquery.min.js', array('jquery', 'sensei-chosen'), Sensei()->version, true);
305 305
 
306 306
         }
307 307
 
@@ -319,19 +319,19 @@  discard block
 block discarded – undo
319 319
 	    <div id="message" class="updated sensei-message sensei-connect">
320 320
 
321 321
             <p>
322
-                <?php _e( '<strong>Welcome to Sensei</strong> &#8211; You\'re almost ready to create some courses!', 'woothemes-sensei' ); ?>
322
+                <?php _e('<strong>Welcome to Sensei</strong> &#8211; You\'re almost ready to create some courses!', 'woothemes-sensei'); ?>
323 323
             </p>
324 324
 
325 325
             <p class="submit">
326 326
 
327
-                <a href="<?php echo esc_url( add_query_arg('install_sensei_pages', 'true', admin_url('admin.php?page=woothemes-sensei-settings') ) ); ?>"
327
+                <a href="<?php echo esc_url(add_query_arg('install_sensei_pages', 'true', admin_url('admin.php?page=woothemes-sensei-settings'))); ?>"
328 328
                    class="button-primary">
329 329
 
330
-                    <?php _e( 'Install Sensei Pages', 'woothemes-sensei' ); ?>
330
+                    <?php _e('Install Sensei Pages', 'woothemes-sensei'); ?>
331 331
 
332 332
                 </a>
333 333
 
334
-                <a class="skip button" href="<?php echo esc_url( add_query_arg( 'skip_install_sensei_pages', 'true', admin_url('admin.php?page=woothemes-sensei-settings' ) ) ); ?>">
334
+                <a class="skip button" href="<?php echo esc_url(add_query_arg('skip_install_sensei_pages', 'true', admin_url('admin.php?page=woothemes-sensei-settings'))); ?>">
335 335
 
336 336
                     <?php _e('Skip setup', 'woothemes-sensei'); ?>
337 337
 
@@ -354,11 +354,11 @@  discard block
 block discarded – undo
354 354
 	    <div id="message" class="updated sensei-message sensei-connect">
355 355
 
356 356
 	    	<p>
357
-                <?php _e( '<strong>Sensei has been installed</strong> &#8211; You\'re ready to start creating courses!', 'woothemes-sensei' ); ?>
357
+                <?php _e('<strong>Sensei has been installed</strong> &#8211; You\'re ready to start creating courses!', 'woothemes-sensei'); ?>
358 358
             </p>
359 359
 
360 360
 			<p class="submit">
361
-                <a href="<?php echo admin_url('admin.php?page=woothemes-sensei-settings'); ?>" class="button-primary"><?php _e( 'Settings', 'woothemes-sensei' ); ?></a> <a class="docs button" href="http://www.woothemes.com/sensei-docs/">
361
+                <a href="<?php echo admin_url('admin.php?page=woothemes-sensei-settings'); ?>" class="button-primary"><?php _e('Settings', 'woothemes-sensei'); ?></a> <a class="docs button" href="http://www.woothemes.com/sensei-docs/">
362 362
                     <?php _e('Documentation', 'woothemes-sensei'); ?>
363 363
                 </a>
364 364
             </p>
@@ -391,11 +391,11 @@  discard block
 block discarded – undo
391 391
 	public function language_pack_install_notice() {
392 392
 		?>
393 393
 		<div id="message" class="updated sensei-message sensei-connect">
394
-				<p><?php _e( '<strong>Sensei in your language</strong> &#8211; There is a translation available for your language.', 'woothemes-sensei' ); ?><p>
394
+				<p><?php _e('<strong>Sensei in your language</strong> &#8211; There is a translation available for your language.', 'woothemes-sensei'); ?><p>
395 395
 
396 396
 				<p class="submit">
397
-					<a href="<?php echo esc_url( Sensei_Language_Pack_Manager::get_install_uri() ); ?>" class="button-primary"><?php _e( 'Install', 'woothemes-sensei' ); ?></a>
398
-					<a href="<?php echo esc_url( Sensei_Language_Pack_Manager::get_dismiss_uri() ) ?>" class="docs button"><?php _e( 'Hide this notice', 'woothemes-sensei' ); ?></a>
397
+					<a href="<?php echo esc_url(Sensei_Language_Pack_Manager::get_install_uri()); ?>" class="button-primary"><?php _e('Install', 'woothemes-sensei'); ?></a>
398
+					<a href="<?php echo esc_url(Sensei_Language_Pack_Manager::get_dismiss_uri()) ?>" class="docs button"><?php _e('Hide this notice', 'woothemes-sensei'); ?></a>
399 399
 				</p>
400 400
 		</div>
401 401
 		<?php
@@ -411,20 +411,20 @@  discard block
 block discarded – undo
411 411
 	function admin_notices_styles() {
412 412
 
413 413
 		// Installed notices
414
-	    if ( 1 == get_option( 'sensei_installed' ) ) {
414
+	    if (1 == get_option('sensei_installed')) {
415 415
 
416
-	    	wp_enqueue_style( 'sensei-activation', plugins_url(  '/assets/css/activation.css', dirname( __FILE__ ) ), '', Sensei()->version );
416
+	    	wp_enqueue_style('sensei-activation', plugins_url('/assets/css/activation.css', dirname(__FILE__)), '', Sensei()->version);
417 417
 
418
-	    	if (get_option('skip_install_sensei_pages')!=1 && Sensei()->get_page_id('course')<1 && !isset($_GET['install_sensei_pages']) && !isset($_GET['skip_install_sensei_pages'])) {
419
-	    		add_action( 'admin_notices', array( $this, 'admin_install_notice' ) );
420
-	    	} elseif ( !isset($_GET['page']) || $_GET['page']!='woothemes-sensei-settings' ) {
421
-	    		add_action( 'admin_notices', array( $this, 'admin_installed_notice' ) );
418
+	    	if (get_option('skip_install_sensei_pages') != 1 && Sensei()->get_page_id('course') < 1 && ! isset($_GET['install_sensei_pages']) && ! isset($_GET['skip_install_sensei_pages'])) {
419
+	    		add_action('admin_notices', array($this, 'admin_install_notice'));
420
+	    	} elseif ( ! isset($_GET['page']) || $_GET['page'] != 'woothemes-sensei-settings') {
421
+	    		add_action('admin_notices', array($this, 'admin_installed_notice'));
422 422
 	    	} // End If Statement
423 423
 
424 424
 	    } // End If Statement
425 425
 
426
-	    if ( Sensei_Language_Pack_Manager::has_language_pack_available() ) {
427
-	    	add_action( 'admin_notices', array( $this, 'language_pack_install_notice' ) );
426
+	    if (Sensei_Language_Pack_Manager::has_language_pack_available()) {
427
+	    	add_action('admin_notices', array($this, 'language_pack_install_notice'));
428 428
 	    }
429 429
 
430 430
 	} // End admin_notices_styles()
@@ -435,17 +435,17 @@  discard block
 block discarded – undo
435 435
 	 * @param  object $post    Current post
436 436
 	 * @return array           Modified actions
437 437
 	 */
438
-	public function duplicate_action_link( $actions, $post ) {
439
-		switch( $post->post_type ) {
438
+	public function duplicate_action_link($actions, $post) {
439
+		switch ($post->post_type) {
440 440
 			case 'lesson':
441
-				$confirm = __( 'This will duplicate the lesson quiz and all of its questions. Are you sure you want to do this?', 'woothemes-sensei' );
442
-				$actions['duplicate'] = "<a onclick='return confirm(\"" . $confirm . "\");' href='" . $this->get_duplicate_link( $post->ID ) . "' title='" . esc_attr(__( 'Duplicate this lesson', 'woothemes-sensei' ) ) . "'>" .  __('Duplicate', 'woothemes-sensei' ) . "</a>";
441
+				$confirm = __('This will duplicate the lesson quiz and all of its questions. Are you sure you want to do this?', 'woothemes-sensei');
442
+				$actions['duplicate'] = "<a onclick='return confirm(\"".$confirm."\");' href='".$this->get_duplicate_link($post->ID)."' title='".esc_attr(__('Duplicate this lesson', 'woothemes-sensei'))."'>".__('Duplicate', 'woothemes-sensei')."</a>";
443 443
 			break;
444 444
 
445 445
 			case 'course':
446
-				$confirm = __( 'This will duplicate the course lessons along with all of their quizzes and questions. Are you sure you want to do this?', 'woothemes-sensei' );
447
-				$actions['duplicate'] = '<a href="' . $this->get_duplicate_link( $post->ID ) . '" title="' . esc_attr(__( 'Duplicate this course', 'woothemes-sensei' ) ) . '">' .  __('Duplicate', 'woothemes-sensei' ) . '</a>';
448
-				$actions['duplicate_with_lessons'] = '<a onclick="return confirm(\'' . $confirm . '\');" href="' . $this->get_duplicate_link( $post->ID, true ) . '" title="' . esc_attr(__( 'Duplicate this course with its lessons', 'woothemes-sensei' ) ) . '">' .  __('Duplicate (with lessons)', 'woothemes-sensei' ) . '</a>';
446
+				$confirm = __('This will duplicate the course lessons along with all of their quizzes and questions. Are you sure you want to do this?', 'woothemes-sensei');
447
+				$actions['duplicate'] = '<a href="'.$this->get_duplicate_link($post->ID).'" title="'.esc_attr(__('Duplicate this course', 'woothemes-sensei')).'">'.__('Duplicate', 'woothemes-sensei').'</a>';
448
+				$actions['duplicate_with_lessons'] = '<a onclick="return confirm(\''.$confirm.'\');" href="'.$this->get_duplicate_link($post->ID, true).'" title="'.esc_attr(__('Duplicate this course with its lessons', 'woothemes-sensei')).'">'.__('Duplicate (with lessons)', 'woothemes-sensei').'</a>';
449 449
 			break;
450 450
 		}
451 451
 
@@ -458,17 +458,17 @@  discard block
 block discarded – undo
458 458
 	 * @param  boolean $with_lessons Include lessons or not
459 459
 	 * @return string                Duplication link
460 460
 	 */
461
-	private function get_duplicate_link( $post_id = 0, $with_lessons = false ) {
461
+	private function get_duplicate_link($post_id = 0, $with_lessons = false) {
462 462
 
463
-		$post = get_post( $post_id );
463
+		$post = get_post($post_id);
464 464
 
465
-		$action = 'duplicate_' . $post->post_type;
465
+		$action = 'duplicate_'.$post->post_type;
466 466
 
467
-		if( 'course' == $post->post_type && $with_lessons ) {
467
+		if ('course' == $post->post_type && $with_lessons) {
468 468
 			$action .= '_with_lessons';
469 469
 		}
470 470
 
471
-		return apply_filters( $action . '_link', admin_url( 'admin.php?action=' . $action . '&post=' . $post_id ), $post_id );
471
+		return apply_filters($action.'_link', admin_url('admin.php?action='.$action.'&post='.$post_id), $post_id);
472 472
 	}
473 473
 
474 474
 	/**
@@ -476,7 +476,7 @@  discard block
 block discarded – undo
476 476
 	 * @return void
477 477
 	 */
478 478
 	public function duplicate_lesson_action() {
479
-		$this->duplicate_content( 'lesson' );
479
+		$this->duplicate_content('lesson');
480 480
 	}
481 481
 
482 482
 	/**
@@ -484,7 +484,7 @@  discard block
 block discarded – undo
484 484
 	 * @return void
485 485
 	 */
486 486
 	public function duplicate_course_action() {
487
-		$this->duplicate_content( 'course' );
487
+		$this->duplicate_content('course');
488 488
 	}
489 489
 
490 490
 	/**
@@ -492,7 +492,7 @@  discard block
 block discarded – undo
492 492
 	 * @return void
493 493
 	 */
494 494
 	public function duplicate_course_with_lessons_action() {
495
-		$this->duplicate_content( 'course', true );
495
+		$this->duplicate_content('course', true);
496 496
 	}
497 497
 
498 498
 	/**
@@ -501,34 +501,34 @@  discard block
 block discarded – undo
501 501
 	 * @param  boolean $with_lessons Include lessons or not
502 502
 	 * @return void
503 503
 	 */
504
-	private function duplicate_content( $post_type = 'lesson', $with_lessons = false ) {
505
-		if ( ! isset( $_GET['post'] ) ) {
506
-			wp_die( sprintf( __( 'Please supply a %1$s ID.', 'woothemes-sensei' ) ), $post_type );
504
+	private function duplicate_content($post_type = 'lesson', $with_lessons = false) {
505
+		if ( ! isset($_GET['post'])) {
506
+			wp_die(sprintf(__('Please supply a %1$s ID.', 'woothemes-sensei')), $post_type);
507 507
 		}
508 508
 
509 509
 		$post_id = $_GET['post'];
510
-		$post = get_post( $post_id );
510
+		$post = get_post($post_id);
511 511
 
512
-		if( ! is_wp_error( $post ) ) {
512
+		if ( ! is_wp_error($post)) {
513 513
 
514
-			$new_post = $this->duplicate_post( $post );
514
+			$new_post = $this->duplicate_post($post);
515 515
 
516
-			if( $new_post && ! is_wp_error( $new_post ) ) {
516
+			if ($new_post && ! is_wp_error($new_post)) {
517 517
 
518
-				if( 'lesson' == $new_post->post_type ) {
519
-					$this->duplicate_lesson_quizzes( $post_id, $new_post->ID );
518
+				if ('lesson' == $new_post->post_type) {
519
+					$this->duplicate_lesson_quizzes($post_id, $new_post->ID);
520 520
 				}
521 521
 
522
-				if( 'course' == $new_post->post_type && $with_lessons ) {
523
-					$this->duplicate_course_lessons( $post_id, $new_post->ID );
522
+				if ('course' == $new_post->post_type && $with_lessons) {
523
+					$this->duplicate_course_lessons($post_id, $new_post->ID);
524 524
 				}
525 525
 
526
-				$redirect_url = admin_url( 'post.php?post=' . $new_post->ID . '&action=edit' );
526
+				$redirect_url = admin_url('post.php?post='.$new_post->ID.'&action=edit');
527 527
 			} else {
528
-				$redirect_url = admin_url( 'edit.php?post_type=' . $post->post_type . '&message=duplicate_failed' );
528
+				$redirect_url = admin_url('edit.php?post_type='.$post->post_type.'&message=duplicate_failed');
529 529
 			}
530 530
 
531
-			wp_safe_redirect( esc_url_raw( $redirect_url ) );
531
+			wp_safe_redirect(esc_url_raw($redirect_url));
532 532
 			exit;
533 533
 		}
534 534
 	}
@@ -539,19 +539,19 @@  discard block
 block discarded – undo
539 539
 	 * @param  integer $new_lesson_id ID of duplicate lesson
540 540
 	 * @return void
541 541
 	 */
542
-	private function duplicate_lesson_quizzes( $old_lesson_id, $new_lesson_id ) {
542
+	private function duplicate_lesson_quizzes($old_lesson_id, $new_lesson_id) {
543 543
 
544
-        $old_quiz_id = Sensei()->lesson->lesson_quizzes( $old_lesson_id );
545
-        $old_quiz_questions = Sensei()->lesson->lesson_quiz_questions( $old_quiz_id );
544
+        $old_quiz_id = Sensei()->lesson->lesson_quizzes($old_lesson_id);
545
+        $old_quiz_questions = Sensei()->lesson->lesson_quiz_questions($old_quiz_id);
546 546
 
547 547
         // duplicate the generic wp post information
548
-		$new_quiz = $this->duplicate_post( get_post( $old_quiz_id ), '' );
548
+		$new_quiz = $this->duplicate_post(get_post($old_quiz_id), '');
549 549
 
550 550
 		//update the new lesson data
551
-        add_post_meta( $new_lesson_id, '_lesson_quiz', $new_quiz->ID );
551
+        add_post_meta($new_lesson_id, '_lesson_quiz', $new_quiz->ID);
552 552
 
553 553
 		//update the new quiz data
554
-        add_post_meta( $new_quiz->ID, '_quiz_lesson', $new_lesson_id );
554
+        add_post_meta($new_quiz->ID, '_quiz_lesson', $new_lesson_id);
555 555
         wp_update_post(
556 556
             array(
557 557
                 'ID' => $new_quiz->ID,
@@ -559,15 +559,15 @@  discard block
 block discarded – undo
559 559
             )
560 560
         );
561 561
 
562
-		foreach( $old_quiz_questions as $question ) {
562
+		foreach ($old_quiz_questions as $question) {
563 563
 
564 564
 			// copy the question order over to the new quiz
565
-			$old_question_order = get_post_meta( $question->ID, '_quiz_question_order'. $old_quiz_id, true );
566
-            $new_question_order = str_ireplace( $old_quiz_id, $new_quiz->ID , $old_question_order );
567
-            add_post_meta( $question->ID, '_quiz_question_order' . $new_quiz->ID, $new_question_order );
565
+			$old_question_order = get_post_meta($question->ID, '_quiz_question_order'.$old_quiz_id, true);
566
+            $new_question_order = str_ireplace($old_quiz_id, $new_quiz->ID, $old_question_order);
567
+            add_post_meta($question->ID, '_quiz_question_order'.$new_quiz->ID, $new_question_order);
568 568
 
569 569
 			// Add question to quiz
570
-			add_post_meta( $question->ID, '_quiz_id', $new_quiz->ID, false );
570
+			add_post_meta($question->ID, '_quiz_id', $new_quiz->ID, false);
571 571
 
572 572
 		}
573 573
 	}
@@ -578,7 +578,7 @@  discard block
 block discarded – undo
578 578
 	 * @param  integer $new_course_id ID of duplicated course
579 579
 	 * @return void
580 580
 	 */
581
-	private function duplicate_course_lessons( $old_course_id, $new_course_id ) {
581
+	private function duplicate_course_lessons($old_course_id, $new_course_id) {
582 582
 		$lesson_args = array(
583 583
 			'post_type' => 'lesson',
584 584
 			'posts_per_page' => -1,
@@ -586,13 +586,13 @@  discard block
 block discarded – undo
586 586
 			'meta_value' => $old_course_id,
587 587
 			'suppress_filters' 	=> 0
588 588
 		);
589
-		$lessons = get_posts( $lesson_args );
589
+		$lessons = get_posts($lesson_args);
590 590
 
591
-		foreach( $lessons as $lesson ) {
592
-			$new_lesson = $this->duplicate_post( $lesson, '', true );
593
-			add_post_meta( $new_lesson->ID, '_lesson_course', $new_course_id );
591
+		foreach ($lessons as $lesson) {
592
+			$new_lesson = $this->duplicate_post($lesson, '', true);
593
+			add_post_meta($new_lesson->ID, '_lesson_course', $new_course_id);
594 594
 
595
-			$this->duplicate_lesson_quizzes( $lesson->ID, $new_lesson->ID );
595
+			$this->duplicate_lesson_quizzes($lesson->ID, $new_lesson->ID);
596 596
 		}
597 597
 	}
598 598
 
@@ -603,24 +603,24 @@  discard block
 block discarded – undo
603 603
 	 * @param  boolean $ignore_course Ignore lesson course when dulicating
604 604
 	 * @return object                 Duplicate post object
605 605
 	 */
606
-	private function duplicate_post( $post, $suffix = ' (Duplicate)', $ignore_course = false ) {
606
+	private function duplicate_post($post, $suffix = ' (Duplicate)', $ignore_course = false) {
607 607
 
608 608
 		$new_post = array();
609 609
 
610
-		foreach( $post as $k => $v ) {
611
-			if( ! in_array( $k, array( 'ID', 'post_status', 'post_date', 'post_date_gmt', 'post_name', 'post_modified', 'post_modified_gmt', 'guid', 'comment_count' ) ) ) {
612
-				$new_post[ $k ] = $v;
610
+		foreach ($post as $k => $v) {
611
+			if ( ! in_array($k, array('ID', 'post_status', 'post_date', 'post_date_gmt', 'post_name', 'post_modified', 'post_modified_gmt', 'guid', 'comment_count'))) {
612
+				$new_post[$k] = $v;
613 613
 			}
614 614
 		}
615 615
 
616
-		$new_post['post_title'] .= __( $suffix, 'woothemes-sensei' );
616
+		$new_post['post_title'] .= __($suffix, 'woothemes-sensei');
617 617
 
618
-		$new_post['post_date'] = current_time( 'mysql' );
619
-		$new_post['post_date_gmt'] = get_gmt_from_date( $new_post['post_date'] );
618
+		$new_post['post_date'] = current_time('mysql');
619
+		$new_post['post_date_gmt'] = get_gmt_from_date($new_post['post_date']);
620 620
 		$new_post['post_modified'] = $new_post['post_date'];
621 621
 		$new_post['post_modified_gmt'] = $new_post['post_date_gmt'];
622 622
 
623
-		switch( $post->post_type ) {
623
+		switch ($post->post_type) {
624 624
 			case 'course': $new_post['post_status'] = 'draft'; break;
625 625
 			case 'lesson': $new_post['post_status'] = 'draft'; break;
626 626
 			case 'quiz': $new_post['post_status'] = 'publish'; break;
@@ -628,45 +628,45 @@  discard block
 block discarded – undo
628 628
 		}
629 629
 
630 630
 		// As per wp_update_post() we need to escape the data from the db.
631
-		$new_post = wp_slash( $new_post );
631
+		$new_post = wp_slash($new_post);
632 632
 
633
-		$new_post_id = wp_insert_post( $new_post );
633
+		$new_post_id = wp_insert_post($new_post);
634 634
 
635
-		if( ! is_wp_error( $new_post_id ) ) {
635
+		if ( ! is_wp_error($new_post_id)) {
636 636
 
637
-			$post_meta = get_post_custom( $post->ID );
638
-			if( $post_meta && count( $post_meta ) > 0 ) {
637
+			$post_meta = get_post_custom($post->ID);
638
+			if ($post_meta && count($post_meta) > 0) {
639 639
 
640
-				$ignore_meta = array( '_quiz_lesson', '_quiz_id', '_lesson_quiz' );
640
+				$ignore_meta = array('_quiz_lesson', '_quiz_id', '_lesson_quiz');
641 641
 
642
-				if( $ignore_course ) {
642
+				if ($ignore_course) {
643 643
 					$ignore_meta[] = '_lesson_course';
644 644
 				}
645 645
 
646
-				foreach( $post_meta as $key => $meta ) {
647
-					foreach( $meta as $value ) {
648
-						$value = maybe_unserialize( $value );
649
-						if( ! in_array( $key, $ignore_meta ) ) {
650
-							add_post_meta( $new_post_id, $key, $value );
646
+				foreach ($post_meta as $key => $meta) {
647
+					foreach ($meta as $value) {
648
+						$value = maybe_unserialize($value);
649
+						if ( ! in_array($key, $ignore_meta)) {
650
+							add_post_meta($new_post_id, $key, $value);
651 651
 						}
652 652
 					}
653 653
 				}
654 654
 			}
655 655
 
656
-			add_post_meta( $new_post_id, '_duplicate', $post->ID );
656
+			add_post_meta($new_post_id, '_duplicate', $post->ID);
657 657
 
658
-			$taxonomies = get_object_taxonomies( $post->post_type, 'objects' );
658
+			$taxonomies = get_object_taxonomies($post->post_type, 'objects');
659 659
 
660
-			foreach ( $taxonomies as $slug => $tax ) {
661
-				$terms = get_the_terms( $post->ID, $slug );
662
-				if( isset( $terms ) && is_array( $terms ) && 0 < count( $terms ) ) {
663
-					foreach( $terms as $term ) {
664
-						wp_set_object_terms( $new_post_id, $term->term_id, $slug, true );
660
+			foreach ($taxonomies as $slug => $tax) {
661
+				$terms = get_the_terms($post->ID, $slug);
662
+				if (isset($terms) && is_array($terms) && 0 < count($terms)) {
663
+					foreach ($terms as $term) {
664
+						wp_set_object_terms($new_post_id, $term->term_id, $slug, true);
665 665
 					}
666 666
 				}
667 667
 			}
668 668
 
669
-			$new_post = get_post( $new_post_id );
669
+			$new_post = get_post($new_post_id);
670 670
 
671 671
 			return $new_post;
672 672
 		}
@@ -681,7 +681,7 @@  discard block
 block discarded – undo
681 681
 	public function lesson_filter_options() {
682 682
 		global $typenow;
683 683
 
684
-		if( is_admin() && 'lesson' == $typenow ) {
684
+		if (is_admin() && 'lesson' == $typenow) {
685 685
 
686 686
 			$args = array(
687 687
 				'post_type' => 'course',
@@ -691,16 +691,16 @@  discard block
 block discarded – undo
691 691
 				'orderby' => 'menu_order date',
692 692
 				'order' => 'ASC',
693 693
 			);
694
-			$courses = get_posts( $args );
694
+			$courses = get_posts($args);
695 695
 
696
-			$selected = isset( $_GET['lesson_course'] ) ? $_GET['lesson_course'] : '';
696
+			$selected = isset($_GET['lesson_course']) ? $_GET['lesson_course'] : '';
697 697
 			$course_options = '';
698
-			foreach( $courses as $course ) {
699
-				$course_options .= '<option value="' . esc_attr( $course->ID ) . '" ' . selected( $selected, $course->ID, false ) . '>' . get_the_title( $course->ID ) . '</option>';
698
+			foreach ($courses as $course) {
699
+				$course_options .= '<option value="'.esc_attr($course->ID).'" '.selected($selected, $course->ID, false).'>'.get_the_title($course->ID).'</option>';
700 700
 			}
701 701
 
702 702
 			$output = '<select name="lesson_course" id="dropdown_lesson_course">';
703
-			$output .= '<option value="">'.__( 'Show all courses', 'woothemes-sensei' ).'</option>';
703
+			$output .= '<option value="">'.__('Show all courses', 'woothemes-sensei').'</option>';
704 704
 			$output .= $course_options;
705 705
 			$output .= '</select>';
706 706
 
@@ -713,13 +713,13 @@  discard block
 block discarded – undo
713 713
 	 * @param  array $request Current request
714 714
 	 * @return array          Modified request
715 715
 	 */
716
-	public function lesson_filter_actions( $request ) {
716
+	public function lesson_filter_actions($request) {
717 717
 		global $typenow;
718 718
 
719
-		if( is_admin() && 'lesson' == $typenow ) {
720
-			$lesson_course = isset( $_GET['lesson_course'] ) ? $_GET['lesson_course'] : '';
719
+		if (is_admin() && 'lesson' == $typenow) {
720
+			$lesson_course = isset($_GET['lesson_course']) ? $_GET['lesson_course'] : '';
721 721
 
722
-			if( $lesson_course ) {
722
+			if ($lesson_course) {
723 723
 				$request['meta_key'] = '_lesson_course';
724 724
 				$request['meta_value'] = $lesson_course;
725 725
 				$request['meta_compare'] = '=';
@@ -734,27 +734,27 @@  discard block
 block discarded – undo
734 734
 	 * @param  array $items Existing items
735 735
 	 * @return array        Updated items
736 736
 	 */
737
-	public function glance_items( $items = array() ) {
737
+	public function glance_items($items = array()) {
738 738
 
739
-		$types = array( 'course', 'lesson', 'question' );
739
+		$types = array('course', 'lesson', 'question');
740 740
 
741
-		foreach( $types as $type ) {
742
-			if( ! post_type_exists( $type ) ) continue;
741
+		foreach ($types as $type) {
742
+			if ( ! post_type_exists($type)) continue;
743 743
 
744
-			$num_posts = wp_count_posts( $type );
744
+			$num_posts = wp_count_posts($type);
745 745
 
746
-			if( $num_posts ) {
746
+			if ($num_posts) {
747 747
 
748
-				$published = intval( $num_posts->publish );
749
-				$post_type = get_post_type_object( $type );
748
+				$published = intval($num_posts->publish);
749
+				$post_type = get_post_type_object($type);
750 750
 
751
-				$text = _n( '%s ' . $post_type->labels->singular_name, '%s ' . $post_type->labels->name, $published, 'woothemes-sensei' );
752
-				$text = sprintf( $text, number_format_i18n( $published ) );
751
+				$text = _n('%s '.$post_type->labels->singular_name, '%s '.$post_type->labels->name, $published, 'woothemes-sensei');
752
+				$text = sprintf($text, number_format_i18n($published));
753 753
 
754
-				if ( current_user_can( $post_type->cap->edit_posts ) ) {
755
-					$items[] = sprintf( '<a class="%1$s-count" href="edit.php?post_type=%1$s">%2$s</a>', $type, $text ) . "\n";
754
+				if (current_user_can($post_type->cap->edit_posts)) {
755
+					$items[] = sprintf('<a class="%1$s-count" href="edit.php?post_type=%1$s">%2$s</a>', $type, $text)."\n";
756 756
 				} else {
757
-					$items[] = sprintf( '<span class="%1$s-count">%2$s</span>', $type, $text ) . "\n";
757
+					$items[] = sprintf('<span class="%1$s-count">%2$s</span>', $type, $text)."\n";
758 758
 				}
759 759
 			}
760 760
 		}
@@ -768,13 +768,13 @@  discard block
 block discarded – undo
768 768
 	 * @param  object  $post    Post object
769 769
 	 * @return void
770 770
 	 */
771
-	public function delete_content( $post_id, $post ) {
771
+	public function delete_content($post_id, $post) {
772 772
 
773 773
 		$type = $post->post_type;
774 774
 
775
-		if( in_array( $type, array( 'lesson', 'course' ) ) ) {
775
+		if (in_array($type, array('lesson', 'course'))) {
776 776
 
777
-			$meta_key = '_' . $type . '_prerequisite';
777
+			$meta_key = '_'.$type.'_prerequisite';
778 778
 
779 779
 			$args = array(
780 780
 				'post_type' => $type,
@@ -784,10 +784,10 @@  discard block
 block discarded – undo
784 784
 				'meta_value' => $post_id
785 785
 			);
786 786
 
787
-			$posts = get_posts( $args );
787
+			$posts = get_posts($args);
788 788
 
789
-			foreach( $posts as $post ) {
790
-				delete_post_meta( $post->ID, $meta_key );
789
+			foreach ($posts as $post) {
790
+				delete_post_meta($post->ID, $meta_key);
791 791
 			}
792 792
 		}
793 793
 	}
@@ -797,181 +797,181 @@  discard block
 block discarded – undo
797 797
 	 * @param  integer $user_id User ID
798 798
 	 * @return void
799 799
 	 */
800
-	public function delete_user_activity( $user_id = 0 ) {
801
-		if( $user_id ) {
802
-			Sensei_Utils::delete_all_user_activity( $user_id );
800
+	public function delete_user_activity($user_id = 0) {
801
+		if ($user_id) {
802
+			Sensei_Utils::delete_all_user_activity($user_id);
803 803
 		}
804 804
 	}
805 805
 
806
-	public function render_settings( $settings = array(), $post_id = 0, $group_id = '' ) {
806
+	public function render_settings($settings = array(), $post_id = 0, $group_id = '') {
807 807
 
808 808
 		$html = '';
809 809
 
810
-		if( 0 == count( $settings ) ) return $html;
810
+		if (0 == count($settings)) return $html;
811 811
 
812
-		$html .= '<div class="sensei-options-panel">' . "\n";
812
+		$html .= '<div class="sensei-options-panel">'."\n";
813 813
 
814
-			$html .= '<div class="options_group" id="' . esc_attr( $group_id ) . '">' . "\n";
814
+			$html .= '<div class="options_group" id="'.esc_attr($group_id).'">'."\n";
815 815
 
816
-				foreach( $settings as $field ) {
816
+				foreach ($settings as $field) {
817 817
 
818 818
 					$data = '';
819 819
 
820
-					if( $post_id ) {
821
-						$data = get_post_meta( $post_id, '_' . $field['id'], true );
822
-						if( ! $data && isset( $field['default'] ) ) {
820
+					if ($post_id) {
821
+						$data = get_post_meta($post_id, '_'.$field['id'], true);
822
+						if ( ! $data && isset($field['default'])) {
823 823
 							$data = $field['default'];
824 824
 						}
825 825
 					} else {
826
-						$option = get_option( $field['id'] );
827
-						if( isset( $field['default'] ) ) {
826
+						$option = get_option($field['id']);
827
+						if (isset($field['default'])) {
828 828
 							$data = $field['default'];
829
-							if( $option ) {
829
+							if ($option) {
830 830
 								$data = $option;
831 831
 							}
832 832
 						}
833 833
 					}
834 834
 
835 835
 					$disabled = '';
836
-					if( isset( $field['disabled'] ) && $field['disabled'] ) {
837
-						$disabled = disabled( $field['disabled'], true, false );
836
+					if (isset($field['disabled']) && $field['disabled']) {
837
+						$disabled = disabled($field['disabled'], true, false);
838 838
 					}
839 839
 
840
-					if( 'hidden' != $field['type'] ) {
840
+					if ('hidden' != $field['type']) {
841 841
 
842 842
 						$class_tail = '';
843 843
 
844
-						if( isset( $field['class'] ) ) {
844
+						if (isset($field['class'])) {
845 845
 							$class_tail .= $field['class'];
846 846
 						}
847 847
 
848
-						if( isset( $field['disabled'] ) && $field['disabled'] ) {
848
+						if (isset($field['disabled']) && $field['disabled']) {
849 849
 							$class_tail .= ' disabled';
850 850
 						}
851 851
 
852
-						$html .= '<p class="form-field ' . esc_attr( $field['id'] ) . ' ' . esc_attr( $class_tail ) . '">' . "\n";
852
+						$html .= '<p class="form-field '.esc_attr($field['id']).' '.esc_attr($class_tail).'">'."\n";
853 853
 					}
854 854
 
855
-						if( ! in_array( $field['type'], array( 'hidden', 'checkbox_multi', 'radio' ) ) ) {
856
-							$html .= '<label for="' . esc_attr( $field['id'] ) . '">' . "\n";
855
+						if ( ! in_array($field['type'], array('hidden', 'checkbox_multi', 'radio'))) {
856
+							$html .= '<label for="'.esc_attr($field['id']).'">'."\n";
857 857
 						}
858 858
 
859
-							if( $field['label'] ) {
860
-								$html .= '<span class="label">' . esc_html( $field['label'] ) . '</span>';
859
+							if ($field['label']) {
860
+								$html .= '<span class="label">'.esc_html($field['label']).'</span>';
861 861
 							}
862 862
 
863
-							switch( $field['type'] ) {
863
+							switch ($field['type']) {
864 864
 								case 'text':
865 865
 								case 'password':
866
-									$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . $field['type'] . '" name="' . esc_attr( $field['id'] ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" value="' . $data . '" ' . $disabled . ' />' . "\n";
866
+									$html .= '<input id="'.esc_attr($field['id']).'" type="'.$field['type'].'" name="'.esc_attr($field['id']).'" placeholder="'.esc_attr($field['placeholder']).'" value="'.$data.'" '.$disabled.' />'."\n";
867 867
 								break;
868 868
 
869 869
 								case 'number':
870 870
 
871 871
 									$min = '';
872
-									if( isset( $field['min'] ) ) {
873
-										$min = 'min="' . esc_attr( $field['min'] ) . '"';
872
+									if (isset($field['min'])) {
873
+										$min = 'min="'.esc_attr($field['min']).'"';
874 874
 									}
875 875
 
876 876
 									$max = '';
877
-									if( isset( $field['max'] ) ) {
878
-										$max = 'max="' . esc_attr( $field['max'] ) . '"';
877
+									if (isset($field['max'])) {
878
+										$max = 'max="'.esc_attr($field['max']).'"';
879 879
 									}
880 880
 
881
-									$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . $field['type'] . '" name="' . esc_attr( $field['id'] ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" value="' . $data . '" ' . $min . '  ' . $max . ' class="small-text" ' . $disabled . ' />' . "\n";
881
+									$html .= '<input id="'.esc_attr($field['id']).'" type="'.$field['type'].'" name="'.esc_attr($field['id']).'" placeholder="'.esc_attr($field['placeholder']).'" value="'.$data.'" '.$min.'  '.$max.' class="small-text" '.$disabled.' />'."\n";
882 882
 								break;
883 883
 
884 884
 								case 'textarea':
885
-									$html .= '<textarea id="' . esc_attr( $field['id'] ) . '" rows="5" cols="50" name="' . esc_attr( $field['id'] ) . '" placeholder="' . esc_attr( $field['placeholder'] ) . '" ' . $disabled . '>' . $data . '</textarea><br/>'. "\n";
885
+									$html .= '<textarea id="'.esc_attr($field['id']).'" rows="5" cols="50" name="'.esc_attr($field['id']).'" placeholder="'.esc_attr($field['placeholder']).'" '.$disabled.'>'.$data.'</textarea><br/>'."\n";
886 886
 								break;
887 887
 
888 888
 								case 'checkbox':
889 889
                                     //backwards compatibility
890
-                                    if( empty( $data ) || 'on' == $data ){
890
+                                    if (empty($data) || 'on' == $data) {
891 891
                                         $checked_value = 'on';
892
-                                    }elseif( 'yes' == $data  ) {
892
+                                    }elseif ('yes' == $data) {
893 893
 
894 894
                                         $checked_value = 'yes';
895 895
 
896
-                                    }elseif( 'auto' == $data  ) {
896
+                                    }elseif ('auto' == $data) {
897 897
 
898 898
                                         $checked_value = 'auto';
899 899
 
900 900
                                     } else {
901 901
                                         $checked_value = 1;
902
-                                        $data = intval( $data );
902
+                                        $data = intval($data);
903 903
                                     }
904
-									$checked = checked( $checked_value, $data, false );
905
-									$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . $field['type'] . '" name="' . esc_attr( $field['id'] ) . '" ' . $checked . ' ' . $disabled . '/>' . "\n";
904
+									$checked = checked($checked_value, $data, false);
905
+									$html .= '<input id="'.esc_attr($field['id']).'" type="'.$field['type'].'" name="'.esc_attr($field['id']).'" '.$checked.' '.$disabled.'/>'."\n";
906 906
 								break;
907 907
 
908 908
 								case 'checkbox_multi':
909
-									foreach( $field['options'] as $k => $v ) {
909
+									foreach ($field['options'] as $k => $v) {
910 910
 										$checked = false;
911
-										if( in_array( $k, $data ) ) {
911
+										if (in_array($k, $data)) {
912 912
 											$checked = true;
913 913
 										}
914
-										$html .= '<label for="' . esc_attr( $field['id'] . '_' . $k ) . '"><input type="checkbox" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $field['id'] ) . '[]" value="' . esc_attr( $k ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" ' . $disabled . ' /> ' . $v . '</label> ' . "\n";
914
+										$html .= '<label for="'.esc_attr($field['id'].'_'.$k).'"><input type="checkbox" '.checked($checked, true, false).' name="'.esc_attr($field['id']).'[]" value="'.esc_attr($k).'" id="'.esc_attr($field['id'].'_'.$k).'" '.$disabled.' /> '.$v.'</label> '."\n";
915 915
 									}
916 916
 								break;
917 917
 
918 918
 								case 'radio':
919
-									foreach( $field['options'] as $k => $v ) {
919
+									foreach ($field['options'] as $k => $v) {
920 920
 										$checked = false;
921
-										if( $k == $data ) {
921
+										if ($k == $data) {
922 922
 											$checked = true;
923 923
 										}
924
-										$html .= '<label for="' . esc_attr( $field['id'] . '_' . $k ) . '"><input type="radio" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $field['id'] ) . '" value="' . esc_attr( $k ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" ' . $disabled . ' /> ' . $v . '</label> ' . "\n";
924
+										$html .= '<label for="'.esc_attr($field['id'].'_'.$k).'"><input type="radio" '.checked($checked, true, false).' name="'.esc_attr($field['id']).'" value="'.esc_attr($k).'" id="'.esc_attr($field['id'].'_'.$k).'" '.$disabled.' /> '.$v.'</label> '."\n";
925 925
 									}
926 926
 								break;
927 927
 
928 928
 								case 'select':
929
-									$html .= '<select name="' . esc_attr( $field['id'] ) . '" id="' . esc_attr( $field['id'] ) . '" ' . $disabled . '>' . "\n";
930
-									foreach( $field['options'] as $k => $v ) {
929
+									$html .= '<select name="'.esc_attr($field['id']).'" id="'.esc_attr($field['id']).'" '.$disabled.'>'."\n";
930
+									foreach ($field['options'] as $k => $v) {
931 931
 										$selected = false;
932
-										if( $k == $data ) {
932
+										if ($k == $data) {
933 933
 											$selected = true;
934 934
 										}
935
-										$html .= '<option ' . selected( $selected, true, false ) . ' value="' . esc_attr( $k ) . '">' . $v . '</option>' . "\n";
935
+										$html .= '<option '.selected($selected, true, false).' value="'.esc_attr($k).'">'.$v.'</option>'."\n";
936 936
 									}
937
-									$html .= '</select><br/>' . "\n";
937
+									$html .= '</select><br/>'."\n";
938 938
 								break;
939 939
 
940 940
 								case 'select_multi':
941
-									$html .= '<select name="' . esc_attr( $field['id'] ) . '[]" id="' . esc_attr( $field['id'] ) . '" multiple="multiple" ' . $disabled . '>' . "\n";
942
-									foreach( $field['options'] as $k => $v ) {
941
+									$html .= '<select name="'.esc_attr($field['id']).'[]" id="'.esc_attr($field['id']).'" multiple="multiple" '.$disabled.'>'."\n";
942
+									foreach ($field['options'] as $k => $v) {
943 943
 										$selected = false;
944
-										if( in_array( $k, $data ) ) {
944
+										if (in_array($k, $data)) {
945 945
 											$selected = true;
946 946
 										}
947
-										$html .= '<option ' . selected( $selected, true, false ) . ' value="' . esc_attr( $k ) . '" />' . $v . '</option>' . "\n";
947
+										$html .= '<option '.selected($selected, true, false).' value="'.esc_attr($k).'" />'.$v.'</option>'."\n";
948 948
 									}
949 949
 									$html .= '</select> . "\n"';
950 950
 								break;
951 951
 
952 952
 								case 'hidden':
953
-									$html .= '<input id="' . esc_attr( $field['id'] ) . '" type="' . $field['type'] . '" name="' . esc_attr( $field['id'] ) . '" value="' . $data . '" ' . $disabled . '/>' . "\n";
953
+									$html .= '<input id="'.esc_attr($field['id']).'" type="'.$field['type'].'" name="'.esc_attr($field['id']).'" value="'.$data.'" '.$disabled.'/>'."\n";
954 954
 								break;
955 955
 
956 956
 							}
957 957
 
958
-							if( $field['description'] ) {
959
-								$html .= ' <span class="description">' . esc_html( $field['description'] ) . '</span>' . "\n";
958
+							if ($field['description']) {
959
+								$html .= ' <span class="description">'.esc_html($field['description']).'</span>'."\n";
960 960
 							}
961 961
 
962
-						if( ! in_array( $field['type'], array( 'hidden', 'checkbox_multi', 'radio' ) ) ) {
963
-							$html .= '</label>' . "\n";
962
+						if ( ! in_array($field['type'], array('hidden', 'checkbox_multi', 'radio'))) {
963
+							$html .= '</label>'."\n";
964 964
 						}
965 965
 
966
-					if( 'hidden' != $field['type'] ) {
967
-						$html .= '</p>' . "\n";
966
+					if ('hidden' != $field['type']) {
967
+						$html .= '</p>'."\n";
968 968
 					}
969 969
 
970 970
 				}
971 971
 
972
-			$html .= '</div>' . "\n";
972
+			$html .= '</div>'."\n";
973 973
 
974
-		$html .= '</div>' . "\n";
974
+		$html .= '</div>'."\n";
975 975
 
976 976
 		return $html;
977 977
 	}
@@ -982,61 +982,61 @@  discard block
 block discarded – undo
982 982
 	 */
983 983
 	public function course_order_screen() {
984 984
 
985
-		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
986
-		wp_enqueue_script( 'woothemes-sensei-settings', esc_url( Sensei()->plugin_url . 'assets/js/settings' . $suffix . '.js' ), array( 'jquery', 'jquery-ui-sortable' ), Sensei()->version );
985
+		$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
986
+		wp_enqueue_script('woothemes-sensei-settings', esc_url(Sensei()->plugin_url.'assets/js/settings'.$suffix.'.js'), array('jquery', 'jquery-ui-sortable'), Sensei()->version);
987 987
 
988 988
 		?><div id="course-order" class="wrap course-order">
989
-		<h2><?php _e( 'Order Courses', 'woothemes-sensei' ); ?></h2><?php
989
+		<h2><?php _e('Order Courses', 'woothemes-sensei'); ?></h2><?php
990 990
 
991 991
 		$html = '';
992 992
 
993
-		if( isset( $_POST['course-order'] ) && 0 < strlen( $_POST['course-order'] ) ) {
994
-			$ordered = $this->save_course_order( esc_attr( $_POST['course-order'] ) );
993
+		if (isset($_POST['course-order']) && 0 < strlen($_POST['course-order'])) {
994
+			$ordered = $this->save_course_order(esc_attr($_POST['course-order']));
995 995
 
996
-			if( $ordered ) {
997
-				$html .= '<div class="updated fade">' . "\n";
998
-				$html .= '<p>' . __( 'The course order has been saved.', 'woothemes-sensei' ) . '</p>' . "\n";
999
-				$html .= '</div>' . "\n";
996
+			if ($ordered) {
997
+				$html .= '<div class="updated fade">'."\n";
998
+				$html .= '<p>'.__('The course order has been saved.', 'woothemes-sensei').'</p>'."\n";
999
+				$html .= '</div>'."\n";
1000 1000
 			}
1001 1001
 		}
1002 1002
 
1003 1003
 		$courses = Sensei()->course->get_all_courses();
1004 1004
 
1005
-		if( 0 < count( $courses ) ) {
1005
+		if (0 < count($courses)) {
1006 1006
 
1007 1007
             // order the courses as set by the users
1008 1008
             $all_course_ids = array();
1009
-            foreach( $courses as $course ){
1009
+            foreach ($courses as $course) {
1010 1010
 
1011
-                $all_course_ids[] = (string)$course->ID;
1011
+                $all_course_ids[] = (string) $course->ID;
1012 1012
 
1013 1013
             }
1014 1014
             $order_string = $this->get_course_order();
1015 1015
 
1016
-            if( !empty( $order_string ) ){
1017
-                $ordered_course_ids = explode(',' , $order_string );
1018
-                $all_course_ids = array_unique( array_merge( $ordered_course_ids , $all_course_ids ) );
1016
+            if ( ! empty($order_string)) {
1017
+                $ordered_course_ids = explode(',', $order_string);
1018
+                $all_course_ids = array_unique(array_merge($ordered_course_ids, $all_course_ids));
1019 1019
             }
1020 1020
 
1021 1021
 
1022
-			$html .= '<form id="editgrouping" method="post" action="" class="validate">' . "\n";
1023
-			$html .= '<ul class="sortable-course-list">' . "\n";
1022
+			$html .= '<form id="editgrouping" method="post" action="" class="validate">'."\n";
1023
+			$html .= '<ul class="sortable-course-list">'."\n";
1024 1024
 			$count = 0;
1025
-			foreach ( $all_course_ids as $course_id ) {
1026
-                $course = get_post( $course_id );
1025
+			foreach ($all_course_ids as $course_id) {
1026
+                $course = get_post($course_id);
1027 1027
 				$count++;
1028 1028
 				$class = 'course';
1029
-				if ( $count == 1 ) { $class .= ' first'; }
1030
-				if ( $count == count( $course ) ) { $class .= ' last'; }
1031
-				if ( $count % 2 != 0 ) {
1029
+				if ($count == 1) { $class .= ' first'; }
1030
+				if ($count == count($course)) { $class .= ' last'; }
1031
+				if ($count % 2 != 0) {
1032 1032
 					$class .= ' alternate';
1033 1033
 				}
1034
-				$html .= '<li class="' . esc_attr( $class ) . '"><span rel="' . esc_attr( $course->ID ) . '" style="width: 100%;"> ' . $course->post_title . '</span></li>' . "\n";
1034
+				$html .= '<li class="'.esc_attr($class).'"><span rel="'.esc_attr($course->ID).'" style="width: 100%;"> '.$course->post_title.'</span></li>'."\n";
1035 1035
 			}
1036
-			$html .= '</ul>' . "\n";
1036
+			$html .= '</ul>'."\n";
1037 1037
 
1038
-			$html .= '<input type="hidden" name="course-order" value="' . esc_attr( $order_string ) . '" />' . "\n";
1039
-			$html .= '<input type="submit" class="button-primary" value="' . __( 'Save course order', 'woothemes-sensei' ) . '" />' . "\n";
1038
+			$html .= '<input type="hidden" name="course-order" value="'.esc_attr($order_string).'" />'."\n";
1039
+			$html .= '<input type="submit" class="button-primary" value="'.__('Save course order', 'woothemes-sensei').'" />'."\n";
1040 1040
 		}
1041 1041
 
1042 1042
 		echo $html;
@@ -1045,25 +1045,25 @@  discard block
 block discarded – undo
1045 1045
 	}
1046 1046
 
1047 1047
 	public function get_course_order() {
1048
-		return get_option( 'sensei_course_order', '' );
1048
+		return get_option('sensei_course_order', '');
1049 1049
 	}
1050 1050
 
1051
-	public function save_course_order( $order_string = '' ) {
1052
-		$order = explode( ',', $order_string );
1051
+	public function save_course_order($order_string = '') {
1052
+		$order = explode(',', $order_string);
1053 1053
 
1054
-		update_option( 'sensei_course_order', $order_string );
1054
+		update_option('sensei_course_order', $order_string);
1055 1055
 
1056 1056
 		$i = 1;
1057
-		foreach( $order as $course_id ) {
1057
+		foreach ($order as $course_id) {
1058 1058
 
1059
-			if( $course_id ) {
1059
+			if ($course_id) {
1060 1060
 
1061 1061
 				$update_args = array(
1062 1062
 					'ID' => $course_id,
1063 1063
 					'menu_order' => $i,
1064 1064
 				);
1065 1065
 
1066
-				wp_update_post( $update_args );
1066
+				wp_update_post($update_args);
1067 1067
 
1068 1068
 				++$i;
1069 1069
 			}
@@ -1078,22 +1078,22 @@  discard block
 block discarded – undo
1078 1078
 	 */
1079 1079
 	public function lesson_order_screen() {
1080 1080
 
1081
-		$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1082
-		wp_enqueue_script( 'woothemes-sensei-settings', esc_url( Sensei()->plugin_url . 'assets/js/settings' . $suffix . '.js' ), array( 'jquery', 'jquery-ui-sortable' ), Sensei()->version );
1081
+		$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
1082
+		wp_enqueue_script('woothemes-sensei-settings', esc_url(Sensei()->plugin_url.'assets/js/settings'.$suffix.'.js'), array('jquery', 'jquery-ui-sortable'), Sensei()->version);
1083 1083
 
1084 1084
 		?><div id="lesson-order" class="wrap lesson-order">
1085
-		<h2><?php _e( 'Order Lessons', 'woothemes-sensei' ); ?></h2><?php
1085
+		<h2><?php _e('Order Lessons', 'woothemes-sensei'); ?></h2><?php
1086 1086
 
1087 1087
 		$html = '';
1088 1088
 
1089
-		if( isset( $_POST['lesson-order'] ) ) {
1089
+		if (isset($_POST['lesson-order'])) {
1090 1090
 
1091
-			$ordered = $this->save_lesson_order( esc_attr( $_POST['lesson-order'] ), esc_attr( $_POST['course_id'] ) );
1091
+			$ordered = $this->save_lesson_order(esc_attr($_POST['lesson-order']), esc_attr($_POST['course_id']));
1092 1092
 
1093
-			if( $ordered ) {
1094
-				$html .= '<div class="updated fade">' . "\n";
1095
-				$html .= '<p>' . __( 'The lesson order has been saved.', 'woothemes-sensei' ) . '</p>' . "\n";
1096
-				$html .= '</div>' . "\n";
1093
+			if ($ordered) {
1094
+				$html .= '<div class="updated fade">'."\n";
1095
+				$html .= '<p>'.__('The lesson order has been saved.', 'woothemes-sensei').'</p>'."\n";
1096
+				$html .= '</div>'."\n";
1097 1097
 			}
1098 1098
 		}
1099 1099
 
@@ -1104,43 +1104,43 @@  discard block
 block discarded – undo
1104 1104
 			'orderby' => 'name',
1105 1105
 			'order' => 'ASC',
1106 1106
 		);
1107
-		$courses = get_posts( $args );
1107
+		$courses = get_posts($args);
1108 1108
 
1109
-		$html .= '<form action="' . admin_url( 'edit.php' ) . '" method="get">' . "\n";
1110
-		$html .= '<input type="hidden" name="post_type" value="lesson" />' . "\n";
1111
-		$html .= '<input type="hidden" name="page" value="lesson-order" />' . "\n";
1112
-		$html .= '<select id="lesson-order-course" name="course_id">' . "\n";
1113
-		$html .= '<option value="">' . __( 'Select a course', 'woothemes-sensei' ) . '</option>' . "\n";
1109
+		$html .= '<form action="'.admin_url('edit.php').'" method="get">'."\n";
1110
+		$html .= '<input type="hidden" name="post_type" value="lesson" />'."\n";
1111
+		$html .= '<input type="hidden" name="page" value="lesson-order" />'."\n";
1112
+		$html .= '<select id="lesson-order-course" name="course_id">'."\n";
1113
+		$html .= '<option value="">'.__('Select a course', 'woothemes-sensei').'</option>'."\n";
1114 1114
 
1115
-		foreach( $courses as $course ) {
1115
+		foreach ($courses as $course) {
1116 1116
 			$course_id = '';
1117
-			if( isset( $_GET['course_id'] ) ) {
1118
-				$course_id = intval( $_GET['course_id'] );
1117
+			if (isset($_GET['course_id'])) {
1118
+				$course_id = intval($_GET['course_id']);
1119 1119
 			}
1120
-			$html .= '<option value="' . esc_attr( intval( $course->ID ) ) . '" ' . selected( $course->ID, $course_id, false ) .'>' . get_the_title( $course->ID ) . '</option>' . "\n";
1120
+			$html .= '<option value="'.esc_attr(intval($course->ID)).'" '.selected($course->ID, $course_id, false).'>'.get_the_title($course->ID).'</option>'."\n";
1121 1121
 		}
1122 1122
 
1123
-		$html .= '</select>' . "\n";
1124
-		$html .= '<input type="submit" class="button-primary lesson-order-select-course-submit" value="' . __( 'Select', 'woothemes-sensei' ) . '" />' . "\n";
1125
-		$html .= '</form>' . "\n";
1123
+		$html .= '</select>'."\n";
1124
+		$html .= '<input type="submit" class="button-primary lesson-order-select-course-submit" value="'.__('Select', 'woothemes-sensei').'" />'."\n";
1125
+		$html .= '</form>'."\n";
1126 1126
 
1127
-		$html .= '<script type="text/javascript">' . "\n";
1128
-		$html .= 'jQuery( \'#lesson-order-course\' ).select2({width:"resolve"});' . "\n";
1129
-		$html .= '</script>' . "\n";
1127
+		$html .= '<script type="text/javascript">'."\n";
1128
+		$html .= 'jQuery( \'#lesson-order-course\' ).select2({width:"resolve"});'."\n";
1129
+		$html .= '</script>'."\n";
1130 1130
 
1131
-		if( isset( $_GET['course_id'] ) ) {
1132
-			$course_id = intval( $_GET['course_id'] );
1133
-			if( $course_id > 0 ) {
1131
+		if (isset($_GET['course_id'])) {
1132
+			$course_id = intval($_GET['course_id']);
1133
+			if ($course_id > 0) {
1134 1134
 
1135
-				$order_string = $this->get_lesson_order( $course_id );
1135
+				$order_string = $this->get_lesson_order($course_id);
1136 1136
 
1137
-				$html .= '<form id="editgrouping" method="post" action="" class="validate">' . "\n";
1137
+				$html .= '<form id="editgrouping" method="post" action="" class="validate">'."\n";
1138 1138
 
1139 1139
 				$displayed_lessons = array();
1140 1140
 
1141
-                $modules = Sensei()->modules->get_course_modules( intval( $course_id ) );
1141
+                $modules = Sensei()->modules->get_course_modules(intval($course_id));
1142 1142
 
1143
-                foreach( $modules as $module ) {
1143
+                foreach ($modules as $module) {
1144 1144
 
1145 1145
                     $args = array(
1146 1146
                         'post_type' => 'lesson',
@@ -1149,7 +1149,7 @@  discard block
 block discarded – undo
1149 1149
                         'meta_query' => array(
1150 1150
                             array(
1151 1151
                                 'key' => '_lesson_course',
1152
-                                'value' => intval( $course_id ),
1152
+                                'value' => intval($course_id),
1153 1153
                                 'compare' => '='
1154 1154
                             )
1155 1155
                         ),
@@ -1157,66 +1157,66 @@  discard block
 block discarded – undo
1157 1157
                             array(
1158 1158
                                 'taxonomy' => Sensei()->modules->taxonomy,
1159 1159
                                 'field' => 'id',
1160
-                                'terms' => intval( $module->term_id )
1160
+                                'terms' => intval($module->term_id)
1161 1161
                             )
1162 1162
                         ),
1163
-                        'meta_key' => '_order_module_' . $module->term_id,
1163
+                        'meta_key' => '_order_module_'.$module->term_id,
1164 1164
                         'orderby' => 'meta_value_num date',
1165 1165
                         'order' => 'ASC',
1166 1166
                         'suppress_filters' => 0
1167 1167
                     );
1168 1168
 
1169
-                    $lessons = get_posts( $args );
1169
+                    $lessons = get_posts($args);
1170 1170
 
1171
-                    if( count( $lessons ) > 0 ) {
1172
-                        $html .= '<h3>' . $module->name . '</h3>' . "\n";
1173
-                        $html .= '<ul class="sortable-lesson-list" data-module_id="' . $module->term_id . '">' . "\n";
1171
+                    if (count($lessons) > 0) {
1172
+                        $html .= '<h3>'.$module->name.'</h3>'."\n";
1173
+                        $html .= '<ul class="sortable-lesson-list" data-module_id="'.$module->term_id.'">'."\n";
1174 1174
 
1175 1175
                         $count = 0;
1176
-                        foreach( $lessons as $lesson ) {
1176
+                        foreach ($lessons as $lesson) {
1177 1177
                             $count++;
1178 1178
                             $class = 'lesson';
1179
-                            if ( $count == 1 ) { $class .= ' first'; }
1180
-                            if ( $count == count( $lesson ) ) { $class .= ' last'; }
1181
-                            if ( $count % 2 != 0 ) {
1179
+                            if ($count == 1) { $class .= ' first'; }
1180
+                            if ($count == count($lesson)) { $class .= ' last'; }
1181
+                            if ($count % 2 != 0) {
1182 1182
                                 $class .= ' alternate';
1183 1183
                             }
1184 1184
 
1185
-                            $html .= '<li class="' . esc_attr( $class ) . '"><span rel="' . esc_attr( $lesson->ID ) . '" style="width: 100%;"> ' . $lesson->post_title . '</span></li>' . "\n";
1185
+                            $html .= '<li class="'.esc_attr($class).'"><span rel="'.esc_attr($lesson->ID).'" style="width: 100%;"> '.$lesson->post_title.'</span></li>'."\n";
1186 1186
 
1187 1187
                             $displayed_lessons[] = $lesson->ID;
1188 1188
                         }
1189 1189
 
1190
-                        $html .= '</ul>' . "\n";
1190
+                        $html .= '</ul>'."\n";
1191 1191
 
1192
-                        $html .= '<input type="hidden" name="lesson-order-module-' . $module->term_id . '" value="" />' . "\n";
1192
+                        $html .= '<input type="hidden" name="lesson-order-module-'.$module->term_id.'" value="" />'."\n";
1193 1193
                     }
1194 1194
                 }
1195 1195
 
1196 1196
 
1197
-                $lessons = Sensei()->course->course_lessons( $course_id );
1197
+                $lessons = Sensei()->course->course_lessons($course_id);
1198 1198
 
1199
-				if( 0 < count( $lessons ) ) {
1199
+				if (0 < count($lessons)) {
1200 1200
 
1201 1201
                     //get module term ids, will be used to exclude lessons
1202 1202
                     $module_items_ids = array();
1203
-                    if( ! empty( $modules ) ) {
1203
+                    if ( ! empty($modules)) {
1204 1204
                         foreach ($modules as $module) {
1205 1205
                             $module_items_ids[] = $module->term_id;
1206 1206
                         }
1207 1207
                     }
1208 1208
 
1209
-					if( 0 < count( $displayed_lessons ) ) {
1210
-						$html .= '<h3>' . __( 'Other Lessons', 'woothemes-sensei' ) . '</h3>' . "\n";
1209
+					if (0 < count($displayed_lessons)) {
1210
+						$html .= '<h3>'.__('Other Lessons', 'woothemes-sensei').'</h3>'."\n";
1211 1211
 					}
1212 1212
 
1213
-					$html .= '<ul class="sortable-lesson-list" data-module_id="0">' . "\n";
1213
+					$html .= '<ul class="sortable-lesson-list" data-module_id="0">'."\n";
1214 1214
 					$count = 0;
1215
-					foreach ( $lessons as $lesson ) {
1215
+					foreach ($lessons as $lesson) {
1216 1216
 
1217 1217
                         // if lesson belongs to one fo the course modules then exclude it here
1218 1218
                         // as it is listed above
1219
-                        if( has_term( $module_items_ids, 'module', $lesson->ID )  ){
1219
+                        if (has_term($module_items_ids, 'module', $lesson->ID)) {
1220 1220
 
1221 1221
                             continue;
1222 1222
 
@@ -1224,28 +1224,28 @@  discard block
 block discarded – undo
1224 1224
 
1225 1225
 						$count++;
1226 1226
 						$class = 'lesson';
1227
-						if ( $count == 1 ) { $class .= ' first'; }
1228
-						if ( $count == count( $lesson ) ) { $class .= ' last'; }
1229
-						if ( $count % 2 != 0 ) {
1227
+						if ($count == 1) { $class .= ' first'; }
1228
+						if ($count == count($lesson)) { $class .= ' last'; }
1229
+						if ($count % 2 != 0) {
1230 1230
 
1231 1231
 							$class .= ' alternate';
1232 1232
 
1233 1233
 						}
1234
-						$html .= '<li class="' . esc_attr( $class ) . '"><span rel="' . esc_attr( $lesson->ID ) . '" style="width: 100%;"> ' . $lesson->post_title . '</span></li>' . "\n";
1234
+						$html .= '<li class="'.esc_attr($class).'"><span rel="'.esc_attr($lesson->ID).'" style="width: 100%;"> '.$lesson->post_title.'</span></li>'."\n";
1235 1235
 
1236 1236
 						$displayed_lessons[] = $lesson->ID;
1237 1237
 					}
1238
-					$html .= '</ul>' . "\n";
1238
+					$html .= '</ul>'."\n";
1239 1239
 				} else {
1240
-					if( 0 == count( $displayed_lessons ) ) {
1241
-						$html .= '<p><em>' . __( 'There are no lessons in this course.', 'woothemes-sensei' ) . '</em></p>';
1240
+					if (0 == count($displayed_lessons)) {
1241
+						$html .= '<p><em>'.__('There are no lessons in this course.', 'woothemes-sensei').'</em></p>';
1242 1242
 					}
1243 1243
 				}
1244 1244
 
1245
-				if( 0 < count( $displayed_lessons ) ) {
1246
-					$html .= '<input type="hidden" name="lesson-order" value="' . esc_attr( $order_string ) . '" />' . "\n";
1247
-					$html .= '<input type="hidden" name="course_id" value="' . $course_id . '" />' . "\n";
1248
-					$html .= '<input type="submit" class="button-primary" value="' . __( 'Save lesson order', 'woothemes-sensei' ) . '" />' . "\n";
1245
+				if (0 < count($displayed_lessons)) {
1246
+					$html .= '<input type="hidden" name="lesson-order" value="'.esc_attr($order_string).'" />'."\n";
1247
+					$html .= '<input type="hidden" name="course_id" value="'.$course_id.'" />'."\n";
1248
+					$html .= '<input type="submit" class="button-primary" value="'.__('Save lesson order', 'woothemes-sensei').'" />'."\n";
1249 1249
 				}
1250 1250
 			}
1251 1251
 		}
@@ -1255,27 +1255,27 @@  discard block
 block discarded – undo
1255 1255
 		?></div><?php
1256 1256
 	}
1257 1257
 
1258
-	public function get_lesson_order( $course_id = 0 ) {
1259
-		$order_string = get_post_meta( $course_id, '_lesson_order', true );
1258
+	public function get_lesson_order($course_id = 0) {
1259
+		$order_string = get_post_meta($course_id, '_lesson_order', true);
1260 1260
 		return $order_string;
1261 1261
 	}
1262 1262
 
1263
-	public function save_lesson_order( $order_string = '', $course_id = 0 ) {
1263
+	public function save_lesson_order($order_string = '', $course_id = 0) {
1264 1264
 
1265
-		if( $course_id ) {
1265
+		if ($course_id) {
1266 1266
 
1267
-            $modules = Sensei()->modules->get_course_modules( intval( $course_id ) );
1267
+            $modules = Sensei()->modules->get_course_modules(intval($course_id));
1268 1268
 
1269
-            foreach( $modules as $module ) {
1269
+            foreach ($modules as $module) {
1270 1270
 
1271
-                $module_order_string = $_POST[ 'lesson-order-module-' . $module->term_id ];
1271
+                $module_order_string = $_POST['lesson-order-module-'.$module->term_id];
1272 1272
 
1273
-                if( $module_order_string ) {
1274
-                    $order = explode( ',', $module_order_string );
1273
+                if ($module_order_string) {
1274
+                    $order = explode(',', $module_order_string);
1275 1275
                     $i = 1;
1276
-                    foreach( $order as $lesson_id ) {
1277
-                        if( $lesson_id ) {
1278
-                            update_post_meta( $lesson_id, '_order_module_' . $module->term_id, $i );
1276
+                    foreach ($order as $lesson_id) {
1277
+                        if ($lesson_id) {
1278
+                            update_post_meta($lesson_id, '_order_module_'.$module->term_id, $i);
1279 1279
                             ++$i;
1280 1280
                         }
1281 1281
                     }
@@ -1283,15 +1283,15 @@  discard block
 block discarded – undo
1283 1283
             }
1284 1284
 
1285 1285
 
1286
-			if( $order_string ) {
1287
-				update_post_meta( $course_id, '_lesson_order', $order_string );
1286
+			if ($order_string) {
1287
+				update_post_meta($course_id, '_lesson_order', $order_string);
1288 1288
 
1289
-				$order = explode( ',', $order_string );
1289
+				$order = explode(',', $order_string);
1290 1290
 
1291 1291
 				$i = 1;
1292
-				foreach( $order as $lesson_id ) {
1293
-					if( $lesson_id ) {
1294
-						update_post_meta( $lesson_id, '_order_' . $course_id, $i );
1292
+				foreach ($order as $lesson_id) {
1293
+					if ($lesson_id) {
1294
+						update_post_meta($lesson_id, '_order_'.$course_id, $i);
1295 1295
 						++$i;
1296 1296
 					}
1297 1297
 				}
@@ -1306,54 +1306,54 @@  discard block
 block discarded – undo
1306 1306
 	function sensei_add_custom_menu_items() {
1307 1307
 		global $pagenow;
1308 1308
 
1309
-		if( 'nav-menus.php' == $pagenow ) {
1310
-			add_meta_box( 'add-sensei-links', 'Sensei', array( $this, 'wp_nav_menu_item_sensei_links_meta_box' ), 'nav-menus', 'side', 'low' );
1309
+		if ('nav-menus.php' == $pagenow) {
1310
+			add_meta_box('add-sensei-links', 'Sensei', array($this, 'wp_nav_menu_item_sensei_links_meta_box'), 'nav-menus', 'side', 'low');
1311 1311
 		}
1312 1312
 	}
1313 1313
 
1314
-	function wp_nav_menu_item_sensei_links_meta_box( $object ) {
1314
+	function wp_nav_menu_item_sensei_links_meta_box($object) {
1315 1315
 		global $nav_menu_selected_id;
1316 1316
 
1317 1317
 		$menu_items = array(
1318
-			'#senseicourses' => __( 'Courses', 'woothemes-sensei' ),
1319
-			'#senseilessons' => __( 'Lessons', 'woothemes-sensei' ),
1320
-			'#senseimycourses' => __( 'My Courses', 'woothemes-sensei' ),
1321
-			'#senseilearnerprofile' => __( 'My Profile', 'woothemes-sensei' ),
1322
-			'#senseimymessages' => __( 'My Messages', 'woothemes-sensei' ),
1323
-			'#senseiloginlogout' => __( 'Login', 'woothemes-sensei' ) . '|' . __( 'Logout', 'woothemes-sensei' )
1318
+			'#senseicourses' => __('Courses', 'woothemes-sensei'),
1319
+			'#senseilessons' => __('Lessons', 'woothemes-sensei'),
1320
+			'#senseimycourses' => __('My Courses', 'woothemes-sensei'),
1321
+			'#senseilearnerprofile' => __('My Profile', 'woothemes-sensei'),
1322
+			'#senseimymessages' => __('My Messages', 'woothemes-sensei'),
1323
+			'#senseiloginlogout' => __('Login', 'woothemes-sensei').'|'.__('Logout', 'woothemes-sensei')
1324 1324
 		);
1325 1325
 
1326 1326
 		$menu_items_obj = array();
1327
-		foreach ( $menu_items as $value => $title ) {
1327
+		foreach ($menu_items as $value => $title) {
1328 1328
 			$menu_items_obj[$title] = new stdClass;
1329
-			$menu_items_obj[$title]->object_id			= esc_attr( $value );
1330
-			$menu_items_obj[$title]->title				= esc_attr( $title );
1331
-			$menu_items_obj[$title]->url				= esc_attr( $value );
1332
-			$menu_items_obj[$title]->description 		= 'description';
1329
+			$menu_items_obj[$title]->object_id = esc_attr($value);
1330
+			$menu_items_obj[$title]->title = esc_attr($title);
1331
+			$menu_items_obj[$title]->url = esc_attr($value);
1332
+			$menu_items_obj[$title]->description = 'description';
1333 1333
 			$menu_items_obj[$title]->db_id 				= 0;
1334 1334
 			$menu_items_obj[$title]->object 			= 'sensei';
1335
-			$menu_items_obj[$title]->menu_item_parent 	= 0;
1336
-			$menu_items_obj[$title]->type 				= 'custom';
1335
+			$menu_items_obj[$title]->menu_item_parent = 0;
1336
+			$menu_items_obj[$title]->type = 'custom';
1337 1337
 			$menu_items_obj[$title]->target 			= '';
1338
-			$menu_items_obj[$title]->attr_title 		= '';
1339
-			$menu_items_obj[$title]->classes 			= array();
1340
-			$menu_items_obj[$title]->xfn 				= '';
1338
+			$menu_items_obj[$title]->attr_title = '';
1339
+			$menu_items_obj[$title]->classes = array();
1340
+			$menu_items_obj[$title]->xfn = '';
1341 1341
 		}
1342 1342
 
1343
-		$walker = new Walker_Nav_Menu_Checklist( array() );
1343
+		$walker = new Walker_Nav_Menu_Checklist(array());
1344 1344
 		?>
1345 1345
 
1346 1346
 		<div id="sensei-links" class="senseidiv taxonomydiv">
1347 1347
 			<div id="tabs-panel-sensei-links-all" class="tabs-panel tabs-panel-view-all tabs-panel-active">
1348 1348
 
1349 1349
 				<ul id="sensei-linkschecklist" class="list:sensei-links categorychecklist form-no-clear">
1350
-					<?php echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $menu_items_obj ), 0, (object)array( 'walker' => $walker ) ); ?>
1350
+					<?php echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $menu_items_obj), 0, (object) array('walker' => $walker)); ?>
1351 1351
 				</ul>
1352 1352
 
1353 1353
 			</div>
1354 1354
 			<p class="button-controls">
1355 1355
 				<span class="add-to-menu">
1356
-					<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu', 'woothemes-sensei' ); ?>" name="add-sensei-links-menu-item" id="submit-sensei-links" />
1356
+					<input type="submit"<?php disabled($nav_menu_selected_id, 0); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu', 'woothemes-sensei'); ?>" name="add-sensei-links-menu-item" id="submit-sensei-links" />
1357 1357
 					<span class="spinner"></span>
1358 1358
 				</span>
1359 1359
 			</p>
@@ -1369,17 +1369,17 @@  discard block
 block discarded – undo
1369 1369
 	 */
1370 1370
 	public function theme_compatibility_notices() {
1371 1371
 
1372
-        if( isset( $_GET['sensei_hide_notice'] ) ) {
1373
-        	switch( esc_attr( $_GET['sensei_hide_notice'] ) ) {
1374
-				case 'menu_settings': add_user_meta( get_current_user_id(), 'sensei_hide_menu_settings_notice', true ); break;
1375
-				case 'theme_check': add_user_meta( get_current_user_id(), 'sensei_hide_theme_check_notice', true ); break;
1372
+        if (isset($_GET['sensei_hide_notice'])) {
1373
+        	switch (esc_attr($_GET['sensei_hide_notice'])) {
1374
+				case 'menu_settings': add_user_meta(get_current_user_id(), 'sensei_hide_menu_settings_notice', true); break;
1375
+				case 'theme_check': add_user_meta(get_current_user_id(), 'sensei_hide_theme_check_notice', true); break;
1376 1376
 			}
1377 1377
         }
1378 1378
 
1379 1379
         // white list templates that are already support by default and do not show notice for them
1380
-        $template = get_option( 'template' );
1380
+        $template = get_option('template');
1381 1381
 
1382
-        $white_list = array(    'twentyeleven',
1382
+        $white_list = array('twentyeleven',
1383 1383
                                 'twentytwelve',
1384 1384
                                 'twentyfourteen',
1385 1385
                                 'twentyfifteen',
@@ -1387,43 +1387,43 @@  discard block
 block discarded – undo
1387 1387
                                 'storefront',
1388 1388
                                                 );
1389 1389
 
1390
-        if ( in_array( $template, $white_list ) ) {
1390
+        if (in_array($template, $white_list)) {
1391 1391
 
1392 1392
             return;
1393 1393
 
1394 1394
         }
1395 1395
 
1396 1396
         // don't show the notice if the user chose to hide it
1397
-        $hide_theme_check_notice = get_user_meta( get_current_user_id(), 'sensei_hide_theme_check_notice', true );
1398
-        if(  $hide_theme_check_notice ) {
1397
+        $hide_theme_check_notice = get_user_meta(get_current_user_id(), 'sensei_hide_theme_check_notice', true);
1398
+        if ($hide_theme_check_notice) {
1399 1399
 
1400 1400
             return;
1401 1401
 
1402 1402
         }
1403 1403
 
1404 1404
         // show the notice for themes not supporting sensei
1405
-	    if ( ! current_theme_supports( 'sensei' ) ) {
1405
+	    if ( ! current_theme_supports('sensei')) {
1406 1406
             ?>
1407 1407
 
1408 1408
             <div id="message" class="error sensei-message sensei-connect">
1409 1409
                     <p>
1410 1410
                         <strong>
1411 1411
 
1412
-                            <?php _e('Your theme does not declare Sensei support', 'woothemes-sensei' ); ?>
1412
+                            <?php _e('Your theme does not declare Sensei support', 'woothemes-sensei'); ?>
1413 1413
 
1414 1414
                         </strong> &#8211;
1415 1415
 
1416
-                        <?php _e( 'if you encounter layout issues please read our integration guide or choose a ', 'woothemes-sensei' ); ?>
1416
+                        <?php _e('if you encounter layout issues please read our integration guide or choose a ', 'woothemes-sensei'); ?>
1417 1417
 
1418
-                        <a href="http://www.woothemes.com/product-category/themes/sensei-themes/"> <?php  _e( 'Sensei theme', 'woothemes-sensei' ) ?> </a>
1418
+                        <a href="http://www.woothemes.com/product-category/themes/sensei-themes/"> <?php  _e('Sensei theme', 'woothemes-sensei') ?> </a>
1419 1419
 
1420 1420
                         :)
1421 1421
 
1422 1422
                     </p>
1423 1423
                     <p class="submit">
1424
-                        <a href="<?php echo esc_url( apply_filters( 'sensei_docs_url', 'http://docs.woothemes.com/document/sensei-and-theme-compatibility/', 'theme-compatibility' ) ); ?>" class="button-primary">
1424
+                        <a href="<?php echo esc_url(apply_filters('sensei_docs_url', 'http://docs.woothemes.com/document/sensei-and-theme-compatibility/', 'theme-compatibility')); ?>" class="button-primary">
1425 1425
 
1426
-                            <?php _e( 'Theme Integration Guide', 'woothemes-sensei' ); ?></a> <a class="skip button" href="<?php echo esc_url( add_query_arg( 'sensei_hide_notice', 'theme_check' ) ); ?>"><?php _e( 'Hide this notice', 'woothemes-sensei' ); ?>
1426
+                            <?php _e('Theme Integration Guide', 'woothemes-sensei'); ?></a> <a class="skip button" href="<?php echo esc_url(add_query_arg('sensei_hide_notice', 'theme_check')); ?>"><?php _e('Hide this notice', 'woothemes-sensei'); ?>
1427 1427
 
1428 1428
                         </a>
1429 1429
                     </p>
@@ -1441,7 +1441,7 @@  discard block
 block discarded – undo
1441 1441
 		wp_get_current_user();
1442 1442
         $user_id = $current_user->ID;
1443 1443
 
1444
-		delete_user_meta( $user_id, 'sensei_hide_theme_check_notice' );
1444
+		delete_user_meta($user_id, 'sensei_hide_theme_check_notice');
1445 1445
 	}
1446 1446
 
1447 1447
 	/**
@@ -1451,8 +1451,8 @@  discard block
 block discarded – undo
1451 1451
 	 * @param  bool $prevent_access
1452 1452
 	 * @return bool
1453 1453
 	 */
1454
-	public function admin_access( $prevent_access ) {
1455
-		if ( current_user_can( 'manage_sensei_grades' ) ) {
1454
+	public function admin_access($prevent_access) {
1455
+		if (current_user_can('manage_sensei_grades')) {
1456 1456
 			return false;
1457 1457
 		}
1458 1458
 
@@ -1467,12 +1467,12 @@  discard block
 block discarded – undo
1467 1467
      *
1468 1468
      * @since 1.8.7
1469 1469
      */
1470
-    public  static function install_pages(){
1470
+    public  static function install_pages() {
1471 1471
 
1472 1472
         // only fire on the settings page
1473
-        if( ! isset( $_GET['page'] )
1473
+        if ( ! isset($_GET['page'])
1474 1474
             || 'woothemes-sensei-settings' != $_GET['page']
1475
-            || 1 == get_option('skip_install_sensei_pages') ){
1475
+            || 1 == get_option('skip_install_sensei_pages')) {
1476 1476
 
1477 1477
             return;
1478 1478
 
@@ -1502,13 +1502,13 @@  discard block
 block discarded – undo
1502 1502
         if ($install_complete) {
1503 1503
 
1504 1504
             // Flush rules after install
1505
-            flush_rewrite_rules( true );
1505
+            flush_rewrite_rules(true);
1506 1506
 
1507 1507
             // Set installed option
1508 1508
             update_option('sensei_installed', 0);
1509 1509
 
1510
-            $complete_url = add_query_arg( 'sensei_install_complete', 'true', $settings_url  );
1511
-            wp_redirect( $complete_url );
1510
+            $complete_url = add_query_arg('sensei_install_complete', 'true', $settings_url);
1511
+            wp_redirect($complete_url);
1512 1512
 
1513 1513
         }
1514 1514
 
@@ -1521,4 +1521,4 @@  discard block
 block discarded – undo
1521 1521
  * for backward compatibility
1522 1522
  * @since 1.9.0
1523 1523
  */
1524
-class WooThemes_Sensei_Admin extends Sensei_Admin{ }
1524
+class WooThemes_Sensei_Admin extends Sensei_Admin { }
Please login to merge, or discard this patch.
templates/globals/wrapper-end.php 3 patches
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,7 @@
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit;
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
3 5
 /**
4 6
  * The Template for displaying the my course page data.
5 7
  *
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit;
2
+if ( ! defined('ABSPATH')) exit;
3 3
 /**
4 4
  * Content wrappers
5 5
  *
Please login to merge, or discard this patch.
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -1,15 +1,15 @@
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) exit;
3 3
 /**
4
- * Content wrappers
5
- *
6
- * All support theme wrappers can be found in includes/theme-integrations
7
- *
8
- * @author 		Automattic
9
- * @package 	Sensei
10
- * @category    Templates
11
- * @version     1.9.0
12
- */
4
+	 * Content wrappers
5
+	 *
6
+	 * All support theme wrappers can be found in includes/theme-integrations
7
+	 *
8
+	 * @author 		Automattic
9
+	 * @package 	Sensei
10
+	 * @category    Templates
11
+	 * @version     1.9.0
12
+	 */
13 13
 ?>
14 14
 
15 15
     </main>
Please login to merge, or discard this patch.
templates/single-quiz/question_type-multi-line.php 3 patches
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,7 @@
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit;
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
3 5
 /**
4 6
  * The Template for displaying the my course page data.
5 7
  *
Please login to merge, or discard this patch.
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -14,19 +14,19 @@
 block discarded – undo
14 14
 
15 15
 <?php
16 16
 
17
-    /**
18
-     * Get the question data with the current quiz id
19
-     * All data is loaded in this array to keep the template clean.
20
-     */
21
-    $question_data = WooThemes_Sensei_Question::get_template_data( sensei_get_the_question_id(), get_the_ID() );
17
+	/**
18
+	 * Get the question data with the current quiz id
19
+	 * All data is loaded in this array to keep the template clean.
20
+	 */
21
+	$question_data = WooThemes_Sensei_Question::get_template_data( sensei_get_the_question_id(), get_the_ID() );
22 22
 
23 23
 ?>
24 24
 
25 25
 <?php
26 26
 
27
-    Sensei_Utils::sensei_text_editor( $question_data[ 'user_answer_entry' ]  ,
28
-                                                'textquestion' . $question_data[ 'ID' ] ,
29
-                                                'sensei_question[' . $question_data[ 'ID' ] . ']' );
27
+	Sensei_Utils::sensei_text_editor( $question_data[ 'user_answer_entry' ]  ,
28
+												'textquestion' . $question_data[ 'ID' ] ,
29
+												'sensei_question[' . $question_data[ 'ID' ] . ']' );
30 30
 
31 31
 ?>
32 32
 
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 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;
2
+if ( ! defined('ABSPATH')) exit;
3 3
 /**
4 4
  * The Template for displaying Multi Line Questions.
5 5
  *
@@ -18,15 +18,15 @@  discard block
 block discarded – undo
18 18
      * Get the question data with the current quiz id
19 19
      * All data is loaded in this array to keep the template clean.
20 20
      */
21
-    $question_data = WooThemes_Sensei_Question::get_template_data( sensei_get_the_question_id(), get_the_ID() );
21
+    $question_data = WooThemes_Sensei_Question::get_template_data(sensei_get_the_question_id(), get_the_ID());
22 22
 
23 23
 ?>
24 24
 
25 25
 <?php
26 26
 
27
-    Sensei_Utils::sensei_text_editor( $question_data[ 'user_answer_entry' ]  ,
28
-                                                'textquestion' . $question_data[ 'ID' ] ,
29
-                                                'sensei_question[' . $question_data[ 'ID' ] . ']' );
27
+    Sensei_Utils::sensei_text_editor($question_data['user_answer_entry'],
28
+                                                'textquestion'.$question_data['ID'],
29
+                                                'sensei_question['.$question_data['ID'].']');
30 30
 
31 31
 ?>
32 32
 
Please login to merge, or discard this patch.
templates/course-results/lessons.php 3 patches
Braces   +3 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,5 +1,7 @@
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit;
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
3 5
 /**
4 6
  * The Template for displaying the my course page data.
5 7
  *
Please login to merge, or discard this patch.
Spacing   +33 added lines, -33 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;
2
+if ( ! defined('ABSPATH')) exit;
3 3
 /**
4 4
  * The Template for displaying all course lessons on the course results page.
5 5
  *
@@ -14,7 +14,7 @@  discard block
 block discarded – undo
14 14
 global $course;
15 15
 ?>
16 16
 
17
-<?php if ( is_user_logged_in() ): ?>
17
+<?php if (is_user_logged_in()): ?>
18 18
 
19 19
     <?php
20 20
     /**
@@ -22,53 +22,53 @@  discard block
 block discarded – undo
22 22
      * is uer logged check, just above the lessons header.
23 23
      * @since 1.4.0
24 24
      */
25
-    do_action( 'sensei_course_results_before_lessons', $course->ID );
25
+    do_action('sensei_course_results_before_lessons', $course->ID);
26 26
     ?>
27 27
 
28 28
     <header>
29 29
 
30
-        <h2>  <?php _e( 'Lessons', 'woothemes-sensei' );  ?> </h2>
30
+        <h2>  <?php _e('Lessons', 'woothemes-sensei'); ?> </h2>
31 31
 
32 32
     </header>
33 33
 
34
-    <article class="<?php  esc_attr_e( join( ' ', get_post_class( array( 'course', 'post' ), $course->ID ) ) ); ?> ">
34
+    <article class="<?php  esc_attr_e(join(' ', get_post_class(array('course', 'post'), $course->ID))); ?> ">
35 35
 
36 36
         <?php
37 37
 
38 38
 		$displayed_lessons = array();
39
-        $modules = Sensei()->modules->get_course_modules( intval( $course->ID ) );
39
+        $modules = Sensei()->modules->get_course_modules(intval($course->ID));
40 40
 
41 41
         // List modules with lessons
42
-        foreach( $modules as $module ) {
42
+        foreach ($modules as $module) {
43 43
 
44
-            $lessons_query = Sensei()->modules->get_lessons_query( $course->ID, $module->term_id );
44
+            $lessons_query = Sensei()->modules->get_lessons_query($course->ID, $module->term_id);
45 45
             $lessons = $lessons_query->get_posts();
46 46
 
47
-            if( count( $lessons ) > 0 ) { ?>
47
+            if (count($lessons) > 0) { ?>
48 48
 
49 49
                 <h3> <?php echo $module->name; ?></h3>
50 50
 
51 51
                 <?php
52 52
                 $count = 0;
53
-                foreach( $lessons as $lesson ) {
53
+                foreach ($lessons as $lesson) {
54 54
 
55 55
                     $lesson_grade = 'n/a';
56
-                    $has_questions = get_post_meta( $lesson->ID, '_quiz_has_questions', true );
57
-                    if ( $has_questions ) {
58
-                        $lesson_status = Sensei_Utils::user_lesson_status( $lesson->ID, get_current_user_id() );
56
+                    $has_questions = get_post_meta($lesson->ID, '_quiz_has_questions', true);
57
+                    if ($has_questions) {
58
+                        $lesson_status = Sensei_Utils::user_lesson_status($lesson->ID, get_current_user_id());
59 59
                         // Get user quiz grade
60
-                        $lesson_grade = get_comment_meta( $lesson_status->comment_ID, 'grade', true );
61
-                        if ( $lesson_grade ) {
60
+                        $lesson_grade = get_comment_meta($lesson_status->comment_ID, 'grade', true);
61
+                        if ($lesson_grade) {
62 62
                             $lesson_grade .= '%';
63 63
                         }
64 64
                     }
65 65
                     ?>
66 66
                     <h2>
67 67
 
68
-                        <a href="<?php esc_url_raw( get_permalink( $lesson->ID ) ); ?>"
69
-                           title="<?php esc_attr_e( sprintf( __( 'Start %s', 'woothemes-sensei' ), $lesson->post_title ) ); ?>">
68
+                        <a href="<?php esc_url_raw(get_permalink($lesson->ID)); ?>"
69
+                           title="<?php esc_attr_e(sprintf(__('Start %s', 'woothemes-sensei'), $lesson->post_title)); ?>">
70 70
 
71
-                            <?php esc_html_e( $lesson->post_title ); ?>
71
+                            <?php esc_html_e($lesson->post_title); ?>
72 72
 
73 73
                         </a>
74 74
 
@@ -89,25 +89,25 @@  discard block
 block discarded – undo
89 89
 
90 90
         <?php
91 91
 
92
-        $lessons = Sensei()->modules->get_none_module_lessons( $course->ID );
93
-        if( 0 < count( $lessons ) ): ?>
92
+        $lessons = Sensei()->modules->get_none_module_lessons($course->ID);
93
+        if (0 < count($lessons)): ?>
94 94
 
95 95
 			<h3>
96 96
 
97
-                <?php _e( 'Other Lessons', 'woothemes-sensei' ); ?>
97
+                <?php _e('Other Lessons', 'woothemes-sensei'); ?>
98 98
 
99 99
             </h3>
100 100
 
101
-            <?php foreach ( $lessons as $lesson ): ?>
101
+            <?php foreach ($lessons as $lesson): ?>
102 102
 
103 103
                 <?php
104 104
                 $lesson_grade = 'n/a';
105
-                $has_questions = get_post_meta( $lesson->ID, '_quiz_has_questions', true );
106
-                if ( $has_questions ) {
107
-                    $lesson_status = Sensei_Utils::user_lesson_status( $lesson->ID, get_current_user_id());
105
+                $has_questions = get_post_meta($lesson->ID, '_quiz_has_questions', true);
106
+                if ($has_questions) {
107
+                    $lesson_status = Sensei_Utils::user_lesson_status($lesson->ID, get_current_user_id());
108 108
                     // Get user quiz grade
109
-                    $lesson_grade = get_comment_meta( $lesson_status->comment_ID, 'grade', true );
110
-                    if ( $lesson_grade ) {
109
+                    $lesson_grade = get_comment_meta($lesson_status->comment_ID, 'grade', true);
110
+                    if ($lesson_grade) {
111 111
                         $lesson_grade .= '%';
112 112
                     }
113 113
                 }
@@ -115,9 +115,9 @@  discard block
 block discarded – undo
115 115
 
116 116
                 <h2>
117 117
 
118
-                    <a href="<?php esc_url_raw( get_permalink( $lesson->ID ) ) ?>" title="<?php esc_attr_e( sprintf( __( 'Start %s', 'woothemes-sensei' ), $lesson->post_title ) ) ?>" >
118
+                    <a href="<?php esc_url_raw(get_permalink($lesson->ID)) ?>" title="<?php esc_attr_e(sprintf(__('Start %s', 'woothemes-sensei'), $lesson->post_title)) ?>" >
119 119
 
120
-                        <?php esc_html_e( sprintf( __( '%s', 'woothemes-sensei' ), $lesson->post_title ) ); ?>
120
+                        <?php esc_html_e(sprintf(__('%s', 'woothemes-sensei'), $lesson->post_title)); ?>
121 121
 
122 122
                     </a>
123 123
 
@@ -132,13 +132,13 @@  discard block
 block discarded – undo
132 132
 
133 133
         <h2 class="total-grade">
134 134
 
135
-            <?php _e( 'Total Grade', 'woothemes-sensei' ); ?>
135
+            <?php _e('Total Grade', 'woothemes-sensei'); ?>
136 136
             <span class="lesson-grade">
137 137
 
138 138
                 <?php
139 139
 
140
-                    $course_user_grade = Sensei_Utils::sensei_course_user_grade( $course->ID, get_current_user_id() );
141
-                    echo $course_user_grade . '%';
140
+                    $course_user_grade = Sensei_Utils::sensei_course_user_grade($course->ID, get_current_user_id());
141
+                    echo $course_user_grade.'%';
142 142
 
143 143
                 ?>
144 144
 
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
      *
156 156
      * @since 1.4.0
157 157
      */
158
-	do_action( 'sensei_course_results_after_lessons', $course->ID );
158
+	do_action('sensei_course_results_after_lessons', $course->ID);
159 159
     ?>
160 160
 
161 161
 <?php endif; //user logged in ?>
162 162
\ No newline at end of file
Please login to merge, or discard this patch.
Indentation   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -1,15 +1,15 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) exit;
3 3
 /**
4
- * The Template for displaying all course lessons on the course results page.
5
- *
6
- * Override this template by copying it to yourtheme/sensei/course-results/course-lessons.php
7
- *
8
- * @author 		Automattic
9
- * @package 	Sensei
10
- * @category    Templates
11
- * @version     1.9.0
12
- */
4
+		 * The Template for displaying all course lessons on the course results page.
5
+		 *
6
+		 * Override this template by copying it to yourtheme/sensei/course-results/course-lessons.php
7
+		 *
8
+		 * @author 		Automattic
9
+		 * @package 	Sensei
10
+		 * @category    Templates
11
+		 * @version     1.9.0
12
+		 */
13 13
 
14 14
 global $course;
15 15
 ?>
@@ -17,13 +17,13 @@  discard block
 block discarded – undo
17 17
 <?php if ( is_user_logged_in() ): ?>
18 18
 
19 19
     <?php
20
-    /**
21
-     * Fires inside course-results/lessons.php after the
22
-     * is uer logged check, just above the lessons header.
23
-     * @since 1.4.0
24
-     */
25
-    do_action( 'sensei_course_results_before_lessons', $course->ID );
26
-    ?>
20
+	/**
21
+	 * Fires inside course-results/lessons.php after the
22
+	 * is uer logged check, just above the lessons header.
23
+	 * @since 1.4.0
24
+	 */
25
+	do_action( 'sensei_course_results_before_lessons', $course->ID );
26
+	?>
27 27
 
28 28
     <header>
29 29
 
@@ -36,33 +36,33 @@  discard block
 block discarded – undo
36 36
         <?php
37 37
 
38 38
 		$displayed_lessons = array();
39
-        $modules = Sensei()->modules->get_course_modules( intval( $course->ID ) );
39
+		$modules = Sensei()->modules->get_course_modules( intval( $course->ID ) );
40 40
 
41
-        // List modules with lessons
42
-        foreach( $modules as $module ) {
41
+		// List modules with lessons
42
+		foreach( $modules as $module ) {
43 43
 
44
-            $lessons_query = Sensei()->modules->get_lessons_query( $course->ID, $module->term_id );
45
-            $lessons = $lessons_query->get_posts();
44
+			$lessons_query = Sensei()->modules->get_lessons_query( $course->ID, $module->term_id );
45
+			$lessons = $lessons_query->get_posts();
46 46
 
47
-            if( count( $lessons ) > 0 ) { ?>
47
+			if( count( $lessons ) > 0 ) { ?>
48 48
 
49 49
                 <h3> <?php echo $module->name; ?></h3>
50 50
 
51 51
                 <?php
52
-                $count = 0;
53
-                foreach( $lessons as $lesson ) {
54
-
55
-                    $lesson_grade = 'n/a';
56
-                    $has_questions = get_post_meta( $lesson->ID, '_quiz_has_questions', true );
57
-                    if ( $has_questions ) {
58
-                        $lesson_status = Sensei_Utils::user_lesson_status( $lesson->ID, get_current_user_id() );
59
-                        // Get user quiz grade
60
-                        $lesson_grade = get_comment_meta( $lesson_status->comment_ID, 'grade', true );
61
-                        if ( $lesson_grade ) {
62
-                            $lesson_grade .= '%';
63
-                        }
64
-                    }
65
-                    ?>
52
+				$count = 0;
53
+				foreach( $lessons as $lesson ) {
54
+
55
+					$lesson_grade = 'n/a';
56
+					$has_questions = get_post_meta( $lesson->ID, '_quiz_has_questions', true );
57
+					if ( $has_questions ) {
58
+						$lesson_status = Sensei_Utils::user_lesson_status( $lesson->ID, get_current_user_id() );
59
+						// Get user quiz grade
60
+						$lesson_grade = get_comment_meta( $lesson_status->comment_ID, 'grade', true );
61
+						if ( $lesson_grade ) {
62
+							$lesson_grade .= '%';
63
+						}
64
+					}
65
+					?>
66 66
                     <h2>
67 67
 
68 68
                         <a href="<?php esc_url_raw( get_permalink( $lesson->ID ) ); ?>"
@@ -80,17 +80,17 @@  discard block
 block discarded – undo
80 80
 
81 81
                 <?php
82 82
 
83
-                }// end for each
83
+				}// end for each
84 84
 
85
-            }// end if count lesson
85
+			}// end if count lesson
86 86
 
87
-        } // end for each module
88
-        ?>
87
+		} // end for each module
88
+		?>
89 89
 
90 90
         <?php
91 91
 
92
-        $lessons = Sensei()->modules->get_none_module_lessons( $course->ID );
93
-        if( 0 < count( $lessons ) ): ?>
92
+		$lessons = Sensei()->modules->get_none_module_lessons( $course->ID );
93
+		if( 0 < count( $lessons ) ): ?>
94 94
 
95 95
 			<h3>
96 96
 
@@ -101,17 +101,17 @@  discard block
 block discarded – undo
101 101
             <?php foreach ( $lessons as $lesson ): ?>
102 102
 
103 103
                 <?php
104
-                $lesson_grade = 'n/a';
105
-                $has_questions = get_post_meta( $lesson->ID, '_quiz_has_questions', true );
106
-                if ( $has_questions ) {
107
-                    $lesson_status = Sensei_Utils::user_lesson_status( $lesson->ID, get_current_user_id());
108
-                    // Get user quiz grade
109
-                    $lesson_grade = get_comment_meta( $lesson_status->comment_ID, 'grade', true );
110
-                    if ( $lesson_grade ) {
111
-                        $lesson_grade .= '%';
112
-                    }
113
-                }
114
-                ?>
104
+				$lesson_grade = 'n/a';
105
+				$has_questions = get_post_meta( $lesson->ID, '_quiz_has_questions', true );
106
+				if ( $has_questions ) {
107
+					$lesson_status = Sensei_Utils::user_lesson_status( $lesson->ID, get_current_user_id());
108
+					// Get user quiz grade
109
+					$lesson_grade = get_comment_meta( $lesson_status->comment_ID, 'grade', true );
110
+					if ( $lesson_grade ) {
111
+						$lesson_grade .= '%';
112
+					}
113
+				}
114
+				?>
115 115
 
116 116
                 <h2>
117 117
 
@@ -137,10 +137,10 @@  discard block
 block discarded – undo
137 137
 
138 138
                 <?php
139 139
 
140
-                    $course_user_grade = Sensei_Utils::sensei_course_user_grade( $course->ID, get_current_user_id() );
141
-                    echo $course_user_grade . '%';
140
+					$course_user_grade = Sensei_Utils::sensei_course_user_grade( $course->ID, get_current_user_id() );
141
+					echo $course_user_grade . '%';
142 142
 
143
-                ?>
143
+				?>
144 144
 
145 145
             </span>
146 146
 
@@ -149,13 +149,13 @@  discard block
 block discarded – undo
149 149
     </article>
150 150
 
151 151
     <?php
152
-    /**
153
-     * Fires inside course-results/lessons.php after the
154
-     * is uer logged check, at the bottom of all lessons.
155
-     *
156
-     * @since 1.4.0
157
-     */
152
+	/**
153
+	 * Fires inside course-results/lessons.php after the
154
+	 * is uer logged check, at the bottom of all lessons.
155
+	 *
156
+	 * @since 1.4.0
157
+	 */
158 158
 	do_action( 'sensei_course_results_after_lessons', $course->ID );
159
-    ?>
159
+	?>
160 160
 
161 161
 <?php endif; //user logged in ?>
162 162
\ No newline at end of file
Please login to merge, or discard this patch.
includes/class-sensei-wc.php 4 patches
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; // security check, don't load file outside WP
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// security check, don't load file outside WP
3 6
 /**
4 7
  * Sensei Autoloader Class
5 8
  *
Please login to merge, or discard this patch.
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -817,7 +817,7 @@
 block discarded – undo
817 817
      * @param  int $user_id
818 818
      * @param  int $product_id
819 819
      *
820
-     * @return bool
820
+     * @return boolean|null
821 821
      */
822 822
     public static function has_customer_bought_product ( $user_id, $product_id ){
823 823
 
Please login to merge, or discard this patch.
Indentation   +748 added lines, -748 removed lines patch added patch discarded remove patch
@@ -12,735 +12,735 @@  discard block
 block discarded – undo
12 12
  */
13 13
 
14 14
 Class Sensei_WC{
15
-    /**
16
-     * Load the files needed for the woocommerce integration.
17
-     *
18
-     * @since 1.9.0
19
-     */
20
-    public static function load_woocommerce_integration_hooks(){
15
+	/**
16
+	 * Load the files needed for the woocommerce integration.
17
+	 *
18
+	 * @since 1.9.0
19
+	 */
20
+	public static function load_woocommerce_integration_hooks(){
21 21
 
22
-        require_once( __DIR__ . '/hooks/woocommerce.php' );
22
+		require_once( __DIR__ . '/hooks/woocommerce.php' );
23 23
 
24
-    }
25
-    /**
26
-     * check if WooCommerce plugin is loaded and allowed by Sensei
27
-     *
28
-     * @since 1.9.0
29
-     * @return bool
30
-     */
31
-    public static function is_woocommerce_active(){
24
+	}
25
+	/**
26
+	 * check if WooCommerce plugin is loaded and allowed by Sensei
27
+	 *
28
+	 * @since 1.9.0
29
+	 * @return bool
30
+	 */
31
+	public static function is_woocommerce_active(){
32 32
 
33
-        $is_woocommerce_enabled_in_settings = isset( Sensei()->settings->settings['woocommerce_enabled'] ) && Sensei()->settings->settings['woocommerce_enabled'];
34
-        return self::is_woocommerce_present() && $is_woocommerce_enabled_in_settings;
33
+		$is_woocommerce_enabled_in_settings = isset( Sensei()->settings->settings['woocommerce_enabled'] ) && Sensei()->settings->settings['woocommerce_enabled'];
34
+		return self::is_woocommerce_present() && $is_woocommerce_enabled_in_settings;
35 35
 
36
-    } // end is_woocommerce_active
36
+	} // end is_woocommerce_active
37 37
 
38
-    /**
39
-     * Checks if the WooCommerce plugin is installed and activation.
40
-     *
41
-     * If you need to check if WooCommerce is activated use Sensei_Utils::is_woocommerce_active().
42
-     * This function does nott check to see if the Sensei setting for WooCommerce is enabled.
43
-     *
44
-     * @since 1.9.0
45
-     *
46
-     * @return bool
47
-     */
48
-    public static function is_woocommerce_present(){
38
+	/**
39
+	 * Checks if the WooCommerce plugin is installed and activation.
40
+	 *
41
+	 * If you need to check if WooCommerce is activated use Sensei_Utils::is_woocommerce_active().
42
+	 * This function does nott check to see if the Sensei setting for WooCommerce is enabled.
43
+	 *
44
+	 * @since 1.9.0
45
+	 *
46
+	 * @return bool
47
+	 */
48
+	public static function is_woocommerce_present(){
49 49
 
50
-        $active_plugins = (array) get_option( 'active_plugins', array() );
50
+		$active_plugins = (array) get_option( 'active_plugins', array() );
51 51
 
52
-        if ( is_multisite() ){
52
+		if ( is_multisite() ){
53 53
 
54
-            $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
54
+			$active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
55 55
 
56
-        }
56
+		}
57 57
 
58
-        $is_woocommerce_plugin_present_and_activated = in_array( 'woocommerce/woocommerce.php', $active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', $active_plugins );
58
+		$is_woocommerce_plugin_present_and_activated = in_array( 'woocommerce/woocommerce.php', $active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', $active_plugins );
59 59
 
60
-        return class_exists( 'Woocommerce' ) || $is_woocommerce_plugin_present_and_activated;
60
+		return class_exists( 'Woocommerce' ) || $is_woocommerce_plugin_present_and_activated;
61 61
 
62
-    }// end is_woocommerce_present
62
+	}// end is_woocommerce_present
63 63
 
64
-    /**
65
-     * Find the order active number (completed or processing ) for a given user on a course. It will return the latest order.
66
-     *
67
-     * If multiple exist we will return the latest order.
68
-     *
69
-     * @param $user_id
70
-     * @param $course_id
71
-     * @return array $user_course_orders
72
-     */
73
-    public static function get_learner_course_active_order_id( $user_id, $course_id ){
64
+	/**
65
+	 * Find the order active number (completed or processing ) for a given user on a course. It will return the latest order.
66
+	 *
67
+	 * If multiple exist we will return the latest order.
68
+	 *
69
+	 * @param $user_id
70
+	 * @param $course_id
71
+	 * @return array $user_course_orders
72
+	 */
73
+	public static function get_learner_course_active_order_id( $user_id, $course_id ){
74 74
 
75
-        $course_product_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
75
+		$course_product_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
76 76
 
77
-        $orders_query = new WP_Query( array(
78
-            'post_type'   => 'shop_order',
79
-            'posts_per_page' => -1,
80
-            'post_status' => array( 'wc-processing', 'wc-completed' ),
81
-            'meta_key'=> '_customer_user',
82
-            'meta_value'=> $user_id,
83
-        ) );
77
+		$orders_query = new WP_Query( array(
78
+			'post_type'   => 'shop_order',
79
+			'posts_per_page' => -1,
80
+			'post_status' => array( 'wc-processing', 'wc-completed' ),
81
+			'meta_key'=> '_customer_user',
82
+			'meta_value'=> $user_id,
83
+		) );
84 84
 
85
-        if( $orders_query->post_count == 0 ){
85
+		if( $orders_query->post_count == 0 ){
86 86
 
87
-            return false;
87
+			return false;
88 88
 
89
-        }
89
+		}
90 90
 
91
-        foreach( $orders_query->get_posts() as $order ){
91
+		foreach( $orders_query->get_posts() as $order ){
92 92
 
93
-            $order = new WC_Order( $order->ID );
94
-            $items = $order->get_items();
93
+			$order = new WC_Order( $order->ID );
94
+			$items = $order->get_items();
95 95
 
96
-            $user_orders =  array();
96
+			$user_orders =  array();
97 97
 
98
-            foreach( $items as $item ){
98
+			foreach( $items as $item ){
99 99
 
100
-                // if the product id on the order and the one given to this function
101
-                // this order has been placed by the given user on the given course.
102
-                $product = wc_get_product( $item['product_id'] );
100
+				// if the product id on the order and the one given to this function
101
+				// this order has been placed by the given user on the given course.
102
+				$product = wc_get_product( $item['product_id'] );
103 103
 
104
-                if ( $product->is_type( 'variable' )) {
104
+				if ( $product->is_type( 'variable' )) {
105 105
 
106
-                    $item_product_id = $item['variation_id'];
106
+					$item_product_id = $item['variation_id'];
107 107
 
108
-                } else {
108
+				} else {
109 109
 
110
-                    $item_product_id =  $item['product_id'];
110
+					$item_product_id =  $item['product_id'];
111 111
 
112
-                }
112
+				}
113 113
 
114
-                if( $course_product_id == $item_product_id ){
114
+				if( $course_product_id == $item_product_id ){
115 115
 
116
-                    return $order->id;
116
+					return $order->id;
117 117
 
118
-                }
118
+				}
119 119
 
120 120
 
121
-            }//end for each order item
121
+			}//end for each order item
122 122
 
123
-        } // end for each order
123
+		} // end for each order
124 124
 
125
-        // if we reach this place we found no order
126
-        return false;
125
+		// if we reach this place we found no order
126
+		return false;
127 127
 
128
-    } // end get_learner_course_active_order_ids
128
+	} // end get_learner_course_active_order_ids
129 129
 
130
-    /**
131
-     * Output WooCommerce specific course filters
132
-     * Removing the paged argument
133
-     *
134
-     * @since 1.9.0
135
-     * @param $filter_links
136
-     * @return mixed
137
-     */
138
-    public static function add_course_archive_wc_filter_links( $filter_links ){
130
+	/**
131
+	 * Output WooCommerce specific course filters
132
+	 * Removing the paged argument
133
+	 *
134
+	 * @since 1.9.0
135
+	 * @param $filter_links
136
+	 * @return mixed
137
+	 */
138
+	public static function add_course_archive_wc_filter_links( $filter_links ){
139 139
 
140
-        $free_courses = self::get_free_courses();
141
-        $paid_courses = self::get_paid_courses();
140
+		$free_courses = self::get_free_courses();
141
+		$paid_courses = self::get_paid_courses();
142 142
 
143
-        if ( empty( $free_courses ) || empty( $paid_courses )  ){
144
-            // do not show any WooCommerce filters if all courses are
145
-            // free or if all courses are paid
146
-            return $filter_links;
143
+		if ( empty( $free_courses ) || empty( $paid_courses )  ){
144
+			// do not show any WooCommerce filters if all courses are
145
+			// free or if all courses are paid
146
+			return $filter_links;
147 147
 
148
-        }
148
+		}
149 149
 
150
-        $filter_links[] = array(
151
-            'id'=>'paid' ,
152
-            'url'=> add_query_arg( array( 'course_filter'=>'paid'), Sensei_Course::get_courses_page_url() ),
153
-            'title'=>__( 'Paid', 'woothemes-sensei' )
154
-        );
150
+		$filter_links[] = array(
151
+			'id'=>'paid' ,
152
+			'url'=> add_query_arg( array( 'course_filter'=>'paid'), Sensei_Course::get_courses_page_url() ),
153
+			'title'=>__( 'Paid', 'woothemes-sensei' )
154
+		);
155 155
 
156
-        $filter_links[] = array(
157
-            'id'=>'free',
158
-            'url'=> add_query_arg( array( 'course_filter'=>'free'), Sensei_Course::get_courses_page_url() ),
159
-            'title'=>__( 'Free', 'woothemes-sensei' )
160
-        );
156
+		$filter_links[] = array(
157
+			'id'=>'free',
158
+			'url'=> add_query_arg( array( 'course_filter'=>'free'), Sensei_Course::get_courses_page_url() ),
159
+			'title'=>__( 'Free', 'woothemes-sensei' )
160
+		);
161 161
 
162
-        return $filter_links;
162
+		return $filter_links;
163 163
 
164
-    }// end add_course_archive_wc_filter_links
164
+	}// end add_course_archive_wc_filter_links
165 165
 
166
-    /**
167
-     * Apply the free filter the the course query
168
-     * getting all course with no products or products with zero price
169
-     *
170
-     * hooked into pre_get_posts
171
-     *
172
-     * @since 1.9.0
173
-     * @param WP_Query $query
174
-     * @return WP_Query $query
175
-     */
176
-    public static function course_archive_wc_filter_free( $query ){
166
+	/**
167
+	 * Apply the free filter the the course query
168
+	 * getting all course with no products or products with zero price
169
+	 *
170
+	 * hooked into pre_get_posts
171
+	 *
172
+	 * @since 1.9.0
173
+	 * @param WP_Query $query
174
+	 * @return WP_Query $query
175
+	 */
176
+	public static function course_archive_wc_filter_free( $query ){
177 177
 
178
-        if( isset( $_GET['course_filter'] ) && 'free' == $_GET['course_filter']
179
-            && 'course' == $query->get( 'post_type') && $query->is_main_query()  ){
178
+		if( isset( $_GET['course_filter'] ) && 'free' == $_GET['course_filter']
179
+			&& 'course' == $query->get( 'post_type') && $query->is_main_query()  ){
180 180
 
181
-            // setup the course meta query
182
-            $meta_query = self::get_free_courses_meta_query_args();
181
+			// setup the course meta query
182
+			$meta_query = self::get_free_courses_meta_query_args();
183 183
 
184
-            // manipulate the query to return free courses
185
-            $query->set('meta_query', $meta_query );
184
+			// manipulate the query to return free courses
185
+			$query->set('meta_query', $meta_query );
186 186
 
187
-            // don't show any paid courses
188
-            $courses = self::get_paid_courses();
189
-            $ids = array();
190
-            foreach( $courses as $course ){
191
-                $ids[] = $course->ID;
192
-            }
193
-            $query->set( 'post__not_in', $ids );
187
+			// don't show any paid courses
188
+			$courses = self::get_paid_courses();
189
+			$ids = array();
190
+			foreach( $courses as $course ){
191
+				$ids[] = $course->ID;
192
+			}
193
+			$query->set( 'post__not_in', $ids );
194 194
 
195
-        }// end if course_filter
195
+		}// end if course_filter
196 196
 
197
-        return $query;
197
+		return $query;
198 198
 
199
-    }// course_archive_wc_filter_free
199
+	}// course_archive_wc_filter_free
200 200
 
201
-    /**
202
-     * Apply the paid filter to the course query on the courses page
203
-     * will include all course with a product attached with a price
204
-     * more than 0
205
-     *
206
-     * hooked into pre_get_posts
207
-     *
208
-     * @since 1.9.0
209
-     * @param WP_Query $query
210
-     * @return WP_Query $query
211
-     */
212
-    public static function course_archive_wc_filter_paid( $query ){
201
+	/**
202
+	 * Apply the paid filter to the course query on the courses page
203
+	 * will include all course with a product attached with a price
204
+	 * more than 0
205
+	 *
206
+	 * hooked into pre_get_posts
207
+	 *
208
+	 * @since 1.9.0
209
+	 * @param WP_Query $query
210
+	 * @return WP_Query $query
211
+	 */
212
+	public static function course_archive_wc_filter_paid( $query ){
213 213
 
214
-        if( isset( $_GET['course_filter'] ) && 'paid' == $_GET['course_filter']
215
-            && 'course' == $query->get( 'post_type') && $query->is_main_query() ){
216
-
217
-            // setup the course meta query
218
-            $meta_query = self::get_paid_courses_meta_query_args();
219
-
220
-            // manipulate the query to return free courses
221
-            $query->set('meta_query', $meta_query );
222
-
223
-        }
224
-
225
-        return $query;
226
-
227
-    }
228
-
229
-    /**
230
-     * Load the WooCommerce single product actions above
231
-     * single courses if woocommerce is active allowing purchase
232
-     * information and actions to be hooked from WooCommerce.
233
-     */
234
-    public static function do_single_course_wc_single_product_action(){
235
-
236
-        /**
237
-         * this hooks is documented within the WooCommerce plugin.
238
-         */
239
-        if ( Sensei_WC::is_woocommerce_active() ) {
240
-
241
-            do_action( 'woocommerce_before_single_product' );
242
-
243
-        } // End If Statement
244
-
245
-    }// end do_single_course_wc_single_product_action
246
-
247
-    /**
248
-     * Hooking into the single lesson page to alter the
249
-     * user access permissions based on if they have purchased the
250
-     * course the lesson belongs to.
251
-     *
252
-     * This function will only return false or the passed in user_access value.
253
-     * It doesn't return true in order to avoid altering other options.
254
-     *
255
-     * @since 1.9.0
256
-     *
257
-     * @param $can_user_view_lesson
258
-     * @param $lesson_id
259
-     * @param $user_id
260
-     * @return bool
261
-     */
262
-    public static function alter_can_user_view_lesson ( $can_user_view_lesson, $lesson_id, $user_id  ){
263
-
264
-        // check if the course has a valid product attached to it
265
-        // which the user should have purchased if they want to access
266
-        // the current lesson
267
-        $course_id = get_post_meta( $lesson_id , '_lesson_course', true);
268
-        $wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
269
-        $product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
270
-        if( isset ($product) && is_object($product) ){
271
-
272
-            // valid product found
273
-            $order_id = self::get_learner_course_active_order_id( $user_id, $course_id );
274
-
275
-            // product has a successful order so this user may access the content
276
-            // this function may only return false or the default
277
-            // returning true may override other negatives which we don't want
278
-            if( ! $order_id ){
279
-
280
-                return false;
281
-
282
-            }
283
-
284
-        }
285
-
286
-        // return the passed in value
287
-        return $can_user_view_lesson;
288
-
289
-    }
290
-
291
-    /**
292
-     * Add course link to order thank you and details pages.
293
-     *
294
-     * @since  1.4.5
295
-     * @access public
296
-     *
297
-     * @return void
298
-     */
299
-    public static function course_link_from_order( ) {
300
-
301
-        if( ! is_order_received_page() ){
302
-            return;
303
-        }
304
-
305
-        $order_id = get_query_var( 'order-received' );
214
+		if( isset( $_GET['course_filter'] ) && 'paid' == $_GET['course_filter']
215
+			&& 'course' == $query->get( 'post_type') && $query->is_main_query() ){
216
+
217
+			// setup the course meta query
218
+			$meta_query = self::get_paid_courses_meta_query_args();
219
+
220
+			// manipulate the query to return free courses
221
+			$query->set('meta_query', $meta_query );
222
+
223
+		}
224
+
225
+		return $query;
226
+
227
+	}
228
+
229
+	/**
230
+	 * Load the WooCommerce single product actions above
231
+	 * single courses if woocommerce is active allowing purchase
232
+	 * information and actions to be hooked from WooCommerce.
233
+	 */
234
+	public static function do_single_course_wc_single_product_action(){
235
+
236
+		/**
237
+		 * this hooks is documented within the WooCommerce plugin.
238
+		 */
239
+		if ( Sensei_WC::is_woocommerce_active() ) {
240
+
241
+			do_action( 'woocommerce_before_single_product' );
242
+
243
+		} // End If Statement
244
+
245
+	}// end do_single_course_wc_single_product_action
246
+
247
+	/**
248
+	 * Hooking into the single lesson page to alter the
249
+	 * user access permissions based on if they have purchased the
250
+	 * course the lesson belongs to.
251
+	 *
252
+	 * This function will only return false or the passed in user_access value.
253
+	 * It doesn't return true in order to avoid altering other options.
254
+	 *
255
+	 * @since 1.9.0
256
+	 *
257
+	 * @param $can_user_view_lesson
258
+	 * @param $lesson_id
259
+	 * @param $user_id
260
+	 * @return bool
261
+	 */
262
+	public static function alter_can_user_view_lesson ( $can_user_view_lesson, $lesson_id, $user_id  ){
263
+
264
+		// check if the course has a valid product attached to it
265
+		// which the user should have purchased if they want to access
266
+		// the current lesson
267
+		$course_id = get_post_meta( $lesson_id , '_lesson_course', true);
268
+		$wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
269
+		$product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
270
+		if( isset ($product) && is_object($product) ){
271
+
272
+			// valid product found
273
+			$order_id = self::get_learner_course_active_order_id( $user_id, $course_id );
274
+
275
+			// product has a successful order so this user may access the content
276
+			// this function may only return false or the default
277
+			// returning true may override other negatives which we don't want
278
+			if( ! $order_id ){
279
+
280
+				return false;
281
+
282
+			}
283
+
284
+		}
285
+
286
+		// return the passed in value
287
+		return $can_user_view_lesson;
288
+
289
+	}
290
+
291
+	/**
292
+	 * Add course link to order thank you and details pages.
293
+	 *
294
+	 * @since  1.4.5
295
+	 * @access public
296
+	 *
297
+	 * @return void
298
+	 */
299
+	public static function course_link_from_order( ) {
300
+
301
+		if( ! is_order_received_page() ){
302
+			return;
303
+		}
304
+
305
+		$order_id = get_query_var( 'order-received' );
306 306
 		$order = new WC_Order( $order_id );
307 307
 
308 308
 		// exit early if not wc-completed or wc-processing
309 309
 		if( 'wc-completed' != $order->post_status
310
-            && 'wc-processing' != $order->post_status  ) {
311
-            return;
312
-        }
310
+			&& 'wc-processing' != $order->post_status  ) {
311
+			return;
312
+		}
313 313
 
314
-        $course_links = array(); // store the for links for courses purchased
314
+		$course_links = array(); // store the for links for courses purchased
315 315
 		foreach ( $order->get_items() as $item ) {
316 316
 
317
-            if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
317
+			if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
318 318
 
319
-                // If item has variation_id then its a variation of the product
320
-                $item_id = $item['variation_id'];
319
+				// If item has variation_id then its a variation of the product
320
+				$item_id = $item['variation_id'];
321 321
 
322
-            } else {
322
+			} else {
323 323
 
324
-                //If not its real product set its id to item_id
325
-                $item_id = $item['product_id'];
324
+				//If not its real product set its id to item_id
325
+				$item_id = $item['product_id'];
326 326
 
327
-            } // End If Statement
327
+			} // End If Statement
328 328
 
329
-            $user_id = get_post_meta( $order->id, '_customer_user', true );
329
+			$user_id = get_post_meta( $order->id, '_customer_user', true );
330 330
 
331
-            if( $user_id ) {
331
+			if( $user_id ) {
332 332
 
333
-                // Get all courses for product
334
-                $args = Sensei_Course::get_default_query_args();
335
-                $args['meta_query'] = array( array(
336
-                            'key' => '_course_woocommerce_product',
337
-                            'value' => $item_id
338
-                        ) );
339
-                $args['orderby'] = 'menu_order date';
340
-                $args['order'] = 'ASC';
333
+				// Get all courses for product
334
+				$args = Sensei_Course::get_default_query_args();
335
+				$args['meta_query'] = array( array(
336
+							'key' => '_course_woocommerce_product',
337
+							'value' => $item_id
338
+						) );
339
+				$args['orderby'] = 'menu_order date';
340
+				$args['order'] = 'ASC';
341 341
 
342
-                // loop through courses
343
-                $courses = get_posts( $args );
344
-                if( $courses && count( $courses ) > 0 ) {
342
+				// loop through courses
343
+				$courses = get_posts( $args );
344
+				if( $courses && count( $courses ) > 0 ) {
345 345
 
346
-                    foreach( $courses as $course ) {
346
+					foreach( $courses as $course ) {
347 347
 
348
-                        $title = $course->post_title;
349
-                        $permalink = get_permalink( $course->ID );
350
-                        $course_links[] .= '<a href="' . esc_url( $permalink ) . '" >' . $title . '</a> ';
348
+						$title = $course->post_title;
349
+						$permalink = get_permalink( $course->ID );
350
+						$course_links[] .= '<a href="' . esc_url( $permalink ) . '" >' . $title . '</a> ';
351 351
 
352
-                    } // end for each
352
+					} // end for each
353 353
 
354
-                    // close the message div
354
+					// close the message div
355 355
 
356
-                }// end if $courses check
357
-            }
358
-        }// end loop through orders
356
+				}// end if $courses check
357
+			}
358
+		}// end loop through orders
359 359
 
360
-        // add the courses to the WooCommerce notice
361
-        if( ! empty( $course_links) ){
360
+		// add the courses to the WooCommerce notice
361
+		if( ! empty( $course_links) ){
362 362
 
363
-            $courses_html = _nx(
364
-                'You have purchased the following course:',
365
-                'You have purchased the following courses:',
366
-                count( $course_links ),
367
-                'Purchase thank you note on Checkout page. The course link(s) will be show', 'woothemes-sensei'
368
-            );
363
+			$courses_html = _nx(
364
+				'You have purchased the following course:',
365
+				'You have purchased the following courses:',
366
+				count( $course_links ),
367
+				'Purchase thank you note on Checkout page. The course link(s) will be show', 'woothemes-sensei'
368
+			);
369 369
 
370
-            foreach( $course_links as $link ){
370
+			foreach( $course_links as $link ){
371 371
 
372
-                $courses_html .= '<li>' . $link . '</li>';
372
+				$courses_html .= '<li>' . $link . '</li>';
373 373
 
374
-            }
374
+			}
375 375
 
376
-            $courses_html .= ' </ul>';
376
+			$courses_html .= ' </ul>';
377 377
 
378
-            wc_add_notice( $courses_html, 'success' );
379
-        }
378
+			wc_add_notice( $courses_html, 'success' );
379
+		}
380 380
 
381 381
 	} // end course_link_order_form
382 382
 
383
-    /**
384
-     * Show the message that a user should complete
385
-     * their purchase if the course is in the cart
386
-     *
387
-     * This should be used within the course loop or single course page
388
-     *
389
-     * @since 1.9.0
390
-     */
391
-    public static function course_in_cart_message(){
383
+	/**
384
+	 * Show the message that a user should complete
385
+	 * their purchase if the course is in the cart
386
+	 *
387
+	 * This should be used within the course loop or single course page
388
+	 *
389
+	 * @since 1.9.0
390
+	 */
391
+	public static function course_in_cart_message(){
392 392
 
393
-        global $post;
393
+		global $post;
394 394
 
395
-        if( self::is_course_in_cart( $post->ID ) ){ ?>
395
+		if( self::is_course_in_cart( $post->ID ) ){ ?>
396 396
 
397 397
             <div class="sensei-message info">'
398 398
                 <?php
399 399
 
400
-                $cart_link =  '<a class="cart-complete" href="' . WC()->cart->get_checkout_url()
401
-                              . '" title="' . __('complete purchase', 'woothemes-sensei') . '">'
402
-                              . __('complete the purchase', 'woothemes-sensei') . '</a>';
400
+				$cart_link =  '<a class="cart-complete" href="' . WC()->cart->get_checkout_url()
401
+							  . '" title="' . __('complete purchase', 'woothemes-sensei') . '">'
402
+							  . __('complete the purchase', 'woothemes-sensei') . '</a>';
403 403
 
404
-                sprintf(  __('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link );
404
+				sprintf(  __('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link );
405 405
 
406
-                ?>
406
+				?>
407 407
             </div>
408 408
         <?php }
409 409
 
410
-    } // End sensei_woocommerce_in_cart_message()
410
+	} // End sensei_woocommerce_in_cart_message()
411 411
 
412
-    /**
413
-     * Checks the cart to see if a course is in the cart.
414
-     *
415
-     * @param $course_id
416
-     * @return bool
417
-     */
418
-    public static function is_course_in_cart( $course_id ){
419
-
420
-        $wc_post_id = absint( get_post_meta( $course_id, '_course_woocommerce_product', true ) );
421
-        $user_course_status_id = Sensei_Utils::user_started_course( $course_id , get_current_user_id() );
422
-
423
-        if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
424
-
425
-            if ( self::is_product_in_cart( $wc_post_id ) ) {
426
-
427
-                return true;
428
-
429
-            }
430
-
431
-        }
432
-
433
-        return false;
434
-
435
-    }// is_course_in_cart
436
-
437
-    /**
438
-     * Check the cart to see if the product is in the cart
439
-     *
440
-     * @param $product_id
441
-     * @return bool
442
-     */
443
-    public static function is_product_in_cart( $product_id ){
444
-
445
-        if ( 0 < $product_id ) {
446
-
447
-            $product = wc_get_product( $product_id );
448
-
449
-            $parent_id = '';
450
-            if( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) {
451
-                $wc_product_id = $product->parent->id;
452
-            }
453
-            foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
454
-
455
-                $cart_product = $values['data'];
456
-                if( $product_id == $cart_product->id ) {
457
-
458
-                    return true;
459
-
460
-                }
461
-
462
-            }
463
-        } // End If Statement
464
-
465
-        return false;
466
-
467
-    } // end is_product_in_car
468
-
469
-    /**
470
-     * Get all free WooCommerce products
471
-     *
472
-     * @since 1.9.0
473
-     *
474
-     * @return array $free_products{
475
-     *  @type int $wp_post_id
476
-     * }
477
-     */
478
-    public static function get_free_product_ids(){
479
-
480
-        return  get_posts( array(
481
-            'post_type' => 'product',
482
-            'posts_per_page' => '1000',
483
-            'fields' => 'ids',
484
-            'meta_query'=> array(
485
-                'relation' => 'OR',
486
-                array(
487
-                    'key'=> '_regular_price',
488
-                    'value' => 0,
489
-                ),
490
-                array(
491
-                    'key'=> '_sale_price',
492
-                    'value' => 0,
493
-                ),
494
-            ),
495
-        ));
496
-
497
-    }// end get free product query
498
-
499
-    /**
500
-     * The metat query for courses that are free
501
-     *
502
-     * @since 1.9.0
503
-     * @return array $wp_meta_query_param
504
-     */
505
-    public static function get_free_courses_meta_query_args(){
506
-
507
-        return array(
508
-            'relation' => 'OR',
509
-            array(
510
-                'key'     => '_course_woocommerce_product',
511
-                'value' => '-',
512
-                'compare' => '=',
513
-            ),
514
-            array(
515
-                'key'     => '_course_woocommerce_product',
516
-                'value' => self::get_free_product_ids(),
517
-                'compare' => 'IN',
518
-            ),
519
-        );
520
-
521
-    }// get_free_courses_meta_query
522
-
523
-    /**
524
-     * The metat query for courses that are free
525
-     *
526
-     * @since 1.9.0
527
-     * @return array $wp_query_meta_query_args_param
528
-     */
529
-    public static function get_paid_courses_meta_query_args(){
530
-
531
-        $paid_product_ids = self::get_paid_product_ids();
532
-
533
-        return array(
534
-            array(
535
-                'key'     => '_course_woocommerce_product',
536
-                // when empty we give a false post_id to ensure the caller doesn't get any courses for their
537
-                // query
538
-                'value' => empty( $paid_product_ids  )? '-1000' : $paid_product_ids,
539
-                'compare' => 'IN',
540
-            ),
541
-        );
542
-
543
-    }// get_free_courses_meta_query
544
-
545
-    /**
546
-     * The WordPress Query args
547
-     * for paid products on sale
548
-     *
549
-     * @since 1.9.0
550
-     * @return array $product_query_args
551
-     */
552
-    public static function get_paid_products_on_sale_query_args(){
553
-
554
-        $args = array(
555
-                   'post_type' 		=> 'product',
556
-                   'posts_per_page' 		=> 1000,
557
-                   'orderby'         	=> 'date',
558
-                   'order'           	=> 'DESC',
559
-                   'suppress_filters' 	=> 0
560
-        );
561
-
562
-        $args[ 'fields' ]     = 'ids';
563
-
564
-        $args[ 'meta_query' ] = array(
565
-            'relation' => 'AND',
566
-            array(
567
-                'key'=> '_regular_price',
568
-                'compare' => '>',
569
-                'value' => 0,
570
-            ),
571
-            array(
572
-                'key'=> '_sale_price',
573
-                'compare' => '>',
574
-                'value' => 0,
575
-            ),
576
-        );
577
-
578
-        return $args;
579
-
580
-    } // get_paid_products_on_sale_query_args
581
-
582
-
583
-    /**
584
-     * Return the WordPress query args for
585
-     * products not on sale but that is not a free
586
-     *
587
-     * @since 1.9.0
588
-     *
589
-     * @return array
590
-     */
591
-    public static function get_paid_products_not_on_sale_query_args(){
592
-
593
-        $args = array(
594
-            'post_type' 		=> 'product',
595
-            'posts_per_page' 		=> 1000,
596
-            'orderby'         	=> 'date',
597
-            'order'           	=> 'DESC',
598
-            'suppress_filters' 	=> 0
599
-        );
600
-
601
-        $args[ 'fields' ]     = 'ids';
602
-        $args[ 'meta_query' ] = array(
603
-            'relation' => 'AND',
604
-            array(
605
-                'key'=> '_regular_price',
606
-                'compare' => '>',
607
-                'value' => 0,
608
-            ),
609
-            array(
610
-                'key'=> '_sale_price',
611
-                'compare' => '=',
612
-                'value' => '',
613
-            ),
614
-        );
615
-
616
-        return $args;
617
-
618
-
619
-    } // get_paid_courses_meta_query
620
-
621
-    /**
622
-     * Get all WooCommerce non-free product id's
623
-     *
624
-     * @since 1.9.0
625
-     *
626
-     * @return array $woocommerce_paid_product_ids
627
-     */
628
-    public static function get_paid_product_ids(){
629
-
630
-        // get all the paid WooCommerce products that has regular
631
-        // and sale price greater than 0
632
-        // will be used later to check for course with the id as meta
633
-        $paid_product_ids_with_sale =  get_posts( self::get_paid_products_on_sale_query_args() );
634
-
635
-        // get all the paid WooCommerce products that has regular price
636
-        // greater than 0 without a sale price
637
-        // will be used later to check for course with the id as meta
638
-        $paid_product_ids_without_sale = get_posts( self::get_paid_products_not_on_sale_query_args() );
639
-
640
-        // combine products ID's with regular and sale price grater than zero and those without
641
-        // sale but regular price greater than zero
642
-        $woocommerce_paid_product_ids = array_merge( $paid_product_ids_with_sale, $paid_product_ids_without_sale );
643
-
644
-        // if
645
-        if( empty($woocommerce_paid_product_ids) ){
646
-            return array( );
647
-        }
648
-        return $woocommerce_paid_product_ids;
649
-
650
-    }
651
-
652
-    /**
653
-     * Get all free courses.
654
-     *
655
-     * This course that have a WC product attached
656
-     * that has a price or sale price of zero and
657
-     * other courses with no WooCommerce products
658
-     * attached.
659
-     *
660
-     * @since 1.9.0
661
-     *
662
-     * @return array
663
-     */
664
-    public static function get_free_courses(){
665
-
666
-        $free_course_query_args = Sensei_Course::get_default_query_args();
667
-        $free_course_query_args[ 'meta_query' ] = self::get_free_courses_meta_query_args();
668
-
669
-        // don't show any paid courses
670
-        $courses = self::get_paid_courses();
671
-        $ids = array();
672
-        foreach( $courses as $course ){
673
-            $ids[] = $course->ID;
674
-        }
675
-        $free_course_query_args[ 'post__not_in' ] =  $ids;
676
-
677
-        return get_posts( $free_course_query_args );
678
-
679
-    }
680
-
681
-    /**
682
-     * Return all products that are not free
683
-     *
684
-     * @since 1.9.0
685
-     * @return array
686
-     */
687
-    public static function get_paid_courses(){
688
-
689
-        $paid_course_query_args = Sensei_Course::get_default_query_args();
690
-
691
-        $paid_course_query_args[ 'meta_query' ] = self::get_paid_courses_meta_query_args();
692
-
693
-        return get_posts(  $paid_course_query_args );
694
-    }
695
-
696
-    /**
697
-     * Show the WooCommerce add to cart button for the  current course
698
-     *
699
-     * The function will only show the button if
700
-     * 1- the user can buy the course
701
-     * 2- if they have completed their pre-requisite
702
-     * 3- if the course has a valid product attached
703
-     *
704
-     * @since 1.9.0
705
-     * @param int $course_id
706
-     * @return string $html markup for the button or nothing if user not allowed to buy
707
-     */
708
-    public static function the_add_to_cart_button_html( $course_id ){
709
-
710
-        if ( ! Sensei_Course::is_prerequisite_complete( $course_id )) {
711
-            return '';
712
-        }
713
-
714
-        $wc_post_id = self::get_course_product_id( $course_id );
715
-
716
-        // Check if customer purchased the product
717
-        if ( self::has_customer_bought_product(  get_current_user_id(), $wc_post_id )
718
-            || empty( $wc_post_id ) ) {
719
-
720
-            return '';
721
-
722
-        }
723
-
724
-        // based on simple.php in WC templates/single-product/add-to-cart/
725
-        // Get the product
726
-        $product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
727
-
728
-        // do not show the button for invalid products, non purchasable products, out
729
-        // of stock product or if course is already in cart
730
-        if ( ! isset ( $product )
731
-            || ! is_object( $product )
732
-            || ! $product->is_purchasable()
733
-            || ! $product->is_in_stock()
734
-            || self::is_course_in_cart( $wc_post_id ) ) {
735
-
736
-            return '';
737
-
738
-        }
739
-
740
-        //
741
-        // button  output:
742
-        //
743
-        ?>
412
+	/**
413
+	 * Checks the cart to see if a course is in the cart.
414
+	 *
415
+	 * @param $course_id
416
+	 * @return bool
417
+	 */
418
+	public static function is_course_in_cart( $course_id ){
419
+
420
+		$wc_post_id = absint( get_post_meta( $course_id, '_course_woocommerce_product', true ) );
421
+		$user_course_status_id = Sensei_Utils::user_started_course( $course_id , get_current_user_id() );
422
+
423
+		if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
424
+
425
+			if ( self::is_product_in_cart( $wc_post_id ) ) {
426
+
427
+				return true;
428
+
429
+			}
430
+
431
+		}
432
+
433
+		return false;
434
+
435
+	}// is_course_in_cart
436
+
437
+	/**
438
+	 * Check the cart to see if the product is in the cart
439
+	 *
440
+	 * @param $product_id
441
+	 * @return bool
442
+	 */
443
+	public static function is_product_in_cart( $product_id ){
444
+
445
+		if ( 0 < $product_id ) {
446
+
447
+			$product = wc_get_product( $product_id );
448
+
449
+			$parent_id = '';
450
+			if( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) {
451
+				$wc_product_id = $product->parent->id;
452
+			}
453
+			foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
454
+
455
+				$cart_product = $values['data'];
456
+				if( $product_id == $cart_product->id ) {
457
+
458
+					return true;
459
+
460
+				}
461
+
462
+			}
463
+		} // End If Statement
464
+
465
+		return false;
466
+
467
+	} // end is_product_in_car
468
+
469
+	/**
470
+	 * Get all free WooCommerce products
471
+	 *
472
+	 * @since 1.9.0
473
+	 *
474
+	 * @return array $free_products{
475
+	 *  @type int $wp_post_id
476
+	 * }
477
+	 */
478
+	public static function get_free_product_ids(){
479
+
480
+		return  get_posts( array(
481
+			'post_type' => 'product',
482
+			'posts_per_page' => '1000',
483
+			'fields' => 'ids',
484
+			'meta_query'=> array(
485
+				'relation' => 'OR',
486
+				array(
487
+					'key'=> '_regular_price',
488
+					'value' => 0,
489
+				),
490
+				array(
491
+					'key'=> '_sale_price',
492
+					'value' => 0,
493
+				),
494
+			),
495
+		));
496
+
497
+	}// end get free product query
498
+
499
+	/**
500
+	 * The metat query for courses that are free
501
+	 *
502
+	 * @since 1.9.0
503
+	 * @return array $wp_meta_query_param
504
+	 */
505
+	public static function get_free_courses_meta_query_args(){
506
+
507
+		return array(
508
+			'relation' => 'OR',
509
+			array(
510
+				'key'     => '_course_woocommerce_product',
511
+				'value' => '-',
512
+				'compare' => '=',
513
+			),
514
+			array(
515
+				'key'     => '_course_woocommerce_product',
516
+				'value' => self::get_free_product_ids(),
517
+				'compare' => 'IN',
518
+			),
519
+		);
520
+
521
+	}// get_free_courses_meta_query
522
+
523
+	/**
524
+	 * The metat query for courses that are free
525
+	 *
526
+	 * @since 1.9.0
527
+	 * @return array $wp_query_meta_query_args_param
528
+	 */
529
+	public static function get_paid_courses_meta_query_args(){
530
+
531
+		$paid_product_ids = self::get_paid_product_ids();
532
+
533
+		return array(
534
+			array(
535
+				'key'     => '_course_woocommerce_product',
536
+				// when empty we give a false post_id to ensure the caller doesn't get any courses for their
537
+				// query
538
+				'value' => empty( $paid_product_ids  )? '-1000' : $paid_product_ids,
539
+				'compare' => 'IN',
540
+			),
541
+		);
542
+
543
+	}// get_free_courses_meta_query
544
+
545
+	/**
546
+	 * The WordPress Query args
547
+	 * for paid products on sale
548
+	 *
549
+	 * @since 1.9.0
550
+	 * @return array $product_query_args
551
+	 */
552
+	public static function get_paid_products_on_sale_query_args(){
553
+
554
+		$args = array(
555
+				   'post_type' 		=> 'product',
556
+				   'posts_per_page' 		=> 1000,
557
+				   'orderby'         	=> 'date',
558
+				   'order'           	=> 'DESC',
559
+				   'suppress_filters' 	=> 0
560
+		);
561
+
562
+		$args[ 'fields' ]     = 'ids';
563
+
564
+		$args[ 'meta_query' ] = array(
565
+			'relation' => 'AND',
566
+			array(
567
+				'key'=> '_regular_price',
568
+				'compare' => '>',
569
+				'value' => 0,
570
+			),
571
+			array(
572
+				'key'=> '_sale_price',
573
+				'compare' => '>',
574
+				'value' => 0,
575
+			),
576
+		);
577
+
578
+		return $args;
579
+
580
+	} // get_paid_products_on_sale_query_args
581
+
582
+
583
+	/**
584
+	 * Return the WordPress query args for
585
+	 * products not on sale but that is not a free
586
+	 *
587
+	 * @since 1.9.0
588
+	 *
589
+	 * @return array
590
+	 */
591
+	public static function get_paid_products_not_on_sale_query_args(){
592
+
593
+		$args = array(
594
+			'post_type' 		=> 'product',
595
+			'posts_per_page' 		=> 1000,
596
+			'orderby'         	=> 'date',
597
+			'order'           	=> 'DESC',
598
+			'suppress_filters' 	=> 0
599
+		);
600
+
601
+		$args[ 'fields' ]     = 'ids';
602
+		$args[ 'meta_query' ] = array(
603
+			'relation' => 'AND',
604
+			array(
605
+				'key'=> '_regular_price',
606
+				'compare' => '>',
607
+				'value' => 0,
608
+			),
609
+			array(
610
+				'key'=> '_sale_price',
611
+				'compare' => '=',
612
+				'value' => '',
613
+			),
614
+		);
615
+
616
+		return $args;
617
+
618
+
619
+	} // get_paid_courses_meta_query
620
+
621
+	/**
622
+	 * Get all WooCommerce non-free product id's
623
+	 *
624
+	 * @since 1.9.0
625
+	 *
626
+	 * @return array $woocommerce_paid_product_ids
627
+	 */
628
+	public static function get_paid_product_ids(){
629
+
630
+		// get all the paid WooCommerce products that has regular
631
+		// and sale price greater than 0
632
+		// will be used later to check for course with the id as meta
633
+		$paid_product_ids_with_sale =  get_posts( self::get_paid_products_on_sale_query_args() );
634
+
635
+		// get all the paid WooCommerce products that has regular price
636
+		// greater than 0 without a sale price
637
+		// will be used later to check for course with the id as meta
638
+		$paid_product_ids_without_sale = get_posts( self::get_paid_products_not_on_sale_query_args() );
639
+
640
+		// combine products ID's with regular and sale price grater than zero and those without
641
+		// sale but regular price greater than zero
642
+		$woocommerce_paid_product_ids = array_merge( $paid_product_ids_with_sale, $paid_product_ids_without_sale );
643
+
644
+		// if
645
+		if( empty($woocommerce_paid_product_ids) ){
646
+			return array( );
647
+		}
648
+		return $woocommerce_paid_product_ids;
649
+
650
+	}
651
+
652
+	/**
653
+	 * Get all free courses.
654
+	 *
655
+	 * This course that have a WC product attached
656
+	 * that has a price or sale price of zero and
657
+	 * other courses with no WooCommerce products
658
+	 * attached.
659
+	 *
660
+	 * @since 1.9.0
661
+	 *
662
+	 * @return array
663
+	 */
664
+	public static function get_free_courses(){
665
+
666
+		$free_course_query_args = Sensei_Course::get_default_query_args();
667
+		$free_course_query_args[ 'meta_query' ] = self::get_free_courses_meta_query_args();
668
+
669
+		// don't show any paid courses
670
+		$courses = self::get_paid_courses();
671
+		$ids = array();
672
+		foreach( $courses as $course ){
673
+			$ids[] = $course->ID;
674
+		}
675
+		$free_course_query_args[ 'post__not_in' ] =  $ids;
676
+
677
+		return get_posts( $free_course_query_args );
678
+
679
+	}
680
+
681
+	/**
682
+	 * Return all products that are not free
683
+	 *
684
+	 * @since 1.9.0
685
+	 * @return array
686
+	 */
687
+	public static function get_paid_courses(){
688
+
689
+		$paid_course_query_args = Sensei_Course::get_default_query_args();
690
+
691
+		$paid_course_query_args[ 'meta_query' ] = self::get_paid_courses_meta_query_args();
692
+
693
+		return get_posts(  $paid_course_query_args );
694
+	}
695
+
696
+	/**
697
+	 * Show the WooCommerce add to cart button for the  current course
698
+	 *
699
+	 * The function will only show the button if
700
+	 * 1- the user can buy the course
701
+	 * 2- if they have completed their pre-requisite
702
+	 * 3- if the course has a valid product attached
703
+	 *
704
+	 * @since 1.9.0
705
+	 * @param int $course_id
706
+	 * @return string $html markup for the button or nothing if user not allowed to buy
707
+	 */
708
+	public static function the_add_to_cart_button_html( $course_id ){
709
+
710
+		if ( ! Sensei_Course::is_prerequisite_complete( $course_id )) {
711
+			return '';
712
+		}
713
+
714
+		$wc_post_id = self::get_course_product_id( $course_id );
715
+
716
+		// Check if customer purchased the product
717
+		if ( self::has_customer_bought_product(  get_current_user_id(), $wc_post_id )
718
+			|| empty( $wc_post_id ) ) {
719
+
720
+			return '';
721
+
722
+		}
723
+
724
+		// based on simple.php in WC templates/single-product/add-to-cart/
725
+		// Get the product
726
+		$product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
727
+
728
+		// do not show the button for invalid products, non purchasable products, out
729
+		// of stock product or if course is already in cart
730
+		if ( ! isset ( $product )
731
+			|| ! is_object( $product )
732
+			|| ! $product->is_purchasable()
733
+			|| ! $product->is_in_stock()
734
+			|| self::is_course_in_cart( $wc_post_id ) ) {
735
+
736
+			return '';
737
+
738
+		}
739
+
740
+		//
741
+		// button  output:
742
+		//
743
+		?>
744 744
 
745 745
         <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>"
746 746
               class="cart"
@@ -773,54 +773,54 @@  discard block
 block discarded – undo
773 773
         </form>
774 774
 
775 775
         <?php
776
-    } // end the_add_to_cart_button_html
776
+	} // end the_add_to_cart_button_html
777 777
 
778
-    /**
779
-     * Alter the no permissions message on the single course page
780
-     * Changes the message to a WooCommerce specific message.
781
-     *
782
-     * @since 1.9.0
783
-     *
784
-     * @param $message
785
-     * @param $post_id
786
-     *
787
-     * @return string $message
788
-     */
789
-    public static function alter_no_permissions_message( $message, $post_id ){
778
+	/**
779
+	 * Alter the no permissions message on the single course page
780
+	 * Changes the message to a WooCommerce specific message.
781
+	 *
782
+	 * @since 1.9.0
783
+	 *
784
+	 * @param $message
785
+	 * @param $post_id
786
+	 *
787
+	 * @return string $message
788
+	 */
789
+	public static function alter_no_permissions_message( $message, $post_id ){
790 790
 
791
-        if( empty( $post_id ) || 'course'!=get_post_type( $post_id ) ){
792
-            return  $message;
793
-        }
791
+		if( empty( $post_id ) || 'course'!=get_post_type( $post_id ) ){
792
+			return  $message;
793
+		}
794 794
 
795
-        $product_id = self::get_course_product_id( $post_id );
795
+		$product_id = self::get_course_product_id( $post_id );
796 796
 
797
-        if( ! $product_id
798
-            || self::has_customer_bought_product( get_current_user_id(),$product_id ) ){
797
+		if( ! $product_id
798
+			|| self::has_customer_bought_product( get_current_user_id(),$product_id ) ){
799 799
 
800
-            return $message;
800
+			return $message;
801 801
 
802
-        }
802
+		}
803 803
 
804
-        ob_start();
805
-        self::the_course_no_permissions_message( $post_id );
806
-        $woocommerce_course_no_permissions_message = ob_get_clean();
804
+		ob_start();
805
+		self::the_course_no_permissions_message( $post_id );
806
+		$woocommerce_course_no_permissions_message = ob_get_clean();
807 807
 
808
-        return $woocommerce_course_no_permissions_message ;
808
+		return $woocommerce_course_no_permissions_message ;
809 809
 
810
-    }
811
-    /**
812
-     * Show the no permissions message when a user is logged in
813
-     * and have not yet purchased the current course
814
-     *
815
-     * @since 1.9.0
816
-     */
817
-    public static function the_course_no_permissions_message( $course_id ){
810
+	}
811
+	/**
812
+	 * Show the no permissions message when a user is logged in
813
+	 * and have not yet purchased the current course
814
+	 *
815
+	 * @since 1.9.0
816
+	 */
817
+	public static function the_course_no_permissions_message( $course_id ){
818 818
 
819
-        // login link
820
-        $my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
821
-        $login_link =  '<a href="' . esc_url( get_permalink( $my_courses_page_id ) ) . '">' . __( 'log in', 'woothemes-sensei' ) . '</a>';
819
+		// login link
820
+		$my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
821
+		$login_link =  '<a href="' . esc_url( get_permalink( $my_courses_page_id ) ) . '">' . __( 'log in', 'woothemes-sensei' ) . '</a>';
822 822
 
823
-        ?>
823
+		?>
824 824
 
825 825
         <span class="add-to-cart-login">
826 826
             <?php echo sprintf( __( 'Or %1$s to access your purchased courses', 'woothemes-sensei' ), $login_link ); ?>
@@ -828,110 +828,110 @@  discard block
 block discarded – undo
828 828
 
829 829
     <?php }
830 830
 
831
-    /**
832
-     * Checks if a user has bought a product item.
833
-     *
834
-     * @since  1.9.0
835
-     *
836
-     * @param  int $user_id
837
-     * @param  int $product_id
838
-     *
839
-     * @return bool
840
-     */
841
-    public static function has_customer_bought_product ( $user_id, $product_id ){
831
+	/**
832
+	 * Checks if a user has bought a product item.
833
+	 *
834
+	 * @since  1.9.0
835
+	 *
836
+	 * @param  int $user_id
837
+	 * @param  int $product_id
838
+	 *
839
+	 * @return bool
840
+	 */
841
+	public static function has_customer_bought_product ( $user_id, $product_id ){
842 842
 
843
-        $orders = get_posts( array(
844
-            'posts_per_page' => -1,
845
-            'meta_key'    => '_customer_user',
846
-            'meta_value'  => intval( $user_id ),
847
-            'post_type'   => 'shop_order',
848
-            'post_status' =>  array( 'wc-processing', 'wc-completed' ),
849
-        ) );
843
+		$orders = get_posts( array(
844
+			'posts_per_page' => -1,
845
+			'meta_key'    => '_customer_user',
846
+			'meta_value'  => intval( $user_id ),
847
+			'post_type'   => 'shop_order',
848
+			'post_status' =>  array( 'wc-processing', 'wc-completed' ),
849
+		) );
850 850
 
851
-        foreach ( $orders as $order_id ) {
851
+		foreach ( $orders as $order_id ) {
852 852
 
853
-            $order = new WC_Order( $order_id->ID );
853
+			$order = new WC_Order( $order_id->ID );
854 854
 
855
-            if ( $order->post_status != 'wc-completed' && $order->post_status != 'wc-processing' ) {
855
+			if ( $order->post_status != 'wc-completed' && $order->post_status != 'wc-processing' ) {
856 856
 
857
-                continue;
858
-            }
857
+				continue;
858
+			}
859 859
 
860
-            if ( ! ( 0 < sizeof( $order->get_items() ) ) ) {
860
+			if ( ! ( 0 < sizeof( $order->get_items() ) ) ) {
861 861
 
862
-                continue;
862
+				continue;
863 863
 
864
-            }
864
+			}
865 865
 
866
-            foreach( $order->get_items() as $item ) {
866
+			foreach( $order->get_items() as $item ) {
867 867
 
868
-                // Check if user has bought product
869
-                if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) {
868
+				// Check if user has bought product
869
+				if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) {
870 870
 
871
-                    // Check if user has an active subscription for product
872
-                    if( class_exists( 'WC_Subscriptions_Manager' ) ) {
873
-                        $sub_key = WC_Subscriptions_Manager::get_subscription_key( $order_id->ID, $product_id );
874
-                        if( $sub_key ) {
875
-                            $sub = WC_Subscriptions_Manager::get_subscription( $sub_key );
876
-                            if( $sub && isset( $sub['status'] ) ) {
877
-                                if( 'active' == $sub['status'] ) {
878
-                                    return true;
879
-                                } else {
880
-                                    return false;
881
-                                }
882
-                            }
883
-                        }
884
-                    }
871
+					// Check if user has an active subscription for product
872
+					if( class_exists( 'WC_Subscriptions_Manager' ) ) {
873
+						$sub_key = WC_Subscriptions_Manager::get_subscription_key( $order_id->ID, $product_id );
874
+						if( $sub_key ) {
875
+							$sub = WC_Subscriptions_Manager::get_subscription( $sub_key );
876
+							if( $sub && isset( $sub['status'] ) ) {
877
+								if( 'active' == $sub['status'] ) {
878
+									return true;
879
+								} else {
880
+									return false;
881
+								}
882
+							}
883
+						}
884
+					}
885 885
 
886
-                    // Customer has bought product
887
-                    return true;
888
-                } // End If Statement
886
+					// Customer has bought product
887
+					return true;
888
+				} // End If Statement
889 889
 
890
-            } // End For each item
890
+			} // End For each item
891 891
 
892
-        } // End For each order
892
+		} // End For each order
893 893
 
894
-    } // end has customer bought product
894
+	} // end has customer bought product
895 895
 
896
-    /**
897
-     * Return the product id for the given course
898
-     *
899
-     * @since 1.9.0
900
-     *
901
-     * @param int $course_id
902
-     *
903
-     * @return string $woocommerce_product_id or false if none exist
904
-     *
905
-     */
906
-    public static function get_course_product_id( $course_id ){
896
+	/**
897
+	 * Return the product id for the given course
898
+	 *
899
+	 * @since 1.9.0
900
+	 *
901
+	 * @param int $course_id
902
+	 *
903
+	 * @return string $woocommerce_product_id or false if none exist
904
+	 *
905
+	 */
906
+	public static function get_course_product_id( $course_id ){
907 907
 
908
-        $product_id =  get_post_meta( $course_id, '_course_woocommerce_product', true );
908
+		$product_id =  get_post_meta( $course_id, '_course_woocommerce_product', true );
909 909
 
910
-        if( empty( $product_id ) || 'product' != get_post_type( $product_id ) ){
911
-            return false;
912
-        }
910
+		if( empty( $product_id ) || 'product' != get_post_type( $product_id ) ){
911
+			return false;
912
+		}
913 913
 
914
-        return $product_id;
914
+		return $product_id;
915 915
 
916
-    }
916
+	}
917 917
 
918
-    /**
919
-     * Alter the body classes adding WooCommerce to the body
920
-     *
921
-     * @param array $classes
922
-     * @return array
923
-     */
924
-    public static function add_woocommerce_body_class( $classes ){
918
+	/**
919
+	 * Alter the body classes adding WooCommerce to the body
920
+	 *
921
+	 * @param array $classes
922
+	 * @return array
923
+	 */
924
+	public static function add_woocommerce_body_class( $classes ){
925 925
 
926
-        if( ! in_array( 'woocommerce', $classes ) ){
926
+		if( ! in_array( 'woocommerce', $classes ) ){
927 927
 
928
-            $classes[] ='woocommerce';
928
+			$classes[] ='woocommerce';
929 929
 
930
-        }
930
+		}
931 931
 
932 932
 
933
-        return $classes;
933
+		return $classes;
934 934
 
935
-    }
935
+	}
936 936
 
937 937
 }// end Sensei_WC
Please login to merge, or discard this patch.
Spacing   +163 added lines, -163 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; // security check, don't load file outside WP
2
+if ( ! defined('ABSPATH')) exit; // security check, don't load file outside WP
3 3
 
4 4
 /**
5 5
  * Sensei WooCommerce class
@@ -11,15 +11,15 @@  discard block
 block discarded – undo
11 11
  * @since 1.9.0
12 12
  */
13 13
 
14
-Class Sensei_WC{
14
+Class Sensei_WC {
15 15
     /**
16 16
      * Load the files needed for the woocommerce integration.
17 17
      *
18 18
      * @since 1.9.0
19 19
      */
20
-    public static function load_woocommerce_integration_hooks(){
20
+    public static function load_woocommerce_integration_hooks() {
21 21
 
22
-        require_once( __DIR__ . '/hooks/woocommerce.php' );
22
+        require_once(__DIR__.'/hooks/woocommerce.php');
23 23
 
24 24
     }
25 25
     /**
@@ -28,9 +28,9 @@  discard block
 block discarded – undo
28 28
      * @since 1.9.0
29 29
      * @return bool
30 30
      */
31
-    public static function is_woocommerce_active(){
31
+    public static function is_woocommerce_active() {
32 32
 
33
-        $is_woocommerce_enabled_in_settings = isset( Sensei()->settings->settings['woocommerce_enabled'] ) && Sensei()->settings->settings['woocommerce_enabled'];
33
+        $is_woocommerce_enabled_in_settings = isset(Sensei()->settings->settings['woocommerce_enabled']) && Sensei()->settings->settings['woocommerce_enabled'];
34 34
         return self::is_woocommerce_present() && $is_woocommerce_enabled_in_settings;
35 35
 
36 36
     } // end is_woocommerce_active
@@ -45,19 +45,19 @@  discard block
 block discarded – undo
45 45
      *
46 46
      * @return bool
47 47
      */
48
-    public static function is_woocommerce_present(){
48
+    public static function is_woocommerce_present() {
49 49
 
50
-        $active_plugins = (array) get_option( 'active_plugins', array() );
50
+        $active_plugins = (array) get_option('active_plugins', array());
51 51
 
52
-        if ( is_multisite() ){
52
+        if (is_multisite()) {
53 53
 
54
-            $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
54
+            $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
55 55
 
56 56
         }
57 57
 
58
-        $is_woocommerce_plugin_present_and_activated = in_array( 'woocommerce/woocommerce.php', $active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', $active_plugins );
58
+        $is_woocommerce_plugin_present_and_activated = in_array('woocommerce/woocommerce.php', $active_plugins) || array_key_exists('woocommerce/woocommerce.php', $active_plugins);
59 59
 
60
-        return class_exists( 'Woocommerce' ) || $is_woocommerce_plugin_present_and_activated;
60
+        return class_exists('Woocommerce') || $is_woocommerce_plugin_present_and_activated;
61 61
 
62 62
     }// end is_woocommerce_present
63 63
 
@@ -70,48 +70,48 @@  discard block
 block discarded – undo
70 70
      * @param $course_id
71 71
      * @return array $user_course_orders
72 72
      */
73
-    public static function get_learner_course_active_order_id( $user_id, $course_id ){
73
+    public static function get_learner_course_active_order_id($user_id, $course_id) {
74 74
 
75
-        $course_product_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
75
+        $course_product_id = get_post_meta($course_id, '_course_woocommerce_product', true);
76 76
 
77
-        $orders_query = new WP_Query( array(
77
+        $orders_query = new WP_Query(array(
78 78
             'post_type'   => 'shop_order',
79 79
             'posts_per_page' => -1,
80
-            'post_status' => array( 'wc-processing', 'wc-completed' ),
80
+            'post_status' => array('wc-processing', 'wc-completed'),
81 81
             'meta_key'=> '_customer_user',
82 82
             'meta_value'=> $user_id,
83
-        ) );
83
+        ));
84 84
 
85
-        if( $orders_query->post_count == 0 ){
85
+        if ($orders_query->post_count == 0) {
86 86
 
87 87
             return false;
88 88
 
89 89
         }
90 90
 
91
-        foreach( $orders_query->get_posts() as $order ){
91
+        foreach ($orders_query->get_posts() as $order) {
92 92
 
93
-            $order = new WC_Order( $order->ID );
93
+            $order = new WC_Order($order->ID);
94 94
             $items = $order->get_items();
95 95
 
96
-            $user_orders =  array();
96
+            $user_orders = array();
97 97
 
98
-            foreach( $items as $item ){
98
+            foreach ($items as $item) {
99 99
 
100 100
                 // if the product id on the order and the one given to this function
101 101
                 // this order has been placed by the given user on the given course.
102
-                $product = wc_get_product( $item['product_id'] );
102
+                $product = wc_get_product($item['product_id']);
103 103
 
104
-                if ( $product->is_type( 'variable' )) {
104
+                if ($product->is_type('variable')) {
105 105
 
106 106
                     $item_product_id = $item['variation_id'];
107 107
 
108 108
                 } else {
109 109
 
110
-                    $item_product_id =  $item['product_id'];
110
+                    $item_product_id = $item['product_id'];
111 111
 
112 112
                 }
113 113
 
114
-                if( $course_product_id == $item_product_id ){
114
+                if ($course_product_id == $item_product_id) {
115 115
 
116 116
                     return $order->id;
117 117
 
@@ -135,12 +135,12 @@  discard block
 block discarded – undo
135 135
      * @param $filter_links
136 136
      * @return mixed
137 137
      */
138
-    public static function add_course_archive_wc_filter_links( $filter_links ){
138
+    public static function add_course_archive_wc_filter_links($filter_links) {
139 139
 
140 140
         $free_courses = self::get_free_courses();
141 141
         $paid_courses = self::get_paid_courses();
142 142
 
143
-        if ( empty( $free_courses ) || empty( $paid_courses )  ){
143
+        if (empty($free_courses) || empty($paid_courses)) {
144 144
             // do not show any WooCommerce filters if all courses are
145 145
             // free or if all courses are paid
146 146
             return $filter_links;
@@ -148,15 +148,15 @@  discard block
 block discarded – undo
148 148
         }
149 149
 
150 150
         $filter_links[] = array(
151
-            'id'=>'paid' ,
152
-            'url'=> add_query_arg( array( 'course_filter'=>'paid'), Sensei_Course::get_courses_page_url() ),
153
-            'title'=>__( 'Paid', 'woothemes-sensei' )
151
+            'id'=>'paid',
152
+            'url'=> add_query_arg(array('course_filter'=>'paid'), Sensei_Course::get_courses_page_url()),
153
+            'title'=>__('Paid', 'woothemes-sensei')
154 154
         );
155 155
 
156 156
         $filter_links[] = array(
157 157
             'id'=>'free',
158
-            'url'=> add_query_arg( array( 'course_filter'=>'free'), Sensei_Course::get_courses_page_url() ),
159
-            'title'=>__( 'Free', 'woothemes-sensei' )
158
+            'url'=> add_query_arg(array('course_filter'=>'free'), Sensei_Course::get_courses_page_url()),
159
+            'title'=>__('Free', 'woothemes-sensei')
160 160
         );
161 161
 
162 162
         return $filter_links;
@@ -173,24 +173,24 @@  discard block
 block discarded – undo
173 173
      * @param WP_Query $query
174 174
      * @return WP_Query $query
175 175
      */
176
-    public static function course_archive_wc_filter_free( $query ){
176
+    public static function course_archive_wc_filter_free($query) {
177 177
 
178
-        if( isset( $_GET['course_filter'] ) && 'free' == $_GET['course_filter']
179
-            && 'course' == $query->get( 'post_type') && $query->is_main_query()  ){
178
+        if (isset($_GET['course_filter']) && 'free' == $_GET['course_filter']
179
+            && 'course' == $query->get('post_type') && $query->is_main_query()) {
180 180
 
181 181
             // setup the course meta query
182 182
             $meta_query = self::get_free_courses_meta_query_args();
183 183
 
184 184
             // manipulate the query to return free courses
185
-            $query->set('meta_query', $meta_query );
185
+            $query->set('meta_query', $meta_query);
186 186
 
187 187
             // don't show any paid courses
188 188
             $courses = self::get_paid_courses();
189 189
             $ids = array();
190
-            foreach( $courses as $course ){
190
+            foreach ($courses as $course) {
191 191
                 $ids[] = $course->ID;
192 192
             }
193
-            $query->set( 'post__not_in', $ids );
193
+            $query->set('post__not_in', $ids);
194 194
 
195 195
         }// end if course_filter
196 196
 
@@ -209,16 +209,16 @@  discard block
 block discarded – undo
209 209
      * @param WP_Query $query
210 210
      * @return WP_Query $query
211 211
      */
212
-    public static function course_archive_wc_filter_paid( $query ){
212
+    public static function course_archive_wc_filter_paid($query) {
213 213
 
214
-        if( isset( $_GET['course_filter'] ) && 'paid' == $_GET['course_filter']
215
-            && 'course' == $query->get( 'post_type') && $query->is_main_query() ){
214
+        if (isset($_GET['course_filter']) && 'paid' == $_GET['course_filter']
215
+            && 'course' == $query->get('post_type') && $query->is_main_query()) {
216 216
 
217 217
             // setup the course meta query
218 218
             $meta_query = self::get_paid_courses_meta_query_args();
219 219
 
220 220
             // manipulate the query to return free courses
221
-            $query->set('meta_query', $meta_query );
221
+            $query->set('meta_query', $meta_query);
222 222
 
223 223
         }
224 224
 
@@ -231,14 +231,14 @@  discard block
 block discarded – undo
231 231
      * single courses if woocommerce is active allowing purchase
232 232
      * information and actions to be hooked from WooCommerce.
233 233
      */
234
-    public static function do_single_course_wc_single_product_action(){
234
+    public static function do_single_course_wc_single_product_action() {
235 235
 
236 236
         /**
237 237
          * this hooks is documented within the WooCommerce plugin.
238 238
          */
239
-        if ( Sensei_WC::is_woocommerce_active() ) {
239
+        if (Sensei_WC::is_woocommerce_active()) {
240 240
 
241
-            do_action( 'woocommerce_before_single_product' );
241
+            do_action('woocommerce_before_single_product');
242 242
 
243 243
         } // End If Statement
244 244
 
@@ -259,23 +259,23 @@  discard block
 block discarded – undo
259 259
      * @param $user_id
260 260
      * @return bool
261 261
      */
262
-    public static function alter_can_user_view_lesson ( $can_user_view_lesson, $lesson_id, $user_id  ){
262
+    public static function alter_can_user_view_lesson($can_user_view_lesson, $lesson_id, $user_id) {
263 263
 
264 264
         // check if the course has a valid product attached to it
265 265
         // which the user should have purchased if they want to access
266 266
         // the current lesson
267
-        $course_id = get_post_meta( $lesson_id , '_lesson_course', true);
268
-        $wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
267
+        $course_id = get_post_meta($lesson_id, '_lesson_course', true);
268
+        $wc_post_id = get_post_meta($course_id, '_course_woocommerce_product', true);
269 269
         $product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
270
-        if( isset ($product) && is_object($product) ){
270
+        if (isset ($product) && is_object($product)) {
271 271
 
272 272
             // valid product found
273
-            $order_id = self::get_learner_course_active_order_id( $user_id, $course_id );
273
+            $order_id = self::get_learner_course_active_order_id($user_id, $course_id);
274 274
 
275 275
             // product has a successful order so this user may access the content
276 276
             // this function may only return false or the default
277 277
             // returning true may override other negatives which we don't want
278
-            if( ! $order_id ){
278
+            if ( ! $order_id) {
279 279
 
280 280
                 return false;
281 281
 
@@ -298,23 +298,23 @@  discard block
 block discarded – undo
298 298
      */
299 299
     public static function course_link_from_order( ) {
300 300
 
301
-        if( ! is_order_received_page() ){
301
+        if ( ! is_order_received_page()) {
302 302
             return;
303 303
         }
304 304
 
305
-        $order_id = get_query_var( 'order-received' );
306
-		$order = new WC_Order( $order_id );
305
+        $order_id = get_query_var('order-received');
306
+		$order = new WC_Order($order_id);
307 307
 
308 308
 		// exit early if not wc-completed or wc-processing
309
-		if( 'wc-completed' != $order->post_status
310
-            && 'wc-processing' != $order->post_status  ) {
309
+		if ('wc-completed' != $order->post_status
310
+            && 'wc-processing' != $order->post_status) {
311 311
             return;
312 312
         }
313 313
 
314 314
         $course_links = array(); // store the for links for courses purchased
315
-		foreach ( $order->get_items() as $item ) {
315
+		foreach ($order->get_items() as $item) {
316 316
 
317
-            if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
317
+            if (isset($item['variation_id']) && (0 < $item['variation_id'])) {
318 318
 
319 319
                 // If item has variation_id then its a variation of the product
320 320
                 $item_id = $item['variation_id'];
@@ -326,28 +326,28 @@  discard block
 block discarded – undo
326 326
 
327 327
             } // End If Statement
328 328
 
329
-            $user_id = get_post_meta( $order->id, '_customer_user', true );
329
+            $user_id = get_post_meta($order->id, '_customer_user', true);
330 330
 
331
-            if( $user_id ) {
331
+            if ($user_id) {
332 332
 
333 333
                 // Get all courses for product
334 334
                 $args = Sensei_Course::get_default_query_args();
335
-                $args['meta_query'] = array( array(
335
+                $args['meta_query'] = array(array(
336 336
                             'key' => '_course_woocommerce_product',
337 337
                             'value' => $item_id
338
-                        ) );
338
+                        ));
339 339
                 $args['orderby'] = 'menu_order date';
340 340
                 $args['order'] = 'ASC';
341 341
 
342 342
                 // loop through courses
343
-                $courses = get_posts( $args );
344
-                if( $courses && count( $courses ) > 0 ) {
343
+                $courses = get_posts($args);
344
+                if ($courses && count($courses) > 0) {
345 345
 
346
-                    foreach( $courses as $course ) {
346
+                    foreach ($courses as $course) {
347 347
 
348 348
                         $title = $course->post_title;
349
-                        $permalink = get_permalink( $course->ID );
350
-                        $course_links[] .= '<a href="' . esc_url( $permalink ) . '" >' . $title . '</a> ';
349
+                        $permalink = get_permalink($course->ID);
350
+                        $course_links[] .= '<a href="'.esc_url($permalink).'" >'.$title.'</a> ';
351 351
 
352 352
                     } // end for each
353 353
 
@@ -358,24 +358,24 @@  discard block
 block discarded – undo
358 358
         }// end loop through orders
359 359
 
360 360
         // add the courses to the WooCommerce notice
361
-        if( ! empty( $course_links) ){
361
+        if ( ! empty($course_links)) {
362 362
 
363 363
             $courses_html = _nx(
364 364
                 'You have purchased the following course:',
365 365
                 'You have purchased the following courses:',
366
-                count( $course_links ),
366
+                count($course_links),
367 367
                 'Purchase thank you note on Checkout page. The course link(s) will be show', 'woothemes-sensei'
368 368
             );
369 369
 
370
-            foreach( $course_links as $link ){
370
+            foreach ($course_links as $link) {
371 371
 
372
-                $courses_html .= '<li>' . $link . '</li>';
372
+                $courses_html .= '<li>'.$link.'</li>';
373 373
 
374 374
             }
375 375
 
376 376
             $courses_html .= ' </ul>';
377 377
 
378
-            wc_add_notice( $courses_html, 'success' );
378
+            wc_add_notice($courses_html, 'success');
379 379
         }
380 380
 
381 381
 	} // end course_link_order_form
@@ -388,20 +388,20 @@  discard block
 block discarded – undo
388 388
      *
389 389
      * @since 1.9.0
390 390
      */
391
-    public static function course_in_cart_message(){
391
+    public static function course_in_cart_message() {
392 392
 
393 393
         global $post;
394 394
 
395
-        if( self::is_course_in_cart( $post->ID ) ){ ?>
395
+        if (self::is_course_in_cart($post->ID)) { ?>
396 396
 
397 397
             <div class="sensei-message info">'
398 398
                 <?php
399 399
 
400
-                $cart_link =  '<a class="cart-complete" href="' . WC()->cart->get_checkout_url()
401
-                              . '" title="' . __('complete purchase', 'woothemes-sensei') . '">'
402
-                              . __('complete the purchase', 'woothemes-sensei') . '</a>';
400
+                $cart_link = '<a class="cart-complete" href="'.WC()->cart->get_checkout_url()
401
+                              . '" title="'.__('complete purchase', 'woothemes-sensei').'">'
402
+                              . __('complete the purchase', 'woothemes-sensei').'</a>';
403 403
 
404
-                sprintf(  __('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link );
404
+                sprintf(__('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link);
405 405
 
406 406
                 ?>
407 407
             </div>
@@ -415,14 +415,14 @@  discard block
 block discarded – undo
415 415
      * @param $course_id
416 416
      * @return bool
417 417
      */
418
-    public static function is_course_in_cart( $course_id ){
418
+    public static function is_course_in_cart($course_id) {
419 419
 
420
-        $wc_post_id = absint( get_post_meta( $course_id, '_course_woocommerce_product', true ) );
421
-        $user_course_status_id = Sensei_Utils::user_started_course( $course_id , get_current_user_id() );
420
+        $wc_post_id = absint(get_post_meta($course_id, '_course_woocommerce_product', true));
421
+        $user_course_status_id = Sensei_Utils::user_started_course($course_id, get_current_user_id());
422 422
 
423
-        if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
423
+        if (0 < intval($wc_post_id) && ! $user_course_status_id) {
424 424
 
425
-            if ( self::is_product_in_cart( $wc_post_id ) ) {
425
+            if (self::is_product_in_cart($wc_post_id)) {
426 426
 
427 427
                 return true;
428 428
 
@@ -440,20 +440,20 @@  discard block
 block discarded – undo
440 440
      * @param $product_id
441 441
      * @return bool
442 442
      */
443
-    public static function is_product_in_cart( $product_id ){
443
+    public static function is_product_in_cart($product_id) {
444 444
 
445
-        if ( 0 < $product_id ) {
445
+        if (0 < $product_id) {
446 446
 
447
-            $product = wc_get_product( $product_id );
447
+            $product = wc_get_product($product_id);
448 448
 
449 449
             $parent_id = '';
450
-            if( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) {
450
+            if (isset($product->variation_id) && 0 < intval($product->variation_id)) {
451 451
                 $wc_product_id = $product->parent->id;
452 452
             }
453
-            foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
453
+            foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
454 454
 
455 455
                 $cart_product = $values['data'];
456
-                if( $product_id == $cart_product->id ) {
456
+                if ($product_id == $cart_product->id) {
457 457
 
458 458
                     return true;
459 459
 
@@ -475,9 +475,9 @@  discard block
 block discarded – undo
475 475
      *  @type int $wp_post_id
476 476
      * }
477 477
      */
478
-    public static function get_free_product_ids(){
478
+    public static function get_free_product_ids() {
479 479
 
480
-        return  get_posts( array(
480
+        return  get_posts(array(
481 481
             'post_type' => 'product',
482 482
             'posts_per_page' => '1000',
483 483
             'fields' => 'ids',
@@ -502,7 +502,7 @@  discard block
 block discarded – undo
502 502
      * @since 1.9.0
503 503
      * @return array $wp_meta_query_param
504 504
      */
505
-    public static function get_free_courses_meta_query_args(){
505
+    public static function get_free_courses_meta_query_args() {
506 506
 
507 507
         return array(
508 508
             'relation' => 'OR',
@@ -526,7 +526,7 @@  discard block
 block discarded – undo
526 526
      * @since 1.9.0
527 527
      * @return array $wp_query_meta_query_args_param
528 528
      */
529
-    public static function get_paid_courses_meta_query_args(){
529
+    public static function get_paid_courses_meta_query_args() {
530 530
 
531 531
         $paid_product_ids = self::get_paid_product_ids();
532 532
 
@@ -535,7 +535,7 @@  discard block
 block discarded – undo
535 535
                 'key'     => '_course_woocommerce_product',
536 536
                 // when empty we give a false post_id to ensure the caller doesn't get any courses for their
537 537
                 // query
538
-                'value' => empty( $paid_product_ids  )? '-1000' : $paid_product_ids,
538
+                'value' => empty($paid_product_ids) ? '-1000' : $paid_product_ids,
539 539
                 'compare' => 'IN',
540 540
             ),
541 541
         );
@@ -549,7 +549,7 @@  discard block
 block discarded – undo
549 549
      * @since 1.9.0
550 550
      * @return array $product_query_args
551 551
      */
552
-    public static function get_paid_products_on_sale_query_args(){
552
+    public static function get_paid_products_on_sale_query_args() {
553 553
 
554 554
         $args = array(
555 555
                    'post_type' 		=> 'product',
@@ -559,9 +559,9 @@  discard block
 block discarded – undo
559 559
                    'suppress_filters' 	=> 0
560 560
         );
561 561
 
562
-        $args[ 'fields' ]     = 'ids';
562
+        $args['fields']     = 'ids';
563 563
 
564
-        $args[ 'meta_query' ] = array(
564
+        $args['meta_query'] = array(
565 565
             'relation' => 'AND',
566 566
             array(
567 567
                 'key'=> '_regular_price',
@@ -588,7 +588,7 @@  discard block
 block discarded – undo
588 588
      *
589 589
      * @return array
590 590
      */
591
-    public static function get_paid_products_not_on_sale_query_args(){
591
+    public static function get_paid_products_not_on_sale_query_args() {
592 592
 
593 593
         $args = array(
594 594
             'post_type' 		=> 'product',
@@ -598,8 +598,8 @@  discard block
 block discarded – undo
598 598
             'suppress_filters' 	=> 0
599 599
         );
600 600
 
601
-        $args[ 'fields' ]     = 'ids';
602
-        $args[ 'meta_query' ] = array(
601
+        $args['fields']     = 'ids';
602
+        $args['meta_query'] = array(
603 603
             'relation' => 'AND',
604 604
             array(
605 605
                 'key'=> '_regular_price',
@@ -625,24 +625,24 @@  discard block
 block discarded – undo
625 625
      *
626 626
      * @return array $woocommerce_paid_product_ids
627 627
      */
628
-    public static function get_paid_product_ids(){
628
+    public static function get_paid_product_ids() {
629 629
 
630 630
         // get all the paid WooCommerce products that has regular
631 631
         // and sale price greater than 0
632 632
         // will be used later to check for course with the id as meta
633
-        $paid_product_ids_with_sale =  get_posts( self::get_paid_products_on_sale_query_args() );
633
+        $paid_product_ids_with_sale = get_posts(self::get_paid_products_on_sale_query_args());
634 634
 
635 635
         // get all the paid WooCommerce products that has regular price
636 636
         // greater than 0 without a sale price
637 637
         // will be used later to check for course with the id as meta
638
-        $paid_product_ids_without_sale = get_posts( self::get_paid_products_not_on_sale_query_args() );
638
+        $paid_product_ids_without_sale = get_posts(self::get_paid_products_not_on_sale_query_args());
639 639
 
640 640
         // combine products ID's with regular and sale price grater than zero and those without
641 641
         // sale but regular price greater than zero
642
-        $woocommerce_paid_product_ids = array_merge( $paid_product_ids_with_sale, $paid_product_ids_without_sale );
642
+        $woocommerce_paid_product_ids = array_merge($paid_product_ids_with_sale, $paid_product_ids_without_sale);
643 643
 
644 644
         // if
645
-        if( empty($woocommerce_paid_product_ids) ){
645
+        if (empty($woocommerce_paid_product_ids)) {
646 646
             return array( );
647 647
         }
648 648
         return $woocommerce_paid_product_ids;
@@ -661,20 +661,20 @@  discard block
 block discarded – undo
661 661
      *
662 662
      * @return array
663 663
      */
664
-    public static function get_free_courses(){
664
+    public static function get_free_courses() {
665 665
 
666 666
         $free_course_query_args = Sensei_Course::get_default_query_args();
667
-        $free_course_query_args[ 'meta_query' ] = self::get_free_courses_meta_query_args();
667
+        $free_course_query_args['meta_query'] = self::get_free_courses_meta_query_args();
668 668
 
669 669
         // don't show any paid courses
670 670
         $courses = self::get_paid_courses();
671 671
         $ids = array();
672
-        foreach( $courses as $course ){
672
+        foreach ($courses as $course) {
673 673
             $ids[] = $course->ID;
674 674
         }
675
-        $free_course_query_args[ 'post__not_in' ] =  $ids;
675
+        $free_course_query_args['post__not_in'] = $ids;
676 676
 
677
-        return get_posts( $free_course_query_args );
677
+        return get_posts($free_course_query_args);
678 678
 
679 679
     }
680 680
 
@@ -684,13 +684,13 @@  discard block
 block discarded – undo
684 684
      * @since 1.9.0
685 685
      * @return array
686 686
      */
687
-    public static function get_paid_courses(){
687
+    public static function get_paid_courses() {
688 688
 
689 689
         $paid_course_query_args = Sensei_Course::get_default_query_args();
690 690
 
691
-        $paid_course_query_args[ 'meta_query' ] = self::get_paid_courses_meta_query_args();
691
+        $paid_course_query_args['meta_query'] = self::get_paid_courses_meta_query_args();
692 692
 
693
-        return get_posts(  $paid_course_query_args );
693
+        return get_posts($paid_course_query_args);
694 694
     }
695 695
 
696 696
     /**
@@ -705,17 +705,17 @@  discard block
 block discarded – undo
705 705
      * @param int $course_id
706 706
      * @return string $html markup for the button or nothing if user not allowed to buy
707 707
      */
708
-    public static function the_add_to_cart_button_html( $course_id ){
708
+    public static function the_add_to_cart_button_html($course_id) {
709 709
 
710
-        if ( ! Sensei_Course::is_prerequisite_complete( $course_id )) {
710
+        if ( ! Sensei_Course::is_prerequisite_complete($course_id)) {
711 711
             return '';
712 712
         }
713 713
 
714
-        $wc_post_id = self::get_course_product_id( $course_id );
714
+        $wc_post_id = self::get_course_product_id($course_id);
715 715
 
716 716
         // Check if customer purchased the product
717
-        if ( self::has_customer_bought_product(  get_current_user_id(), $wc_post_id )
718
-            || empty( $wc_post_id ) ) {
717
+        if (self::has_customer_bought_product(get_current_user_id(), $wc_post_id)
718
+            || empty($wc_post_id)) {
719 719
 
720 720
             return '';
721 721
 
@@ -723,15 +723,15 @@  discard block
 block discarded – undo
723 723
 
724 724
         // based on simple.php in WC templates/single-product/add-to-cart/
725 725
         // Get the product
726
-        $product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
726
+        $product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
727 727
 
728 728
         // do not show the button for invalid products, non purchasable products, out
729 729
         // of stock product or if course is already in cart
730
-        if ( ! isset ( $product )
731
-            || ! is_object( $product )
730
+        if ( ! isset ($product)
731
+            || ! is_object($product)
732 732
             || ! $product->is_purchasable()
733 733
             || ! $product->is_in_stock()
734
-            || self::is_course_in_cart( $wc_post_id ) ) {
734
+            || self::is_course_in_cart($wc_post_id)) {
735 735
 
736 736
             return '';
737 737
 
@@ -742,23 +742,23 @@  discard block
 block discarded – undo
742 742
         //
743 743
         ?>
744 744
 
745
-        <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>"
745
+        <form action="<?php echo esc_url($product->add_to_cart_url()); ?>"
746 746
               class="cart"
747 747
               method="post"
748 748
               enctype="multipart/form-data">
749 749
 
750
-            <input type="hidden" name="product_id" value="<?php echo esc_attr( $product->id ); ?>" />
750
+            <input type="hidden" name="product_id" value="<?php echo esc_attr($product->id); ?>" />
751 751
 
752 752
             <input type="hidden" name="quantity" value="1" />
753 753
 
754
-            <?php if ( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) { ?>
754
+            <?php if (isset($product->variation_id) && 0 < intval($product->variation_id)) { ?>
755 755
 
756 756
                 <input type="hidden" name="variation_id" value="<?php echo $product->variation_id; ?>" />
757
-                <?php if( isset( $product->variation_data ) && is_array( $product->variation_data ) && count( $product->variation_data ) > 0 ) { ?>
757
+                <?php if (isset($product->variation_data) && is_array($product->variation_data) && count($product->variation_data) > 0) { ?>
758 758
 
759
-                    <?php foreach( $product->variation_data as $att => $val ) { ?>
759
+                    <?php foreach ($product->variation_data as $att => $val) { ?>
760 760
 
761
-                        <input type="hidden" name="<?php echo esc_attr( $att ); ?>" id="<?php echo esc_attr( str_replace( 'attribute_', '', $att ) ); ?>" value="<?php echo esc_attr( $val ); ?>" />
761
+                        <input type="hidden" name="<?php echo esc_attr($att); ?>" id="<?php echo esc_attr(str_replace('attribute_', '', $att)); ?>" value="<?php echo esc_attr($val); ?>" />
762 762
 
763 763
                     <?php } ?>
764 764
 
@@ -786,26 +786,26 @@  discard block
 block discarded – undo
786 786
      *
787 787
      * @return string $message
788 788
      */
789
-    public static function alter_no_permissions_message( $message, $post_id ){
789
+    public static function alter_no_permissions_message($message, $post_id) {
790 790
 
791
-        if( empty( $post_id ) || 'course'!=get_post_type( $post_id ) ){
791
+        if (empty($post_id) || 'course' != get_post_type($post_id)) {
792 792
             return  $message;
793 793
         }
794 794
 
795
-        $product_id = self::get_course_product_id( $post_id );
795
+        $product_id = self::get_course_product_id($post_id);
796 796
 
797
-        if( ! $product_id
798
-            || self::has_customer_bought_product( get_current_user_id(),$product_id ) ){
797
+        if ( ! $product_id
798
+            || self::has_customer_bought_product(get_current_user_id(), $product_id)) {
799 799
 
800 800
             return $message;
801 801
 
802 802
         }
803 803
 
804 804
         ob_start();
805
-        self::the_course_no_permissions_message( $post_id );
805
+        self::the_course_no_permissions_message($post_id);
806 806
         $woocommerce_course_no_permissions_message = ob_get_clean();
807 807
 
808
-        return $woocommerce_course_no_permissions_message ;
808
+        return $woocommerce_course_no_permissions_message;
809 809
 
810 810
     }
811 811
     /**
@@ -814,16 +814,16 @@  discard block
 block discarded – undo
814 814
      *
815 815
      * @since 1.9.0
816 816
      */
817
-    public static function the_course_no_permissions_message( $course_id ){
817
+    public static function the_course_no_permissions_message($course_id) {
818 818
 
819 819
         // login link
820
-        $my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
821
-        $login_link =  '<a href="' . esc_url( get_permalink( $my_courses_page_id ) ) . '">' . __( 'log in', 'woothemes-sensei' ) . '</a>';
820
+        $my_courses_page_id = intval(Sensei()->settings->settings['my_course_page']);
821
+        $login_link = '<a href="'.esc_url(get_permalink($my_courses_page_id)).'">'.__('log in', 'woothemes-sensei').'</a>';
822 822
 
823 823
         ?>
824 824
 
825 825
         <span class="add-to-cart-login">
826
-            <?php echo sprintf( __( 'Or %1$s to access your purchased courses', 'woothemes-sensei' ), $login_link ); ?>
826
+            <?php echo sprintf(__('Or %1$s to access your purchased courses', 'woothemes-sensei'), $login_link); ?>
827 827
         </span>
828 828
 
829 829
     <?php }
@@ -838,43 +838,43 @@  discard block
 block discarded – undo
838 838
      *
839 839
      * @return bool
840 840
      */
841
-    public static function has_customer_bought_product ( $user_id, $product_id ){
841
+    public static function has_customer_bought_product($user_id, $product_id) {
842 842
 
843
-        $orders = get_posts( array(
843
+        $orders = get_posts(array(
844 844
             'posts_per_page' => -1,
845 845
             'meta_key'    => '_customer_user',
846
-            'meta_value'  => intval( $user_id ),
846
+            'meta_value'  => intval($user_id),
847 847
             'post_type'   => 'shop_order',
848
-            'post_status' =>  array( 'wc-processing', 'wc-completed' ),
849
-        ) );
848
+            'post_status' =>  array('wc-processing', 'wc-completed'),
849
+        ));
850 850
 
851
-        foreach ( $orders as $order_id ) {
851
+        foreach ($orders as $order_id) {
852 852
 
853
-            $order = new WC_Order( $order_id->ID );
853
+            $order = new WC_Order($order_id->ID);
854 854
 
855
-            if ( $order->post_status != 'wc-completed' && $order->post_status != 'wc-processing' ) {
855
+            if ($order->post_status != 'wc-completed' && $order->post_status != 'wc-processing') {
856 856
 
857 857
                 continue;
858 858
             }
859 859
 
860
-            if ( ! ( 0 < sizeof( $order->get_items() ) ) ) {
860
+            if ( ! (0 < sizeof($order->get_items()))) {
861 861
 
862 862
                 continue;
863 863
 
864 864
             }
865 865
 
866
-            foreach( $order->get_items() as $item ) {
866
+            foreach ($order->get_items() as $item) {
867 867
 
868 868
                 // Check if user has bought product
869
-                if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) {
869
+                if ($item['product_id'] == $product_id || $item['variation_id'] == $product_id) {
870 870
 
871 871
                     // Check if user has an active subscription for product
872
-                    if( class_exists( 'WC_Subscriptions_Manager' ) ) {
873
-                        $sub_key = WC_Subscriptions_Manager::get_subscription_key( $order_id->ID, $product_id );
874
-                        if( $sub_key ) {
875
-                            $sub = WC_Subscriptions_Manager::get_subscription( $sub_key );
876
-                            if( $sub && isset( $sub['status'] ) ) {
877
-                                if( 'active' == $sub['status'] ) {
872
+                    if (class_exists('WC_Subscriptions_Manager')) {
873
+                        $sub_key = WC_Subscriptions_Manager::get_subscription_key($order_id->ID, $product_id);
874
+                        if ($sub_key) {
875
+                            $sub = WC_Subscriptions_Manager::get_subscription($sub_key);
876
+                            if ($sub && isset($sub['status'])) {
877
+                                if ('active' == $sub['status']) {
878 878
                                     return true;
879 879
                                 } else {
880 880
                                     return false;
@@ -903,11 +903,11 @@  discard block
 block discarded – undo
903 903
      * @return string $woocommerce_product_id or false if none exist
904 904
      *
905 905
      */
906
-    public static function get_course_product_id( $course_id ){
906
+    public static function get_course_product_id($course_id) {
907 907
 
908
-        $product_id =  get_post_meta( $course_id, '_course_woocommerce_product', true );
908
+        $product_id = get_post_meta($course_id, '_course_woocommerce_product', true);
909 909
 
910
-        if( empty( $product_id ) || 'product' != get_post_type( $product_id ) ){
910
+        if (empty($product_id) || 'product' != get_post_type($product_id)) {
911 911
             return false;
912 912
         }
913 913
 
@@ -921,11 +921,11 @@  discard block
 block discarded – undo
921 921
      * @param array $classes
922 922
      * @return array
923 923
      */
924
-    public static function add_woocommerce_body_class( $classes ){
924
+    public static function add_woocommerce_body_class($classes) {
925 925
 
926
-        if( ! in_array( 'woocommerce', $classes ) ){
926
+        if ( ! in_array('woocommerce', $classes)) {
927 927
 
928
-            $classes[] ='woocommerce';
928
+            $classes[] = 'woocommerce';
929 929
 
930 930
         }
931 931
 
Please login to merge, or discard this patch.
includes/class-sensei-course-results.php 3 patches
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   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -14,10 +14,10 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class Sensei_Course_Results {
16 16
 
17
-    /**
18
-     * @var string
19
-     */
20
-    public  $courses_url_base;
17
+	/**
18
+	 * @var string
19
+	 */
20
+	public  $courses_url_base;
21 21
 
22 22
 	/**
23 23
 	 * Constructor.
@@ -98,7 +98,7 @@  discard block
 block discarded – undo
98 98
 		global $wp_query,  $current_user;
99 99
 
100 100
 		if( isset( $wp_query->query_vars['course_results'] ) ) {
101
-            Sensei_Templates::get_template( 'course-results/course-info.php' );
101
+			Sensei_Templates::get_template( 'course-results/course-info.php' );
102 102
 		}
103 103
 
104 104
 	}
@@ -117,20 +117,20 @@  discard block
 block discarded – undo
117 117
 
118 118
 		sensei_do_deprecated_action( 'sensei_course_results_lessons','1.9.','sensei_course_results_content_inside_after', $course );
119 119
 
120
-        sensei_do_deprecated_action( 'sensei_course_results_bottom','1.9.','sensei_course_results_content_inside_after', $course->ID );
120
+		sensei_do_deprecated_action( 'sensei_course_results_bottom','1.9.','sensei_course_results_content_inside_after', $course->ID );
121 121
 
122 122
 	}
123 123
 
124 124
 	/**
125 125
 	 * Load template for displaying course lessons
126
-     *
126
+	 *
127 127
 	 * @since  1.4.0
128 128
 	 * @return void
129 129
 	 */
130 130
 	public function course_lessons() {
131 131
 
132 132
 		global $course;
133
-        _deprecated_function( 'Sensei_modules course_lessons ', '1.9.0' );
133
+		_deprecated_function( 'Sensei_modules course_lessons ', '1.9.0' );
134 134
 
135 135
 	}
136 136
 
@@ -147,62 +147,62 @@  discard block
 block discarded – undo
147 147
 		return $classes;
148 148
 	}
149 149
 
150
-    /**
151
-     * Deprecate the sensei_course_results_content hook
152
-     *
153
-     * @deprecated since 1.9.0
154
-     */
155
-    public static function deprecate_sensei_course_results_content_hook(){
150
+	/**
151
+	 * Deprecate the sensei_course_results_content hook
152
+	 *
153
+	 * @deprecated since 1.9.0
154
+	 */
155
+	public static function deprecate_sensei_course_results_content_hook(){
156 156
 
157
-        sensei_do_deprecated_action('sensei_course_results_content', '1.9.0','sensei_course_results_content_before');
157
+		sensei_do_deprecated_action('sensei_course_results_content', '1.9.0','sensei_course_results_content_before');
158 158
 
159
-    }
159
+	}
160 160
 
161
-    /**
162
-     * Fire the sensei frontend message hook
163
-     *
164
-     * @since 1.9.0
165
-     */
166
-    public static function fire_sensei_message_hook(){
161
+	/**
162
+	 * Fire the sensei frontend message hook
163
+	 *
164
+	 * @since 1.9.0
165
+	 */
166
+	public static function fire_sensei_message_hook(){
167 167
 
168
-        do_action( 'sensei_frontend_messages' );
168
+		do_action( 'sensei_frontend_messages' );
169 169
 
170
-    }
170
+	}
171 171
 
172
-    /**
173
-     * Deprecate the course_results info hook
174
-     *
175
-     * @since 1.9.0
176
-     */
177
-    public static function deprecate_course_result_info_hook(){
172
+	/**
173
+	 * Deprecate the course_results info hook
174
+	 *
175
+	 * @since 1.9.0
176
+	 */
177
+	public static function deprecate_course_result_info_hook(){
178 178
 
179
-        sensei_do_deprecated_action( 'sensei_course_results_info', '1.9.0', 'sensei_course_results_content_inside_before' );
179
+		sensei_do_deprecated_action( 'sensei_course_results_info', '1.9.0', 'sensei_course_results_content_inside_before' );
180 180
 
181
-    }
181
+	}
182 182
 
183
-    /**
184
-     * Deprecate the sensei_course_results_top hook
185
-     *
186
-     * @deprecate since 1.9.0
187
-     */
188
-    public static function deprecate_course_results_top_hook(){
183
+	/**
184
+	 * Deprecate the sensei_course_results_top hook
185
+	 *
186
+	 * @deprecate since 1.9.0
187
+	 */
188
+	public static function deprecate_course_results_top_hook(){
189 189
 
190
-        global $course;
191
-        sensei_do_deprecated_action( 'sensei_course_results_top', '1.9.0' ,'sensei_course_results_content_inside_before',$course->ID );
190
+		global $course;
191
+		sensei_do_deprecated_action( 'sensei_course_results_top', '1.9.0' ,'sensei_course_results_content_inside_before',$course->ID );
192 192
 
193
-    }
193
+	}
194 194
 
195
-    /**
196
-     * Fire the course image hook
197
-     *
198
-     * @since 1.8.0
199
-     */
200
-    public static function fire_course_image_hook(){
195
+	/**
196
+	 * Fire the course image hook
197
+	 *
198
+	 * @since 1.8.0
199
+	 */
200
+	public static function fire_course_image_hook(){
201 201
 
202
-        global $course;
203
-        sensei_do_deprecated_action('sensei_course_image','1.9.0', 'sensei_single_course_content_inside_before', array( get_the_ID()) );
202
+		global $course;
203
+		sensei_do_deprecated_action('sensei_course_image','1.9.0', 'sensei_single_course_content_inside_before', array( get_the_ID()) );
204 204
 
205
-    }
205
+	}
206 206
 
207 207
 } // End Class
208 208
 
Please login to merge, or discard this patch.
Spacing   +40 added lines, -40 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 Course Results Class
@@ -23,20 +23,20 @@  discard block
 block discarded – undo
23 23
 	 * Constructor.
24 24
 	 * @since  1.4.0
25 25
 	 */
26
-	public function __construct () {
26
+	public function __construct() {
27 27
 
28 28
 		// Setup learner profile URL base
29
-		$this->courses_url_base = apply_filters( 'sensei_course_slug', _x( 'course', 'post type single url slug', 'woothemes-sensei' ) );
29
+		$this->courses_url_base = apply_filters('sensei_course_slug', _x('course', 'post type single url slug', 'woothemes-sensei'));
30 30
 
31 31
 		// Setup permalink structure for course results
32
-		add_action( 'init', array( $this, 'setup_permastruct' ) );
33
-		add_filter( 'wp_title', array( $this, 'page_title' ), 10, 2 );
32
+		add_action('init', array($this, 'setup_permastruct'));
33
+		add_filter('wp_title', array($this, 'page_title'), 10, 2);
34 34
 
35 35
 		// Load course results
36
-		add_action( 'sensei_course_results_content_inside_before', array( $this, 'deprecate_course_result_info_hook' ), 10 );
36
+		add_action('sensei_course_results_content_inside_before', array($this, 'deprecate_course_result_info_hook'), 10);
37 37
 
38 38
 		// Add class to body tag
39
-		add_filter( 'body_class', array( $this, 'body_class' ), 10, 1 );
39
+		add_filter('body_class', array($this, 'body_class'), 10, 1);
40 40
 
41 41
 	} // End __construct()
42 42
 
@@ -46,8 +46,8 @@  discard block
 block discarded – undo
46 46
 	 * @return void
47 47
 	 */
48 48
 	public function setup_permastruct() {
49
-		add_rewrite_rule( '^' . $this->courses_url_base . '/([^/]*)/results/?', 'index.php?course_results=$matches[1]', 'top' );
50
-		add_rewrite_tag( '%course_results%', '([^&]+)' );
49
+		add_rewrite_rule('^'.$this->courses_url_base.'/([^/]*)/results/?', 'index.php?course_results=$matches[1]', 'top');
50
+		add_rewrite_tag('%course_results%', '([^&]+)');
51 51
 	}
52 52
 
53 53
 	/**
@@ -56,11 +56,11 @@  discard block
 block discarded – undo
56 56
 	 * @param  string $sep   Seeparator string
57 57
 	 * @return string        Modified title
58 58
 	 */
59
-	public function page_title( $title, $sep = null ) {
59
+	public function page_title($title, $sep = null) {
60 60
 		global $wp_query;
61
-		if( isset( $wp_query->query_vars['course_results'] ) ) {
62
-			$course = get_page_by_path( $wp_query->query_vars['course_results'], OBJECT, 'course' );
63
-			$title = __( 'Course Results: ', 'woothemes-sensei' ) . $course->post_title . ' ' . $sep . ' ';
61
+		if (isset($wp_query->query_vars['course_results'])) {
62
+			$course = get_page_by_path($wp_query->query_vars['course_results'], OBJECT, 'course');
63
+			$title = __('Course Results: ', 'woothemes-sensei').$course->post_title.' '.$sep.' ';
64 64
 		}
65 65
 		return $title;
66 66
 	}
@@ -71,18 +71,18 @@  discard block
 block discarded – undo
71 71
 	 * @param  integer $course_id ID of course
72 72
 	 * @return string             The course results page permalink
73 73
 	 */
74
-	public function get_permalink( $course_id = 0 ) {
74
+	public function get_permalink($course_id = 0) {
75 75
 
76 76
 		$permalink = '';
77 77
 
78
-		if( $course_id > 0 ) {
78
+		if ($course_id > 0) {
79 79
 
80
-			$course = get_post( $course_id );
80
+			$course = get_post($course_id);
81 81
 
82
-			if ( get_option('permalink_structure') ) {
83
-				$permalink = trailingslashit( get_home_url() ) . $this->courses_url_base . '/' . $course->post_name . '/results/';
82
+			if (get_option('permalink_structure')) {
83
+				$permalink = trailingslashit(get_home_url()).$this->courses_url_base.'/'.$course->post_name.'/results/';
84 84
 			} else {
85
-				$permalink = trailingslashit( get_home_url() ) . '?course_results=' . $course->post_name;
85
+				$permalink = trailingslashit(get_home_url()).'?course_results='.$course->post_name;
86 86
 			}
87 87
 		}
88 88
 
@@ -95,10 +95,10 @@  discard block
 block discarded – undo
95 95
 	 * @return void
96 96
 	 */
97 97
 	public function content() {
98
-		global $wp_query,  $current_user;
98
+		global $wp_query, $current_user;
99 99
 
100
-		if( isset( $wp_query->query_vars['course_results'] ) ) {
101
-            Sensei_Templates::get_template( 'course-results/course-info.php' );
100
+		if (isset($wp_query->query_vars['course_results'])) {
101
+            Sensei_Templates::get_template('course-results/course-info.php');
102 102
 		}
103 103
 
104 104
 	}
@@ -112,12 +112,12 @@  discard block
 block discarded – undo
112 112
 
113 113
 		global $course;
114 114
 
115
-		$course_status = Sensei_Utils::sensei_user_course_status_message( $course->ID, get_current_user_id());
116
-		echo '<div class="sensei-message ' . $course_status['box_class'] . '">' . $course_status['message'] . '</div>';
115
+		$course_status = Sensei_Utils::sensei_user_course_status_message($course->ID, get_current_user_id());
116
+		echo '<div class="sensei-message '.$course_status['box_class'].'">'.$course_status['message'].'</div>';
117 117
 
118
-		sensei_do_deprecated_action( 'sensei_course_results_lessons','1.9.','sensei_course_results_content_inside_after', $course );
118
+		sensei_do_deprecated_action('sensei_course_results_lessons', '1.9.', 'sensei_course_results_content_inside_after', $course);
119 119
 
120
-        sensei_do_deprecated_action( 'sensei_course_results_bottom','1.9.','sensei_course_results_content_inside_after', $course->ID );
120
+        sensei_do_deprecated_action('sensei_course_results_bottom', '1.9.', 'sensei_course_results_content_inside_after', $course->ID);
121 121
 
122 122
 	}
123 123
 
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
 	public function course_lessons() {
131 131
 
132 132
 		global $course;
133
-        _deprecated_function( 'Sensei_modules course_lessons ', '1.9.0' );
133
+        _deprecated_function('Sensei_modules course_lessons ', '1.9.0');
134 134
 
135 135
 	}
136 136
 
@@ -139,9 +139,9 @@  discard block
 block discarded – undo
139 139
 	 * @param  array $classes Existing classes
140 140
 	 * @return array          Modified classes
141 141
 	 */
142
-	public function body_class( $classes ) {
142
+	public function body_class($classes) {
143 143
 		global $wp_query;
144
-		if( isset( $wp_query->query_vars['course_results'] ) ) {
144
+		if (isset($wp_query->query_vars['course_results'])) {
145 145
 			$classes[] = 'course-results';
146 146
 		}
147 147
 		return $classes;
@@ -152,9 +152,9 @@  discard block
 block discarded – undo
152 152
      *
153 153
      * @deprecated since 1.9.0
154 154
      */
155
-    public static function deprecate_sensei_course_results_content_hook(){
155
+    public static function deprecate_sensei_course_results_content_hook() {
156 156
 
157
-        sensei_do_deprecated_action('sensei_course_results_content', '1.9.0','sensei_course_results_content_before');
157
+        sensei_do_deprecated_action('sensei_course_results_content', '1.9.0', 'sensei_course_results_content_before');
158 158
 
159 159
     }
160 160
 
@@ -163,9 +163,9 @@  discard block
 block discarded – undo
163 163
      *
164 164
      * @since 1.9.0
165 165
      */
166
-    public static function fire_sensei_message_hook(){
166
+    public static function fire_sensei_message_hook() {
167 167
 
168
-        do_action( 'sensei_frontend_messages' );
168
+        do_action('sensei_frontend_messages');
169 169
 
170 170
     }
171 171
 
@@ -174,9 +174,9 @@  discard block
 block discarded – undo
174 174
      *
175 175
      * @since 1.9.0
176 176
      */
177
-    public static function deprecate_course_result_info_hook(){
177
+    public static function deprecate_course_result_info_hook() {
178 178
 
179
-        sensei_do_deprecated_action( 'sensei_course_results_info', '1.9.0', 'sensei_course_results_content_inside_before' );
179
+        sensei_do_deprecated_action('sensei_course_results_info', '1.9.0', 'sensei_course_results_content_inside_before');
180 180
 
181 181
     }
182 182
 
@@ -185,10 +185,10 @@  discard block
 block discarded – undo
185 185
      *
186 186
      * @deprecate since 1.9.0
187 187
      */
188
-    public static function deprecate_course_results_top_hook(){
188
+    public static function deprecate_course_results_top_hook() {
189 189
 
190 190
         global $course;
191
-        sensei_do_deprecated_action( 'sensei_course_results_top', '1.9.0' ,'sensei_course_results_content_inside_before',$course->ID );
191
+        sensei_do_deprecated_action('sensei_course_results_top', '1.9.0', 'sensei_course_results_content_inside_before', $course->ID);
192 192
 
193 193
     }
194 194
 
@@ -197,10 +197,10 @@  discard block
 block discarded – undo
197 197
      *
198 198
      * @since 1.8.0
199 199
      */
200
-    public static function fire_course_image_hook(){
200
+    public static function fire_course_image_hook() {
201 201
 
202 202
         global $course;
203
-        sensei_do_deprecated_action('sensei_course_image','1.9.0', 'sensei_single_course_content_inside_before', array( get_the_ID()) );
203
+        sensei_do_deprecated_action('sensei_course_image', '1.9.0', 'sensei_single_course_content_inside_before', array(get_the_ID()));
204 204
 
205 205
     }
206 206
 
@@ -211,4 +211,4 @@  discard block
 block discarded – undo
211 211
  * for backward compatibility
212 212
  * @since 1.9.0
213 213
  */
214
-class WooThemes_Sensei_Course_Results extends Sensei_Course_Results{}
214
+class WooThemes_Sensei_Course_Results extends Sensei_Course_Results {}
Please login to merge, or discard this patch.
includes/class-sensei-settings.php 3 patches
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   +54 added lines, -54 removed lines patch added patch discarded remove patch
@@ -21,43 +21,43 @@  discard block
 block discarded – undo
21 21
 	 * @return void
22 22
 	 */
23 23
 	public function __construct () {
24
-	    parent::__construct(); // Required in extended classes.
24
+		parent::__construct(); // Required in extended classes.
25 25
 
26
-        $this->token = 'woothemes-sensei-settings';
27
-        add_action('init', array( __CLASS__, 'flush_rewrite_rules' ) );
26
+		$this->token = 'woothemes-sensei-settings';
27
+		add_action('init', array( __CLASS__, 'flush_rewrite_rules' ) );
28 28
 
29
-        // Setup Admin Settings data
30
-        if ( is_admin() ) {
29
+		// Setup Admin Settings data
30
+		if ( is_admin() ) {
31 31
 
32
-            $this->has_tabs 	= true;
33
-            $this->name 		= __( 'Sensei Settings', 'woothemes-sensei' );
34
-            $this->menu_label	= __( 'Settings', 'woothemes-sensei' );
35
-            $this->page_slug	= 'woothemes-sensei-settings';
32
+			$this->has_tabs 	= true;
33
+			$this->name 		= __( 'Sensei Settings', 'woothemes-sensei' );
34
+			$this->menu_label	= __( 'Settings', 'woothemes-sensei' );
35
+			$this->page_slug	= 'woothemes-sensei-settings';
36 36
 
37
-        } // End If Statement
37
+		} // End If Statement
38 38
 
39
-        $this->register_hook_listener();
40
-        $this->get_settings();
39
+		$this->register_hook_listener();
40
+		$this->get_settings();
41 41
 
42 42
 	} // End __construct()
43 43
 
44
-    /**
45
-     * Get settings value
46
-     *
47
-     * @since 1.9.0
48
-     * @param string $setting_name
49
-     * @return mixed
50
-     */
51
-    public function get( $setting_name ){
44
+	/**
45
+	 * Get settings value
46
+	 *
47
+	 * @since 1.9.0
48
+	 * @param string $setting_name
49
+	 * @return mixed
50
+	 */
51
+	public function get( $setting_name ){
52 52
 
53
-        if( isset( $this->settings[ $setting_name ] ) ){
53
+		if( isset( $this->settings[ $setting_name ] ) ){
54 54
 
55
-            return $this->settings[ $setting_name ];
55
+			return $this->settings[ $setting_name ];
56 56
 
57
-        }
57
+		}
58 58
 
59
-        return false;
60
-    }
59
+		return false;
60
+	}
61 61
 
62 62
 	/**
63 63
 	 * Register the settings screen within the WordPress admin.
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
 		$complete_settings = array( 'passed' => __( 'Once all the course lessons have been completed', 'woothemes-sensei' ), 'complete' => __( 'At any time (by clicking the \'Complete Course\' button)', 'woothemes-sensei' ) );
146 146
 		$course_display_settings = array( 'excerpt' => __( 'Course Excerpt', 'woothemes-sensei' ), 'full' => __( 'Full Course Content', 'woothemes-sensei' ) );
147 147
 
148
-	    $fields = array();
148
+		$fields = array();
149 149
 
150 150
 		$fields['access_permission'] = array(
151 151
 								'name' => __( 'Access Permissions', 'woothemes-sensei' ),
@@ -207,9 +207,9 @@  discard block
 block discarded – undo
207 207
 								'section' => 'default-settings'
208 208
 								);
209 209
 
210
-    	// Course Settings
210
+		// Course Settings
211 211
 
212
-    	$fields['course_completion'] = array(
212
+		$fields['course_completion'] = array(
213 213
 								'name' => __( 'Courses are complete:', 'woothemes-sensei' ),
214 214
 								'description' => __( 'This will determine when courses are marked as complete.', 'woothemes-sensei' ),
215 215
 								'type' => 'select',
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
 								'options' => $complete_settings
220 220
 								);
221 221
 
222
-    	$fields['course_author'] = array(
222
+		$fields['course_author'] = array(
223 223
 								'name' => __( 'Display Course Author', 'woothemes-sensei' ),
224 224
 								'description' => __( 'Output the Course Author on Course archive and My Courses page.', 'woothemes-sensei' ),
225 225
 								'type' => 'checkbox',
@@ -447,10 +447,10 @@  discard block
 block discarded – undo
447 447
 		);
448 448
 
449 449
 		$teacher_email_options = array(
450
-            'teacher-started-course' => __( 'A learner starts their course', 'woothemes-sensei' ),
451
-            'teacher-completed-course' => __( 'A learner completes their course', 'woothemes-sensei' ),
452
-            'teacher-completed-lesson' => __( 'A learner completes a lesson', 'woothemes-sensei' ),
453
-            'teacher-quiz-submitted' => __( 'A learner submits a quiz for grading', 'woothemes-sensei' ),
450
+			'teacher-started-course' => __( 'A learner starts their course', 'woothemes-sensei' ),
451
+			'teacher-completed-course' => __( 'A learner completes their course', 'woothemes-sensei' ),
452
+			'teacher-completed-lesson' => __( 'A learner completes a lesson', 'woothemes-sensei' ),
453
+			'teacher-quiz-submitted' => __( 'A learner submits a quiz for grading', 'woothemes-sensei' ),
454 454
 			'teacher-new-message' => __( 'A learner sends a private message to a teacher', 'woothemes-sensei' ),
455 455
 		);
456 456
 
@@ -559,7 +559,7 @@  discard block
 block discarded – undo
559 559
 
560 560
 		if ( Sensei_WC::is_woocommerce_active() ) {
561 561
 			// WooCommerce Settings
562
-    		$fields['woocommerce_enabled'] = array(
562
+			$fields['woocommerce_enabled'] = array(
563 563
 									'name' => __( 'Enable WooCommerce Courses', 'woothemes-sensei' ),
564 564
 									'description' => __( 'Use WooCommerce to sell Courses by linking a Product to a Course.', 'woothemes-sensei' ),
565 565
 									'type' => 'checkbox',
@@ -647,14 +647,14 @@  discard block
 block discarded – undo
647 647
 		$page_items[] = __( 'Select a Page:', 'woothemes-sensei' );
648 648
 
649 649
 		foreach ( $pages_split as $k => $v ) {
650
-		    $id = '';
651
-		    // Get the ID value.
652
-		    preg_match( '/value="(.*?)"/i', $v, $matches );
653
-
654
-		    if ( isset( $matches[1] ) ) {
655
-		        $id = $matches[1];
656
-		        $page_items[$id] = trim( strip_tags( $v ) );
657
-		    } // End If Statement
650
+			$id = '';
651
+			// Get the ID value.
652
+			preg_match( '/value="(.*?)"/i', $v, $matches );
653
+
654
+			if ( isset( $matches[1] ) ) {
655
+				$id = $matches[1];
656
+				$page_items[$id] = trim( strip_tags( $v ) );
657
+			} // End If Statement
658 658
 		} // End For Loop
659 659
 
660 660
 		$pages_array = $page_items;
@@ -671,22 +671,22 @@  discard block
 block discarded – undo
671 671
 		Sensei_Language_Pack_Manager::messages();
672 672
 	}
673 673
 
674
-    /**
675
-     * Flush the rewrite rules after the settings have been updated.
676
-     * This is to ensure that the
677
-     *
678
-     * @since 1.9.0
679
-     */
680
-    public static function flush_rewrite_rules(){
674
+	/**
675
+	 * Flush the rewrite rules after the settings have been updated.
676
+	 * This is to ensure that the
677
+	 *
678
+	 * @since 1.9.0
679
+	 */
680
+	public static function flush_rewrite_rules(){
681 681
 
682
-        if ( isset( $_POST[ 'option_page' ] ) && 'woothemes-sensei-settings' == $_POST[ 'option_page' ]
683
-            && isset( $_POST[ 'action' ] ) && 'update' == $_POST[ 'action' ] ) {
682
+		if ( isset( $_POST[ 'option_page' ] ) && 'woothemes-sensei-settings' == $_POST[ 'option_page' ]
683
+			&& isset( $_POST[ 'action' ] ) && 'update' == $_POST[ 'action' ] ) {
684 684
 
685
-            Sensei()->initiate_rewrite_rules_flush();
685
+			Sensei()->initiate_rewrite_rules_flush();
686 686
 
687
-        }
687
+		}
688 688
 
689
-    }//end  flush_cache
689
+	}//end  flush_cache
690 690
 } // End Class
691 691
 
692 692
 /**
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 Settings Class
@@ -20,18 +20,18 @@  discard block
 block discarded – undo
20 20
 	 * @since 1.0.0
21 21
 	 * @return void
22 22
 	 */
23
-	public function __construct () {
23
+	public function __construct() {
24 24
 	    parent::__construct(); // Required in extended classes.
25 25
 
26 26
         $this->token = 'woothemes-sensei-settings';
27
-        add_action('init', array( __CLASS__, 'flush_rewrite_rules' ) );
27
+        add_action('init', array(__CLASS__, 'flush_rewrite_rules'));
28 28
 
29 29
         // Setup Admin Settings data
30
-        if ( is_admin() ) {
30
+        if (is_admin()) {
31 31
 
32 32
             $this->has_tabs 	= true;
33
-            $this->name 		= __( 'Sensei Settings', 'woothemes-sensei' );
34
-            $this->menu_label	= __( 'Settings', 'woothemes-sensei' );
33
+            $this->name = __('Sensei Settings', 'woothemes-sensei');
34
+            $this->menu_label = __('Settings', 'woothemes-sensei');
35 35
             $this->page_slug	= 'woothemes-sensei-settings';
36 36
 
37 37
         } // End If Statement
@@ -48,11 +48,11 @@  discard block
 block discarded – undo
48 48
      * @param string $setting_name
49 49
      * @return mixed
50 50
      */
51
-    public function get( $setting_name ){
51
+    public function get($setting_name) {
52 52
 
53
-        if( isset( $this->settings[ $setting_name ] ) ){
53
+        if (isset($this->settings[$setting_name])) {
54 54
 
55
-            return $this->settings[ $setting_name ];
55
+            return $this->settings[$setting_name];
56 56
 
57 57
         }
58 58
 
@@ -65,17 +65,17 @@  discard block
 block discarded – undo
65 65
 	 * @since  1.0.0
66 66
 	 * @return void
67 67
 	 */
68
-	public function register_settings_screen () {
68
+	public function register_settings_screen() {
69 69
 
70 70
 		$this->settings_version = Sensei()->version; // Use the global plugin version on this settings screen.
71
-		$hook = add_submenu_page( 'sensei', $this->name, $this->menu_label, 'manage_sensei', $this->page_slug, array( $this, 'settings_screen' ) );
71
+		$hook = add_submenu_page('sensei', $this->name, $this->menu_label, 'manage_sensei', $this->page_slug, array($this, 'settings_screen'));
72 72
 		$this->hook = $hook;
73 73
 
74
-		if ( isset( $_GET['page'] ) && ( $_GET['page'] == $this->page_slug ) ) {
75
-			add_action( 'admin_notices', array( $this, 'settings_errors' ) );
76
-			add_action( 'admin_notices', array( $this, 'language_pack_notices' ) );
77
-			add_action( 'admin_print_scripts', array( $this, 'enqueue_scripts' ) );
78
-			add_action( 'admin_print_styles', array( $this, 'enqueue_styles' ) );
74
+		if (isset($_GET['page']) && ($_GET['page'] == $this->page_slug)) {
75
+			add_action('admin_notices', array($this, 'settings_errors'));
76
+			add_action('admin_notices', array($this, 'language_pack_notices'));
77
+			add_action('admin_print_scripts', array($this, 'enqueue_scripts'));
78
+			add_action('admin_print_styles', array($this, 'enqueue_styles'));
79 79
 		}
80 80
 	} // End register_settings_screen()
81 81
 
@@ -85,49 +85,49 @@  discard block
 block discarded – undo
85 85
 	 * @since  1.0.0
86 86
 	 * @return void
87 87
 	 */
88
-	public function init_sections () {
88
+	public function init_sections() {
89 89
 		$sections = array();
90 90
 
91 91
 		$sections['default-settings'] = array(
92
-			'name' 			=> __( 'General', 'woothemes-sensei' ),
93
-			'description'	=> __( 'Settings that apply to the entire plugin.', 'woothemes-sensei' )
92
+			'name' 			=> __('General', 'woothemes-sensei'),
93
+			'description'	=> __('Settings that apply to the entire plugin.', 'woothemes-sensei')
94 94
 		);
95 95
 
96 96
 		$sections['course-settings'] = array(
97
-			'name' 			=> __( 'Courses', 'woothemes-sensei' ),
98
-			'description'	=> __( 'Settings that apply to all Courses.', 'woothemes-sensei' )
97
+			'name' 			=> __('Courses', 'woothemes-sensei'),
98
+			'description'	=> __('Settings that apply to all Courses.', 'woothemes-sensei')
99 99
 		);
100 100
 
101 101
 		$sections['lesson-settings'] = array(
102
-			'name' 			=> __( 'Lessons', 'woothemes-sensei' ),
103
-			'description'	=> __( 'Settings that apply to all Lessons.', 'woothemes-sensei' )
102
+			'name' 			=> __('Lessons', 'woothemes-sensei'),
103
+			'description'	=> __('Settings that apply to all Lessons.', 'woothemes-sensei')
104 104
 		);
105 105
 
106 106
 		$sections['email-notification-settings'] = array(
107
-			'name' 			=> __( 'Email Notifications', 'woothemes-sensei' ),
108
-			'description'	=> __( 'Settings for email notifications sent from your site.', 'woothemes-sensei' )
107
+			'name' 			=> __('Email Notifications', 'woothemes-sensei'),
108
+			'description'	=> __('Settings for email notifications sent from your site.', 'woothemes-sensei')
109 109
 		);
110 110
 
111 111
 		$sections['learner-profile-settings'] = array(
112
-			'name' 			=> __( 'Learner Profiles', 'woothemes-sensei' ),
113
-			'description'	=> __( 'Settings for public Learner Profiles.', 'woothemes-sensei' )
112
+			'name' 			=> __('Learner Profiles', 'woothemes-sensei'),
113
+			'description'	=> __('Settings for public Learner Profiles.', 'woothemes-sensei')
114 114
 		);
115 115
 
116
-		if ( Sensei_WC::is_woocommerce_present() ) {
116
+		if (Sensei_WC::is_woocommerce_present()) {
117 117
 			$sections['woocommerce-settings'] = array(
118
-				'name' 			=> __( 'WooCommerce', 'woothemes-sensei' ),
119
-				'description'	=> __( 'Optional settings for WooCommerce functions.', 'woothemes-sensei' )
118
+				'name' 			=> __('WooCommerce', 'woothemes-sensei'),
119
+				'description'	=> __('Optional settings for WooCommerce functions.', 'woothemes-sensei')
120 120
 			);
121 121
 		} // End If Statement
122 122
 
123
-		if ( 'en_US' !== get_locale() ) {
123
+		if ('en_US' !== get_locale()) {
124 124
 			$sections['language-settings'] = array(
125
-				'name' 			=> __( 'Language', 'woothemes-sensei' ),
126
-				'description'	=> __( 'Language options.', 'woothemes-sensei' )
125
+				'name' 			=> __('Language', 'woothemes-sensei'),
126
+				'description'	=> __('Language options.', 'woothemes-sensei')
127 127
 			);
128 128
 		}
129 129
 
130
-		$this->sections = apply_filters( 'sensei_settings_tabs', $sections );
130
+		$this->sections = apply_filters('sensei_settings_tabs', $sections);
131 131
 	} // End init_sections()
132 132
 
133 133
 	/**
@@ -137,71 +137,71 @@  discard block
 block discarded – undo
137 137
 	 * @uses   Sensei_Utils::get_slider_types()
138 138
 	 * @return void
139 139
 	 */
140
-	public function init_fields () {
140
+	public function init_fields() {
141 141
 		global $pagenow;
142 142
 
143 143
 		$pages_array = $this->pages_array();
144
-		$posts_per_page_array = array( '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16', '17' => '17', '18' => '18', '19' => '19', '20' => '20' );
145
-		$complete_settings = array( 'passed' => __( 'Once all the course lessons have been completed', 'woothemes-sensei' ), 'complete' => __( 'At any time (by clicking the \'Complete Course\' button)', 'woothemes-sensei' ) );
146
-		$course_display_settings = array( 'excerpt' => __( 'Course Excerpt', 'woothemes-sensei' ), 'full' => __( 'Full Course Content', 'woothemes-sensei' ) );
144
+		$posts_per_page_array = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16', '17' => '17', '18' => '18', '19' => '19', '20' => '20');
145
+		$complete_settings = array('passed' => __('Once all the course lessons have been completed', 'woothemes-sensei'), 'complete' => __('At any time (by clicking the \'Complete Course\' button)', 'woothemes-sensei'));
146
+		$course_display_settings = array('excerpt' => __('Course Excerpt', 'woothemes-sensei'), 'full' => __('Full Course Content', 'woothemes-sensei'));
147 147
 
148 148
 	    $fields = array();
149 149
 
150 150
 		$fields['access_permission'] = array(
151
-								'name' => __( 'Access Permissions', 'woothemes-sensei' ),
152
-								'description' => __( 'Users must be logged in to view Course and Lesson content.', 'woothemes-sensei', 'woothemes-sensei' ),
151
+								'name' => __('Access Permissions', 'woothemes-sensei'),
152
+								'description' => __('Users must be logged in to view Course and Lesson content.', 'woothemes-sensei', 'woothemes-sensei'),
153 153
 								'type' => 'checkbox',
154 154
 								'default' => true,
155 155
 								'section' => 'default-settings'
156 156
 								);
157 157
 
158 158
 		$fields['messages_disable'] = array(
159
-								'name' => __( 'Disable Private Messages', 'woothemes-sensei' ),
160
-								'description' => __( 'Disable the private message functions between learners and teachers.', 'woothemes-sensei' ),
159
+								'name' => __('Disable Private Messages', 'woothemes-sensei'),
160
+								'description' => __('Disable the private message functions between learners and teachers.', 'woothemes-sensei'),
161 161
 								'type' => 'checkbox',
162 162
 								'default' => false,
163 163
 								'section' => 'default-settings'
164 164
 								);
165 165
 
166 166
 		$fields['course_page'] = array(
167
-								'name' => __( 'Course Archive Page', 'woothemes-sensei' ),
168
-								'description' => __( 'The page to use to display courses. If you leave this blank the default custom post type archive will apply.', 'woothemes-sensei' ),
167
+								'name' => __('Course Archive Page', 'woothemes-sensei'),
168
+								'description' => __('The page to use to display courses. If you leave this blank the default custom post type archive will apply.', 'woothemes-sensei'),
169 169
 								'type' => 'select',
170
-								'default' => get_option( 'woothemes-sensei_courses_page_id', 0 ),
170
+								'default' => get_option('woothemes-sensei_courses_page_id', 0),
171 171
 								'section' => 'default-settings',
172 172
 								'required' => 0,
173 173
 								'options' => $pages_array
174 174
 								);
175 175
 
176 176
 		$fields['my_course_page'] = array(
177
-								'name' => __( 'My Courses Page', 'woothemes-sensei' ),
178
-								'description' => __( 'The page to use to display the courses that a user is currently taking as well as the courses a user has complete.', 'woothemes-sensei' ),
177
+								'name' => __('My Courses Page', 'woothemes-sensei'),
178
+								'description' => __('The page to use to display the courses that a user is currently taking as well as the courses a user has complete.', 'woothemes-sensei'),
179 179
 								'type' => 'select',
180
-								'default' => get_option( 'woothemes-sensei_user_dashboard_page_id', 0 ),
180
+								'default' => get_option('woothemes-sensei_user_dashboard_page_id', 0),
181 181
 								'section' => 'default-settings',
182 182
 								'required' => 0,
183 183
 								'options' => $pages_array
184 184
 								);
185 185
 
186 186
 		$fields['placeholder_images_enable'] = array(
187
-								'name' => __( 'Use placeholder images', 'woothemes-sensei' ),
188
-								'description' => __( 'Output a placeholder image when no featured image has been specified for Courses and Lessons.', 'woothemes-sensei' ),
187
+								'name' => __('Use placeholder images', 'woothemes-sensei'),
188
+								'description' => __('Output a placeholder image when no featured image has been specified for Courses and Lessons.', 'woothemes-sensei'),
189 189
 								'type' => 'checkbox',
190 190
 								'default' => false,
191 191
 								'section' => 'default-settings'
192 192
 								);
193 193
 
194 194
 		$fields['styles_disable'] = array(
195
-								'name' => __( 'Disable Sensei Styles', 'woothemes-sensei' ),
196
-								'description' => __( 'Prevent the frontend stylesheets from loading. This will remove the default styles for all Sensei elements.', 'woothemes-sensei' ),
195
+								'name' => __('Disable Sensei Styles', 'woothemes-sensei'),
196
+								'description' => __('Prevent the frontend stylesheets from loading. This will remove the default styles for all Sensei elements.', 'woothemes-sensei'),
197 197
 								'type' => 'checkbox',
198 198
 								'default' => false,
199 199
 								'section' => 'default-settings'
200 200
 								);
201 201
 
202 202
 		$fields['js_disable'] = array(
203
-								'name' => __( 'Disable Sensei Javascript', 'woothemes-sensei' ),
204
-								'description' => __( 'Prevent the frontend javascript from loading. This affects the progress bars and the My Courses tabs.', 'woothemes-sensei' ),
203
+								'name' => __('Disable Sensei Javascript', 'woothemes-sensei'),
204
+								'description' => __('Prevent the frontend javascript from loading. This affects the progress bars and the My Courses tabs.', 'woothemes-sensei'),
205 205
 								'type' => 'checkbox',
206 206
 								'default' => false,
207 207
 								'section' => 'default-settings'
@@ -210,8 +210,8 @@  discard block
 block discarded – undo
210 210
     	// Course Settings
211 211
 
212 212
     	$fields['course_completion'] = array(
213
-								'name' => __( 'Courses are complete:', 'woothemes-sensei' ),
214
-								'description' => __( 'This will determine when courses are marked as complete.', 'woothemes-sensei' ),
213
+								'name' => __('Courses are complete:', 'woothemes-sensei'),
214
+								'description' => __('This will determine when courses are marked as complete.', 'woothemes-sensei'),
215 215
 								'type' => 'select',
216 216
 								'default' => 'passed',
217 217
 								'section' => 'course-settings',
@@ -220,16 +220,16 @@  discard block
 block discarded – undo
220 220
 								);
221 221
 
222 222
     	$fields['course_author'] = array(
223
-								'name' => __( 'Display Course Author', 'woothemes-sensei' ),
224
-								'description' => __( 'Output the Course Author on Course archive and My Courses page.', 'woothemes-sensei' ),
223
+								'name' => __('Display Course Author', 'woothemes-sensei'),
224
+								'description' => __('Output the Course Author on Course archive and My Courses page.', 'woothemes-sensei'),
225 225
 								'type' => 'checkbox',
226 226
 								'default' => true,
227 227
 								'section' => 'course-settings'
228 228
 								);
229 229
 
230 230
 		$fields['my_course_amount'] = array(
231
-								'name' => __( 'My Courses Pagination', 'woothemes-sensei' ),
232
-								'description' => __( 'The number of courses to output for the my courses page.', 'woothemes-sensei' ),
231
+								'name' => __('My Courses Pagination', 'woothemes-sensei'),
232
+								'description' => __('The number of courses to output for the my courses page.', 'woothemes-sensei'),
233 233
 								'type' => 'range',
234 234
 								'default' => '0',
235 235
 								'section' => 'course-settings',
@@ -238,16 +238,16 @@  discard block
 block discarded – undo
238 238
 								);
239 239
 
240 240
 		$fields['course_archive_image_enable'] = array(
241
-								'name' => __( 'Course Archive Image', 'woothemes-sensei' ),
242
-								'description' => __( 'Output the Course Image on the Course Archive Page.', 'woothemes-sensei' ),
241
+								'name' => __('Course Archive Image', 'woothemes-sensei'),
242
+								'description' => __('Output the Course Image on the Course Archive Page.', 'woothemes-sensei'),
243 243
 								'type' => 'checkbox',
244 244
 								'default' => true,
245 245
 								'section' => 'course-settings'
246 246
 								);
247 247
 
248 248
 		$fields['course_archive_image_width'] = array(
249
-								'name' => __( 'Image Width - Archive', 'woothemes-sensei' ),
250
-								'description' => __( 'The width in pixels of the featured image for the Course Archive page.', 'woothemes-sensei' ),
249
+								'name' => __('Image Width - Archive', 'woothemes-sensei'),
250
+								'description' => __('The width in pixels of the featured image for the Course Archive page.', 'woothemes-sensei'),
251 251
 								'type' => 'text',
252 252
 								'default' => '100',
253 253
 								'section' => 'course-settings',
@@ -255,8 +255,8 @@  discard block
 block discarded – undo
255 255
 								);
256 256
 
257 257
 		$fields['course_archive_image_height'] = array(
258
-								'name' => __( 'Image Height - Archive', 'woothemes-sensei' ),
259
-								'description' => __( 'The height in pixels of the featured image for the Course Archive page.', 'woothemes-sensei' ),
258
+								'name' => __('Image Height - Archive', 'woothemes-sensei'),
259
+								'description' => __('The height in pixels of the featured image for the Course Archive page.', 'woothemes-sensei'),
260 260
 								'type' => 'text',
261 261
 								'default' => '100',
262 262
 								'section' => 'course-settings',
@@ -264,24 +264,24 @@  discard block
 block discarded – undo
264 264
 								);
265 265
 
266 266
 		$fields['course_archive_image_hard_crop'] = array(
267
-								'name' => __( 'Image Hard Crop - Archive', 'woothemes-sensei' ),
268
-								'description' => sprintf( __( 'After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei' ), '<a href="' . esc_url( 'http://wordpress.org/extend/plugins/regenerate-thumbnails/' ) . '">', '</a>' ),
267
+								'name' => __('Image Hard Crop - Archive', 'woothemes-sensei'),
268
+								'description' => sprintf(__('After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei'), '<a href="'.esc_url('http://wordpress.org/extend/plugins/regenerate-thumbnails/').'">', '</a>'),
269 269
 								'type' => 'checkbox',
270 270
 								'default' => false,
271 271
 								'section' => 'course-settings'
272 272
 								);
273 273
 
274 274
 		$fields['course_single_image_enable'] = array(
275
-								'name' => __( 'Single Course Image', 'woothemes-sensei' ),
276
-								'description' => __( 'Output the Course Image on the Single Course Page.', 'woothemes-sensei' ),
275
+								'name' => __('Single Course Image', 'woothemes-sensei'),
276
+								'description' => __('Output the Course Image on the Single Course Page.', 'woothemes-sensei'),
277 277
 								'type' => 'checkbox',
278 278
 								'default' => false,
279 279
 								'section' => 'course-settings'
280 280
 								);
281 281
 
282 282
 		$fields['course_single_image_width'] = array(
283
-								'name' => __( 'Image Width - Single', 'woothemes-sensei' ),
284
-								'description' => __( 'The width in pixels of the featured image for the Course single post page.', 'woothemes-sensei' ),
283
+								'name' => __('Image Width - Single', 'woothemes-sensei'),
284
+								'description' => __('The width in pixels of the featured image for the Course single post page.', 'woothemes-sensei'),
285 285
 								'type' => 'text',
286 286
 								'default' => '100',
287 287
 								'section' => 'course-settings',
@@ -289,8 +289,8 @@  discard block
 block discarded – undo
289 289
 								);
290 290
 
291 291
 		$fields['course_single_image_height'] = array(
292
-								'name' => __( 'Image Height - Single', 'woothemes-sensei' ),
293
-								'description' => __( 'The height in pixels of the featured image for the Course single post page.', 'woothemes-sensei' ),
292
+								'name' => __('Image Height - Single', 'woothemes-sensei'),
293
+								'description' => __('The height in pixels of the featured image for the Course single post page.', 'woothemes-sensei'),
294 294
 								'type' => 'text',
295 295
 								'default' => '100',
296 296
 								'section' => 'course-settings',
@@ -298,16 +298,16 @@  discard block
 block discarded – undo
298 298
 								);
299 299
 
300 300
 		$fields['course_single_image_hard_crop'] = array(
301
-								'name' => __( 'Image Hard Crop - Single', 'woothemes-sensei' ),
302
-								'description' => sprintf( __( 'After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei' ), '<a href="' . esc_url( 'http://wordpress.org/extend/plugins/regenerate-thumbnails/' ) . '">', '</a>' ),
301
+								'name' => __('Image Hard Crop - Single', 'woothemes-sensei'),
302
+								'description' => sprintf(__('After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei'), '<a href="'.esc_url('http://wordpress.org/extend/plugins/regenerate-thumbnails/').'">', '</a>'),
303 303
 								'type' => 'checkbox',
304 304
 								'default' => false,
305 305
 								'section' => 'course-settings'
306 306
 								);
307 307
 
308 308
 		$fields['course_single_content_display'] = array(
309
-								'name' => __( 'Single Course page displays:', 'woothemes-sensei' ),
310
-								'description' => __( 'Determines what content to display on the single course page.', 'woothemes-sensei' ),
309
+								'name' => __('Single Course page displays:', 'woothemes-sensei'),
310
+								'description' => __('Determines what content to display on the single course page.', 'woothemes-sensei'),
311 311
 								'type' => 'select',
312 312
 								'default' => 'excerpt',
313 313
 								'section' => 'course-settings',
@@ -316,18 +316,18 @@  discard block
 block discarded – undo
316 316
 								);
317 317
 
318 318
 		$fields['course_archive_featured_enable'] = array(
319
-								'name' => __( 'Featured Courses Panel', 'woothemes-sensei' ),
320
-								'description' => __( 'Output the Featured Courses Panel on the Course Archive Page.', 'woothemes-sensei' ),
319
+								'name' => __('Featured Courses Panel', 'woothemes-sensei'),
320
+								'description' => __('Output the Featured Courses Panel on the Course Archive Page.', 'woothemes-sensei'),
321 321
 								'type' => 'checkbox',
322 322
 								'default' => true,
323 323
 								'section' => 'course-settings'
324 324
 								);
325 325
 
326 326
 		$fields['course_archive_more_link_text'] = array(
327
-								'name' => __( 'More link text', 'woothemes-sensei' ),
328
-								'description' => __( 'The text that will be displayed on the Course Archive for the more courses link.', 'woothemes-sensei' ),
327
+								'name' => __('More link text', 'woothemes-sensei'),
328
+								'description' => __('The text that will be displayed on the Course Archive for the more courses link.', 'woothemes-sensei'),
329 329
 								'type' => 'text',
330
-								'default' => __ ( 'More', 'woothemes-sensei' ),
330
+								'default' => __('More', 'woothemes-sensei'),
331 331
 								'section' => 'course-settings',
332 332
 								'required' => 0
333 333
 								);
@@ -335,32 +335,32 @@  discard block
 block discarded – undo
335 335
 		// Lesson Settings
336 336
 
337 337
 		$fields['lesson_comments'] = array(
338
-								'name' => __( 'Allow Comments for Lessons', 'woothemes-sensei' ),
339
-								'description' => __( 'This will allow learners to post comments on the single Lesson page, only learner who have access to the Lesson will be allowed to comment.', 'woothemes-sensei' ),
338
+								'name' => __('Allow Comments for Lessons', 'woothemes-sensei'),
339
+								'description' => __('This will allow learners to post comments on the single Lesson page, only learner who have access to the Lesson will be allowed to comment.', 'woothemes-sensei'),
340 340
 								'type' => 'checkbox',
341 341
 								'default' => true,
342 342
 								'section' => 'lesson-settings'
343 343
 								);
344 344
 
345 345
 		$fields['lesson_author'] = array(
346
-								'name' => __( 'Display Lesson Author', 'woothemes-sensei' ),
347
-								'description' => __( 'Output the Lesson Author on Course single page & Lesson archive page.', 'woothemes-sensei' ),
346
+								'name' => __('Display Lesson Author', 'woothemes-sensei'),
347
+								'description' => __('Output the Lesson Author on Course single page & Lesson archive page.', 'woothemes-sensei'),
348 348
 								'type' => 'checkbox',
349 349
 								'default' => true,
350 350
 								'section' => 'lesson-settings'
351 351
 								);
352 352
 
353 353
 		$fields['course_lesson_image_enable'] = array(
354
-								'name' => __( 'Course Lesson Images', 'woothemes-sensei' ),
355
-								'description' => __( 'Output the Lesson Image on the Single Course Page.', 'woothemes-sensei' ),
354
+								'name' => __('Course Lesson Images', 'woothemes-sensei'),
355
+								'description' => __('Output the Lesson Image on the Single Course Page.', 'woothemes-sensei'),
356 356
 								'type' => 'checkbox',
357 357
 								'default' => false,
358 358
 								'section' => 'lesson-settings'
359 359
 								);
360 360
 
361 361
 		$fields['lesson_archive_image_width'] = array(
362
-								'name' => __( 'Image Width - Course Lessons', 'woothemes-sensei' ),
363
-								'description' => __( 'The width in pixels of the featured image for the Lessons on the Course Single page.', 'woothemes-sensei' ),
362
+								'name' => __('Image Width - Course Lessons', 'woothemes-sensei'),
363
+								'description' => __('The width in pixels of the featured image for the Lessons on the Course Single page.', 'woothemes-sensei'),
364 364
 								'type' => 'text',
365 365
 								'default' => '100',
366 366
 								'section' => 'lesson-settings',
@@ -368,8 +368,8 @@  discard block
 block discarded – undo
368 368
 								);
369 369
 
370 370
 		$fields['lesson_archive_image_height'] = array(
371
-								'name' => __( 'Image Height - Course Lessons', 'woothemes-sensei' ),
372
-								'description' => __( 'The height in pixels of the featured image for the Lessons on the Course Single page.', 'woothemes-sensei' ),
371
+								'name' => __('Image Height - Course Lessons', 'woothemes-sensei'),
372
+								'description' => __('The height in pixels of the featured image for the Lessons on the Course Single page.', 'woothemes-sensei'),
373 373
 								'type' => 'text',
374 374
 								'default' => '100',
375 375
 								'section' => 'lesson-settings',
@@ -377,24 +377,24 @@  discard block
 block discarded – undo
377 377
 								);
378 378
 
379 379
 		$fields['lesson_archive_image_hard_crop'] = array(
380
-								'name' => __( 'Image Hard Crop - Course Lessons', 'woothemes-sensei' ),
381
-								'description' => sprintf( __( 'After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei' ), '<a href="' . esc_url( 'http://wordpress.org/extend/plugins/regenerate-thumbnails/' ) . '">', '</a>' ),
380
+								'name' => __('Image Hard Crop - Course Lessons', 'woothemes-sensei'),
381
+								'description' => sprintf(__('After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei'), '<a href="'.esc_url('http://wordpress.org/extend/plugins/regenerate-thumbnails/').'">', '</a>'),
382 382
 								'type' => 'checkbox',
383 383
 								'default' => false,
384 384
 								'section' => 'lesson-settings'
385 385
 								);
386 386
 
387 387
 		$fields['lesson_single_image_enable'] = array(
388
-								'name' => __( 'Single Lesson Images', 'woothemes-sensei' ),
389
-								'description' => __( 'Output the Lesson Image on the Single Lesson Page.', 'woothemes-sensei' ),
388
+								'name' => __('Single Lesson Images', 'woothemes-sensei'),
389
+								'description' => __('Output the Lesson Image on the Single Lesson Page.', 'woothemes-sensei'),
390 390
 								'type' => 'checkbox',
391 391
 								'default' => false,
392 392
 								'section' => 'lesson-settings'
393 393
 								);
394 394
 
395 395
 		$fields['lesson_single_image_width'] = array(
396
-								'name' => __( 'Image Width - Single', 'woothemes-sensei' ),
397
-								'description' => __( 'The width in pixels of the featured image for the Lessons single post page.', 'woothemes-sensei' ),
396
+								'name' => __('Image Width - Single', 'woothemes-sensei'),
397
+								'description' => __('The width in pixels of the featured image for the Lessons single post page.', 'woothemes-sensei'),
398 398
 								'type' => 'text',
399 399
 								'default' => '100',
400 400
 								'section' => 'lesson-settings',
@@ -402,8 +402,8 @@  discard block
 block discarded – undo
402 402
 								);
403 403
 
404 404
 		$fields['lesson_single_image_height'] = array(
405
-								'name' => __( 'Image Height - Single', 'woothemes-sensei' ),
406
-								'description' => __( 'The height in pixels of the featured image for the Lessons single post page.', 'woothemes-sensei' ),
405
+								'name' => __('Image Height - Single', 'woothemes-sensei'),
406
+								'description' => __('The height in pixels of the featured image for the Lessons single post page.', 'woothemes-sensei'),
407 407
 								'type' => 'text',
408 408
 								'default' => '100',
409 409
 								'section' => 'lesson-settings',
@@ -411,8 +411,8 @@  discard block
 block discarded – undo
411 411
 								);
412 412
 
413 413
 		$fields['lesson_single_image_hard_crop'] = array(
414
-								'name' => __( 'Image Hard Crop - Single', 'woothemes-sensei' ),
415
-								'description' => sprintf( __( 'After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei' ), '<a href="' . esc_url( 'http://wordpress.org/extend/plugins/regenerate-thumbnails/' ) . '">', '</a>' ),
414
+								'name' => __('Image Hard Crop - Single', 'woothemes-sensei'),
415
+								'description' => sprintf(__('After changing this setting, you may need to %1$sregenerate your thumbnails%2$s.', 'woothemes-sensei'), '<a href="'.esc_url('http://wordpress.org/extend/plugins/regenerate-thumbnails/').'">', '</a>'),
416 416
 								'type' => 'checkbox',
417 417
 								'default' => false,
418 418
 								'section' => 'lesson-settings'
@@ -420,20 +420,20 @@  discard block
 block discarded – undo
420 420
 
421 421
 		// Learner Profile settings
422 422
 
423
-		$profile_url_base = apply_filters( 'sensei_learner_profiles_url_base', __( 'learner', 'woothemes-sensei') );
424
-		$profile_url_example = trailingslashit( get_site_url() ) . $profile_url_base . '/%username%';
423
+		$profile_url_base = apply_filters('sensei_learner_profiles_url_base', __('learner', 'woothemes-sensei'));
424
+		$profile_url_example = trailingslashit(get_site_url()).$profile_url_base.'/%username%';
425 425
 
426 426
 		$fields['learner_profile_enable'] = array(
427
-							'name' => __( 'Public learner profiles', 'woothemes-sensei' ),
428
-							'description' => sprintf( __( 'Enable public learner profiles that will be accessible to everyone. Profile URL format: %s', 'woothemes-sensei' ), $profile_url_example ),
427
+							'name' => __('Public learner profiles', 'woothemes-sensei'),
428
+							'description' => sprintf(__('Enable public learner profiles that will be accessible to everyone. Profile URL format: %s', 'woothemes-sensei'), $profile_url_example),
429 429
 							'type' => 'checkbox',
430 430
 							'default' => true,
431 431
 							'section' => 'learner-profile-settings'
432 432
 							);
433 433
 
434 434
 		$fields['learner_profile_show_courses'] = array(
435
-							'name' => __( 'Show learner\'s courses', 'woothemes-sensei' ),
436
-							'description' => __( 'Display the learner\'s active and completed courses on their profile.', 'woothemes-sensei' ),
435
+							'name' => __('Show learner\'s courses', 'woothemes-sensei'),
436
+							'description' => __('Display the learner\'s active and completed courses on their profile.', 'woothemes-sensei'),
437 437
 							'type' => 'checkbox',
438 438
 							'default' => true,
439 439
 							'section' => 'learner-profile-settings'
@@ -442,70 +442,70 @@  discard block
 block discarded – undo
442 442
 		// Email notifications
443 443
 
444 444
 		$learner_email_options = array(
445
-			'learner-graded-quiz' => __( 'Their quiz is graded (auto and manual grading)', 'woothemes-sensei' ),
446
-			'learner-completed-course' => __( 'They complete a course', 'woothemes-sensei' ),
445
+			'learner-graded-quiz' => __('Their quiz is graded (auto and manual grading)', 'woothemes-sensei'),
446
+			'learner-completed-course' => __('They complete a course', 'woothemes-sensei'),
447 447
 		);
448 448
 
449 449
 		$teacher_email_options = array(
450
-            'teacher-started-course' => __( 'A learner starts their course', 'woothemes-sensei' ),
451
-            'teacher-completed-course' => __( 'A learner completes their course', 'woothemes-sensei' ),
452
-            'teacher-completed-lesson' => __( 'A learner completes a lesson', 'woothemes-sensei' ),
453
-            'teacher-quiz-submitted' => __( 'A learner submits a quiz for grading', 'woothemes-sensei' ),
454
-			'teacher-new-message' => __( 'A learner sends a private message to a teacher', 'woothemes-sensei' ),
450
+            'teacher-started-course' => __('A learner starts their course', 'woothemes-sensei'),
451
+            'teacher-completed-course' => __('A learner completes their course', 'woothemes-sensei'),
452
+            'teacher-completed-lesson' => __('A learner completes a lesson', 'woothemes-sensei'),
453
+            'teacher-quiz-submitted' => __('A learner submits a quiz for grading', 'woothemes-sensei'),
454
+			'teacher-new-message' => __('A learner sends a private message to a teacher', 'woothemes-sensei'),
455 455
 		);
456 456
 
457 457
 		$global_email_options = array(
458
-			'new-message-reply' => __( 'They receive a reply to their private message', 'woothemes-sensei' ),
458
+			'new-message-reply' => __('They receive a reply to their private message', 'woothemes-sensei'),
459 459
 		);
460 460
 
461 461
 		$fields['email_learners'] = array(
462
-								'name' => __( 'Emails Sent to Learners', 'woothemes-sensei' ),
463
-								'description' => __( 'Select the notifications that will be sent to learners.', 'woothemes-sensei' ),
462
+								'name' => __('Emails Sent to Learners', 'woothemes-sensei'),
463
+								'description' => __('Select the notifications that will be sent to learners.', 'woothemes-sensei'),
464 464
 								'type' => 'multicheck',
465 465
 								'options' => $learner_email_options,
466
-								'defaults' => array( 'learner-graded-quiz', 'learner-completed-course' ),
466
+								'defaults' => array('learner-graded-quiz', 'learner-completed-course'),
467 467
 								'section' => 'email-notification-settings'
468 468
 								);
469 469
 
470 470
 		$fields['email_teachers'] = array(
471
-								'name' => __( 'Emails Sent to Teachers', 'woothemes-sensei' ),
472
-								'description' => __( 'Select the notifications that will be sent to teachers.', 'woothemes-sensei' ),
471
+								'name' => __('Emails Sent to Teachers', 'woothemes-sensei'),
472
+								'description' => __('Select the notifications that will be sent to teachers.', 'woothemes-sensei'),
473 473
 								'type' => 'multicheck',
474 474
 								'options' => $teacher_email_options,
475
-								'defaults' => array( 'teacher-completed-course', 'teacher-started-course', 'teacher-quiz-submitted', 'teacher-new-message' ),
475
+								'defaults' => array('teacher-completed-course', 'teacher-started-course', 'teacher-quiz-submitted', 'teacher-new-message'),
476 476
 								'section' => 'email-notification-settings'
477 477
 								);
478 478
 
479 479
 		$fields['email_global'] = array(
480
-								'name' => __( 'Emails Sent to All Users', 'woothemes-sensei' ),
481
-								'description' => __( 'Select the notifications that will be sent to all users.', 'woothemes-sensei' ),
480
+								'name' => __('Emails Sent to All Users', 'woothemes-sensei'),
481
+								'description' => __('Select the notifications that will be sent to all users.', 'woothemes-sensei'),
482 482
 								'type' => 'multicheck',
483 483
 								'options' => $global_email_options,
484
-								'defaults' => array( 'new-message-reply' ),
484
+								'defaults' => array('new-message-reply'),
485 485
 								'section' => 'email-notification-settings'
486 486
 								);
487 487
 
488 488
 		$fields['email_from_name'] = array(
489
-								'name' => __( '"From" Name', 'woothemes-sensei' ),
490
-								'description' => __( 'The name from which all emails will be sent.', 'woothemes-sensei' ),
489
+								'name' => __('"From" Name', 'woothemes-sensei'),
490
+								'description' => __('The name from which all emails will be sent.', 'woothemes-sensei'),
491 491
 								'type' => 'text',
492
-								'default' => get_bloginfo( 'name' ),
492
+								'default' => get_bloginfo('name'),
493 493
 								'section' => 'email-notification-settings',
494 494
 								'required' => 1
495 495
 								);
496 496
 
497 497
 		$fields['email_from_address'] = array(
498
-								'name' => __( '"From" Address', 'woothemes-sensei' ),
499
-								'description' => __( 'The address from which all emails will be sent.', 'woothemes-sensei' ),
498
+								'name' => __('"From" Address', 'woothemes-sensei'),
499
+								'description' => __('The address from which all emails will be sent.', 'woothemes-sensei'),
500 500
 								'type' => 'text',
501
-								'default' => get_bloginfo( 'admin_email' ),
501
+								'default' => get_bloginfo('admin_email'),
502 502
 								'section' => 'email-notification-settings',
503 503
 								'required' => 1
504 504
 								);
505 505
 
506 506
 		$fields['email_header_image'] = array(
507
-								'name' => __( 'Header Image', 'woothemes-sensei' ),
508
-								'description' => sprintf( __( 'Enter a URL to an image you want to show in the email\'s header. Upload your image using the %1$smedia uploader%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'media-new.php' ) . '">', '</a>' ),
507
+								'name' => __('Header Image', 'woothemes-sensei'),
508
+								'description' => sprintf(__('Enter a URL to an image you want to show in the email\'s header. Upload your image using the %1$smedia uploader%2$s.', 'woothemes-sensei'), '<a href="'.admin_url('media-new.php').'">', '</a>'),
509 509
 								'type' => 'text',
510 510
 								'default' => '',
511 511
 								'section' => 'email-notification-settings',
@@ -513,17 +513,17 @@  discard block
 block discarded – undo
513 513
 								);
514 514
 
515 515
 		$fields['email_footer_text'] = array(
516
-								'name' => __( 'Email Footer Text', 'woothemes-sensei' ),
517
-								'description' => __( 'The text to appear in the footer of Sensei emails.', 'woothemes-sensei' ),
516
+								'name' => __('Email Footer Text', 'woothemes-sensei'),
517
+								'description' => __('The text to appear in the footer of Sensei emails.', 'woothemes-sensei'),
518 518
 								'type' => 'textarea',
519
-								'default' => sprintf( __( '%1$s - Powered by Sensei', 'woothemes-sensei' ), get_bloginfo( 'name' ) ),
519
+								'default' => sprintf(__('%1$s - Powered by Sensei', 'woothemes-sensei'), get_bloginfo('name')),
520 520
 								'section' => 'email-notification-settings',
521 521
 								'required' => 0
522 522
 								);
523 523
 
524 524
 		$fields['email_base_color'] = array(
525
-								'name' => __( 'Base Colour', 'woothemes-sensei' ),
526
-								'description' => sprintf( __( 'The base colour for Sensei email templates. Default %1$s#557da1%2$s.', 'woothemes-sensei' ), '<code>', '</code>' ),
525
+								'name' => __('Base Colour', 'woothemes-sensei'),
526
+								'description' => sprintf(__('The base colour for Sensei email templates. Default %1$s#557da1%2$s.', 'woothemes-sensei'), '<code>', '</code>'),
527 527
 								'type' => 'color',
528 528
 								'default' => '#557da1',
529 529
 								'section' => 'email-notification-settings',
@@ -531,8 +531,8 @@  discard block
 block discarded – undo
531 531
 								);
532 532
 
533 533
 		$fields['email_background_color'] = array(
534
-								'name' => __( 'Background Colour', 'woothemes-sensei' ),
535
-								'description' => sprintf( __( 'The background colour for Sensei email templates. Default %1$s#f5f5f5%2$s.', 'woothemes-sensei' ), '<code>', '</code>' ),
534
+								'name' => __('Background Colour', 'woothemes-sensei'),
535
+								'description' => sprintf(__('The background colour for Sensei email templates. Default %1$s#f5f5f5%2$s.', 'woothemes-sensei'), '<code>', '</code>'),
536 536
 								'type' => 'color',
537 537
 								'default' => '#f5f5f5',
538 538
 								'section' => 'email-notification-settings',
@@ -540,8 +540,8 @@  discard block
 block discarded – undo
540 540
 								);
541 541
 
542 542
 		$fields['email_body_background_color'] = array(
543
-								'name' => __( 'Body Background Colour', 'woothemes-sensei' ),
544
-								'description' => sprintf( __( 'The main body background colour for Sensei email templates. Default %1$s#fdfdfd%2$s.', 'woothemes-sensei' ), '<code>', '</code>' ),
543
+								'name' => __('Body Background Colour', 'woothemes-sensei'),
544
+								'description' => sprintf(__('The main body background colour for Sensei email templates. Default %1$s#fdfdfd%2$s.', 'woothemes-sensei'), '<code>', '</code>'),
545 545
 								'type' => 'color',
546 546
 								'default' => '#fdfdfd',
547 547
 								'section' => 'email-notification-settings',
@@ -549,35 +549,35 @@  discard block
 block discarded – undo
549 549
 								);
550 550
 
551 551
 		$fields['email_text_color'] = array(
552
-								'name' => __( 'Body Text Colour', 'woothemes-sensei' ),
553
-								'description' => sprintf( __( 'The main body text colour for Sensei email templates. Default %1$s#505050%2$s.', 'woothemes-sensei' ), '<code>', '</code>' ),
552
+								'name' => __('Body Text Colour', 'woothemes-sensei'),
553
+								'description' => sprintf(__('The main body text colour for Sensei email templates. Default %1$s#505050%2$s.', 'woothemes-sensei'), '<code>', '</code>'),
554 554
 								'type' => 'color',
555 555
 								'default' => '#505050',
556 556
 								'section' => 'email-notification-settings',
557 557
 								'required' => 1
558 558
 								);
559 559
 
560
-		if ( Sensei_WC::is_woocommerce_active() ) {
560
+		if (Sensei_WC::is_woocommerce_active()) {
561 561
 			// WooCommerce Settings
562 562
     		$fields['woocommerce_enabled'] = array(
563
-									'name' => __( 'Enable WooCommerce Courses', 'woothemes-sensei' ),
564
-									'description' => __( 'Use WooCommerce to sell Courses by linking a Product to a Course.', 'woothemes-sensei' ),
563
+									'name' => __('Enable WooCommerce Courses', 'woothemes-sensei'),
564
+									'description' => __('Use WooCommerce to sell Courses by linking a Product to a Course.', 'woothemes-sensei'),
565 565
 									'type' => 'checkbox',
566 566
 									'default' => true,
567 567
 									'section' => 'woocommerce-settings'
568 568
 									);
569 569
 
570 570
 			$fields['course_archive_free_enable'] = array(
571
-									'name' => __( 'Free Courses Panel', 'woothemes-sensei' ),
572
-									'description' => __( 'Output the Free Courses Panel on the Course Archive Page.', 'woothemes-sensei' ),
571
+									'name' => __('Free Courses Panel', 'woothemes-sensei'),
572
+									'description' => __('Output the Free Courses Panel on the Course Archive Page.', 'woothemes-sensei'),
573 573
 									'type' => 'checkbox',
574 574
 									'default' => true,
575 575
 									'section' => 'woocommerce-settings'
576 576
 									);
577 577
 
578 578
 			$fields['course_archive_paid_enable'] = array(
579
-									'name' => __( 'Paid Courses Panel', 'woothemes-sensei' ),
580
-									'description' => __( 'Output the Paid Courses Panel on the Course Archive Page.', 'woothemes-sensei' ),
579
+									'name' => __('Paid Courses Panel', 'woothemes-sensei'),
580
+									'description' => __('Output the Paid Courses Panel on the Course Archive Page.', 'woothemes-sensei'),
581 581
 									'type' => 'checkbox',
582 582
 									'default' => true,
583 583
 									'section' => 'woocommerce-settings'
@@ -585,18 +585,18 @@  discard block
 block discarded – undo
585 585
 
586 586
 		} // End If Statement
587 587
 
588
-		if ( 'en_US' !== get_locale() ) {
588
+		if ('en_US' !== get_locale()) {
589 589
 			$fields['install_language_pack'] = array(
590
-				'name'        => __( 'Install Language Pack', 'woothemes-sensei' ),
591
-				'description' => __( 'Use this action to install or re-install translation for your language if available.', 'woothemes-sensei' ),
590
+				'name'        => __('Install Language Pack', 'woothemes-sensei'),
591
+				'description' => __('Use this action to install or re-install translation for your language if available.', 'woothemes-sensei'),
592 592
 				'type'        => 'button',
593 593
 				'section'     => 'language-settings',
594 594
 				'target'      => Sensei_Language_Pack_Manager::get_install_uri(),
595
-				'label'       => __( 'Install', 'woothemes-sensei' )
595
+				'label'       => __('Install', 'woothemes-sensei')
596 596
 			);
597 597
 		}
598 598
 
599
-		$this->fields = apply_filters( 'sensei_settings_fields', $fields );
599
+		$this->fields = apply_filters('sensei_settings_fields', $fields);
600 600
 
601 601
 	} // End init_fields()
602 602
 
@@ -606,20 +606,20 @@  discard block
 block discarded – undo
606 606
 	 * @param  $include_milliseconds (default: true) Whether or not to include milliseconds between 0 and 1.
607 607
 	 * @return array Options between 0.1 and 10 seconds.
608 608
 	 */
609
-	private function get_duration_options ( $include_milliseconds = true ) {
610
-		$numbers = array( '1.0', '1.5', '2.0', '2.5', '3.0', '3.5', '4.0', '4.5', '5.0', '5.5', '6.0', '6.5', '7.0', '7.5', '8.0', '8.5', '9.0', '9.5', '10.0' );
609
+	private function get_duration_options($include_milliseconds = true) {
610
+		$numbers = array('1.0', '1.5', '2.0', '2.5', '3.0', '3.5', '4.0', '4.5', '5.0', '5.5', '6.0', '6.5', '7.0', '7.5', '8.0', '8.5', '9.0', '9.5', '10.0');
611 611
 		$options = array();
612 612
 
613
-		if ( true == (bool)$include_milliseconds ) {
614
-			$milliseconds = array( '0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9' );
615
-			foreach ( $milliseconds as $k => $v ) {
613
+		if (true == (bool) $include_milliseconds) {
614
+			$milliseconds = array('0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9');
615
+			foreach ($milliseconds as $k => $v) {
616 616
 				$options[$v] = $v;
617 617
 			}
618 618
 		} else {
619 619
 			$options['0.5'] = '0.5';
620 620
 		}
621 621
 
622
-		foreach ( $numbers as $k => $v ) {
622
+		foreach ($numbers as $k => $v) {
623 623
 			$options[$v] = $v;
624 624
 		}
625 625
 
@@ -635,25 +635,25 @@  discard block
 block discarded – undo
635 635
 	private function pages_array() {
636 636
 		// REFACTOR - Transform this into a field type instead.
637 637
 		// Setup an array of portfolio gallery terms for a dropdown.
638
-		$args = array( 'echo' => 0, 'hierarchical' => 1, 'sort_column' => 'post_title', 'sort_order' => 'ASC' );
639
-		$pages_dropdown = wp_dropdown_pages( $args );
638
+		$args = array('echo' => 0, 'hierarchical' => 1, 'sort_column' => 'post_title', 'sort_order' => 'ASC');
639
+		$pages_dropdown = wp_dropdown_pages($args);
640 640
 		$page_items = array();
641 641
 
642 642
 		// Quick string hack to make sure we get the pages with the indents.
643
-		$pages_dropdown = str_replace( "<select class='' name='page_id' id='page_id'>", '', $pages_dropdown );
644
-		$pages_dropdown = str_replace( '</select>', '', $pages_dropdown );
645
-		$pages_split = explode( '</option>', $pages_dropdown );
643
+		$pages_dropdown = str_replace("<select class='' name='page_id' id='page_id'>", '', $pages_dropdown);
644
+		$pages_dropdown = str_replace('</select>', '', $pages_dropdown);
645
+		$pages_split = explode('</option>', $pages_dropdown);
646 646
 
647
-		$page_items[] = __( 'Select a Page:', 'woothemes-sensei' );
647
+		$page_items[] = __('Select a Page:', 'woothemes-sensei');
648 648
 
649
-		foreach ( $pages_split as $k => $v ) {
649
+		foreach ($pages_split as $k => $v) {
650 650
 		    $id = '';
651 651
 		    // Get the ID value.
652
-		    preg_match( '/value="(.*?)"/i', $v, $matches );
652
+		    preg_match('/value="(.*?)"/i', $v, $matches);
653 653
 
654
-		    if ( isset( $matches[1] ) ) {
654
+		    if (isset($matches[1])) {
655 655
 		        $id = $matches[1];
656
-		        $page_items[$id] = trim( strip_tags( $v ) );
656
+		        $page_items[$id] = trim(strip_tags($v));
657 657
 		    } // End If Statement
658 658
 		} // End For Loop
659 659
 
@@ -677,10 +677,10 @@  discard block
 block discarded – undo
677 677
      *
678 678
      * @since 1.9.0
679 679
      */
680
-    public static function flush_rewrite_rules(){
680
+    public static function flush_rewrite_rules() {
681 681
 
682
-        if ( isset( $_POST[ 'option_page' ] ) && 'woothemes-sensei-settings' == $_POST[ 'option_page' ]
683
-            && isset( $_POST[ 'action' ] ) && 'update' == $_POST[ 'action' ] ) {
682
+        if (isset($_POST['option_page']) && 'woothemes-sensei-settings' == $_POST['option_page']
683
+            && isset($_POST['action']) && 'update' == $_POST['action']) {
684 684
 
685 685
             Sensei()->initiate_rewrite_rules_flush();
686 686
 
@@ -694,4 +694,4 @@  discard block
 block discarded – undo
694 694
  * for backward compatibility
695 695
  * @since 1.9.0
696 696
  */
697
-class WooThemes_Sensei_Settings extends Sensei_Settings{}
697
+class WooThemes_Sensei_Settings extends Sensei_Settings {}
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-user-messages.php 3 patches
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   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -15,91 +15,91 @@
 block discarded – undo
15 15
  */
16 16
 class Sensei_Shortcode_User_Messages implements Sensei_Shortcode_Interface {
17 17
 
18
-    /**
19
-     * @var WP_Query
20
-     * messages for the current user
21
-     */
22
-    protected $messages_query;
23
-
24
-    /**
25
-     * Setup the shortcode object
26
-     *
27
-     * @since 1.9.0
28
-     * @param array $attributes
29
-     * @param string $content
30
-     * @param string $shortcode the shortcode that was called for this instance
31
-     */
32
-    public function __construct( $attributes, $content, $shortcode ){
33
-
34
-        $this->setup_messages_query();
35
-
36
-    }
37
-
38
-    /**
39
-     * create the messages query .
40
-     *
41
-     * @return mixed
42
-     */
43
-    public function setup_messages_query(){
44
-
45
-        $user = wp_get_current_user();
46
-
47
-        $args = array(
48
-            'post_type' => 'sensei_message',
49
-            'posts_per_page' => 500,
50
-            'orderby' => 'date',
51
-            'order' => 'DESC',
52
-            'post_status' => 'publish',
53
-            'meta_query' => array(
54
-                array(
55
-                    'key'     => '_sender',
56
-                    'value'   => $user->user_login,
57
-                    'compare' => '=',
58
-                ),
59
-            ),
60
-        );
61
-
62
-        $this->messages_query  = new WP_Query( $args );
63
-    }
64
-
65
-    /**
66
-     * Rendering the shortcode this class is responsible for.
67
-     *
68
-     * @return string $content
69
-     */
70
-    public function render(){
71
-
72
-        if( !is_user_logged_in() ){
73
-
74
-            Sensei()->notices->add_notice( __('Please login to view your messages.','woothemes-sensei') , 'alert'  );
75
-
76
-        } elseif( 0 == $this->messages_query->post_count ){
77
-
78
-            Sensei()->notices->add_notice( __( 'You do not have any messages.', 'woothemes-sensei') , 'alert'  );
79
-        }
80
-
81
-        $messages_disabled_in_settings =  ! ( ! isset( Sensei()->settings->settings['messages_disable'] )
82
-                                            || ! Sensei()->settings->settings['messages_disable'] ) ;
83
-
84
-        // don't show anything if messages are disable
85
-        if( $messages_disabled_in_settings ){
86
-            return '';
87
-        }
88
-
89
-        //set the wp_query to the current messages query
90
-        global $wp_query;
91
-        $wp_query = $this->messages_query;
92
-
93
-        ob_start();
94
-        Sensei()->notices->print_notices();
95
-        Sensei_Templates::get_part('loop', 'message');
96
-        $messages_html = ob_get_clean();
97
-
98
-        // set back the global query
99
-        wp_reset_query();
100
-
101
-        return $messages_html;
102
-
103
-    }// end render
18
+	/**
19
+	 * @var WP_Query
20
+	 * messages for the current user
21
+	 */
22
+	protected $messages_query;
23
+
24
+	/**
25
+	 * Setup the shortcode object
26
+	 *
27
+	 * @since 1.9.0
28
+	 * @param array $attributes
29
+	 * @param string $content
30
+	 * @param string $shortcode the shortcode that was called for this instance
31
+	 */
32
+	public function __construct( $attributes, $content, $shortcode ){
33
+
34
+		$this->setup_messages_query();
35
+
36
+	}
37
+
38
+	/**
39
+	 * create the messages query .
40
+	 *
41
+	 * @return mixed
42
+	 */
43
+	public function setup_messages_query(){
44
+
45
+		$user = wp_get_current_user();
46
+
47
+		$args = array(
48
+			'post_type' => 'sensei_message',
49
+			'posts_per_page' => 500,
50
+			'orderby' => 'date',
51
+			'order' => 'DESC',
52
+			'post_status' => 'publish',
53
+			'meta_query' => array(
54
+				array(
55
+					'key'     => '_sender',
56
+					'value'   => $user->user_login,
57
+					'compare' => '=',
58
+				),
59
+			),
60
+		);
61
+
62
+		$this->messages_query  = new WP_Query( $args );
63
+	}
64
+
65
+	/**
66
+	 * Rendering the shortcode this class is responsible for.
67
+	 *
68
+	 * @return string $content
69
+	 */
70
+	public function render(){
71
+
72
+		if( !is_user_logged_in() ){
73
+
74
+			Sensei()->notices->add_notice( __('Please login to view your messages.','woothemes-sensei') , 'alert'  );
75
+
76
+		} elseif( 0 == $this->messages_query->post_count ){
77
+
78
+			Sensei()->notices->add_notice( __( 'You do not have any messages.', 'woothemes-sensei') , 'alert'  );
79
+		}
80
+
81
+		$messages_disabled_in_settings =  ! ( ! isset( Sensei()->settings->settings['messages_disable'] )
82
+											|| ! Sensei()->settings->settings['messages_disable'] ) ;
83
+
84
+		// don't show anything if messages are disable
85
+		if( $messages_disabled_in_settings ){
86
+			return '';
87
+		}
88
+
89
+		//set the wp_query to the current messages query
90
+		global $wp_query;
91
+		$wp_query = $this->messages_query;
92
+
93
+		ob_start();
94
+		Sensei()->notices->print_notices();
95
+		Sensei_Templates::get_part('loop', 'message');
96
+		$messages_html = ob_get_clean();
97
+
98
+		// set back the global query
99
+		wp_reset_query();
100
+
101
+		return $messages_html;
102
+
103
+	}// end render
104 104
 
105 105
 }// end class
106 106
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 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_user_messages] shortcode. The current users messages.
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
      * @param string $content
30 30
      * @param string $shortcode the shortcode that was called for this instance
31 31
      */
32
-    public function __construct( $attributes, $content, $shortcode ){
32
+    public function __construct($attributes, $content, $shortcode) {
33 33
 
34 34
         $this->setup_messages_query();
35 35
 
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
      *
41 41
      * @return mixed
42 42
      */
43
-    public function setup_messages_query(){
43
+    public function setup_messages_query() {
44 44
 
45 45
         $user = wp_get_current_user();
46 46
 
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
             ),
60 60
         );
61 61
 
62
-        $this->messages_query  = new WP_Query( $args );
62
+        $this->messages_query = new WP_Query($args);
63 63
     }
64 64
 
65 65
     /**
@@ -67,22 +67,22 @@  discard block
 block discarded – undo
67 67
      *
68 68
      * @return string $content
69 69
      */
70
-    public function render(){
70
+    public function render() {
71 71
 
72
-        if( !is_user_logged_in() ){
72
+        if ( ! is_user_logged_in()) {
73 73
 
74
-            Sensei()->notices->add_notice( __('Please login to view your messages.','woothemes-sensei') , 'alert'  );
74
+            Sensei()->notices->add_notice(__('Please login to view your messages.', 'woothemes-sensei'), 'alert');
75 75
 
76
-        } elseif( 0 == $this->messages_query->post_count ){
76
+        } elseif (0 == $this->messages_query->post_count) {
77 77
 
78
-            Sensei()->notices->add_notice( __( 'You do not have any messages.', 'woothemes-sensei') , 'alert'  );
78
+            Sensei()->notices->add_notice(__('You do not have any messages.', 'woothemes-sensei'), 'alert');
79 79
         }
80 80
 
81
-        $messages_disabled_in_settings =  ! ( ! isset( Sensei()->settings->settings['messages_disable'] )
82
-                                            || ! Sensei()->settings->settings['messages_disable'] ) ;
81
+        $messages_disabled_in_settings = ! ( ! isset(Sensei()->settings->settings['messages_disable'])
82
+                                            || ! Sensei()->settings->settings['messages_disable']);
83 83
 
84 84
         // don't show anything if messages are disable
85
-        if( $messages_disabled_in_settings ){
85
+        if ($messages_disabled_in_settings) {
86 86
             return '';
87 87
         }
88 88
 
Please login to merge, or discard this patch.