Completed
Push — master ( eccc4a...c847f3 )
by Dwain
04:57
created
includes/class-sensei-wc.php 4 patches
Doc Comments   +8 added lines, -7 removed lines patch added patch discarded remove patch
@@ -973,7 +973,7 @@  discard block
 block discarded – undo
973 973
      * @since   1.2.0
974 974
      * @since  1.9.0 move to class Sensei_WC
975 975
      *
976
-     * @param   WC_Order $order
976
+     * @param   integer $order
977 977
      *
978 978
      * @return  void
979 979
      */
@@ -1191,6 +1191,7 @@  discard block
 block discarded – undo
1191 1191
      * @since   1.2.0
1192 1192
      * @since   1.9.0 Move function to the Sensei_WC class
1193 1193
      * @param   integer| WC_Order $order_id order ID
1194
+     * @param integer $order_id
1194 1195
      * @return  void
1195 1196
      */
1196 1197
     public static function cancel_order ( $order_id ) {
@@ -1309,7 +1310,7 @@  discard block
 block discarded – undo
1309 1310
      * @param  int 			$course_id  (default: 0)
1310 1311
      * @param  array/Object $order_user (default: array()) Specific user's data.
1311 1312
      *
1312
-     * @return bool|int
1313
+     * @return boolean|string
1313 1314
      */
1314 1315
     public static function course_update ( $course_id = 0, $order_user = array()  ) {
1315 1316
 
@@ -1381,7 +1382,7 @@  discard block
 block discarded – undo
1381 1382
      *
1382 1383
      * @param  boolean $guest_checkout Current guest checkout setting
1383 1384
      *
1384
-     * @return boolean                 Modified guest checkout setting
1385
+     * @return string|boolean                 Modified guest checkout setting
1385 1386
      */
1386 1387
     public static function disable_guest_checkout( $guest_checkout ) {
1387 1388
 
@@ -1555,7 +1556,7 @@  discard block
 block discarded – undo
1555 1556
      * Get all the valid subscription types.
1556 1557
      *
1557 1558
      * @since 1.9.0
1558
-     * @return array
1559
+     * @return string[]
1559 1560
      */
1560 1561
     public static function get_subscription_types(){
1561 1562
 
@@ -1573,8 +1574,8 @@  discard block
 block discarded – undo
1573 1574
      *
1574 1575
      * @since 1.9.0
1575 1576
      *
1576
-     * @param $user_id
1577
-     * @param $product_id
1577
+     * @param integer $user_id
1578
+     * @param string $product_id
1578 1579
      * @param $course_id
1579 1580
      *
1580 1581
      * @return bool
@@ -1638,7 +1639,7 @@  discard block
 block discarded – undo
1638 1639
 	 * Get all the orders for a specific user and product combination
1639 1640
 	 *
1640 1641
 	 * @param int $user_id
1641
-	 * @param $product_id
1642
+	 * @param integer $product_id
1642 1643
 	 *
1643 1644
 	 * @return array $orders
1644 1645
 	 */
Please login to merge, or discard this patch.
Indentation   +1204 added lines, -1204 removed lines patch added patch discarded remove patch
@@ -12,745 +12,745 @@  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
-	    $woocommerce_hooks_file_path = Sensei()->plugin_path() . 'includes/hooks/woocommerce.php';
23
-        require_once( $woocommerce_hooks_file_path );
22
+		$woocommerce_hooks_file_path = Sensei()->plugin_path() . 'includes/hooks/woocommerce.php';
23
+		require_once( $woocommerce_hooks_file_path );
24 24
 
25
-    }
26
-    /**
27
-     * check if WooCommerce plugin is loaded and allowed by Sensei
28
-     *
29
-     * @since 1.9.0
30
-     * @return bool
31
-     */
32
-    public static function is_woocommerce_active(){
25
+	}
26
+	/**
27
+	 * check if WooCommerce plugin is loaded and allowed by Sensei
28
+	 *
29
+	 * @since 1.9.0
30
+	 * @return bool
31
+	 */
32
+	public static function is_woocommerce_active(){
33 33
 
34
-        $is_woocommerce_enabled_in_settings = isset( Sensei()->settings->settings['woocommerce_enabled'] ) && Sensei()->settings->settings['woocommerce_enabled'];
35
-        return self::is_woocommerce_present() && $is_woocommerce_enabled_in_settings;
34
+		$is_woocommerce_enabled_in_settings = isset( Sensei()->settings->settings['woocommerce_enabled'] ) && Sensei()->settings->settings['woocommerce_enabled'];
35
+		return self::is_woocommerce_present() && $is_woocommerce_enabled_in_settings;
36 36
 
37
-    } // end is_woocommerce_active
37
+	} // end is_woocommerce_active
38 38
 
39
-    /**
40
-     * Checks if the WooCommerce plugin is installed and activation.
41
-     *
42
-     * If you need to check if WooCommerce is activated use Sensei_Utils::is_woocommerce_active().
43
-     * This function does nott check to see if the Sensei setting for WooCommerce is enabled.
44
-     *
45
-     * @since 1.9.0
46
-     *
47
-     * @return bool
48
-     */
49
-    public static function is_woocommerce_present(){
39
+	/**
40
+	 * Checks if the WooCommerce plugin is installed and activation.
41
+	 *
42
+	 * If you need to check if WooCommerce is activated use Sensei_Utils::is_woocommerce_active().
43
+	 * This function does nott check to see if the Sensei setting for WooCommerce is enabled.
44
+	 *
45
+	 * @since 1.9.0
46
+	 *
47
+	 * @return bool
48
+	 */
49
+	public static function is_woocommerce_present(){
50 50
 
51
-        $active_plugins = (array) get_option( 'active_plugins', array() );
51
+		$active_plugins = (array) get_option( 'active_plugins', array() );
52 52
 
53
-        if ( is_multisite() ){
53
+		if ( is_multisite() ){
54 54
 
55
-            $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
55
+			$active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
56 56
 
57
-        }
57
+		}
58 58
 
59
-        $is_woocommerce_plugin_present_and_activated = in_array( 'woocommerce/woocommerce.php', $active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', $active_plugins );
59
+		$is_woocommerce_plugin_present_and_activated = in_array( 'woocommerce/woocommerce.php', $active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', $active_plugins );
60 60
 
61
-        return class_exists( 'Woocommerce' ) || $is_woocommerce_plugin_present_and_activated;
61
+		return class_exists( 'Woocommerce' ) || $is_woocommerce_plugin_present_and_activated;
62 62
 
63
-    }// end is_woocommerce_present
63
+	}// end is_woocommerce_present
64 64
 
65
-    /**
66
-     * Find the order active number (completed or processing ) for a given user on a course. It will return the latest order.
67
-     *
68
-     * If multiple exist we will return the latest order.
69
-     *
70
-     * @param $user_id
71
-     * @param $course_id
72
-     * @return array $user_course_orders
73
-     */
74
-    public static function get_learner_course_active_order_id( $user_id, $course_id ){
65
+	/**
66
+	 * Find the order active number (completed or processing ) for a given user on a course. It will return the latest order.
67
+	 *
68
+	 * If multiple exist we will return the latest order.
69
+	 *
70
+	 * @param $user_id
71
+	 * @param $course_id
72
+	 * @return array $user_course_orders
73
+	 */
74
+	public static function get_learner_course_active_order_id( $user_id, $course_id ){
75 75
 
76
-        $course_product_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
76
+		$course_product_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
77 77
 
78
-        $orders_query = new WP_Query( array(
79
-            'post_type'   => 'shop_order',
80
-            'posts_per_page' => -1,
81
-            'post_status' => array( 'wc-processing', 'wc-completed' ),
82
-            'meta_key'=> '_customer_user',
83
-            'meta_value'=> $user_id,
84
-        ) );
78
+		$orders_query = new WP_Query( array(
79
+			'post_type'   => 'shop_order',
80
+			'posts_per_page' => -1,
81
+			'post_status' => array( 'wc-processing', 'wc-completed' ),
82
+			'meta_key'=> '_customer_user',
83
+			'meta_value'=> $user_id,
84
+		) );
85 85
 
86
-        if( $orders_query->post_count == 0 ){
86
+		if( $orders_query->post_count == 0 ){
87 87
 
88
-            return false;
88
+			return false;
89 89
 
90
-        }
90
+		}
91
+
92
+		foreach( $orders_query->get_posts() as $order ){
93
+
94
+			$order = new WC_Order( $order->ID );
95
+			$items = $order->get_items();
96
+
97
+			$user_orders =  array();
98
+
99
+			foreach( $items as $item ){
100
+
101
+				// if the product id on the order and the one given to this function
102
+				// this order has been placed by the given user on the given course.
103
+				$product = wc_get_product( $item['product_id'] );
104
+
105
+				if ( is_object( $product ) && $product->is_type( 'variable' )) {
106
+
107
+					$item_product_id = $item['variation_id'];
108
+
109
+				} else {
91 110
 
92
-        foreach( $orders_query->get_posts() as $order ){
111
+					$item_product_id =  $item['product_id'];
93 112
 
94
-            $order = new WC_Order( $order->ID );
95
-            $items = $order->get_items();
113
+				}
96 114
 
97
-            $user_orders =  array();
115
+				if( $course_product_id == $item_product_id ){
98 116
 
99
-            foreach( $items as $item ){
117
+					return $order->id;
100 118
 
101
-                // if the product id on the order and the one given to this function
102
-                // this order has been placed by the given user on the given course.
103
-                $product = wc_get_product( $item['product_id'] );
119
+				}
104 120
 
105
-                if ( is_object( $product ) && $product->is_type( 'variable' )) {
106 121
 
107
-                    $item_product_id = $item['variation_id'];
122
+			}//end for each order item
108 123
 
109
-                } else {
124
+		} // end for each order
110 125
 
111
-                    $item_product_id =  $item['product_id'];
126
+		// if we reach this place we found no order
127
+		return false;
112 128
 
113
-                }
129
+	} // end get_learner_course_active_order_ids
130
+
131
+	/**
132
+	 * Output WooCommerce specific course filters
133
+	 * Removing the paged argument
134
+	 *
135
+	 * @since 1.9.0
136
+	 * @param $filter_links
137
+	 * @return mixed
138
+	 */
139
+	public static function add_course_archive_wc_filter_links( $filter_links ){
140
+
141
+		$free_courses = self::get_free_courses();
142
+		$paid_courses = self::get_paid_courses();
143
+
144
+		if ( empty( $free_courses ) || empty( $paid_courses )  ){
145
+			// do not show any WooCommerce filters if all courses are
146
+			// free or if all courses are paid
147
+			return $filter_links;
148
+
149
+		}
114 150
 
115
-                if( $course_product_id == $item_product_id ){
151
+		$filter_links[] = array(
152
+			'id'=>'paid' ,
153
+			'url'=> add_query_arg( array( 'course_filter'=>'paid'), Sensei_Course::get_courses_page_url() ),
154
+			'title'=>__( 'Paid', 'woothemes-sensei' )
155
+		);
116 156
 
117
-                    return $order->id;
157
+		$filter_links[] = array(
158
+			'id'=>'free',
159
+			'url'=> add_query_arg( array( 'course_filter'=>'free'), Sensei_Course::get_courses_page_url() ),
160
+			'title'=>__( 'Free', 'woothemes-sensei' )
161
+		);
118 162
 
119
-                }
163
+		return $filter_links;
120 164
 
165
+	}// end add_course_archive_wc_filter_links
121 166
 
122
-            }//end for each order item
167
+	/**
168
+	 * Apply the free filter the the course query
169
+	 * getting all course with no products or products with zero price
170
+	 *
171
+	 * hooked into pre_get_posts
172
+	 *
173
+	 * @since 1.9.0
174
+	 * @param WP_Query $query
175
+	 * @return WP_Query $query
176
+	 */
177
+	public static function course_archive_wc_filter_free( $query ){
123 178
 
124
-        } // end for each order
179
+		if( isset( $_GET['course_filter'] ) && 'free' == $_GET['course_filter']
180
+			&& 'course' == $query->get( 'post_type') && $query->is_main_query()  ){
125 181
 
126
-        // if we reach this place we found no order
127
-        return false;
182
+			// setup the course meta query
183
+			$meta_query = self::get_free_courses_meta_query_args();
128 184
 
129
-    } // end get_learner_course_active_order_ids
185
+			// manipulate the query to return free courses
186
+			$query->set('meta_query', $meta_query );
130 187
 
131
-    /**
132
-     * Output WooCommerce specific course filters
133
-     * Removing the paged argument
134
-     *
135
-     * @since 1.9.0
136
-     * @param $filter_links
137
-     * @return mixed
138
-     */
139
-    public static function add_course_archive_wc_filter_links( $filter_links ){
188
+			// don't show any paid courses
189
+			$courses = self::get_paid_courses();
190
+			$ids = array();
191
+			foreach( $courses as $course ){
192
+				$ids[] = $course->ID;
193
+			}
194
+			$query->set( 'post__not_in', $ids );
140 195
 
141
-        $free_courses = self::get_free_courses();
142
-        $paid_courses = self::get_paid_courses();
196
+		}// end if course_filter
143 197
 
144
-        if ( empty( $free_courses ) || empty( $paid_courses )  ){
145
-            // do not show any WooCommerce filters if all courses are
146
-            // free or if all courses are paid
147
-            return $filter_links;
198
+		return $query;
148 199
 
149
-        }
200
+	}// course_archive_wc_filter_free
150 201
 
151
-        $filter_links[] = array(
152
-            'id'=>'paid' ,
153
-            'url'=> add_query_arg( array( 'course_filter'=>'paid'), Sensei_Course::get_courses_page_url() ),
154
-            'title'=>__( 'Paid', 'woothemes-sensei' )
155
-        );
202
+	/**
203
+	 * Apply the paid filter to the course query on the courses page
204
+	 * will include all course with a product attached with a price
205
+	 * more than 0
206
+	 *
207
+	 * hooked into pre_get_posts
208
+	 *
209
+	 * @since 1.9.0
210
+	 * @param WP_Query $query
211
+	 * @return WP_Query $query
212
+	 */
213
+	public static function course_archive_wc_filter_paid( $query ){
156 214
 
157
-        $filter_links[] = array(
158
-            'id'=>'free',
159
-            'url'=> add_query_arg( array( 'course_filter'=>'free'), Sensei_Course::get_courses_page_url() ),
160
-            'title'=>__( 'Free', 'woothemes-sensei' )
161
-        );
215
+		if( isset( $_GET['course_filter'] ) && 'paid' == $_GET['course_filter']
216
+			&& 'course' == $query->get( 'post_type') && $query->is_main_query() ){
162 217
 
163
-        return $filter_links;
218
+			// setup the course meta query
219
+			$meta_query = self::get_paid_courses_meta_query_args();
164 220
 
165
-    }// end add_course_archive_wc_filter_links
221
+			// manipulate the query to return free courses
222
+			$query->set('meta_query', $meta_query );
166 223
 
167
-    /**
168
-     * Apply the free filter the the course query
169
-     * getting all course with no products or products with zero price
170
-     *
171
-     * hooked into pre_get_posts
172
-     *
173
-     * @since 1.9.0
174
-     * @param WP_Query $query
175
-     * @return WP_Query $query
176
-     */
177
-    public static function course_archive_wc_filter_free( $query ){
224
+		}
178 225
 
179
-        if( isset( $_GET['course_filter'] ) && 'free' == $_GET['course_filter']
180
-            && 'course' == $query->get( 'post_type') && $query->is_main_query()  ){
226
+		return $query;
181 227
 
182
-            // setup the course meta query
183
-            $meta_query = self::get_free_courses_meta_query_args();
228
+	}
184 229
 
185
-            // manipulate the query to return free courses
186
-            $query->set('meta_query', $meta_query );
230
+	/**
231
+	 * Load the WooCommerce single product actions above
232
+	 * single courses if woocommerce is active allowing purchase
233
+	 * information and actions to be hooked from WooCommerce.
234
+	 */
235
+	public static function do_single_course_wc_single_product_action(){
187 236
 
188
-            // don't show any paid courses
189
-            $courses = self::get_paid_courses();
190
-            $ids = array();
191
-            foreach( $courses as $course ){
192
-                $ids[] = $course->ID;
193
-            }
194
-            $query->set( 'post__not_in', $ids );
237
+		/**
238
+		 * this hooks is documented within the WooCommerce plugin.
239
+		 */
240
+		if ( Sensei_WC::is_woocommerce_active() ) {
195 241
 
196
-        }// end if course_filter
242
+			do_action( 'woocommerce_before_single_product' );
197 243
 
198
-        return $query;
244
+		} // End If Statement
199 245
 
200
-    }// course_archive_wc_filter_free
246
+	}// end do_single_course_wc_single_product_action
201 247
 
202
-    /**
203
-     * Apply the paid filter to the course query on the courses page
204
-     * will include all course with a product attached with a price
205
-     * more than 0
206
-     *
207
-     * hooked into pre_get_posts
208
-     *
209
-     * @since 1.9.0
210
-     * @param WP_Query $query
211
-     * @return WP_Query $query
212
-     */
213
-    public static function course_archive_wc_filter_paid( $query ){
248
+	/**
249
+	 * Hooking into the single lesson page to alter the
250
+	 * user access permissions based on if they have purchased the
251
+	 * course the lesson belongs to.
252
+	 *
253
+	 * This function will only return false or the passed in user_access value.
254
+	 * It doesn't return true in order to avoid altering other options.
255
+	 *
256
+	 * @since 1.9.0
257
+	 *
258
+	 * @param $can_user_view_lesson
259
+	 * @param $lesson_id
260
+	 * @param $user_id
261
+	 * @return bool
262
+	 */
263
+	public static function alter_can_user_view_lesson ( $can_user_view_lesson, $lesson_id, $user_id  ){
214 264
 
215
-        if( isset( $_GET['course_filter'] ) && 'paid' == $_GET['course_filter']
216
-            && 'course' == $query->get( 'post_type') && $query->is_main_query() ){
217
-
218
-            // setup the course meta query
219
-            $meta_query = self::get_paid_courses_meta_query_args();
220
-
221
-            // manipulate the query to return free courses
222
-            $query->set('meta_query', $meta_query );
223
-
224
-        }
225
-
226
-        return $query;
227
-
228
-    }
229
-
230
-    /**
231
-     * Load the WooCommerce single product actions above
232
-     * single courses if woocommerce is active allowing purchase
233
-     * information and actions to be hooked from WooCommerce.
234
-     */
235
-    public static function do_single_course_wc_single_product_action(){
236
-
237
-        /**
238
-         * this hooks is documented within the WooCommerce plugin.
239
-         */
240
-        if ( Sensei_WC::is_woocommerce_active() ) {
241
-
242
-            do_action( 'woocommerce_before_single_product' );
243
-
244
-        } // End If Statement
245
-
246
-    }// end do_single_course_wc_single_product_action
247
-
248
-    /**
249
-     * Hooking into the single lesson page to alter the
250
-     * user access permissions based on if they have purchased the
251
-     * course the lesson belongs to.
252
-     *
253
-     * This function will only return false or the passed in user_access value.
254
-     * It doesn't return true in order to avoid altering other options.
255
-     *
256
-     * @since 1.9.0
257
-     *
258
-     * @param $can_user_view_lesson
259
-     * @param $lesson_id
260
-     * @param $user_id
261
-     * @return bool
262
-     */
263
-    public static function alter_can_user_view_lesson ( $can_user_view_lesson, $lesson_id, $user_id  ){
264
-
265
-	    // do not override access to admins
266
-	    $course_id = Sensei()->lesson->get_course_id( $lesson_id );
267
-	    if ( sensei_all_access() || Sensei_Utils::is_preview_lesson( $lesson_id )
268
-	         || Sensei_Utils::user_started_course( $course_id, $user_id )  ){
265
+		// do not override access to admins
266
+		$course_id = Sensei()->lesson->get_course_id( $lesson_id );
267
+		if ( sensei_all_access() || Sensei_Utils::is_preview_lesson( $lesson_id )
268
+			 || Sensei_Utils::user_started_course( $course_id, $user_id )  ){
269 269
 
270 270
 			return true;
271 271
 
272
-	    }
272
+		}
273 273
 
274
-        // check if the course has a valid product attached to it
275
-        // which the user should have purchased if they want to access
276
-        // the current lesson
277
-        $course_id = get_post_meta( $lesson_id , '_lesson_course', true);
278
-        $wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
279
-        $product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
280
-        if( isset ($product) && is_object($product) ){
274
+		// check if the course has a valid product attached to it
275
+		// which the user should have purchased if they want to access
276
+		// the current lesson
277
+		$course_id = get_post_meta( $lesson_id , '_lesson_course', true);
278
+		$wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
279
+		$product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
280
+		if( isset ($product) && is_object($product) ){
281 281
 
282
-            // valid product found
283
-            $order_id = self::get_learner_course_active_order_id( $user_id, $course_id );
282
+			// valid product found
283
+			$order_id = self::get_learner_course_active_order_id( $user_id, $course_id );
284 284
 
285
-            // product has a successful order so this user may access the content
286
-            // this function may only return false or the default
287
-            // returning true may override other negatives which we don't want
288
-            if( ! $order_id ){
285
+			// product has a successful order so this user may access the content
286
+			// this function may only return false or the default
287
+			// returning true may override other negatives which we don't want
288
+			if( ! $order_id ){
289 289
 
290
-                return false;
290
+				return false;
291 291
 
292
-            }
292
+			}
293 293
 
294
-        }
294
+		}
295 295
 
296
-        // return the passed in value
297
-        return $can_user_view_lesson;
296
+		// return the passed in value
297
+		return $can_user_view_lesson;
298 298
 
299
-    }
299
+	}
300 300
 
301
-    /**
302
-     * Add course link to order thank you and details pages.
303
-     *
304
-     * @since  1.4.5
305
-     * @access public
306
-     *
307
-     * @return void
308
-     */
309
-    public static function course_link_from_order( ) {
301
+	/**
302
+	 * Add course link to order thank you and details pages.
303
+	 *
304
+	 * @since  1.4.5
305
+	 * @access public
306
+	 *
307
+	 * @return void
308
+	 */
309
+	public static function course_link_from_order( ) {
310 310
 
311
-        if( ! is_order_received_page() ){
312
-            return;
313
-        }
311
+		if( ! is_order_received_page() ){
312
+			return;
313
+		}
314 314
 
315
-        $order_id = get_query_var( 'order-received' );
315
+		$order_id = get_query_var( 'order-received' );
316 316
 		$order = new WC_Order( $order_id );
317 317
 
318 318
 		// exit early if not wc-completed or wc-processing
319 319
 		if( 'wc-completed' != $order->post_status
320
-            && 'wc-processing' != $order->post_status  ) {
321
-            return;
322
-        }
320
+			&& 'wc-processing' != $order->post_status  ) {
321
+			return;
322
+		}
323 323
 
324
-        $course_links = array(); // store the for links for courses purchased
324
+		$course_links = array(); // store the for links for courses purchased
325 325
 		foreach ( $order->get_items() as $item ) {
326 326
 
327
-            if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
327
+			if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
328 328
 
329
-                // If item has variation_id then its a variation of the product
330
-                $item_id = $item['variation_id'];
329
+				// If item has variation_id then its a variation of the product
330
+				$item_id = $item['variation_id'];
331 331
 
332
-            } else {
332
+			} else {
333 333
 
334
-                //If not its real product set its id to item_id
335
-                $item_id = $item['product_id'];
334
+				//If not its real product set its id to item_id
335
+				$item_id = $item['product_id'];
336 336
 
337
-            } // End If Statement
337
+			} // End If Statement
338 338
 
339
-            $user_id = get_post_meta( $order->id, '_customer_user', true );
339
+			$user_id = get_post_meta( $order->id, '_customer_user', true );
340 340
 
341
-            if( $user_id ) {
341
+			if( $user_id ) {
342 342
 
343
-                // Get all courses for product
344
-                $args = Sensei_Course::get_default_query_args();
345
-                $args['meta_query'] = array( array(
346
-                            'key' => '_course_woocommerce_product',
347
-                            'value' => $item_id
348
-                        ) );
349
-                $args['orderby'] = 'menu_order date';
350
-                $args['order'] = 'ASC';
343
+				// Get all courses for product
344
+				$args = Sensei_Course::get_default_query_args();
345
+				$args['meta_query'] = array( array(
346
+							'key' => '_course_woocommerce_product',
347
+							'value' => $item_id
348
+						) );
349
+				$args['orderby'] = 'menu_order date';
350
+				$args['order'] = 'ASC';
351 351
 
352
-                // loop through courses
353
-                $courses = get_posts( $args );
354
-                if( $courses && count( $courses ) > 0 ) {
352
+				// loop through courses
353
+				$courses = get_posts( $args );
354
+				if( $courses && count( $courses ) > 0 ) {
355 355
 
356
-                    foreach( $courses as $course ) {
356
+					foreach( $courses as $course ) {
357 357
 
358
-                        $title = $course->post_title;
359
-                        $permalink = get_permalink( $course->ID );
360
-                        $course_links[] .= '<a href="' . esc_url( $permalink ) . '" >' . $title . '</a> ';
358
+						$title = $course->post_title;
359
+						$permalink = get_permalink( $course->ID );
360
+						$course_links[] .= '<a href="' . esc_url( $permalink ) . '" >' . $title . '</a> ';
361 361
 
362
-                    } // end for each
362
+					} // end for each
363 363
 
364
-                    // close the message div
364
+					// close the message div
365 365
 
366
-                }// end if $courses check
367
-            }
368
-        }// end loop through orders
366
+				}// end if $courses check
367
+			}
368
+		}// end loop through orders
369 369
 
370
-        // add the courses to the WooCommerce notice
371
-        if( ! empty( $course_links) ){
370
+		// add the courses to the WooCommerce notice
371
+		if( ! empty( $course_links) ){
372 372
 
373
-            $courses_html = _nx(
374
-                'You have purchased the following course:',
375
-                'You have purchased the following courses:',
376
-                count( $course_links ),
377
-                'Purchase thank you note on Checkout page. The course link(s) will be show', 'woothemes-sensei'
378
-            );
373
+			$courses_html = _nx(
374
+				'You have purchased the following course:',
375
+				'You have purchased the following courses:',
376
+				count( $course_links ),
377
+				'Purchase thank you note on Checkout page. The course link(s) will be show', 'woothemes-sensei'
378
+			);
379 379
 
380
-            foreach( $course_links as $link ){
380
+			foreach( $course_links as $link ){
381 381
 
382
-                $courses_html .= '<li>' . $link . '</li>';
382
+				$courses_html .= '<li>' . $link . '</li>';
383 383
 
384
-            }
384
+			}
385 385
 
386
-            $courses_html .= ' </ul>';
386
+			$courses_html .= ' </ul>';
387 387
 
388
-            wc_add_notice( $courses_html, 'success' );
389
-        }
388
+			wc_add_notice( $courses_html, 'success' );
389
+		}
390 390
 
391 391
 	} // end course_link_order_form
392 392
 
393
-    /**
394
-     * Show the message that a user should complete
395
-     * their purchase if the course is in the cart
396
-     *
397
-     * This should be used within the course loop or single course page
398
-     *
399
-     * @since 1.9.0
400
-     */
401
-    public static function course_in_cart_message(){
393
+	/**
394
+	 * Show the message that a user should complete
395
+	 * their purchase if the course is in the cart
396
+	 *
397
+	 * This should be used within the course loop or single course page
398
+	 *
399
+	 * @since 1.9.0
400
+	 */
401
+	public static function course_in_cart_message(){
402 402
 
403
-        global $post;
403
+		global $post;
404 404
 
405
-        if( self::is_course_in_cart( $post->ID ) ){ ?>
405
+		if( self::is_course_in_cart( $post->ID ) ){ ?>
406 406
 
407 407
             <div class="sensei-message info">
408 408
                 <?php
409 409
 
410
-                $cart_link =  '<a class="cart-complete" href="' . WC()->cart->get_checkout_url()
411
-                              . '" title="' . __('complete purchase', 'woothemes-sensei') . '">'
412
-                              . __('complete the purchase', 'woothemes-sensei') . '</a>';
410
+				$cart_link =  '<a class="cart-complete" href="' . WC()->cart->get_checkout_url()
411
+							  . '" title="' . __('complete purchase', 'woothemes-sensei') . '">'
412
+							  . __('complete the purchase', 'woothemes-sensei') . '</a>';
413 413
 
414
-                echo sprintf(  __('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link );
414
+				echo sprintf(  __('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link );
415 415
 
416
-                ?>
416
+				?>
417 417
             </div>
418 418
         <?php }
419 419
 
420
-    } // End sensei_woocommerce_in_cart_message()
420
+	} // End sensei_woocommerce_in_cart_message()
421
+
422
+	/**
423
+	 * Checks the cart to see if a course is in the cart.
424
+	 *
425
+	 * @param $course_id
426
+	 * @return bool
427
+	 */
428
+	public static function is_course_in_cart( $course_id ){
429
+
430
+		$wc_post_id = absint( get_post_meta( $course_id, '_course_woocommerce_product', true ) );
431
+		$user_course_status_id = Sensei_Utils::user_started_course( $course_id , get_current_user_id() );
432
+
433
+		if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
434
+
435
+			if ( self::is_product_in_cart( $wc_post_id ) ) {
436
+
437
+				return true;
438
+
439
+			}
440
+
441
+		}
442
+
443
+		return false;
444
+
445
+	}// is_course_in_cart
446
+
447
+	/**
448
+	 * Check the cart to see if the product is in the cart
449
+	 *
450
+	 * @param $product_id
451
+	 * @return bool
452
+	 */
453
+	public static function is_product_in_cart( $product_id ){
454
+
455
+		if ( 0 < $product_id ) {
456
+
457
+			$product = wc_get_product( $product_id );
458
+
459
+			$parent_id = '';
460
+			if( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) {
461
+				$wc_product_id = $product->parent->id;
462
+			}
463
+			foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
464
+
465
+				$cart_product = $values['data'];
466
+				if( $product_id == $cart_product->id ) {
467
+
468
+					return true;
469
+
470
+				}
471
+
472
+			}
473
+		} // End If Statement
474
+
475
+		return false;
476
+
477
+	} // end is_product_in_car
478
+
479
+	/**
480
+	 * Get all free WooCommerce products
481
+	 *
482
+	 * @since 1.9.0
483
+	 *
484
+	 * @return array $free_products{
485
+	 *  @type int $wp_post_id
486
+	 * }
487
+	 */
488
+	public static function get_free_product_ids(){
489
+
490
+		return  get_posts( array(
491
+			'post_type' => 'product',
492
+			'posts_per_page' => '1000',
493
+			'fields' => 'ids',
494
+			'meta_query'=> array(
495
+				'relation' => 'OR',
496
+				array(
497
+					'key'=> '_regular_price',
498
+					'value' => 0,
499
+				),
500
+				array(
501
+					'key'=> '_sale_price',
502
+					'value' => 0,
503
+				),
504
+			),
505
+		));
506
+
507
+	}// end get free product query
508
+
509
+	/**
510
+	 * The metat query for courses that are free
511
+	 *
512
+	 * @since 1.9.0
513
+	 * @return array $wp_meta_query_param
514
+	 */
515
+	public static function get_free_courses_meta_query_args(){
516
+
517
+		return array(
518
+			'relation' => 'OR',
519
+			array(
520
+				'key'     => '_course_woocommerce_product',
521
+				'value' => '-',
522
+				'compare' => '=',
523
+			),
524
+			array(
525
+				'key'     => '_course_woocommerce_product',
526
+				'value' => self::get_free_product_ids(),
527
+				'compare' => 'IN',
528
+			),
529
+		);
530
+
531
+	}// get_free_courses_meta_query
532
+
533
+	/**
534
+	 * The metat query for courses that are free
535
+	 *
536
+	 * @since 1.9.0
537
+	 * @return array $wp_query_meta_query_args_param
538
+	 */
539
+	public static function get_paid_courses_meta_query_args(){
540
+
541
+		$paid_product_ids = self::get_paid_product_ids();
542
+
543
+		return array(
544
+			array(
545
+				'key'     => '_course_woocommerce_product',
546
+				// when empty we give a false post_id to ensure the caller doesn't get any courses for their
547
+				// query
548
+				'value' => empty( $paid_product_ids  )? '-1000' : $paid_product_ids,
549
+				'compare' => 'IN',
550
+			),
551
+		);
552
+
553
+	}// get_free_courses_meta_query
554
+
555
+	/**
556
+	 * The WordPress Query args
557
+	 * for paid products on sale
558
+	 *
559
+	 * @since 1.9.0
560
+	 * @return array $product_query_args
561
+	 */
562
+	public static function get_paid_products_on_sale_query_args(){
563
+
564
+		$args = array(
565
+				   'post_type' 		=> 'product',
566
+				   'posts_per_page' 		=> 1000,
567
+				   'orderby'         	=> 'date',
568
+				   'order'           	=> 'DESC',
569
+				   'suppress_filters' 	=> 0
570
+		);
571
+
572
+		$args[ 'fields' ]     = 'ids';
573
+
574
+		$args[ 'meta_query' ] = array(
575
+			'relation' => 'AND',
576
+			array(
577
+				'key'=> '_regular_price',
578
+				'compare' => '>',
579
+				'value' => 0,
580
+			),
581
+			array(
582
+				'key'=> '_sale_price',
583
+				'compare' => '>',
584
+				'value' => 0,
585
+			),
586
+		);
587
+
588
+		return $args;
589
+
590
+	} // get_paid_products_on_sale_query_args
591
+
592
+
593
+	/**
594
+	 * Return the WordPress query args for
595
+	 * products not on sale but that is not a free
596
+	 *
597
+	 * @since 1.9.0
598
+	 *
599
+	 * @return array
600
+	 */
601
+	public static function get_paid_products_not_on_sale_query_args(){
602
+
603
+		$args = array(
604
+			'post_type' 		=> 'product',
605
+			'posts_per_page' 		=> 1000,
606
+			'orderby'         	=> 'date',
607
+			'order'           	=> 'DESC',
608
+			'suppress_filters' 	=> 0
609
+		);
610
+
611
+		$args[ 'fields' ]     = 'ids';
612
+		$args[ 'meta_query' ] = array(
613
+			'relation' => 'AND',
614
+			array(
615
+				'key'=> '_regular_price',
616
+				'compare' => '>',
617
+				'value' => 0,
618
+			),
619
+			array(
620
+				'key'=> '_sale_price',
621
+				'compare' => '=',
622
+				'value' => '',
623
+			),
624
+		);
625
+
626
+		return $args;
627
+
628
+
629
+	} // get_paid_courses_meta_query
630
+
631
+	/**
632
+	 * Get all WooCommerce non-free product id's
633
+	 *
634
+	 * @since 1.9.0
635
+	 *
636
+	 * @return array $woocommerce_paid_product_ids
637
+	 */
638
+	public static function get_paid_product_ids(){
639
+
640
+		// get all the paid WooCommerce products that has regular
641
+		// and sale price greater than 0
642
+		// will be used later to check for course with the id as meta
643
+		$paid_product_ids_with_sale =  get_posts( self::get_paid_products_on_sale_query_args() );
644
+
645
+		// get all the paid WooCommerce products that has regular price
646
+		// greater than 0 without a sale price
647
+		// will be used later to check for course with the id as meta
648
+		$paid_product_ids_without_sale = get_posts( self::get_paid_products_not_on_sale_query_args() );
649
+
650
+		// combine products ID's with regular and sale price grater than zero and those without
651
+		// sale but regular price greater than zero
652
+		$woocommerce_paid_product_ids = array_merge( $paid_product_ids_with_sale, $paid_product_ids_without_sale );
653
+
654
+		// if
655
+		if( empty($woocommerce_paid_product_ids) ){
656
+			return array( );
657
+		}
658
+		return $woocommerce_paid_product_ids;
659
+
660
+	}
661
+
662
+	/**
663
+	 * Get all free courses.
664
+	 *
665
+	 * This course that have a WC product attached
666
+	 * that has a price or sale price of zero and
667
+	 * other courses with no WooCommerce products
668
+	 * attached.
669
+	 *
670
+	 * @since 1.9.0
671
+	 *
672
+	 * @return array
673
+	 */
674
+	public static function get_free_courses(){
675
+
676
+		$free_course_query_args = Sensei_Course::get_default_query_args();
677
+		$free_course_query_args[ 'meta_query' ] = self::get_free_courses_meta_query_args();
678
+
679
+		// don't show any paid courses
680
+		$courses = self::get_paid_courses();
681
+		$ids = array();
682
+		foreach( $courses as $course ){
683
+			$ids[] = $course->ID;
684
+		}
685
+		$free_course_query_args[ 'post__not_in' ] =  $ids;
686
+
687
+		return get_posts( $free_course_query_args );
688
+
689
+	}
690
+
691
+	/**
692
+	 * Return all products that are not free
693
+	 *
694
+	 * @since 1.9.0
695
+	 * @return array
696
+	 */
697
+	public static function get_paid_courses(){
698
+
699
+		$paid_course_query_args = Sensei_Course::get_default_query_args();
700
+
701
+		$paid_course_query_args[ 'meta_query' ] = self::get_paid_courses_meta_query_args();
702
+
703
+		return get_posts(  $paid_course_query_args );
704
+	}
705
+
706
+	/**
707
+	 * Show the WooCommerce add to cart button for the  current course
708
+	 *
709
+	 * The function will only show the button if
710
+	 * 1- the user can buy the course
711
+	 * 2- if they have completed their pre-requisite
712
+	 * 3- if the course has a valid product attached
713
+	 *
714
+	 * @since 1.9.0
715
+	 * @param int $course_id
716
+	 * @return string $html markup for the button or nothing if user not allowed to buy
717
+	 */
718
+	public static function the_add_to_cart_button_html( $course_id ){
719
+
720
+		if ( ! Sensei_Course::is_prerequisite_complete( $course_id )) {
721
+			return '';
722
+		}
723
+
724
+		$wc_post_id = self::get_course_product_id( $course_id );
725
+
726
+		// Check if customer purchased the product
727
+		if ( self::has_customer_bought_product(  get_current_user_id(), $wc_post_id )
728
+			|| empty( $wc_post_id ) ) {
729
+
730
+			return '';
731
+
732
+		}
733
+
734
+		// based on simple.php in WC templates/single-product/add-to-cart/
735
+		// Get the product
736
+		$product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
737
+
738
+		// do not show the button for invalid products, non purchasable products, out
739
+		// of stock product or if course is already in cart
740
+		if ( ! isset ( $product )
741
+			|| ! is_object( $product )
742
+			|| ! $product->is_purchasable()
743
+			|| ! $product->is_in_stock()
744
+			|| self::is_course_in_cart( $wc_post_id ) ) {
745
+
746
+			return '';
747
+
748
+		}
421 749
 
422
-    /**
423
-     * Checks the cart to see if a course is in the cart.
424
-     *
425
-     * @param $course_id
426
-     * @return bool
427
-     */
428
-    public static function is_course_in_cart( $course_id ){
429
-
430
-        $wc_post_id = absint( get_post_meta( $course_id, '_course_woocommerce_product', true ) );
431
-        $user_course_status_id = Sensei_Utils::user_started_course( $course_id , get_current_user_id() );
432
-
433
-        if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
434
-
435
-            if ( self::is_product_in_cart( $wc_post_id ) ) {
436
-
437
-                return true;
438
-
439
-            }
440
-
441
-        }
442
-
443
-        return false;
444
-
445
-    }// is_course_in_cart
446
-
447
-    /**
448
-     * Check the cart to see if the product is in the cart
449
-     *
450
-     * @param $product_id
451
-     * @return bool
452
-     */
453
-    public static function is_product_in_cart( $product_id ){
454
-
455
-        if ( 0 < $product_id ) {
456
-
457
-            $product = wc_get_product( $product_id );
458
-
459
-            $parent_id = '';
460
-            if( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) {
461
-                $wc_product_id = $product->parent->id;
462
-            }
463
-            foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
464
-
465
-                $cart_product = $values['data'];
466
-                if( $product_id == $cart_product->id ) {
467
-
468
-                    return true;
469
-
470
-                }
471
-
472
-            }
473
-        } // End If Statement
474
-
475
-        return false;
476
-
477
-    } // end is_product_in_car
478
-
479
-    /**
480
-     * Get all free WooCommerce products
481
-     *
482
-     * @since 1.9.0
483
-     *
484
-     * @return array $free_products{
485
-     *  @type int $wp_post_id
486
-     * }
487
-     */
488
-    public static function get_free_product_ids(){
489
-
490
-        return  get_posts( array(
491
-            'post_type' => 'product',
492
-            'posts_per_page' => '1000',
493
-            'fields' => 'ids',
494
-            'meta_query'=> array(
495
-                'relation' => 'OR',
496
-                array(
497
-                    'key'=> '_regular_price',
498
-                    'value' => 0,
499
-                ),
500
-                array(
501
-                    'key'=> '_sale_price',
502
-                    'value' => 0,
503
-                ),
504
-            ),
505
-        ));
506
-
507
-    }// end get free product query
508
-
509
-    /**
510
-     * The metat query for courses that are free
511
-     *
512
-     * @since 1.9.0
513
-     * @return array $wp_meta_query_param
514
-     */
515
-    public static function get_free_courses_meta_query_args(){
516
-
517
-        return array(
518
-            'relation' => 'OR',
519
-            array(
520
-                'key'     => '_course_woocommerce_product',
521
-                'value' => '-',
522
-                'compare' => '=',
523
-            ),
524
-            array(
525
-                'key'     => '_course_woocommerce_product',
526
-                'value' => self::get_free_product_ids(),
527
-                'compare' => 'IN',
528
-            ),
529
-        );
530
-
531
-    }// get_free_courses_meta_query
532
-
533
-    /**
534
-     * The metat query for courses that are free
535
-     *
536
-     * @since 1.9.0
537
-     * @return array $wp_query_meta_query_args_param
538
-     */
539
-    public static function get_paid_courses_meta_query_args(){
540
-
541
-        $paid_product_ids = self::get_paid_product_ids();
542
-
543
-        return array(
544
-            array(
545
-                'key'     => '_course_woocommerce_product',
546
-                // when empty we give a false post_id to ensure the caller doesn't get any courses for their
547
-                // query
548
-                'value' => empty( $paid_product_ids  )? '-1000' : $paid_product_ids,
549
-                'compare' => 'IN',
550
-            ),
551
-        );
552
-
553
-    }// get_free_courses_meta_query
554
-
555
-    /**
556
-     * The WordPress Query args
557
-     * for paid products on sale
558
-     *
559
-     * @since 1.9.0
560
-     * @return array $product_query_args
561
-     */
562
-    public static function get_paid_products_on_sale_query_args(){
563
-
564
-        $args = array(
565
-                   'post_type' 		=> 'product',
566
-                   'posts_per_page' 		=> 1000,
567
-                   'orderby'         	=> 'date',
568
-                   'order'           	=> 'DESC',
569
-                   'suppress_filters' 	=> 0
570
-        );
571
-
572
-        $args[ 'fields' ]     = 'ids';
573
-
574
-        $args[ 'meta_query' ] = array(
575
-            'relation' => 'AND',
576
-            array(
577
-                'key'=> '_regular_price',
578
-                'compare' => '>',
579
-                'value' => 0,
580
-            ),
581
-            array(
582
-                'key'=> '_sale_price',
583
-                'compare' => '>',
584
-                'value' => 0,
585
-            ),
586
-        );
587
-
588
-        return $args;
589
-
590
-    } // get_paid_products_on_sale_query_args
591
-
592
-
593
-    /**
594
-     * Return the WordPress query args for
595
-     * products not on sale but that is not a free
596
-     *
597
-     * @since 1.9.0
598
-     *
599
-     * @return array
600
-     */
601
-    public static function get_paid_products_not_on_sale_query_args(){
602
-
603
-        $args = array(
604
-            'post_type' 		=> 'product',
605
-            'posts_per_page' 		=> 1000,
606
-            'orderby'         	=> 'date',
607
-            'order'           	=> 'DESC',
608
-            'suppress_filters' 	=> 0
609
-        );
610
-
611
-        $args[ 'fields' ]     = 'ids';
612
-        $args[ 'meta_query' ] = array(
613
-            'relation' => 'AND',
614
-            array(
615
-                'key'=> '_regular_price',
616
-                'compare' => '>',
617
-                'value' => 0,
618
-            ),
619
-            array(
620
-                'key'=> '_sale_price',
621
-                'compare' => '=',
622
-                'value' => '',
623
-            ),
624
-        );
625
-
626
-        return $args;
627
-
628
-
629
-    } // get_paid_courses_meta_query
630
-
631
-    /**
632
-     * Get all WooCommerce non-free product id's
633
-     *
634
-     * @since 1.9.0
635
-     *
636
-     * @return array $woocommerce_paid_product_ids
637
-     */
638
-    public static function get_paid_product_ids(){
639
-
640
-        // get all the paid WooCommerce products that has regular
641
-        // and sale price greater than 0
642
-        // will be used later to check for course with the id as meta
643
-        $paid_product_ids_with_sale =  get_posts( self::get_paid_products_on_sale_query_args() );
644
-
645
-        // get all the paid WooCommerce products that has regular price
646
-        // greater than 0 without a sale price
647
-        // will be used later to check for course with the id as meta
648
-        $paid_product_ids_without_sale = get_posts( self::get_paid_products_not_on_sale_query_args() );
649
-
650
-        // combine products ID's with regular and sale price grater than zero and those without
651
-        // sale but regular price greater than zero
652
-        $woocommerce_paid_product_ids = array_merge( $paid_product_ids_with_sale, $paid_product_ids_without_sale );
653
-
654
-        // if
655
-        if( empty($woocommerce_paid_product_ids) ){
656
-            return array( );
657
-        }
658
-        return $woocommerce_paid_product_ids;
659
-
660
-    }
661
-
662
-    /**
663
-     * Get all free courses.
664
-     *
665
-     * This course that have a WC product attached
666
-     * that has a price or sale price of zero and
667
-     * other courses with no WooCommerce products
668
-     * attached.
669
-     *
670
-     * @since 1.9.0
671
-     *
672
-     * @return array
673
-     */
674
-    public static function get_free_courses(){
675
-
676
-        $free_course_query_args = Sensei_Course::get_default_query_args();
677
-        $free_course_query_args[ 'meta_query' ] = self::get_free_courses_meta_query_args();
678
-
679
-        // don't show any paid courses
680
-        $courses = self::get_paid_courses();
681
-        $ids = array();
682
-        foreach( $courses as $course ){
683
-            $ids[] = $course->ID;
684
-        }
685
-        $free_course_query_args[ 'post__not_in' ] =  $ids;
686
-
687
-        return get_posts( $free_course_query_args );
688
-
689
-    }
690
-
691
-    /**
692
-     * Return all products that are not free
693
-     *
694
-     * @since 1.9.0
695
-     * @return array
696
-     */
697
-    public static function get_paid_courses(){
698
-
699
-        $paid_course_query_args = Sensei_Course::get_default_query_args();
700
-
701
-        $paid_course_query_args[ 'meta_query' ] = self::get_paid_courses_meta_query_args();
702
-
703
-        return get_posts(  $paid_course_query_args );
704
-    }
705
-
706
-    /**
707
-     * Show the WooCommerce add to cart button for the  current course
708
-     *
709
-     * The function will only show the button if
710
-     * 1- the user can buy the course
711
-     * 2- if they have completed their pre-requisite
712
-     * 3- if the course has a valid product attached
713
-     *
714
-     * @since 1.9.0
715
-     * @param int $course_id
716
-     * @return string $html markup for the button or nothing if user not allowed to buy
717
-     */
718
-    public static function the_add_to_cart_button_html( $course_id ){
719
-
720
-        if ( ! Sensei_Course::is_prerequisite_complete( $course_id )) {
721
-            return '';
722
-        }
723
-
724
-        $wc_post_id = self::get_course_product_id( $course_id );
725
-
726
-        // Check if customer purchased the product
727
-        if ( self::has_customer_bought_product(  get_current_user_id(), $wc_post_id )
728
-            || empty( $wc_post_id ) ) {
729
-
730
-            return '';
731
-
732
-        }
733
-
734
-        // based on simple.php in WC templates/single-product/add-to-cart/
735
-        // Get the product
736
-        $product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
737
-
738
-        // do not show the button for invalid products, non purchasable products, out
739
-        // of stock product or if course is already in cart
740
-        if ( ! isset ( $product )
741
-            || ! is_object( $product )
742
-            || ! $product->is_purchasable()
743
-            || ! $product->is_in_stock()
744
-            || self::is_course_in_cart( $wc_post_id ) ) {
745
-
746
-            return '';
747
-
748
-        }
749
-
750
-        //
751
-        // button  output:
752
-        //
753
-        ?>
750
+		//
751
+		// button  output:
752
+		//
753
+		?>
754 754
 
755 755
         <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>"
756 756
               class="cart"
@@ -783,69 +783,69 @@  discard block
 block discarded – undo
783 783
         </form>
784 784
 
785 785
         <?php
786
-    } // end the_add_to_cart_button_html
786
+	} // end the_add_to_cart_button_html
787 787
 
788
-    /**
789
-     * Alter the no permissions message on the single course page
790
-     * Changes the message to a WooCommerce specific message.
791
-     *
792
-     * @since 1.9.0
793
-     *
794
-     * @param $message
795
-     * @param $post_id
796
-     *
797
-     * @return string $message
798
-     */
799
-    public static function alter_no_permissions_message( $message, $post_id ){
788
+	/**
789
+	 * Alter the no permissions message on the single course page
790
+	 * Changes the message to a WooCommerce specific message.
791
+	 *
792
+	 * @since 1.9.0
793
+	 *
794
+	 * @param $message
795
+	 * @param $post_id
796
+	 *
797
+	 * @return string $message
798
+	 */
799
+	public static function alter_no_permissions_message( $message, $post_id ){
800 800
 
801
-        if( empty( $post_id ) || 'course'!=get_post_type( $post_id ) ){
802
-            return  $message;
803
-        }
801
+		if( empty( $post_id ) || 'course'!=get_post_type( $post_id ) ){
802
+			return  $message;
803
+		}
804 804
 
805
-        $product_id = self::get_course_product_id( $post_id );
805
+		$product_id = self::get_course_product_id( $post_id );
806 806
 
807
-        if( ! $product_id
808
-            || ! self::has_customer_bought_product( get_current_user_id(),$product_id ) ){
807
+		if( ! $product_id
808
+			|| ! self::has_customer_bought_product( get_current_user_id(),$product_id ) ){
809 809
 
810
-            return $message;
810
+			return $message;
811 811
 
812
-        }
812
+		}
813 813
 
814
-        ob_start();
815
-        self::the_course_no_permissions_message( $post_id );
816
-        $woocommerce_course_no_permissions_message = ob_get_clean();
814
+		ob_start();
815
+		self::the_course_no_permissions_message( $post_id );
816
+		$woocommerce_course_no_permissions_message = ob_get_clean();
817 817
 
818
-        return $woocommerce_course_no_permissions_message ;
818
+		return $woocommerce_course_no_permissions_message ;
819 819
 
820
-    }
821
-    /**
822
-     * Show the no permissions message when a user is logged in
823
-     * and have not yet purchased the current course
824
-     *
825
-     * @since 1.9.0
826
-     */
827
-    public static function the_course_no_permissions_message( $course_id ){
820
+	}
821
+	/**
822
+	 * Show the no permissions message when a user is logged in
823
+	 * and have not yet purchased the current course
824
+	 *
825
+	 * @since 1.9.0
826
+	 */
827
+	public static function the_course_no_permissions_message( $course_id ){
828 828
 
829
-        // login link
830
-        $my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
831
-	    $login_link =  '<a href="' . esc_url( get_permalink( $my_courses_page_id ) ) . '">' . __( 'log in', 'woothemes-sensei' ) . '</a>';
832
-	    $wc_product_id =  self::get_course_product_id( $course_id );
829
+		// login link
830
+		$my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
831
+		$login_link =  '<a href="' . esc_url( get_permalink( $my_courses_page_id ) ) . '">' . __( 'log in', 'woothemes-sensei' ) . '</a>';
832
+		$wc_product_id =  self::get_course_product_id( $course_id );
833 833
 
834
-	    if ( self::is_product_in_cart( $wc_product_id ) ) {
834
+		if ( self::is_product_in_cart( $wc_product_id ) ) {
835 835
 
836
-		    $cart_link = '<a href="' . wc_get_checkout_url() . '" title="' . __( 'Checkout','woocommerce' ) . '">' . __( 'checkout', 'woocommerce' ) . '</a>';
836
+			$cart_link = '<a href="' . wc_get_checkout_url() . '" title="' . __( 'Checkout','woocommerce' ) . '">' . __( 'checkout', 'woocommerce' ) . '</a>';
837 837
 
838
-		    $message = sprintf( __( 'This course is already in your cart, please proceed to %1$s, to gain access.', 'woothemes-sensei' ), $cart_link );
839
-		    ?>
838
+			$message = sprintf( __( 'This course is already in your cart, please proceed to %1$s, to gain access.', 'woothemes-sensei' ), $cart_link );
839
+			?>
840 840
 		    <span class="add-to-cart-login">
841 841
 		            <?php echo $message; ?>
842 842
 		        </span>
843 843
 
844 844
 		    <?php
845 845
 
846
-	    } elseif ( is_user_logged_in() ) {
846
+		} elseif ( is_user_logged_in() ) {
847 847
 
848
-		    ?>
848
+			?>
849 849
 		    <style>
850 850
 			    .sensei-message.alert {
851 851
 				    display: none;
@@ -854,346 +854,346 @@  discard block
 block discarded – undo
854 854
 
855 855
 		    <?php
856 856
 
857
-	    } else {
857
+		} else {
858 858
 
859
-		    $message = sprintf( __( 'Or %1$s to access your purchased courses', 'woothemes-sensei' ), $login_link );
860
-	        ?>
859
+			$message = sprintf( __( 'Or %1$s to access your purchased courses', 'woothemes-sensei' ), $login_link );
860
+			?>
861 861
 		        <span class="add-to-cart-login">
862 862
 		            <?php echo $message; ?>
863 863
 		        </span>
864 864
 
865 865
 	        <?php
866
-	    }
867
-    }
866
+		}
867
+	}
868 868
 
869
-    /**
870
-     * Checks if a user has bought a product item.
871
-     *
872
-     * @since  1.9.0
873
-     *
874
-     * @param  int $user_id
875
-     * @param  int $product_id
876
-     *
877
-     * @return bool
878
-     */
879
-    public static function has_customer_bought_product ( $user_id, $product_id ){
880
-
881
-        $orders = self::get_user_product_orders( $user_id, $product_id );
882
-
883
-        foreach ( $orders as $order_id ) {
884
-
885
-            $order = new WC_Order( $order_id->ID );
886
-
887
-            // wc-active is the subscriptions complete status
888
-            if ( ! in_array( $order->post_status, array( 'wc-complete','wc-processing' ) )
889
-                || ! ( 0 < sizeof( $order->get_items() ) )  ){
890
-
891
-                continue;
869
+	/**
870
+	 * Checks if a user has bought a product item.
871
+	 *
872
+	 * @since  1.9.0
873
+	 *
874
+	 * @param  int $user_id
875
+	 * @param  int $product_id
876
+	 *
877
+	 * @return bool
878
+	 */
879
+	public static function has_customer_bought_product ( $user_id, $product_id ){
892 880
 
893
-            }
881
+		$orders = self::get_user_product_orders( $user_id, $product_id );
894 882
 
895
-            foreach( $order->get_items() as $item ) {
883
+		foreach ( $orders as $order_id ) {
896 884
 
897
-                // Check if user has bought product
898
-                if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) {
885
+			$order = new WC_Order( $order_id->ID );
899 886
 
900
-                    // Check if user has an active subscription for product
901
-                    if( class_exists( 'WC_Subscriptions_Manager' ) ) {
902
-                        $sub_key = wcs_get_subscription( $order );
903
-                        if( $sub_key ) {
904
-                            $sub = wcs_get_subscription( $sub_key );
905
-                            if( $sub && isset( $sub['status'] ) ) {
906
-                                if( 'active' == $sub['status'] ) {
907
-                                    return true;
908
-                                } else {
909
-                                    return false;
910
-                                }
911
-                            }
912
-                        }
913
-                    }
887
+			// wc-active is the subscriptions complete status
888
+			if ( ! in_array( $order->post_status, array( 'wc-complete','wc-processing' ) )
889
+				|| ! ( 0 < sizeof( $order->get_items() ) )  ){
914 890
 
915
-                    // Customer has bought product
916
-                    return true;
917
-                } // End If Statement
891
+				continue;
918 892
 
919
-            } // End For each item
893
+			}
920 894
 
921
-        } // End For each order
895
+			foreach( $order->get_items() as $item ) {
922 896
 
923
-	    // default is no order
924
-	    return false;
897
+				// Check if user has bought product
898
+				if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) {
925 899
 
926
-    } // end has customer bought product
900
+					// Check if user has an active subscription for product
901
+					if( class_exists( 'WC_Subscriptions_Manager' ) ) {
902
+						$sub_key = wcs_get_subscription( $order );
903
+						if( $sub_key ) {
904
+							$sub = wcs_get_subscription( $sub_key );
905
+							if( $sub && isset( $sub['status'] ) ) {
906
+								if( 'active' == $sub['status'] ) {
907
+									return true;
908
+								} else {
909
+									return false;
910
+								}
911
+							}
912
+						}
913
+					}
927 914
 
928
-    /**
929
-     * Return the product id for the given course
930
-     *
931
-     * @since 1.9.0
932
-     *
933
-     * @param int $course_id
934
-     *
935
-     * @return string $woocommerce_product_id or false if none exist
936
-     *
937
-     */
938
-    public static function get_course_product_id( $course_id ){
915
+					// Customer has bought product
916
+					return true;
917
+				} // End If Statement
939 918
 
940
-        $product_id =  get_post_meta( $course_id, '_course_woocommerce_product', true );
919
+			} // End For each item
941 920
 
942
-        if( empty( $product_id ) || 'product' != get_post_type( $product_id ) ){
943
-            return false;
944
-        }
921
+		} // End For each order
945 922
 
946
-        return $product_id;
923
+		// default is no order
924
+		return false;
947 925
 
948
-    }
926
+	} // end has customer bought product
949 927
 
950
-    /**
951
-     * Alter the body classes adding WooCommerce to the body
952
-     *
953
-     * Speciall cases where this is needed is template no-permissions.php
954
-     *
955
-     * @param array $classes
956
-     * @return array
957
-     */
958
-    public static function add_woocommerce_body_class( $classes ){
928
+	/**
929
+	 * Return the product id for the given course
930
+	 *
931
+	 * @since 1.9.0
932
+	 *
933
+	 * @param int $course_id
934
+	 *
935
+	 * @return string $woocommerce_product_id or false if none exist
936
+	 *
937
+	 */
938
+	public static function get_course_product_id( $course_id ){
939
+
940
+		$product_id =  get_post_meta( $course_id, '_course_woocommerce_product', true );
941
+
942
+		if( empty( $product_id ) || 'product' != get_post_type( $product_id ) ){
943
+			return false;
944
+		}
945
+
946
+		return $product_id;
947
+
948
+	}
949
+
950
+	/**
951
+	 * Alter the body classes adding WooCommerce to the body
952
+	 *
953
+	 * Speciall cases where this is needed is template no-permissions.php
954
+	 *
955
+	 * @param array $classes
956
+	 * @return array
957
+	 */
958
+	public static function add_woocommerce_body_class( $classes ){
959 959
 
960
-        if( ! in_array( 'woocommerce', $classes ) && defined( 'SENSEI_NO_PERMISSION' ) && SENSEI_NO_PERMISSION ){
960
+		if( ! in_array( 'woocommerce', $classes ) && defined( 'SENSEI_NO_PERMISSION' ) && SENSEI_NO_PERMISSION ){
961 961
 
962
-            $classes[] ='woocommerce';
962
+			$classes[] ='woocommerce';
963 963
 
964
-        }
964
+		}
965 965
 
966
-        return $classes;
966
+		return $classes;
967 967
 
968
-    }
968
+	}
969 969
 
970
-    /**
971
-     * Responds to when a subscription product is purchased
972
-     *
973
-     * @since   1.2.0
974
-     * @since  1.9.0 move to class Sensei_WC
975
-     *
976
-     * @param   WC_Order $order
977
-     *
978
-     * @return  void
979
-     */
980
-    public static function activate_subscription(  $order ) {
970
+	/**
971
+	 * Responds to when a subscription product is purchased
972
+	 *
973
+	 * @since   1.2.0
974
+	 * @since  1.9.0 move to class Sensei_WC
975
+	 *
976
+	 * @param   WC_Order $order
977
+	 *
978
+	 * @return  void
979
+	 */
980
+	public static function activate_subscription(  $order ) {
981 981
 
982
-        $order_user = get_user_by('id', $order->user_id);
983
-        $user['ID'] = $order_user->ID;
984
-        $user['user_login'] = $order_user->user_login;
985
-        $user['user_email'] = $order_user->user_email;
986
-        $user['user_url'] = $order_user->user_url;
982
+		$order_user = get_user_by('id', $order->user_id);
983
+		$user['ID'] = $order_user->ID;
984
+		$user['user_login'] = $order_user->user_login;
985
+		$user['user_email'] = $order_user->user_email;
986
+		$user['user_url'] = $order_user->user_url;
987 987
 
988
-        // Run through each product ordered
989
-        if ( ! sizeof($order->get_items() )>0 ) {
988
+		// Run through each product ordered
989
+		if ( ! sizeof($order->get_items() )>0 ) {
990 990
 
991
-            return;
991
+			return;
992 992
 
993
-        }
993
+		}
994 994
 
995
-        foreach($order->get_items() as $item) {
995
+		foreach($order->get_items() as $item) {
996 996
 
997
-            $product_type = '';
997
+			$product_type = '';
998 998
 
999
-            if (isset($item['variation_id']) && $item['variation_id'] > 0) {
999
+			if (isset($item['variation_id']) && $item['variation_id'] > 0) {
1000 1000
 
1001
-                $item_id = $item['variation_id'];
1002
-                $product_type = 'subscription_variation';
1001
+				$item_id = $item['variation_id'];
1002
+				$product_type = 'subscription_variation';
1003 1003
 
1004
-            } else {
1004
+			} else {
1005 1005
 
1006
-                $item_id = $item['product_id'];
1006
+				$item_id = $item['product_id'];
1007 1007
 
1008
-            } // End If Statement
1008
+			} // End If Statement
1009 1009
 
1010
-            $_product = self::get_product_object( $item_id, $product_type );
1010
+			$_product = self::get_product_object( $item_id, $product_type );
1011 1011
 
1012
-            // Get courses that use the WC product
1013
-            $courses = array();
1012
+			// Get courses that use the WC product
1013
+			$courses = array();
1014 1014
 
1015
-            if ( ! in_array( $product_type, self::get_subscription_types() ) ) {
1015
+			if ( ! in_array( $product_type, self::get_subscription_types() ) ) {
1016 1016
 
1017
-                $courses = Sensei()->course->get_product_courses( $item_id );
1017
+				$courses = Sensei()->course->get_product_courses( $item_id );
1018 1018
 
1019
-            } // End If Statement
1019
+			} // End If Statement
1020 1020
 
1021
-            // Loop and add the user to the course.
1022
-            foreach ( $courses as $course_item ){
1021
+			// Loop and add the user to the course.
1022
+			foreach ( $courses as $course_item ){
1023 1023
 
1024
-                Sensei_Utils::user_start_course( intval( $user['ID'] ), $course_item->ID  );
1024
+				Sensei_Utils::user_start_course( intval( $user['ID'] ), $course_item->ID  );
1025 1025
 
1026
-            } // End For Loop
1026
+			} // End For Loop
1027 1027
 
1028
-        } // End For Loop
1028
+		} // End For Loop
1029 1029
 
1030
-    } // End activate_subscription()
1030
+	} // End activate_subscription()
1031 1031
 
1032
-    /**
1033
-     * Adds detail to to the WooCommerce order
1034
-     *
1035
-     * @since   1.4.5
1036
-     * @since 1.9.0 function moved to class Sensei_WC and renamed from sensei_woocommerce_email_course_details to email_course_details
1037
-     *
1038
-     * @param   WC_Order $order
1039
-     *
1040
-     * @return  void
1041
-     */
1042
-    public static function email_course_details(  $order ){
1032
+	/**
1033
+	 * Adds detail to to the WooCommerce order
1034
+	 *
1035
+	 * @since   1.4.5
1036
+	 * @since 1.9.0 function moved to class Sensei_WC and renamed from sensei_woocommerce_email_course_details to email_course_details
1037
+	 *
1038
+	 * @param   WC_Order $order
1039
+	 *
1040
+	 * @return  void
1041
+	 */
1042
+	public static function email_course_details(  $order ){
1043 1043
 
1044
-        global $woocommerce;
1044
+		global $woocommerce;
1045 1045
 
1046
-        // exit early if not wc-completed or wc-processing
1047
-        if( 'wc-completed' != $order->post_status
1048
-            && 'wc-processing' != $order->post_status  ) {
1049
-            return;
1050
-        }
1046
+		// exit early if not wc-completed or wc-processing
1047
+		if( 'wc-completed' != $order->post_status
1048
+			&& 'wc-processing' != $order->post_status  ) {
1049
+			return;
1050
+		}
1051 1051
 
1052
-        $order_items = $order->get_items();
1053
-        $order_id = $order->id;
1052
+		$order_items = $order->get_items();
1053
+		$order_id = $order->id;
1054 1054
 
1055
-        //If object have items go through them all to find course
1056
-        if ( 0 < sizeof( $order_items ) ) {
1055
+		//If object have items go through them all to find course
1056
+		if ( 0 < sizeof( $order_items ) ) {
1057 1057
 
1058
-            $course_details_html =  '<h2>' . __( 'Course details', 'woothemes-sensei' ) . '</h2>';
1059
-            $order_contains_courses = false;
1058
+			$course_details_html =  '<h2>' . __( 'Course details', 'woothemes-sensei' ) . '</h2>';
1059
+			$order_contains_courses = false;
1060 1060
 
1061 1061
 
1062
-            foreach ( $order_items as $item ) {
1062
+			foreach ( $order_items as $item ) {
1063 1063
 
1064
-                $product_type = '';
1065
-                if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1066
-                    // If item has variation_id then its from variation
1067
-                    $item_id = $item['variation_id'];
1068
-                    $product_type = 'variation';
1069
-                } else {
1070
-                    // If not its real product set its id to item_id
1071
-                    $item_id = $item['product_id'];
1072
-                } // End If Statement
1064
+				$product_type = '';
1065
+				if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1066
+					// If item has variation_id then its from variation
1067
+					$item_id = $item['variation_id'];
1068
+					$product_type = 'variation';
1069
+				} else {
1070
+					// If not its real product set its id to item_id
1071
+					$item_id = $item['product_id'];
1072
+				} // End If Statement
1073 1073
 
1074
-                $user_id = get_post_meta( $order_id, '_customer_user', true );
1074
+				$user_id = get_post_meta( $order_id, '_customer_user', true );
1075 1075
 
1076
-                if( $user_id ) {
1076
+				if( $user_id ) {
1077 1077
 
1078
-                    // Get all courses for product
1079
-                    $args = array(
1080
-                        'posts_per_page' => -1,
1081
-                        'post_type' => 'course',
1082
-                        'meta_query' => array(
1083
-                            array(
1084
-                                'key' => '_course_woocommerce_product',
1085
-                                'value' => $item_id
1086
-                            )
1087
-                        ),
1088
-                        'orderby' => 'menu_order date',
1089
-                        'order' => 'ASC',
1090
-                    );
1091
-                    $courses = get_posts( $args );
1078
+					// Get all courses for product
1079
+					$args = array(
1080
+						'posts_per_page' => -1,
1081
+						'post_type' => 'course',
1082
+						'meta_query' => array(
1083
+							array(
1084
+								'key' => '_course_woocommerce_product',
1085
+								'value' => $item_id
1086
+							)
1087
+						),
1088
+						'orderby' => 'menu_order date',
1089
+						'order' => 'ASC',
1090
+					);
1091
+					$courses = get_posts( $args );
1092 1092
 
1093
-                    if( $courses && count( $courses ) > 0 ) {
1093
+					if( $courses && count( $courses ) > 0 ) {
1094 1094
 
1095
-                        foreach( $courses as $course ) {
1095
+						foreach( $courses as $course ) {
1096 1096
 
1097
-                            $title = $course->post_title;
1098
-                            $permalink = get_permalink( $course->ID );
1099
-                            $order_contains_courses = true;
1100
-                            $course_details_html .=  '<p><strong>' . sprintf( __( 'View course: %1$s', 'woothemes-sensei' ), '</strong><a href="' . esc_url( $permalink ) . '">' . $title . '</a>' ) . '</p>';
1101
-                        }
1097
+							$title = $course->post_title;
1098
+							$permalink = get_permalink( $course->ID );
1099
+							$order_contains_courses = true;
1100
+							$course_details_html .=  '<p><strong>' . sprintf( __( 'View course: %1$s', 'woothemes-sensei' ), '</strong><a href="' . esc_url( $permalink ) . '">' . $title . '</a>' ) . '</p>';
1101
+						}
1102 1102
 
1103 1103
 
1104
-                    } // end if has courses
1104
+					} // end if has courses
1105 1105
 
1106
-                } // end if $userPid
1106
+				} // end if $userPid
1107 1107
 
1108
-            } // end for each order item
1108
+			} // end for each order item
1109 1109
 
1110
-            // Output Course details
1111
-            if( $order_contains_courses ){
1110
+			// Output Course details
1111
+			if( $order_contains_courses ){
1112 1112
 
1113
-                echo $course_details_html;
1113
+				echo $course_details_html;
1114 1114
 
1115
-            }
1115
+			}
1116 1116
 
1117 1117
 
1118
-        } // end if  order items not empty
1118
+		} // end if  order items not empty
1119 1119
 
1120
-    }// end email_course_details
1120
+	}// end email_course_details
1121 1121
 
1122
-    /**
1123
-     * sensei_woocommerce_complete_order description
1124
-     * @since   1.0.3
1125
-     * @access  public
1126
-     * @param   int $order_id WC order ID
1127
-     * @return  void
1128
-     */
1129
-    public static function complete_order ( $order_id = 0 ) {
1122
+	/**
1123
+	 * sensei_woocommerce_complete_order description
1124
+	 * @since   1.0.3
1125
+	 * @access  public
1126
+	 * @param   int $order_id WC order ID
1127
+	 * @return  void
1128
+	 */
1129
+	public static function complete_order ( $order_id = 0 ) {
1130 1130
 
1131
-        $order_user = array();
1131
+		$order_user = array();
1132 1132
 
1133
-        // Check for WooCommerce
1134
-        if ( Sensei_WC::is_woocommerce_active() && ( 0 < $order_id ) ) {
1135
-            // Get order object
1136
-            $order = new WC_Order( $order_id );
1133
+		// Check for WooCommerce
1134
+		if ( Sensei_WC::is_woocommerce_active() && ( 0 < $order_id ) ) {
1135
+			// Get order object
1136
+			$order = new WC_Order( $order_id );
1137 1137
 
1138
-	        if ( ! in_array( $order->get_status(), array( 'complete', 'processing' ) ) ) {
1138
+			if ( ! in_array( $order->get_status(), array( 'complete', 'processing' ) ) ) {
1139 1139
 
1140
-		        return;
1140
+				return;
1141 1141
 
1142
-	        }
1142
+			}
1143 1143
 
1144
-            $user = get_user_by( 'id', $order->get_user_id() );
1145
-            $order_user['ID'] = $user->ID;
1146
-            $order_user['user_login'] = $user->user_login;
1147
-            $order_user['user_email'] = $user->user_email;
1148
-            $order_user['user_url'] = $user->user_url;
1149
-            // Run through each product ordered
1150
-            if ( 0 < sizeof( $order->get_items() ) ) {
1144
+			$user = get_user_by( 'id', $order->get_user_id() );
1145
+			$order_user['ID'] = $user->ID;
1146
+			$order_user['user_login'] = $user->user_login;
1147
+			$order_user['user_email'] = $user->user_email;
1148
+			$order_user['user_url'] = $user->user_url;
1149
+			// Run through each product ordered
1150
+			if ( 0 < sizeof( $order->get_items() ) ) {
1151 1151
 
1152
-                foreach( $order->get_items() as $item ) {
1152
+				foreach( $order->get_items() as $item ) {
1153 1153
 
1154
-                    $product_type = '';
1155
-                    if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1154
+					$product_type = '';
1155
+					if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1156 1156
 
1157
-                        $item_id = $item['variation_id'];
1158
-                        $product_type = 'variation';
1157
+						$item_id = $item['variation_id'];
1158
+						$product_type = 'variation';
1159 1159
 
1160
-                    } else {
1160
+					} else {
1161 1161
 
1162
-                        $item_id = $item['product_id'];
1162
+						$item_id = $item['product_id'];
1163 1163
 
1164
-                    } // End If Statement
1164
+					} // End If Statement
1165 1165
 
1166
-                    $_product = Sensei_WC::get_product_object( $item_id, $product_type );
1166
+					$_product = Sensei_WC::get_product_object( $item_id, $product_type );
1167 1167
 
1168
-                    // Get courses that use the WC product
1169
-                    $courses = Sensei()->course->get_product_courses( $_product->id );
1168
+					// Get courses that use the WC product
1169
+					$courses = Sensei()->course->get_product_courses( $_product->id );
1170 1170
 
1171
-                    // Loop and update those courses
1172
-                    foreach ( $courses as $course_item ) {
1171
+					// Loop and update those courses
1172
+					foreach ( $courses as $course_item ) {
1173 1173
 
1174
-                        $update_course = self::course_update( $course_item->ID, $order_user );
1174
+						$update_course = self::course_update( $course_item->ID, $order_user );
1175 1175
 
1176
-                    } // End For Loop
1176
+					} // End For Loop
1177 1177
 
1178
-                } // End For Loop
1178
+				} // End For Loop
1179 1179
 
1180
-            } // End If Statement
1181
-            // Add meta to indicate that payment has been completed successfully
1182
-            update_post_meta( $order_id, 'sensei_payment_complete', '1' );
1180
+			} // End If Statement
1181
+			// Add meta to indicate that payment has been completed successfully
1182
+			update_post_meta( $order_id, 'sensei_payment_complete', '1' );
1183 1183
 
1184
-        } // End If Statement
1184
+		} // End If Statement
1185 1185
 
1186
-    } // End sensei_woocommerce_complete_order()
1186
+	} // End sensei_woocommerce_complete_order()
1187 1187
 
1188
-    /**
1189
-     * Responds to when an order is cancelled.
1190
-     *
1191
-     * @since   1.2.0
1192
-     * @since   1.9.0 Move function to the Sensei_WC class
1193
-     * @param   integer| WC_Order $order_id order ID
1194
-     * @return  void
1195
-     */
1196
-    public static function cancel_order ( $order_id ) {
1188
+	/**
1189
+	 * Responds to when an order is cancelled.
1190
+	 *
1191
+	 * @since   1.2.0
1192
+	 * @since   1.9.0 Move function to the Sensei_WC class
1193
+	 * @param   integer| WC_Order $order_id order ID
1194
+	 * @return  void
1195
+	 */
1196
+	public static function cancel_order ( $order_id ) {
1197 1197
 
1198 1198
 		// Get order object
1199 1199
 		if( is_object( $order_id ) ){
@@ -1211,428 +1211,428 @@  discard block
 block discarded – undo
1211 1211
 
1212 1212
 		}
1213 1213
 
1214
-        // Run through each product ordered
1215
-        if ( 0 < sizeof( $order->get_items() ) ) {
1214
+		// Run through each product ordered
1215
+		if ( 0 < sizeof( $order->get_items() ) ) {
1216 1216
 
1217
-            // Get order user
1218
-            $user_id = $order->__get( 'user_id' );
1217
+			// Get order user
1218
+			$user_id = $order->__get( 'user_id' );
1219 1219
 
1220
-            foreach( $order->get_items() as $item ) {
1220
+			foreach( $order->get_items() as $item ) {
1221 1221
 
1222
-                $product_type = '';
1223
-                if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1222
+				$product_type = '';
1223
+				if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1224 1224
 
1225
-                    $item_id = $item['variation_id'];
1226
-                    $product_type = 'variation';
1225
+					$item_id = $item['variation_id'];
1226
+					$product_type = 'variation';
1227 1227
 
1228
-                } else {
1228
+				} else {
1229 1229
 
1230
-                    $item_id = $item['product_id'];
1230
+					$item_id = $item['product_id'];
1231 1231
 
1232
-                } // End If Statement
1232
+				} // End If Statement
1233 1233
 
1234
-                $_product = Sensei_WC::get_product_object( $item_id, $product_type );
1234
+				$_product = Sensei_WC::get_product_object( $item_id, $product_type );
1235 1235
 
1236
-                // Get courses that use the WC product
1237
-                $courses = array();
1238
-                $courses = Sensei()->course->get_product_courses( $item_id );
1236
+				// Get courses that use the WC product
1237
+				$courses = array();
1238
+				$courses = Sensei()->course->get_product_courses( $item_id );
1239 1239
 
1240
-                // Loop and update those courses
1241
-                foreach ($courses as $course_item){
1240
+				// Loop and update those courses
1241
+				foreach ($courses as $course_item){
1242 1242
 
1243
-	                if( self::has_customer_bought_product( $user_id, $course_item->ID ) ){
1244
-		                continue;
1245
-	                }
1246
-                    // Check and Remove course from courses user meta
1247
-                    $dataset_changes = Sensei_Utils::sensei_remove_user_from_course( $course_item->ID, $user_id );
1243
+					if( self::has_customer_bought_product( $user_id, $course_item->ID ) ){
1244
+						continue;
1245
+					}
1246
+					// Check and Remove course from courses user meta
1247
+					$dataset_changes = Sensei_Utils::sensei_remove_user_from_course( $course_item->ID, $user_id );
1248 1248
 
1249
-                } // End For Loop
1249
+				} // End For Loop
1250 1250
 
1251
-            } // End For Loop
1251
+			} // End For Loop
1252 1252
 
1253
-        } // End If Statement
1253
+		} // End If Statement
1254 1254
 
1255
-    } // End sensei_woocommerce_cancel_order()
1255
+	} // End sensei_woocommerce_cancel_order()
1256 1256
 
1257
-    /**
1258
-     * Returns the WooCommerce Product Object
1259
-     *
1260
-     * The code caters for pre and post WooCommerce 2.2 installations.
1261
-     *
1262
-     * @since   1.1.1
1263
-     * @access  public
1264
-     * @param   integer $wc_product_id Product ID or Variation ID
1265
-     * @param   string  $product_type  '' or 'variation'
1266
-     * @return   WC_Product $wc_product_object
1267
-     */
1268
-    public static function get_product_object ( $wc_product_id = 0, $product_type = '' ) {
1257
+	/**
1258
+	 * Returns the WooCommerce Product Object
1259
+	 *
1260
+	 * The code caters for pre and post WooCommerce 2.2 installations.
1261
+	 *
1262
+	 * @since   1.1.1
1263
+	 * @access  public
1264
+	 * @param   integer $wc_product_id Product ID or Variation ID
1265
+	 * @param   string  $product_type  '' or 'variation'
1266
+	 * @return   WC_Product $wc_product_object
1267
+	 */
1268
+	public static function get_product_object ( $wc_product_id = 0, $product_type = '' ) {
1269 1269
 
1270
-        $wc_product_object = false;
1271
-        if ( 0 < intval( $wc_product_id ) ) {
1270
+		$wc_product_object = false;
1271
+		if ( 0 < intval( $wc_product_id ) ) {
1272 1272
 
1273
-            // Get the product
1274
-            if ( function_exists( 'wc_get_product' ) ) {
1273
+			// Get the product
1274
+			if ( function_exists( 'wc_get_product' ) ) {
1275 1275
 
1276
-                $wc_product_object = wc_get_product( $wc_product_id ); // Post WC 2.3
1276
+				$wc_product_object = wc_get_product( $wc_product_id ); // Post WC 2.3
1277 1277
 
1278
-            } elseif ( function_exists( 'get_product' ) ) {
1278
+			} elseif ( function_exists( 'get_product' ) ) {
1279 1279
 
1280
-                $wc_product_object = get_product( $wc_product_id ); // Post WC 2.0
1280
+				$wc_product_object = get_product( $wc_product_id ); // Post WC 2.0
1281 1281
 
1282
-            } else {
1282
+			} else {
1283 1283
 
1284
-                // Pre WC 2.0
1285
-                if ( 'variation' == $product_type || 'subscription_variation' == $product_type ) {
1284
+				// Pre WC 2.0
1285
+				if ( 'variation' == $product_type || 'subscription_variation' == $product_type ) {
1286 1286
 
1287
-                    $wc_product_object = new WC_Product_Variation( $wc_product_id );
1287
+					$wc_product_object = new WC_Product_Variation( $wc_product_id );
1288 1288
 
1289
-                } else {
1289
+				} else {
1290 1290
 
1291
-                    $wc_product_object = new WC_Product( $wc_product_id );
1291
+					$wc_product_object = new WC_Product( $wc_product_id );
1292 1292
 
1293
-                } // End If Statement
1293
+				} // End If Statement
1294 1294
 
1295
-            } // End If Statement
1295
+			} // End If Statement
1296 1296
 
1297
-        } // End If Statement
1297
+		} // End If Statement
1298 1298
 
1299
-        return $wc_product_object;
1299
+		return $wc_product_object;
1300 1300
 
1301
-    } // End sensei_get_woocommerce_product_object()
1301
+	} // End sensei_get_woocommerce_product_object()
1302 1302
 
1303
-    /**
1304
-     * If customer has purchased the course, update Sensei to indicate that they are taking the course.
1305
-     *
1306
-     * @since  1.0.0
1307
-     * @since 1.9.0 move to class Sensei_WC
1308
-     *
1309
-     * @param  int 			$course_id  (default: 0)
1310
-     * @param  array/Object $order_user (default: array()) Specific user's data.
1311
-     *
1312
-     * @return bool|int
1313
-     */
1314
-    public static function course_update ( $course_id = 0, $order_user = array()  ) {
1303
+	/**
1304
+	 * If customer has purchased the course, update Sensei to indicate that they are taking the course.
1305
+	 *
1306
+	 * @since  1.0.0
1307
+	 * @since 1.9.0 move to class Sensei_WC
1308
+	 *
1309
+	 * @param  int 			$course_id  (default: 0)
1310
+	 * @param  array/Object $order_user (default: array()) Specific user's data.
1311
+	 *
1312
+	 * @return bool|int
1313
+	 */
1314
+	public static function course_update ( $course_id = 0, $order_user = array()  ) {
1315 1315
 
1316
-        global $current_user;
1316
+		global $current_user;
1317 1317
 
1318
-        if ( ! isset( $current_user ) || !$current_user->ID > 0 ) return false;
1318
+		if ( ! isset( $current_user ) || !$current_user->ID > 0 ) return false;
1319 1319
 
1320
-        $data_update = false;
1320
+		$data_update = false;
1321 1321
 
1322
-        // Get the product ID
1323
-        $wc_post_id = get_post_meta( intval( $course_id ), '_course_woocommerce_product', true );
1322
+		// Get the product ID
1323
+		$wc_post_id = get_post_meta( intval( $course_id ), '_course_woocommerce_product', true );
1324 1324
 
1325
-        // Check if in the admin
1326
-        if ( is_admin() ) {
1325
+		// Check if in the admin
1326
+		if ( is_admin() ) {
1327 1327
 
1328
-            $user_login = $order_user['user_login'];
1329
-            $user_email = $order_user['user_email'];
1330
-            $user_url = $order_user['user_url'];
1331
-            $user_id = $order_user['ID'];
1328
+			$user_login = $order_user['user_login'];
1329
+			$user_email = $order_user['user_email'];
1330
+			$user_url = $order_user['user_url'];
1331
+			$user_id = $order_user['ID'];
1332 1332
 
1333
-        } else {
1333
+		} else {
1334 1334
 
1335
-            $user_login = $current_user->user_login;
1336
-            $user_email = $current_user->user_email;
1337
-            $user_url = $current_user->user_url;
1338
-            $user_id = $current_user->ID;
1335
+			$user_login = $current_user->user_login;
1336
+			$user_email = $current_user->user_email;
1337
+			$user_url = $current_user->user_url;
1338
+			$user_id = $current_user->ID;
1339 1339
 
1340
-        } // End If Statement
1340
+		} // End If Statement
1341 1341
 
1342
-        // This doesn't appear to be purely WooCommerce related. Should it be in a separate function?
1343
-        $course_prerequisite_id = (int) get_post_meta( $course_id, '_course_prerequisite', true );
1344
-        if( 0 < absint( $course_prerequisite_id ) ) {
1342
+		// This doesn't appear to be purely WooCommerce related. Should it be in a separate function?
1343
+		$course_prerequisite_id = (int) get_post_meta( $course_id, '_course_prerequisite', true );
1344
+		if( 0 < absint( $course_prerequisite_id ) ) {
1345 1345
 
1346
-            $prereq_course_complete = Sensei_Utils::user_completed_course( $course_prerequisite_id, intval( $user_id ) );
1347
-            if ( ! $prereq_course_complete ) {
1346
+			$prereq_course_complete = Sensei_Utils::user_completed_course( $course_prerequisite_id, intval( $user_id ) );
1347
+			if ( ! $prereq_course_complete ) {
1348 1348
 
1349
-                // Remove all course user meta
1350
-                return Sensei_Utils::sensei_remove_user_from_course( $course_id, $user_id );
1349
+				// Remove all course user meta
1350
+				return Sensei_Utils::sensei_remove_user_from_course( $course_id, $user_id );
1351 1351
 
1352
-            }
1353
-        }
1352
+			}
1353
+		}
1354 1354
 
1355
-        $is_user_taking_course = Sensei_Utils::user_started_course( intval( $course_id ), intval( $user_id ) );
1355
+		$is_user_taking_course = Sensei_Utils::user_started_course( intval( $course_id ), intval( $user_id ) );
1356 1356
 
1357
-        if ( ! $is_user_taking_course
1358
-            && Sensei_WC::is_woocommerce_active()
1359
-            && 0 < $wc_post_id
1360
-            && Sensei_WC::has_customer_bought_product( $user_id, $wc_post_id ) ) {
1357
+		if ( ! $is_user_taking_course
1358
+			&& Sensei_WC::is_woocommerce_active()
1359
+			&& 0 < $wc_post_id
1360
+			&& Sensei_WC::has_customer_bought_product( $user_id, $wc_post_id ) ) {
1361 1361
 
1362
-	            $activity_logged = Sensei_Utils::user_start_course( intval( $user_id ), intval( $course_id ) );
1362
+				$activity_logged = Sensei_Utils::user_start_course( intval( $user_id ), intval( $course_id ) );
1363 1363
 
1364
-	            if ( true == $activity_logged ) {
1364
+				if ( true == $activity_logged ) {
1365 1365
 
1366
-		            $is_user_taking_course = true;
1366
+					$is_user_taking_course = true;
1367 1367
 
1368
-	            } // End If Statement
1368
+				} // End If Statement
1369 1369
 
1370
-        }// end if is user taking course
1370
+		}// end if is user taking course
1371 1371
 
1372
-        return $is_user_taking_course;
1372
+		return $is_user_taking_course;
1373 1373
 
1374
-    } // End course_update()
1374
+	} // End course_update()
1375 1375
 
1376
-    /**
1377
-     * Disable guest checkout if a course product is in the cart
1378
-     *
1379
-     * @since 1.1.0
1380
-     * @since 1.9.0 move to class Sensei_WC
1381
-     *
1382
-     * @param  boolean $guest_checkout Current guest checkout setting
1383
-     *
1384
-     * @return boolean                 Modified guest checkout setting
1385
-     */
1386
-    public static function disable_guest_checkout( $guest_checkout ) {
1376
+	/**
1377
+	 * Disable guest checkout if a course product is in the cart
1378
+	 *
1379
+	 * @since 1.1.0
1380
+	 * @since 1.9.0 move to class Sensei_WC
1381
+	 *
1382
+	 * @param  boolean $guest_checkout Current guest checkout setting
1383
+	 *
1384
+	 * @return boolean                 Modified guest checkout setting
1385
+	 */
1386
+	public static function disable_guest_checkout( $guest_checkout ) {
1387 1387
 
1388
-        if( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
1388
+		if( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
1389 1389
 
1390
-            if( isset( WC()->cart->cart_contents ) && count( WC()->cart->cart_contents ) > 0 ) {
1390
+			if( isset( WC()->cart->cart_contents ) && count( WC()->cart->cart_contents ) > 0 ) {
1391 1391
 
1392
-                foreach( WC()->cart->cart_contents as $cart_key => $product ) {
1393
-                    if( isset( $product['product_id'] ) ) {
1392
+				foreach( WC()->cart->cart_contents as $cart_key => $product ) {
1393
+					if( isset( $product['product_id'] ) ) {
1394 1394
 
1395
-                        $args = array(
1396
-                            'posts_per_page' => -1,
1397
-                            'post_type' => 'course',
1398
-                            'meta_query' => array(
1399
-                                array(
1400
-                                    'key' => '_course_woocommerce_product',
1401
-                                    'value' => $product['product_id']
1402
-                                )
1403
-                            )
1404
-                        );
1395
+						$args = array(
1396
+							'posts_per_page' => -1,
1397
+							'post_type' => 'course',
1398
+							'meta_query' => array(
1399
+								array(
1400
+									'key' => '_course_woocommerce_product',
1401
+									'value' => $product['product_id']
1402
+								)
1403
+							)
1404
+						);
1405 1405
 
1406
-                        $posts = get_posts( $args );
1406
+						$posts = get_posts( $args );
1407 1407
 
1408
-                        if( $posts && count( $posts ) > 0 ) {
1408
+						if( $posts && count( $posts ) > 0 ) {
1409 1409
 
1410
-                            foreach( $posts as $course ) {
1411
-                                $guest_checkout = '';
1412
-                                break;
1410
+							foreach( $posts as $course ) {
1411
+								$guest_checkout = '';
1412
+								break;
1413 1413
 
1414
-                            }
1415
-                        }
1414
+							}
1415
+						}
1416 1416
 
1417
-                    }
1417
+					}
1418 1418
 
1419
-                }
1419
+				}
1420 1420
 
1421
-            }
1422
-        }
1421
+			}
1422
+		}
1423 1423
 
1424
-        return $guest_checkout;
1424
+		return $guest_checkout;
1425 1425
 
1426
-    }// end disable_guest_checkout
1426
+	}// end disable_guest_checkout
1427 1427
 
1428
-    /**
1429
-     * Change order status with virtual products to completed
1430
-     *
1431
-     * @since  1.1.0
1432
-     * @since 1.9.0 move to class Sensei_WC
1433
-     *
1434
-     * @param string $order_status
1435
-     * @param int $order_id
1436
-     *
1437
-     * @return string
1438
-     **/
1439
-    public static function virtual_order_payment_complete( $order_status, $order_id ) {
1428
+	/**
1429
+	 * Change order status with virtual products to completed
1430
+	 *
1431
+	 * @since  1.1.0
1432
+	 * @since 1.9.0 move to class Sensei_WC
1433
+	 *
1434
+	 * @param string $order_status
1435
+	 * @param int $order_id
1436
+	 *
1437
+	 * @return string
1438
+	 **/
1439
+	public static function virtual_order_payment_complete( $order_status, $order_id ) {
1440 1440
 
1441
-        $order = new WC_Order( $order_id );
1441
+		$order = new WC_Order( $order_id );
1442 1442
 
1443
-        if ( ! isset ( $order ) ) return '';
1443
+		if ( ! isset ( $order ) ) return '';
1444 1444
 
1445
-        if ( $order_status == 'wc-processing' && ( $order->post_status == 'wc-on-hold' || $order->post_status == 'wc-pending' || $order->post_status == 'wc-failed' ) ) {
1445
+		if ( $order_status == 'wc-processing' && ( $order->post_status == 'wc-on-hold' || $order->post_status == 'wc-pending' || $order->post_status == 'wc-failed' ) ) {
1446 1446
 
1447
-            $virtual_order = true;
1447
+			$virtual_order = true;
1448 1448
 
1449
-            if ( count( $order->get_items() ) > 0 ) {
1449
+			if ( count( $order->get_items() ) > 0 ) {
1450 1450
 
1451
-                foreach( $order->get_items() as $item ) {
1451
+				foreach( $order->get_items() as $item ) {
1452 1452
 
1453
-                    if ( $item['product_id'] > 0 ) {
1454
-                        $_product = $order->get_product_from_item( $item );
1455
-                        if ( ! $_product->is_virtual() ) {
1453
+					if ( $item['product_id'] > 0 ) {
1454
+						$_product = $order->get_product_from_item( $item );
1455
+						if ( ! $_product->is_virtual() ) {
1456 1456
 
1457
-                            $virtual_order = false;
1458
-                            break;
1457
+							$virtual_order = false;
1458
+							break;
1459 1459
 
1460
-                        } // End If Statement
1460
+						} // End If Statement
1461 1461
 
1462
-                    } // End If Statement
1462
+					} // End If Statement
1463 1463
 
1464
-                } // End For Loop
1464
+				} // End For Loop
1465 1465
 
1466
-            } // End If Statement
1466
+			} // End If Statement
1467 1467
 
1468
-            // virtual order, mark as completed
1469
-            if ( $virtual_order ) {
1468
+			// virtual order, mark as completed
1469
+			if ( $virtual_order ) {
1470 1470
 
1471
-                return 'completed';
1471
+				return 'completed';
1472 1472
 
1473
-            } // End If Statement
1473
+			} // End If Statement
1474 1474
 
1475
-        } // End If Statement
1475
+		} // End If Statement
1476 1476
 
1477
-        return $order_status;
1477
+		return $order_status;
1478 1478
 
1479
-    }// end virtual_order_payment_complete
1479
+	}// end virtual_order_payment_complete
1480 1480
 
1481 1481
 
1482
-    /**
1483
-     * Determine if the user has and active subscription to give them access
1484
-     * to the requested resource.
1485
-     *
1486
-     * @since 1.9.0
1487
-     *
1488
-     * @param  boolean$user_access_permission
1489
-     * @param  integer $user_id
1490
-     * @return boolean $user_access_permission
1491
-     */
1492
-    public static function get_subscription_permission( $user_access_permission, $user_id ){
1482
+	/**
1483
+	 * Determine if the user has and active subscription to give them access
1484
+	 * to the requested resource.
1485
+	 *
1486
+	 * @since 1.9.0
1487
+	 *
1488
+	 * @param  boolean$user_access_permission
1489
+	 * @param  integer $user_id
1490
+	 * @return boolean $user_access_permission
1491
+	 */
1492
+	public static function get_subscription_permission( $user_access_permission, $user_id ){
1493 1493
 
1494
-        global $post;
1494
+		global $post;
1495 1495
 
1496
-        // ignore the current case if the following conditions are met
1497
-        if ( ! class_exists( 'WC_Subscriptions' ) || empty( $user_id )
1498
-            || ! in_array( $post->post_type, array( 'course','lesson','quiz' ) )
1499
-            || ! wcs_user_has_subscription( $user_id) ){
1496
+		// ignore the current case if the following conditions are met
1497
+		if ( ! class_exists( 'WC_Subscriptions' ) || empty( $user_id )
1498
+			|| ! in_array( $post->post_type, array( 'course','lesson','quiz' ) )
1499
+			|| ! wcs_user_has_subscription( $user_id) ){
1500 1500
 
1501
-            return $user_access_permission;
1501
+			return $user_access_permission;
1502 1502
 
1503
-        }
1503
+		}
1504 1504
 
1505
-        // at this user has a subscription
1506
-        // is the subscription on the the current course?
1505
+		// at this user has a subscription
1506
+		// is the subscription on the the current course?
1507 1507
 
1508
-        $course_id = 0;
1509
-        if ( 'course' == $post->post_type ){
1508
+		$course_id = 0;
1509
+		if ( 'course' == $post->post_type ){
1510 1510
 
1511
-            $course_id = $post->ID;
1511
+			$course_id = $post->ID;
1512 1512
 
1513
-        } elseif ( 'lesson' == $post->post_type ) {
1513
+		} elseif ( 'lesson' == $post->post_type ) {
1514 1514
 
1515
-            $course_id = Sensei()->lesson->get_course_id( $post->ID );
1515
+			$course_id = Sensei()->lesson->get_course_id( $post->ID );
1516 1516
 
1517
-        } else {
1517
+		} else {
1518 1518
 
1519
-            $lesson_id =  Sensei()->quiz->get_lesson_id( $post->ID );
1520
-            $course_id = Sensei()->lesson->get_course_id( $lesson_id );
1519
+			$lesson_id =  Sensei()->quiz->get_lesson_id( $post->ID );
1520
+			$course_id = Sensei()->lesson->get_course_id( $lesson_id );
1521 1521
 
1522
-        }
1522
+		}
1523 1523
 
1524
-        // if the course has no subscription WooCommerce product attached to return the permissions as is
1525
-        $product_id = Sensei_WC::get_course_product_id( $course_id );
1526
-        $product = wc_get_product( $product_id );
1527
-        if( ! in_array( $product->get_type(), self::get_subscription_types() ) ){
1524
+		// if the course has no subscription WooCommerce product attached to return the permissions as is
1525
+		$product_id = Sensei_WC::get_course_product_id( $course_id );
1526
+		$product = wc_get_product( $product_id );
1527
+		if( ! in_array( $product->get_type(), self::get_subscription_types() ) ){
1528 1528
 
1529
-            return $user_access_permission;
1529
+			return $user_access_permission;
1530 1530
 
1531
-        }
1531
+		}
1532 1532
 
1533
-        // give access if user has active subscription on the product otherwise restrict it.
1534
-        // also check if the user was added to the course directly after the subscription started.
1535
-        if( wcs_user_has_subscription( $user_id, $product_id, 'active'  )
1536
-            || wcs_user_has_subscription( $user_id, $product_id, 'pending-cancel'  )
1537
-            || self::was_user_added_without_subscription( $user_id, $product_id, $course_id  ) ){
1533
+		// give access if user has active subscription on the product otherwise restrict it.
1534
+		// also check if the user was added to the course directly after the subscription started.
1535
+		if( wcs_user_has_subscription( $user_id, $product_id, 'active'  )
1536
+			|| wcs_user_has_subscription( $user_id, $product_id, 'pending-cancel'  )
1537
+			|| self::was_user_added_without_subscription( $user_id, $product_id, $course_id  ) ){
1538 1538
 
1539
-            $user_access_permission = true;
1539
+			$user_access_permission = true;
1540 1540
 
1541
-        }else{
1541
+		}else{
1542 1542
 
1543
-            $user_access_permission = false;
1544
-            // do not show the WC permissions message
1545
-            remove_filter( 'sensei_the_no_permissions_message', array( 'Sensei_WC', 'alter_no_permissions_message' ), 20, 2 );
1546
-            Sensei()->permissions_message['title'] = __( 'No active subscription', 'woothemes-sensei' );
1547
-            Sensei()->permissions_message['message'] = __( 'Sorry, you do not have an access to this content without an active subscription.', 'woothemes-sensei' );
1548
-        }
1543
+			$user_access_permission = false;
1544
+			// do not show the WC permissions message
1545
+			remove_filter( 'sensei_the_no_permissions_message', array( 'Sensei_WC', 'alter_no_permissions_message' ), 20, 2 );
1546
+			Sensei()->permissions_message['title'] = __( 'No active subscription', 'woothemes-sensei' );
1547
+			Sensei()->permissions_message['message'] = __( 'Sorry, you do not have an access to this content without an active subscription.', 'woothemes-sensei' );
1548
+		}
1549 1549
 
1550
-        return $user_access_permission;
1550
+		return $user_access_permission;
1551 1551
 
1552
-    } // end get_subscription_permission
1552
+	} // end get_subscription_permission
1553 1553
 
1554
-    /**
1555
-     * Get all the valid subscription types.
1556
-     *
1557
-     * @since 1.9.0
1558
-     * @return array
1559
-     */
1560
-    public static function get_subscription_types(){
1554
+	/**
1555
+	 * Get all the valid subscription types.
1556
+	 *
1557
+	 * @since 1.9.0
1558
+	 * @return array
1559
+	 */
1560
+	public static function get_subscription_types(){
1561 1561
 
1562
-        return array( 'subscription','subscription_variation','variable-subscription' );
1562
+		return array( 'subscription','subscription_variation','variable-subscription' );
1563 1563
 
1564
-    }
1564
+	}
1565 1565
 
1566
-    /**
1567
-     * Compare the user's subscriptions end date with the date
1568
-     * the user was added to the course. If the user was added after
1569
-     * the subscription ended they were manually added and this will return
1570
-     * true.
1571
-     *
1572
-     * Important to note that all subscriptions for the user is compared.
1573
-     *
1574
-     * @since 1.9.0
1575
-     *
1576
-     * @param $user_id
1577
-     * @param $product_id
1578
-     * @param $course_id
1579
-     *
1580
-     * @return bool
1581
-     */
1582
-    public static function was_user_added_without_subscription($user_id, $product_id, $course_id ){
1566
+	/**
1567
+	 * Compare the user's subscriptions end date with the date
1568
+	 * the user was added to the course. If the user was added after
1569
+	 * the subscription ended they were manually added and this will return
1570
+	 * true.
1571
+	 *
1572
+	 * Important to note that all subscriptions for the user is compared.
1573
+	 *
1574
+	 * @since 1.9.0
1575
+	 *
1576
+	 * @param $user_id
1577
+	 * @param $product_id
1578
+	 * @param $course_id
1579
+	 *
1580
+	 * @return bool
1581
+	 */
1582
+	public static function was_user_added_without_subscription($user_id, $product_id, $course_id ){
1583 1583
 
1584
-        $course_start_date = '';
1585
-        $subscription_start_date = '';
1586
-        $is_a_subscription ='';
1587
-        $was_user_added_without_subscription = true;
1584
+		$course_start_date = '';
1585
+		$subscription_start_date = '';
1586
+		$is_a_subscription ='';
1587
+		$was_user_added_without_subscription = true;
1588 1588
 
1589
-        // if user is not on the course they were not added
1590
-        if( ! Sensei_Utils::user_started_course( $course_id, $user_id ) ){
1589
+		// if user is not on the course they were not added
1590
+		if( ! Sensei_Utils::user_started_course( $course_id, $user_id ) ){
1591 1591
 
1592
-            return false;
1592
+			return false;
1593 1593
 
1594
-        }
1594
+		}
1595 1595
 
1596
-        // if user doesn't have a subscription and is taking the course
1597
-        // they were added manually
1598
-        if ( ! wcs_user_has_subscription($user_id, $product_id)
1599
-            && Sensei_Utils::user_started_course( $course_id, get_current_user_id() )  ){
1596
+		// if user doesn't have a subscription and is taking the course
1597
+		// they were added manually
1598
+		if ( ! wcs_user_has_subscription($user_id, $product_id)
1599
+			&& Sensei_Utils::user_started_course( $course_id, get_current_user_id() )  ){
1600 1600
 
1601
-            return true;
1601
+			return true;
1602 1602
 
1603
-        }
1603
+		}
1604 1604
 
1605
-        $course_status =  Sensei_Utils::user_course_status( $course_id, $user_id );
1605
+		$course_status =  Sensei_Utils::user_course_status( $course_id, $user_id );
1606 1606
 
1607
-        // comparing dates setup data
1608
-        $course_start_date = date_create( $course_status->comment_date );
1609
-        $subscriptions = wcs_get_users_subscriptions( $user_id );
1607
+		// comparing dates setup data
1608
+		$course_start_date = date_create( $course_status->comment_date );
1609
+		$subscriptions = wcs_get_users_subscriptions( $user_id );
1610 1610
 
1611
-        // comparing every subscription
1612
-        foreach( $subscriptions as $subscription ){
1611
+		// comparing every subscription
1612
+		foreach( $subscriptions as $subscription ){
1613 1613
 
1614
-            // for the following statuses we know the user was not added
1615
-            // manually
1616
-            $status = $subscription->get_status();
1617
-            if ( in_array( $status, array( 'pending-canceled', 'active', 'on-hold', 'pending' ) ) ) {
1614
+			// for the following statuses we know the user was not added
1615
+			// manually
1616
+			$status = $subscription->get_status();
1617
+			if ( in_array( $status, array( 'pending-canceled', 'active', 'on-hold', 'pending' ) ) ) {
1618 1618
 
1619
-                continue;
1619
+				continue;
1620 1620
 
1621
-            }
1621
+			}
1622 1622
 
1623
-            $current_subscription_start_date = date_create( $subscription->modified_date );
1623
+			$current_subscription_start_date = date_create( $subscription->modified_date );
1624 1624
 
1625
-            // is the last updated subscription date newer than course start date
1626
-            if (  $current_subscription_start_date > $course_start_date   ) {
1625
+			// is the last updated subscription date newer than course start date
1626
+			if (  $current_subscription_start_date > $course_start_date   ) {
1627 1627
 
1628
-                return false;
1628
+				return false;
1629 1629
 
1630
-            }
1630
+			}
1631 1631
 
1632
-        }
1632
+		}
1633 1633
 
1634
-        return $was_user_added_without_subscription;
1635
-    }
1634
+		return $was_user_added_without_subscription;
1635
+	}
1636 1636
 
1637 1637
 	/**
1638 1638
 	 * Get all the orders for a specific user and product combination
Please login to merge, or discard this patch.
Spacing   +296 added lines, -296 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,16 +11,16 @@  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
-	    $woocommerce_hooks_file_path = Sensei()->plugin_path() . 'includes/hooks/woocommerce.php';
23
-        require_once( $woocommerce_hooks_file_path );
22
+	    $woocommerce_hooks_file_path = Sensei()->plugin_path().'includes/hooks/woocommerce.php';
23
+        require_once($woocommerce_hooks_file_path);
24 24
 
25 25
     }
26 26
     /**
@@ -29,9 +29,9 @@  discard block
 block discarded – undo
29 29
      * @since 1.9.0
30 30
      * @return bool
31 31
      */
32
-    public static function is_woocommerce_active(){
32
+    public static function is_woocommerce_active() {
33 33
 
34
-        $is_woocommerce_enabled_in_settings = isset( Sensei()->settings->settings['woocommerce_enabled'] ) && Sensei()->settings->settings['woocommerce_enabled'];
34
+        $is_woocommerce_enabled_in_settings = isset(Sensei()->settings->settings['woocommerce_enabled']) && Sensei()->settings->settings['woocommerce_enabled'];
35 35
         return self::is_woocommerce_present() && $is_woocommerce_enabled_in_settings;
36 36
 
37 37
     } // end is_woocommerce_active
@@ -46,19 +46,19 @@  discard block
 block discarded – undo
46 46
      *
47 47
      * @return bool
48 48
      */
49
-    public static function is_woocommerce_present(){
49
+    public static function is_woocommerce_present() {
50 50
 
51
-        $active_plugins = (array) get_option( 'active_plugins', array() );
51
+        $active_plugins = (array) get_option('active_plugins', array());
52 52
 
53
-        if ( is_multisite() ){
53
+        if (is_multisite()) {
54 54
 
55
-            $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
55
+            $active_plugins = array_merge($active_plugins, get_site_option('active_sitewide_plugins', array()));
56 56
 
57 57
         }
58 58
 
59
-        $is_woocommerce_plugin_present_and_activated = in_array( 'woocommerce/woocommerce.php', $active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', $active_plugins );
59
+        $is_woocommerce_plugin_present_and_activated = in_array('woocommerce/woocommerce.php', $active_plugins) || array_key_exists('woocommerce/woocommerce.php', $active_plugins);
60 60
 
61
-        return class_exists( 'Woocommerce' ) || $is_woocommerce_plugin_present_and_activated;
61
+        return class_exists('Woocommerce') || $is_woocommerce_plugin_present_and_activated;
62 62
 
63 63
     }// end is_woocommerce_present
64 64
 
@@ -71,48 +71,48 @@  discard block
 block discarded – undo
71 71
      * @param $course_id
72 72
      * @return array $user_course_orders
73 73
      */
74
-    public static function get_learner_course_active_order_id( $user_id, $course_id ){
74
+    public static function get_learner_course_active_order_id($user_id, $course_id) {
75 75
 
76
-        $course_product_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
76
+        $course_product_id = get_post_meta($course_id, '_course_woocommerce_product', true);
77 77
 
78
-        $orders_query = new WP_Query( array(
78
+        $orders_query = new WP_Query(array(
79 79
             'post_type'   => 'shop_order',
80 80
             'posts_per_page' => -1,
81
-            'post_status' => array( 'wc-processing', 'wc-completed' ),
81
+            'post_status' => array('wc-processing', 'wc-completed'),
82 82
             'meta_key'=> '_customer_user',
83 83
             'meta_value'=> $user_id,
84
-        ) );
84
+        ));
85 85
 
86
-        if( $orders_query->post_count == 0 ){
86
+        if ($orders_query->post_count == 0) {
87 87
 
88 88
             return false;
89 89
 
90 90
         }
91 91
 
92
-        foreach( $orders_query->get_posts() as $order ){
92
+        foreach ($orders_query->get_posts() as $order) {
93 93
 
94
-            $order = new WC_Order( $order->ID );
94
+            $order = new WC_Order($order->ID);
95 95
             $items = $order->get_items();
96 96
 
97
-            $user_orders =  array();
97
+            $user_orders = array();
98 98
 
99
-            foreach( $items as $item ){
99
+            foreach ($items as $item) {
100 100
 
101 101
                 // if the product id on the order and the one given to this function
102 102
                 // this order has been placed by the given user on the given course.
103
-                $product = wc_get_product( $item['product_id'] );
103
+                $product = wc_get_product($item['product_id']);
104 104
 
105
-                if ( is_object( $product ) && $product->is_type( 'variable' )) {
105
+                if (is_object($product) && $product->is_type('variable')) {
106 106
 
107 107
                     $item_product_id = $item['variation_id'];
108 108
 
109 109
                 } else {
110 110
 
111
-                    $item_product_id =  $item['product_id'];
111
+                    $item_product_id = $item['product_id'];
112 112
 
113 113
                 }
114 114
 
115
-                if( $course_product_id == $item_product_id ){
115
+                if ($course_product_id == $item_product_id) {
116 116
 
117 117
                     return $order->id;
118 118
 
@@ -136,12 +136,12 @@  discard block
 block discarded – undo
136 136
      * @param $filter_links
137 137
      * @return mixed
138 138
      */
139
-    public static function add_course_archive_wc_filter_links( $filter_links ){
139
+    public static function add_course_archive_wc_filter_links($filter_links) {
140 140
 
141 141
         $free_courses = self::get_free_courses();
142 142
         $paid_courses = self::get_paid_courses();
143 143
 
144
-        if ( empty( $free_courses ) || empty( $paid_courses )  ){
144
+        if (empty($free_courses) || empty($paid_courses)) {
145 145
             // do not show any WooCommerce filters if all courses are
146 146
             // free or if all courses are paid
147 147
             return $filter_links;
@@ -149,15 +149,15 @@  discard block
 block discarded – undo
149 149
         }
150 150
 
151 151
         $filter_links[] = array(
152
-            'id'=>'paid' ,
153
-            'url'=> add_query_arg( array( 'course_filter'=>'paid'), Sensei_Course::get_courses_page_url() ),
154
-            'title'=>__( 'Paid', 'woothemes-sensei' )
152
+            'id'=>'paid',
153
+            'url'=> add_query_arg(array('course_filter'=>'paid'), Sensei_Course::get_courses_page_url()),
154
+            'title'=>__('Paid', 'woothemes-sensei')
155 155
         );
156 156
 
157 157
         $filter_links[] = array(
158 158
             'id'=>'free',
159
-            'url'=> add_query_arg( array( 'course_filter'=>'free'), Sensei_Course::get_courses_page_url() ),
160
-            'title'=>__( 'Free', 'woothemes-sensei' )
159
+            'url'=> add_query_arg(array('course_filter'=>'free'), Sensei_Course::get_courses_page_url()),
160
+            'title'=>__('Free', 'woothemes-sensei')
161 161
         );
162 162
 
163 163
         return $filter_links;
@@ -174,24 +174,24 @@  discard block
 block discarded – undo
174 174
      * @param WP_Query $query
175 175
      * @return WP_Query $query
176 176
      */
177
-    public static function course_archive_wc_filter_free( $query ){
177
+    public static function course_archive_wc_filter_free($query) {
178 178
 
179
-        if( isset( $_GET['course_filter'] ) && 'free' == $_GET['course_filter']
180
-            && 'course' == $query->get( 'post_type') && $query->is_main_query()  ){
179
+        if (isset($_GET['course_filter']) && 'free' == $_GET['course_filter']
180
+            && 'course' == $query->get('post_type') && $query->is_main_query()) {
181 181
 
182 182
             // setup the course meta query
183 183
             $meta_query = self::get_free_courses_meta_query_args();
184 184
 
185 185
             // manipulate the query to return free courses
186
-            $query->set('meta_query', $meta_query );
186
+            $query->set('meta_query', $meta_query);
187 187
 
188 188
             // don't show any paid courses
189 189
             $courses = self::get_paid_courses();
190 190
             $ids = array();
191
-            foreach( $courses as $course ){
191
+            foreach ($courses as $course) {
192 192
                 $ids[] = $course->ID;
193 193
             }
194
-            $query->set( 'post__not_in', $ids );
194
+            $query->set('post__not_in', $ids);
195 195
 
196 196
         }// end if course_filter
197 197
 
@@ -210,16 +210,16 @@  discard block
 block discarded – undo
210 210
      * @param WP_Query $query
211 211
      * @return WP_Query $query
212 212
      */
213
-    public static function course_archive_wc_filter_paid( $query ){
213
+    public static function course_archive_wc_filter_paid($query) {
214 214
 
215
-        if( isset( $_GET['course_filter'] ) && 'paid' == $_GET['course_filter']
216
-            && 'course' == $query->get( 'post_type') && $query->is_main_query() ){
215
+        if (isset($_GET['course_filter']) && 'paid' == $_GET['course_filter']
216
+            && 'course' == $query->get('post_type') && $query->is_main_query()) {
217 217
 
218 218
             // setup the course meta query
219 219
             $meta_query = self::get_paid_courses_meta_query_args();
220 220
 
221 221
             // manipulate the query to return free courses
222
-            $query->set('meta_query', $meta_query );
222
+            $query->set('meta_query', $meta_query);
223 223
 
224 224
         }
225 225
 
@@ -232,14 +232,14 @@  discard block
 block discarded – undo
232 232
      * single courses if woocommerce is active allowing purchase
233 233
      * information and actions to be hooked from WooCommerce.
234 234
      */
235
-    public static function do_single_course_wc_single_product_action(){
235
+    public static function do_single_course_wc_single_product_action() {
236 236
 
237 237
         /**
238 238
          * this hooks is documented within the WooCommerce plugin.
239 239
          */
240
-        if ( Sensei_WC::is_woocommerce_active() ) {
240
+        if (Sensei_WC::is_woocommerce_active()) {
241 241
 
242
-            do_action( 'woocommerce_before_single_product' );
242
+            do_action('woocommerce_before_single_product');
243 243
 
244 244
         } // End If Statement
245 245
 
@@ -260,12 +260,12 @@  discard block
 block discarded – undo
260 260
      * @param $user_id
261 261
      * @return bool
262 262
      */
263
-    public static function alter_can_user_view_lesson ( $can_user_view_lesson, $lesson_id, $user_id  ){
263
+    public static function alter_can_user_view_lesson($can_user_view_lesson, $lesson_id, $user_id) {
264 264
 
265 265
 	    // do not override access to admins
266
-	    $course_id = Sensei()->lesson->get_course_id( $lesson_id );
267
-	    if ( sensei_all_access() || Sensei_Utils::is_preview_lesson( $lesson_id )
268
-	         || Sensei_Utils::user_started_course( $course_id, $user_id )  ){
266
+	    $course_id = Sensei()->lesson->get_course_id($lesson_id);
267
+	    if (sensei_all_access() || Sensei_Utils::is_preview_lesson($lesson_id)
268
+	         || Sensei_Utils::user_started_course($course_id, $user_id)) {
269 269
 
270 270
 			return true;
271 271
 
@@ -274,18 +274,18 @@  discard block
 block discarded – undo
274 274
         // check if the course has a valid product attached to it
275 275
         // which the user should have purchased if they want to access
276 276
         // the current lesson
277
-        $course_id = get_post_meta( $lesson_id , '_lesson_course', true);
278
-        $wc_post_id = get_post_meta( $course_id, '_course_woocommerce_product', true );
277
+        $course_id = get_post_meta($lesson_id, '_lesson_course', true);
278
+        $wc_post_id = get_post_meta($course_id, '_course_woocommerce_product', true);
279 279
         $product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
280
-        if( isset ($product) && is_object($product) ){
280
+        if (isset ($product) && is_object($product)) {
281 281
 
282 282
             // valid product found
283
-            $order_id = self::get_learner_course_active_order_id( $user_id, $course_id );
283
+            $order_id = self::get_learner_course_active_order_id($user_id, $course_id);
284 284
 
285 285
             // product has a successful order so this user may access the content
286 286
             // this function may only return false or the default
287 287
             // returning true may override other negatives which we don't want
288
-            if( ! $order_id ){
288
+            if ( ! $order_id) {
289 289
 
290 290
                 return false;
291 291
 
@@ -308,23 +308,23 @@  discard block
 block discarded – undo
308 308
      */
309 309
     public static function course_link_from_order( ) {
310 310
 
311
-        if( ! is_order_received_page() ){
311
+        if ( ! is_order_received_page()) {
312 312
             return;
313 313
         }
314 314
 
315
-        $order_id = get_query_var( 'order-received' );
316
-		$order = new WC_Order( $order_id );
315
+        $order_id = get_query_var('order-received');
316
+		$order = new WC_Order($order_id);
317 317
 
318 318
 		// exit early if not wc-completed or wc-processing
319
-		if( 'wc-completed' != $order->post_status
320
-            && 'wc-processing' != $order->post_status  ) {
319
+		if ('wc-completed' != $order->post_status
320
+            && 'wc-processing' != $order->post_status) {
321 321
             return;
322 322
         }
323 323
 
324 324
         $course_links = array(); // store the for links for courses purchased
325
-		foreach ( $order->get_items() as $item ) {
325
+		foreach ($order->get_items() as $item) {
326 326
 
327
-            if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
327
+            if (isset($item['variation_id']) && (0 < $item['variation_id'])) {
328 328
 
329 329
                 // If item has variation_id then its a variation of the product
330 330
                 $item_id = $item['variation_id'];
@@ -336,28 +336,28 @@  discard block
 block discarded – undo
336 336
 
337 337
             } // End If Statement
338 338
 
339
-            $user_id = get_post_meta( $order->id, '_customer_user', true );
339
+            $user_id = get_post_meta($order->id, '_customer_user', true);
340 340
 
341
-            if( $user_id ) {
341
+            if ($user_id) {
342 342
 
343 343
                 // Get all courses for product
344 344
                 $args = Sensei_Course::get_default_query_args();
345
-                $args['meta_query'] = array( array(
345
+                $args['meta_query'] = array(array(
346 346
                             'key' => '_course_woocommerce_product',
347 347
                             'value' => $item_id
348
-                        ) );
348
+                        ));
349 349
                 $args['orderby'] = 'menu_order date';
350 350
                 $args['order'] = 'ASC';
351 351
 
352 352
                 // loop through courses
353
-                $courses = get_posts( $args );
354
-                if( $courses && count( $courses ) > 0 ) {
353
+                $courses = get_posts($args);
354
+                if ($courses && count($courses) > 0) {
355 355
 
356
-                    foreach( $courses as $course ) {
356
+                    foreach ($courses as $course) {
357 357
 
358 358
                         $title = $course->post_title;
359
-                        $permalink = get_permalink( $course->ID );
360
-                        $course_links[] .= '<a href="' . esc_url( $permalink ) . '" >' . $title . '</a> ';
359
+                        $permalink = get_permalink($course->ID);
360
+                        $course_links[] .= '<a href="'.esc_url($permalink).'" >'.$title.'</a> ';
361 361
 
362 362
                     } // end for each
363 363
 
@@ -368,24 +368,24 @@  discard block
 block discarded – undo
368 368
         }// end loop through orders
369 369
 
370 370
         // add the courses to the WooCommerce notice
371
-        if( ! empty( $course_links) ){
371
+        if ( ! empty($course_links)) {
372 372
 
373 373
             $courses_html = _nx(
374 374
                 'You have purchased the following course:',
375 375
                 'You have purchased the following courses:',
376
-                count( $course_links ),
376
+                count($course_links),
377 377
                 'Purchase thank you note on Checkout page. The course link(s) will be show', 'woothemes-sensei'
378 378
             );
379 379
 
380
-            foreach( $course_links as $link ){
380
+            foreach ($course_links as $link) {
381 381
 
382
-                $courses_html .= '<li>' . $link . '</li>';
382
+                $courses_html .= '<li>'.$link.'</li>';
383 383
 
384 384
             }
385 385
 
386 386
             $courses_html .= ' </ul>';
387 387
 
388
-            wc_add_notice( $courses_html, 'success' );
388
+            wc_add_notice($courses_html, 'success');
389 389
         }
390 390
 
391 391
 	} // end course_link_order_form
@@ -398,20 +398,20 @@  discard block
 block discarded – undo
398 398
      *
399 399
      * @since 1.9.0
400 400
      */
401
-    public static function course_in_cart_message(){
401
+    public static function course_in_cart_message() {
402 402
 
403 403
         global $post;
404 404
 
405
-        if( self::is_course_in_cart( $post->ID ) ){ ?>
405
+        if (self::is_course_in_cart($post->ID)) { ?>
406 406
 
407 407
             <div class="sensei-message info">
408 408
                 <?php
409 409
 
410
-                $cart_link =  '<a class="cart-complete" href="' . WC()->cart->get_checkout_url()
411
-                              . '" title="' . __('complete purchase', 'woothemes-sensei') . '">'
412
-                              . __('complete the purchase', 'woothemes-sensei') . '</a>';
410
+                $cart_link = '<a class="cart-complete" href="'.WC()->cart->get_checkout_url()
411
+                              . '" title="'.__('complete purchase', 'woothemes-sensei').'">'
412
+                              . __('complete the purchase', 'woothemes-sensei').'</a>';
413 413
 
414
-                echo sprintf(  __('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link );
414
+                echo sprintf(__('You have already added this Course to your cart. Please %1$s to access the course.', 'woothemes-sensei'), $cart_link);
415 415
 
416 416
                 ?>
417 417
             </div>
@@ -425,14 +425,14 @@  discard block
 block discarded – undo
425 425
      * @param $course_id
426 426
      * @return bool
427 427
      */
428
-    public static function is_course_in_cart( $course_id ){
428
+    public static function is_course_in_cart($course_id) {
429 429
 
430
-        $wc_post_id = absint( get_post_meta( $course_id, '_course_woocommerce_product', true ) );
431
-        $user_course_status_id = Sensei_Utils::user_started_course( $course_id , get_current_user_id() );
430
+        $wc_post_id = absint(get_post_meta($course_id, '_course_woocommerce_product', true));
431
+        $user_course_status_id = Sensei_Utils::user_started_course($course_id, get_current_user_id());
432 432
 
433
-        if ( 0 < intval( $wc_post_id ) && ! $user_course_status_id ) {
433
+        if (0 < intval($wc_post_id) && ! $user_course_status_id) {
434 434
 
435
-            if ( self::is_product_in_cart( $wc_post_id ) ) {
435
+            if (self::is_product_in_cart($wc_post_id)) {
436 436
 
437 437
                 return true;
438 438
 
@@ -450,20 +450,20 @@  discard block
 block discarded – undo
450 450
      * @param $product_id
451 451
      * @return bool
452 452
      */
453
-    public static function is_product_in_cart( $product_id ){
453
+    public static function is_product_in_cart($product_id) {
454 454
 
455
-        if ( 0 < $product_id ) {
455
+        if (0 < $product_id) {
456 456
 
457
-            $product = wc_get_product( $product_id );
457
+            $product = wc_get_product($product_id);
458 458
 
459 459
             $parent_id = '';
460
-            if( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) {
460
+            if (isset($product->variation_id) && 0 < intval($product->variation_id)) {
461 461
                 $wc_product_id = $product->parent->id;
462 462
             }
463
-            foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
463
+            foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
464 464
 
465 465
                 $cart_product = $values['data'];
466
-                if( $product_id == $cart_product->id ) {
466
+                if ($product_id == $cart_product->id) {
467 467
 
468 468
                     return true;
469 469
 
@@ -485,9 +485,9 @@  discard block
 block discarded – undo
485 485
      *  @type int $wp_post_id
486 486
      * }
487 487
      */
488
-    public static function get_free_product_ids(){
488
+    public static function get_free_product_ids() {
489 489
 
490
-        return  get_posts( array(
490
+        return  get_posts(array(
491 491
             'post_type' => 'product',
492 492
             'posts_per_page' => '1000',
493 493
             'fields' => 'ids',
@@ -512,7 +512,7 @@  discard block
 block discarded – undo
512 512
      * @since 1.9.0
513 513
      * @return array $wp_meta_query_param
514 514
      */
515
-    public static function get_free_courses_meta_query_args(){
515
+    public static function get_free_courses_meta_query_args() {
516 516
 
517 517
         return array(
518 518
             'relation' => 'OR',
@@ -536,7 +536,7 @@  discard block
 block discarded – undo
536 536
      * @since 1.9.0
537 537
      * @return array $wp_query_meta_query_args_param
538 538
      */
539
-    public static function get_paid_courses_meta_query_args(){
539
+    public static function get_paid_courses_meta_query_args() {
540 540
 
541 541
         $paid_product_ids = self::get_paid_product_ids();
542 542
 
@@ -545,7 +545,7 @@  discard block
 block discarded – undo
545 545
                 'key'     => '_course_woocommerce_product',
546 546
                 // when empty we give a false post_id to ensure the caller doesn't get any courses for their
547 547
                 // query
548
-                'value' => empty( $paid_product_ids  )? '-1000' : $paid_product_ids,
548
+                'value' => empty($paid_product_ids) ? '-1000' : $paid_product_ids,
549 549
                 'compare' => 'IN',
550 550
             ),
551 551
         );
@@ -559,7 +559,7 @@  discard block
 block discarded – undo
559 559
      * @since 1.9.0
560 560
      * @return array $product_query_args
561 561
      */
562
-    public static function get_paid_products_on_sale_query_args(){
562
+    public static function get_paid_products_on_sale_query_args() {
563 563
 
564 564
         $args = array(
565 565
                    'post_type' 		=> 'product',
@@ -569,9 +569,9 @@  discard block
 block discarded – undo
569 569
                    'suppress_filters' 	=> 0
570 570
         );
571 571
 
572
-        $args[ 'fields' ]     = 'ids';
572
+        $args['fields']     = 'ids';
573 573
 
574
-        $args[ 'meta_query' ] = array(
574
+        $args['meta_query'] = array(
575 575
             'relation' => 'AND',
576 576
             array(
577 577
                 'key'=> '_regular_price',
@@ -598,7 +598,7 @@  discard block
 block discarded – undo
598 598
      *
599 599
      * @return array
600 600
      */
601
-    public static function get_paid_products_not_on_sale_query_args(){
601
+    public static function get_paid_products_not_on_sale_query_args() {
602 602
 
603 603
         $args = array(
604 604
             'post_type' 		=> 'product',
@@ -608,8 +608,8 @@  discard block
 block discarded – undo
608 608
             'suppress_filters' 	=> 0
609 609
         );
610 610
 
611
-        $args[ 'fields' ]     = 'ids';
612
-        $args[ 'meta_query' ] = array(
611
+        $args['fields']     = 'ids';
612
+        $args['meta_query'] = array(
613 613
             'relation' => 'AND',
614 614
             array(
615 615
                 'key'=> '_regular_price',
@@ -635,24 +635,24 @@  discard block
 block discarded – undo
635 635
      *
636 636
      * @return array $woocommerce_paid_product_ids
637 637
      */
638
-    public static function get_paid_product_ids(){
638
+    public static function get_paid_product_ids() {
639 639
 
640 640
         // get all the paid WooCommerce products that has regular
641 641
         // and sale price greater than 0
642 642
         // will be used later to check for course with the id as meta
643
-        $paid_product_ids_with_sale =  get_posts( self::get_paid_products_on_sale_query_args() );
643
+        $paid_product_ids_with_sale = get_posts(self::get_paid_products_on_sale_query_args());
644 644
 
645 645
         // get all the paid WooCommerce products that has regular price
646 646
         // greater than 0 without a sale price
647 647
         // will be used later to check for course with the id as meta
648
-        $paid_product_ids_without_sale = get_posts( self::get_paid_products_not_on_sale_query_args() );
648
+        $paid_product_ids_without_sale = get_posts(self::get_paid_products_not_on_sale_query_args());
649 649
 
650 650
         // combine products ID's with regular and sale price grater than zero and those without
651 651
         // sale but regular price greater than zero
652
-        $woocommerce_paid_product_ids = array_merge( $paid_product_ids_with_sale, $paid_product_ids_without_sale );
652
+        $woocommerce_paid_product_ids = array_merge($paid_product_ids_with_sale, $paid_product_ids_without_sale);
653 653
 
654 654
         // if
655
-        if( empty($woocommerce_paid_product_ids) ){
655
+        if (empty($woocommerce_paid_product_ids)) {
656 656
             return array( );
657 657
         }
658 658
         return $woocommerce_paid_product_ids;
@@ -671,20 +671,20 @@  discard block
 block discarded – undo
671 671
      *
672 672
      * @return array
673 673
      */
674
-    public static function get_free_courses(){
674
+    public static function get_free_courses() {
675 675
 
676 676
         $free_course_query_args = Sensei_Course::get_default_query_args();
677
-        $free_course_query_args[ 'meta_query' ] = self::get_free_courses_meta_query_args();
677
+        $free_course_query_args['meta_query'] = self::get_free_courses_meta_query_args();
678 678
 
679 679
         // don't show any paid courses
680 680
         $courses = self::get_paid_courses();
681 681
         $ids = array();
682
-        foreach( $courses as $course ){
682
+        foreach ($courses as $course) {
683 683
             $ids[] = $course->ID;
684 684
         }
685
-        $free_course_query_args[ 'post__not_in' ] =  $ids;
685
+        $free_course_query_args['post__not_in'] = $ids;
686 686
 
687
-        return get_posts( $free_course_query_args );
687
+        return get_posts($free_course_query_args);
688 688
 
689 689
     }
690 690
 
@@ -694,13 +694,13 @@  discard block
 block discarded – undo
694 694
      * @since 1.9.0
695 695
      * @return array
696 696
      */
697
-    public static function get_paid_courses(){
697
+    public static function get_paid_courses() {
698 698
 
699 699
         $paid_course_query_args = Sensei_Course::get_default_query_args();
700 700
 
701
-        $paid_course_query_args[ 'meta_query' ] = self::get_paid_courses_meta_query_args();
701
+        $paid_course_query_args['meta_query'] = self::get_paid_courses_meta_query_args();
702 702
 
703
-        return get_posts(  $paid_course_query_args );
703
+        return get_posts($paid_course_query_args);
704 704
     }
705 705
 
706 706
     /**
@@ -715,17 +715,17 @@  discard block
 block discarded – undo
715 715
      * @param int $course_id
716 716
      * @return string $html markup for the button or nothing if user not allowed to buy
717 717
      */
718
-    public static function the_add_to_cart_button_html( $course_id ){
718
+    public static function the_add_to_cart_button_html($course_id) {
719 719
 
720
-        if ( ! Sensei_Course::is_prerequisite_complete( $course_id )) {
720
+        if ( ! Sensei_Course::is_prerequisite_complete($course_id)) {
721 721
             return '';
722 722
         }
723 723
 
724
-        $wc_post_id = self::get_course_product_id( $course_id );
724
+        $wc_post_id = self::get_course_product_id($course_id);
725 725
 
726 726
         // Check if customer purchased the product
727
-        if ( self::has_customer_bought_product(  get_current_user_id(), $wc_post_id )
728
-            || empty( $wc_post_id ) ) {
727
+        if (self::has_customer_bought_product(get_current_user_id(), $wc_post_id)
728
+            || empty($wc_post_id)) {
729 729
 
730 730
             return '';
731 731
 
@@ -733,15 +733,15 @@  discard block
 block discarded – undo
733 733
 
734 734
         // based on simple.php in WC templates/single-product/add-to-cart/
735 735
         // Get the product
736
-        $product = Sensei()->sensei_get_woocommerce_product_object( $wc_post_id );
736
+        $product = Sensei()->sensei_get_woocommerce_product_object($wc_post_id);
737 737
 
738 738
         // do not show the button for invalid products, non purchasable products, out
739 739
         // of stock product or if course is already in cart
740
-        if ( ! isset ( $product )
741
-            || ! is_object( $product )
740
+        if ( ! isset ($product)
741
+            || ! is_object($product)
742 742
             || ! $product->is_purchasable()
743 743
             || ! $product->is_in_stock()
744
-            || self::is_course_in_cart( $wc_post_id ) ) {
744
+            || self::is_course_in_cart($wc_post_id)) {
745 745
 
746 746
             return '';
747 747
 
@@ -752,23 +752,23 @@  discard block
 block discarded – undo
752 752
         //
753 753
         ?>
754 754
 
755
-        <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>"
755
+        <form action="<?php echo esc_url($product->add_to_cart_url()); ?>"
756 756
               class="cart"
757 757
               method="post"
758 758
               enctype="multipart/form-data">
759 759
 
760
-            <input type="hidden" name="product_id" value="<?php echo esc_attr( $product->id ); ?>" />
760
+            <input type="hidden" name="product_id" value="<?php echo esc_attr($product->id); ?>" />
761 761
 
762 762
             <input type="hidden" name="quantity" value="1" />
763 763
 
764
-            <?php if ( isset( $product->variation_id ) && 0 < intval( $product->variation_id ) ) { ?>
764
+            <?php if (isset($product->variation_id) && 0 < intval($product->variation_id)) { ?>
765 765
 
766 766
                 <input type="hidden" name="variation_id" value="<?php echo $product->variation_id; ?>" />
767
-                <?php if( isset( $product->variation_data ) && is_array( $product->variation_data ) && count( $product->variation_data ) > 0 ) { ?>
767
+                <?php if (isset($product->variation_data) && is_array($product->variation_data) && count($product->variation_data) > 0) { ?>
768 768
 
769
-                    <?php foreach( $product->variation_data as $att => $val ) { ?>
769
+                    <?php foreach ($product->variation_data as $att => $val) { ?>
770 770
 
771
-                        <input type="hidden" name="<?php echo esc_attr( $att ); ?>" id="<?php echo esc_attr( str_replace( 'attribute_', '', $att ) ); ?>" value="<?php echo esc_attr( $val ); ?>" />
771
+                        <input type="hidden" name="<?php echo esc_attr($att); ?>" id="<?php echo esc_attr(str_replace('attribute_', '', $att)); ?>" value="<?php echo esc_attr($val); ?>" />
772 772
 
773 773
                     <?php } ?>
774 774
 
@@ -796,26 +796,26 @@  discard block
 block discarded – undo
796 796
      *
797 797
      * @return string $message
798 798
      */
799
-    public static function alter_no_permissions_message( $message, $post_id ){
799
+    public static function alter_no_permissions_message($message, $post_id) {
800 800
 
801
-        if( empty( $post_id ) || 'course'!=get_post_type( $post_id ) ){
801
+        if (empty($post_id) || 'course' != get_post_type($post_id)) {
802 802
             return  $message;
803 803
         }
804 804
 
805
-        $product_id = self::get_course_product_id( $post_id );
805
+        $product_id = self::get_course_product_id($post_id);
806 806
 
807
-        if( ! $product_id
808
-            || ! self::has_customer_bought_product( get_current_user_id(),$product_id ) ){
807
+        if ( ! $product_id
808
+            || ! self::has_customer_bought_product(get_current_user_id(), $product_id)) {
809 809
 
810 810
             return $message;
811 811
 
812 812
         }
813 813
 
814 814
         ob_start();
815
-        self::the_course_no_permissions_message( $post_id );
815
+        self::the_course_no_permissions_message($post_id);
816 816
         $woocommerce_course_no_permissions_message = ob_get_clean();
817 817
 
818
-        return $woocommerce_course_no_permissions_message ;
818
+        return $woocommerce_course_no_permissions_message;
819 819
 
820 820
     }
821 821
     /**
@@ -824,18 +824,18 @@  discard block
 block discarded – undo
824 824
      *
825 825
      * @since 1.9.0
826 826
      */
827
-    public static function the_course_no_permissions_message( $course_id ){
827
+    public static function the_course_no_permissions_message($course_id) {
828 828
 
829 829
         // login link
830
-        $my_courses_page_id = intval( Sensei()->settings->settings[ 'my_course_page' ] );
831
-	    $login_link =  '<a href="' . esc_url( get_permalink( $my_courses_page_id ) ) . '">' . __( 'log in', 'woothemes-sensei' ) . '</a>';
832
-	    $wc_product_id =  self::get_course_product_id( $course_id );
830
+        $my_courses_page_id = intval(Sensei()->settings->settings['my_course_page']);
831
+	    $login_link = '<a href="'.esc_url(get_permalink($my_courses_page_id)).'">'.__('log in', 'woothemes-sensei').'</a>';
832
+	    $wc_product_id = self::get_course_product_id($course_id);
833 833
 
834
-	    if ( self::is_product_in_cart( $wc_product_id ) ) {
834
+	    if (self::is_product_in_cart($wc_product_id)) {
835 835
 
836
-		    $cart_link = '<a href="' . wc_get_checkout_url() . '" title="' . __( 'Checkout','woocommerce' ) . '">' . __( 'checkout', 'woocommerce' ) . '</a>';
836
+		    $cart_link = '<a href="'.wc_get_checkout_url().'" title="'.__('Checkout', 'woocommerce').'">'.__('checkout', 'woocommerce').'</a>';
837 837
 
838
-		    $message = sprintf( __( 'This course is already in your cart, please proceed to %1$s, to gain access.', 'woothemes-sensei' ), $cart_link );
838
+		    $message = sprintf(__('This course is already in your cart, please proceed to %1$s, to gain access.', 'woothemes-sensei'), $cart_link);
839 839
 		    ?>
840 840
 		    <span class="add-to-cart-login">
841 841
 		            <?php echo $message; ?>
@@ -843,7 +843,7 @@  discard block
 block discarded – undo
843 843
 
844 844
 		    <?php
845 845
 
846
-	    } elseif ( is_user_logged_in() ) {
846
+	    } elseif (is_user_logged_in()) {
847 847
 
848 848
 		    ?>
849 849
 		    <style>
@@ -856,7 +856,7 @@  discard block
 block discarded – undo
856 856
 
857 857
 	    } else {
858 858
 
859
-		    $message = sprintf( __( 'Or %1$s to access your purchased courses', 'woothemes-sensei' ), $login_link );
859
+		    $message = sprintf(__('Or %1$s to access your purchased courses', 'woothemes-sensei'), $login_link);
860 860
 	        ?>
861 861
 		        <span class="add-to-cart-login">
862 862
 		            <?php echo $message; ?>
@@ -876,34 +876,34 @@  discard block
 block discarded – undo
876 876
      *
877 877
      * @return bool
878 878
      */
879
-    public static function has_customer_bought_product ( $user_id, $product_id ){
879
+    public static function has_customer_bought_product($user_id, $product_id) {
880 880
 
881
-        $orders = self::get_user_product_orders( $user_id, $product_id );
881
+        $orders = self::get_user_product_orders($user_id, $product_id);
882 882
 
883
-        foreach ( $orders as $order_id ) {
883
+        foreach ($orders as $order_id) {
884 884
 
885
-            $order = new WC_Order( $order_id->ID );
885
+            $order = new WC_Order($order_id->ID);
886 886
 
887 887
             // wc-active is the subscriptions complete status
888
-            if ( ! in_array( $order->post_status, array( 'wc-complete','wc-processing' ) )
889
-                || ! ( 0 < sizeof( $order->get_items() ) )  ){
888
+            if ( ! in_array($order->post_status, array('wc-complete', 'wc-processing'))
889
+                || ! (0 < sizeof($order->get_items()))) {
890 890
 
891 891
                 continue;
892 892
 
893 893
             }
894 894
 
895
-            foreach( $order->get_items() as $item ) {
895
+            foreach ($order->get_items() as $item) {
896 896
 
897 897
                 // Check if user has bought product
898
-                if ( $item['product_id'] == $product_id || $item['variation_id'] == $product_id ) {
898
+                if ($item['product_id'] == $product_id || $item['variation_id'] == $product_id) {
899 899
 
900 900
                     // Check if user has an active subscription for product
901
-                    if( class_exists( 'WC_Subscriptions_Manager' ) ) {
902
-                        $sub_key = wcs_get_subscription( $order );
903
-                        if( $sub_key ) {
904
-                            $sub = wcs_get_subscription( $sub_key );
905
-                            if( $sub && isset( $sub['status'] ) ) {
906
-                                if( 'active' == $sub['status'] ) {
901
+                    if (class_exists('WC_Subscriptions_Manager')) {
902
+                        $sub_key = wcs_get_subscription($order);
903
+                        if ($sub_key) {
904
+                            $sub = wcs_get_subscription($sub_key);
905
+                            if ($sub && isset($sub['status'])) {
906
+                                if ('active' == $sub['status']) {
907 907
                                     return true;
908 908
                                 } else {
909 909
                                     return false;
@@ -935,11 +935,11 @@  discard block
 block discarded – undo
935 935
      * @return string $woocommerce_product_id or false if none exist
936 936
      *
937 937
      */
938
-    public static function get_course_product_id( $course_id ){
938
+    public static function get_course_product_id($course_id) {
939 939
 
940
-        $product_id =  get_post_meta( $course_id, '_course_woocommerce_product', true );
940
+        $product_id = get_post_meta($course_id, '_course_woocommerce_product', true);
941 941
 
942
-        if( empty( $product_id ) || 'product' != get_post_type( $product_id ) ){
942
+        if (empty($product_id) || 'product' != get_post_type($product_id)) {
943 943
             return false;
944 944
         }
945 945
 
@@ -955,11 +955,11 @@  discard block
 block discarded – undo
955 955
      * @param array $classes
956 956
      * @return array
957 957
      */
958
-    public static function add_woocommerce_body_class( $classes ){
958
+    public static function add_woocommerce_body_class($classes) {
959 959
 
960
-        if( ! in_array( 'woocommerce', $classes ) && defined( 'SENSEI_NO_PERMISSION' ) && SENSEI_NO_PERMISSION ){
960
+        if ( ! in_array('woocommerce', $classes) && defined('SENSEI_NO_PERMISSION') && SENSEI_NO_PERMISSION) {
961 961
 
962
-            $classes[] ='woocommerce';
962
+            $classes[] = 'woocommerce';
963 963
 
964 964
         }
965 965
 
@@ -977,7 +977,7 @@  discard block
 block discarded – undo
977 977
      *
978 978
      * @return  void
979 979
      */
980
-    public static function activate_subscription(  $order ) {
980
+    public static function activate_subscription($order) {
981 981
 
982 982
         $order_user = get_user_by('id', $order->user_id);
983 983
         $user['ID'] = $order_user->ID;
@@ -986,13 +986,13 @@  discard block
 block discarded – undo
986 986
         $user['user_url'] = $order_user->user_url;
987 987
 
988 988
         // Run through each product ordered
989
-        if ( ! sizeof($order->get_items() )>0 ) {
989
+        if ( ! sizeof($order->get_items()) > 0) {
990 990
 
991 991
             return;
992 992
 
993 993
         }
994 994
 
995
-        foreach($order->get_items() as $item) {
995
+        foreach ($order->get_items() as $item) {
996 996
 
997 997
             $product_type = '';
998 998
 
@@ -1007,21 +1007,21 @@  discard block
 block discarded – undo
1007 1007
 
1008 1008
             } // End If Statement
1009 1009
 
1010
-            $_product = self::get_product_object( $item_id, $product_type );
1010
+            $_product = self::get_product_object($item_id, $product_type);
1011 1011
 
1012 1012
             // Get courses that use the WC product
1013 1013
             $courses = array();
1014 1014
 
1015
-            if ( ! in_array( $product_type, self::get_subscription_types() ) ) {
1015
+            if ( ! in_array($product_type, self::get_subscription_types())) {
1016 1016
 
1017
-                $courses = Sensei()->course->get_product_courses( $item_id );
1017
+                $courses = Sensei()->course->get_product_courses($item_id);
1018 1018
 
1019 1019
             } // End If Statement
1020 1020
 
1021 1021
             // Loop and add the user to the course.
1022
-            foreach ( $courses as $course_item ){
1022
+            foreach ($courses as $course_item) {
1023 1023
 
1024
-                Sensei_Utils::user_start_course( intval( $user['ID'] ), $course_item->ID  );
1024
+                Sensei_Utils::user_start_course(intval($user['ID']), $course_item->ID);
1025 1025
 
1026 1026
             } // End For Loop
1027 1027
 
@@ -1039,13 +1039,13 @@  discard block
 block discarded – undo
1039 1039
      *
1040 1040
      * @return  void
1041 1041
      */
1042
-    public static function email_course_details(  $order ){
1042
+    public static function email_course_details($order) {
1043 1043
 
1044 1044
         global $woocommerce;
1045 1045
 
1046 1046
         // exit early if not wc-completed or wc-processing
1047
-        if( 'wc-completed' != $order->post_status
1048
-            && 'wc-processing' != $order->post_status  ) {
1047
+        if ('wc-completed' != $order->post_status
1048
+            && 'wc-processing' != $order->post_status) {
1049 1049
             return;
1050 1050
         }
1051 1051
 
@@ -1053,16 +1053,16 @@  discard block
 block discarded – undo
1053 1053
         $order_id = $order->id;
1054 1054
 
1055 1055
         //If object have items go through them all to find course
1056
-        if ( 0 < sizeof( $order_items ) ) {
1056
+        if (0 < sizeof($order_items)) {
1057 1057
 
1058
-            $course_details_html =  '<h2>' . __( 'Course details', 'woothemes-sensei' ) . '</h2>';
1058
+            $course_details_html = '<h2>'.__('Course details', 'woothemes-sensei').'</h2>';
1059 1059
             $order_contains_courses = false;
1060 1060
 
1061 1061
 
1062
-            foreach ( $order_items as $item ) {
1062
+            foreach ($order_items as $item) {
1063 1063
 
1064 1064
                 $product_type = '';
1065
-                if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1065
+                if (isset($item['variation_id']) && (0 < $item['variation_id'])) {
1066 1066
                     // If item has variation_id then its from variation
1067 1067
                     $item_id = $item['variation_id'];
1068 1068
                     $product_type = 'variation';
@@ -1071,9 +1071,9 @@  discard block
 block discarded – undo
1071 1071
                     $item_id = $item['product_id'];
1072 1072
                 } // End If Statement
1073 1073
 
1074
-                $user_id = get_post_meta( $order_id, '_customer_user', true );
1074
+                $user_id = get_post_meta($order_id, '_customer_user', true);
1075 1075
 
1076
-                if( $user_id ) {
1076
+                if ($user_id) {
1077 1077
 
1078 1078
                     // Get all courses for product
1079 1079
                     $args = array(
@@ -1088,16 +1088,16 @@  discard block
 block discarded – undo
1088 1088
                         'orderby' => 'menu_order date',
1089 1089
                         'order' => 'ASC',
1090 1090
                     );
1091
-                    $courses = get_posts( $args );
1091
+                    $courses = get_posts($args);
1092 1092
 
1093
-                    if( $courses && count( $courses ) > 0 ) {
1093
+                    if ($courses && count($courses) > 0) {
1094 1094
 
1095
-                        foreach( $courses as $course ) {
1095
+                        foreach ($courses as $course) {
1096 1096
 
1097 1097
                             $title = $course->post_title;
1098
-                            $permalink = get_permalink( $course->ID );
1098
+                            $permalink = get_permalink($course->ID);
1099 1099
                             $order_contains_courses = true;
1100
-                            $course_details_html .=  '<p><strong>' . sprintf( __( 'View course: %1$s', 'woothemes-sensei' ), '</strong><a href="' . esc_url( $permalink ) . '">' . $title . '</a>' ) . '</p>';
1100
+                            $course_details_html .= '<p><strong>'.sprintf(__('View course: %1$s', 'woothemes-sensei'), '</strong><a href="'.esc_url($permalink).'">'.$title.'</a>').'</p>';
1101 1101
                         }
1102 1102
 
1103 1103
 
@@ -1108,7 +1108,7 @@  discard block
 block discarded – undo
1108 1108
             } // end for each order item
1109 1109
 
1110 1110
             // Output Course details
1111
-            if( $order_contains_courses ){
1111
+            if ($order_contains_courses) {
1112 1112
 
1113 1113
                 echo $course_details_html;
1114 1114
 
@@ -1126,33 +1126,33 @@  discard block
 block discarded – undo
1126 1126
      * @param   int $order_id WC order ID
1127 1127
      * @return  void
1128 1128
      */
1129
-    public static function complete_order ( $order_id = 0 ) {
1129
+    public static function complete_order($order_id = 0) {
1130 1130
 
1131 1131
         $order_user = array();
1132 1132
 
1133 1133
         // Check for WooCommerce
1134
-        if ( Sensei_WC::is_woocommerce_active() && ( 0 < $order_id ) ) {
1134
+        if (Sensei_WC::is_woocommerce_active() && (0 < $order_id)) {
1135 1135
             // Get order object
1136
-            $order = new WC_Order( $order_id );
1136
+            $order = new WC_Order($order_id);
1137 1137
 
1138
-	        if ( ! in_array( $order->get_status(), array( 'complete', 'processing' ) ) ) {
1138
+	        if ( ! in_array($order->get_status(), array('complete', 'processing'))) {
1139 1139
 
1140 1140
 		        return;
1141 1141
 
1142 1142
 	        }
1143 1143
 
1144
-            $user = get_user_by( 'id', $order->get_user_id() );
1144
+            $user = get_user_by('id', $order->get_user_id());
1145 1145
             $order_user['ID'] = $user->ID;
1146 1146
             $order_user['user_login'] = $user->user_login;
1147 1147
             $order_user['user_email'] = $user->user_email;
1148 1148
             $order_user['user_url'] = $user->user_url;
1149 1149
             // Run through each product ordered
1150
-            if ( 0 < sizeof( $order->get_items() ) ) {
1150
+            if (0 < sizeof($order->get_items())) {
1151 1151
 
1152
-                foreach( $order->get_items() as $item ) {
1152
+                foreach ($order->get_items() as $item) {
1153 1153
 
1154 1154
                     $product_type = '';
1155
-                    if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1155
+                    if (isset($item['variation_id']) && (0 < $item['variation_id'])) {
1156 1156
 
1157 1157
                         $item_id = $item['variation_id'];
1158 1158
                         $product_type = 'variation';
@@ -1163,15 +1163,15 @@  discard block
 block discarded – undo
1163 1163
 
1164 1164
                     } // End If Statement
1165 1165
 
1166
-                    $_product = Sensei_WC::get_product_object( $item_id, $product_type );
1166
+                    $_product = Sensei_WC::get_product_object($item_id, $product_type);
1167 1167
 
1168 1168
                     // Get courses that use the WC product
1169
-                    $courses = Sensei()->course->get_product_courses( $_product->id );
1169
+                    $courses = Sensei()->course->get_product_courses($_product->id);
1170 1170
 
1171 1171
                     // Loop and update those courses
1172
-                    foreach ( $courses as $course_item ) {
1172
+                    foreach ($courses as $course_item) {
1173 1173
 
1174
-                        $update_course = self::course_update( $course_item->ID, $order_user );
1174
+                        $update_course = self::course_update($course_item->ID, $order_user);
1175 1175
 
1176 1176
                     } // End For Loop
1177 1177
 
@@ -1179,7 +1179,7 @@  discard block
 block discarded – undo
1179 1179
 
1180 1180
             } // End If Statement
1181 1181
             // Add meta to indicate that payment has been completed successfully
1182
-            update_post_meta( $order_id, 'sensei_payment_complete', '1' );
1182
+            update_post_meta($order_id, 'sensei_payment_complete', '1');
1183 1183
 
1184 1184
         } // End If Statement
1185 1185
 
@@ -1193,34 +1193,34 @@  discard block
 block discarded – undo
1193 1193
      * @param   integer| WC_Order $order_id order ID
1194 1194
      * @return  void
1195 1195
      */
1196
-    public static function cancel_order ( $order_id ) {
1196
+    public static function cancel_order($order_id) {
1197 1197
 
1198 1198
 		// Get order object
1199
-		if( is_object( $order_id ) ){
1199
+		if (is_object($order_id)) {
1200 1200
 
1201 1201
 			$order = $order_id;
1202 1202
 
1203
-		}else{
1203
+		} else {
1204 1204
 
1205
-			$order = new WC_Order( $order_id );
1205
+			$order = new WC_Order($order_id);
1206 1206
 		}
1207 1207
 
1208
-		if ( ! in_array( $order->get_status(), array( 'cancelled', 'refunded' ) ) ) {
1208
+		if ( ! in_array($order->get_status(), array('cancelled', 'refunded'))) {
1209 1209
 
1210 1210
 			return;
1211 1211
 
1212 1212
 		}
1213 1213
 
1214 1214
         // Run through each product ordered
1215
-        if ( 0 < sizeof( $order->get_items() ) ) {
1215
+        if (0 < sizeof($order->get_items())) {
1216 1216
 
1217 1217
             // Get order user
1218
-            $user_id = $order->__get( 'user_id' );
1218
+            $user_id = $order->__get('user_id');
1219 1219
 
1220
-            foreach( $order->get_items() as $item ) {
1220
+            foreach ($order->get_items() as $item) {
1221 1221
 
1222 1222
                 $product_type = '';
1223
-                if ( isset( $item['variation_id'] ) && ( 0 < $item['variation_id'] ) ) {
1223
+                if (isset($item['variation_id']) && (0 < $item['variation_id'])) {
1224 1224
 
1225 1225
                     $item_id = $item['variation_id'];
1226 1226
                     $product_type = 'variation';
@@ -1231,20 +1231,20 @@  discard block
 block discarded – undo
1231 1231
 
1232 1232
                 } // End If Statement
1233 1233
 
1234
-                $_product = Sensei_WC::get_product_object( $item_id, $product_type );
1234
+                $_product = Sensei_WC::get_product_object($item_id, $product_type);
1235 1235
 
1236 1236
                 // Get courses that use the WC product
1237 1237
                 $courses = array();
1238
-                $courses = Sensei()->course->get_product_courses( $item_id );
1238
+                $courses = Sensei()->course->get_product_courses($item_id);
1239 1239
 
1240 1240
                 // Loop and update those courses
1241
-                foreach ($courses as $course_item){
1241
+                foreach ($courses as $course_item) {
1242 1242
 
1243
-	                if( self::has_customer_bought_product( $user_id, $course_item->ID ) ){
1243
+	                if (self::has_customer_bought_product($user_id, $course_item->ID)) {
1244 1244
 		                continue;
1245 1245
 	                }
1246 1246
                     // Check and Remove course from courses user meta
1247
-                    $dataset_changes = Sensei_Utils::sensei_remove_user_from_course( $course_item->ID, $user_id );
1247
+                    $dataset_changes = Sensei_Utils::sensei_remove_user_from_course($course_item->ID, $user_id);
1248 1248
 
1249 1249
                 } // End For Loop
1250 1250
 
@@ -1265,30 +1265,30 @@  discard block
 block discarded – undo
1265 1265
      * @param   string  $product_type  '' or 'variation'
1266 1266
      * @return   WC_Product $wc_product_object
1267 1267
      */
1268
-    public static function get_product_object ( $wc_product_id = 0, $product_type = '' ) {
1268
+    public static function get_product_object($wc_product_id = 0, $product_type = '') {
1269 1269
 
1270 1270
         $wc_product_object = false;
1271
-        if ( 0 < intval( $wc_product_id ) ) {
1271
+        if (0 < intval($wc_product_id)) {
1272 1272
 
1273 1273
             // Get the product
1274
-            if ( function_exists( 'wc_get_product' ) ) {
1274
+            if (function_exists('wc_get_product')) {
1275 1275
 
1276
-                $wc_product_object = wc_get_product( $wc_product_id ); // Post WC 2.3
1276
+                $wc_product_object = wc_get_product($wc_product_id); // Post WC 2.3
1277 1277
 
1278
-            } elseif ( function_exists( 'get_product' ) ) {
1278
+            } elseif (function_exists('get_product')) {
1279 1279
 
1280
-                $wc_product_object = get_product( $wc_product_id ); // Post WC 2.0
1280
+                $wc_product_object = get_product($wc_product_id); // Post WC 2.0
1281 1281
 
1282 1282
             } else {
1283 1283
 
1284 1284
                 // Pre WC 2.0
1285
-                if ( 'variation' == $product_type || 'subscription_variation' == $product_type ) {
1285
+                if ('variation' == $product_type || 'subscription_variation' == $product_type) {
1286 1286
 
1287
-                    $wc_product_object = new WC_Product_Variation( $wc_product_id );
1287
+                    $wc_product_object = new WC_Product_Variation($wc_product_id);
1288 1288
 
1289 1289
                 } else {
1290 1290
 
1291
-                    $wc_product_object = new WC_Product( $wc_product_id );
1291
+                    $wc_product_object = new WC_Product($wc_product_id);
1292 1292
 
1293 1293
                 } // End If Statement
1294 1294
 
@@ -1311,19 +1311,19 @@  discard block
 block discarded – undo
1311 1311
      *
1312 1312
      * @return bool|int
1313 1313
      */
1314
-    public static function course_update ( $course_id = 0, $order_user = array()  ) {
1314
+    public static function course_update($course_id = 0, $order_user = array()) {
1315 1315
 
1316 1316
         global $current_user;
1317 1317
 
1318
-        if ( ! isset( $current_user ) || !$current_user->ID > 0 ) return false;
1318
+        if ( ! isset($current_user) || ! $current_user->ID > 0) return false;
1319 1319
 
1320 1320
         $data_update = false;
1321 1321
 
1322 1322
         // Get the product ID
1323
-        $wc_post_id = get_post_meta( intval( $course_id ), '_course_woocommerce_product', true );
1323
+        $wc_post_id = get_post_meta(intval($course_id), '_course_woocommerce_product', true);
1324 1324
 
1325 1325
         // Check if in the admin
1326
-        if ( is_admin() ) {
1326
+        if (is_admin()) {
1327 1327
 
1328 1328
             $user_login = $order_user['user_login'];
1329 1329
             $user_email = $order_user['user_email'];
@@ -1340,28 +1340,28 @@  discard block
 block discarded – undo
1340 1340
         } // End If Statement
1341 1341
 
1342 1342
         // This doesn't appear to be purely WooCommerce related. Should it be in a separate function?
1343
-        $course_prerequisite_id = (int) get_post_meta( $course_id, '_course_prerequisite', true );
1344
-        if( 0 < absint( $course_prerequisite_id ) ) {
1343
+        $course_prerequisite_id = (int) get_post_meta($course_id, '_course_prerequisite', true);
1344
+        if (0 < absint($course_prerequisite_id)) {
1345 1345
 
1346
-            $prereq_course_complete = Sensei_Utils::user_completed_course( $course_prerequisite_id, intval( $user_id ) );
1347
-            if ( ! $prereq_course_complete ) {
1346
+            $prereq_course_complete = Sensei_Utils::user_completed_course($course_prerequisite_id, intval($user_id));
1347
+            if ( ! $prereq_course_complete) {
1348 1348
 
1349 1349
                 // Remove all course user meta
1350
-                return Sensei_Utils::sensei_remove_user_from_course( $course_id, $user_id );
1350
+                return Sensei_Utils::sensei_remove_user_from_course($course_id, $user_id);
1351 1351
 
1352 1352
             }
1353 1353
         }
1354 1354
 
1355
-        $is_user_taking_course = Sensei_Utils::user_started_course( intval( $course_id ), intval( $user_id ) );
1355
+        $is_user_taking_course = Sensei_Utils::user_started_course(intval($course_id), intval($user_id));
1356 1356
 
1357 1357
         if ( ! $is_user_taking_course
1358 1358
             && Sensei_WC::is_woocommerce_active()
1359 1359
             && 0 < $wc_post_id
1360
-            && Sensei_WC::has_customer_bought_product( $user_id, $wc_post_id ) ) {
1360
+            && Sensei_WC::has_customer_bought_product($user_id, $wc_post_id)) {
1361 1361
 
1362
-	            $activity_logged = Sensei_Utils::user_start_course( intval( $user_id ), intval( $course_id ) );
1362
+	            $activity_logged = Sensei_Utils::user_start_course(intval($user_id), intval($course_id));
1363 1363
 
1364
-	            if ( true == $activity_logged ) {
1364
+	            if (true == $activity_logged) {
1365 1365
 
1366 1366
 		            $is_user_taking_course = true;
1367 1367
 
@@ -1383,14 +1383,14 @@  discard block
 block discarded – undo
1383 1383
      *
1384 1384
      * @return boolean                 Modified guest checkout setting
1385 1385
      */
1386
-    public static function disable_guest_checkout( $guest_checkout ) {
1386
+    public static function disable_guest_checkout($guest_checkout) {
1387 1387
 
1388
-        if( ! is_admin() || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
1388
+        if ( ! is_admin() || (defined('DOING_AJAX') && DOING_AJAX)) {
1389 1389
 
1390
-            if( isset( WC()->cart->cart_contents ) && count( WC()->cart->cart_contents ) > 0 ) {
1390
+            if (isset(WC()->cart->cart_contents) && count(WC()->cart->cart_contents) > 0) {
1391 1391
 
1392
-                foreach( WC()->cart->cart_contents as $cart_key => $product ) {
1393
-                    if( isset( $product['product_id'] ) ) {
1392
+                foreach (WC()->cart->cart_contents as $cart_key => $product) {
1393
+                    if (isset($product['product_id'])) {
1394 1394
 
1395 1395
                         $args = array(
1396 1396
                             'posts_per_page' => -1,
@@ -1403,11 +1403,11 @@  discard block
 block discarded – undo
1403 1403
                             )
1404 1404
                         );
1405 1405
 
1406
-                        $posts = get_posts( $args );
1406
+                        $posts = get_posts($args);
1407 1407
 
1408
-                        if( $posts && count( $posts ) > 0 ) {
1408
+                        if ($posts && count($posts) > 0) {
1409 1409
 
1410
-                            foreach( $posts as $course ) {
1410
+                            foreach ($posts as $course) {
1411 1411
                                 $guest_checkout = '';
1412 1412
                                 break;
1413 1413
 
@@ -1436,23 +1436,23 @@  discard block
 block discarded – undo
1436 1436
      *
1437 1437
      * @return string
1438 1438
      **/
1439
-    public static function virtual_order_payment_complete( $order_status, $order_id ) {
1439
+    public static function virtual_order_payment_complete($order_status, $order_id) {
1440 1440
 
1441
-        $order = new WC_Order( $order_id );
1441
+        $order = new WC_Order($order_id);
1442 1442
 
1443
-        if ( ! isset ( $order ) ) return '';
1443
+        if ( ! isset ($order)) return '';
1444 1444
 
1445
-        if ( $order_status == 'wc-processing' && ( $order->post_status == 'wc-on-hold' || $order->post_status == 'wc-pending' || $order->post_status == 'wc-failed' ) ) {
1445
+        if ($order_status == 'wc-processing' && ($order->post_status == 'wc-on-hold' || $order->post_status == 'wc-pending' || $order->post_status == 'wc-failed')) {
1446 1446
 
1447 1447
             $virtual_order = true;
1448 1448
 
1449
-            if ( count( $order->get_items() ) > 0 ) {
1449
+            if (count($order->get_items()) > 0) {
1450 1450
 
1451
-                foreach( $order->get_items() as $item ) {
1451
+                foreach ($order->get_items() as $item) {
1452 1452
 
1453
-                    if ( $item['product_id'] > 0 ) {
1454
-                        $_product = $order->get_product_from_item( $item );
1455
-                        if ( ! $_product->is_virtual() ) {
1453
+                    if ($item['product_id'] > 0) {
1454
+                        $_product = $order->get_product_from_item($item);
1455
+                        if ( ! $_product->is_virtual()) {
1456 1456
 
1457 1457
                             $virtual_order = false;
1458 1458
                             break;
@@ -1466,7 +1466,7 @@  discard block
 block discarded – undo
1466 1466
             } // End If Statement
1467 1467
 
1468 1468
             // virtual order, mark as completed
1469
-            if ( $virtual_order ) {
1469
+            if ($virtual_order) {
1470 1470
 
1471 1471
                 return 'completed';
1472 1472
 
@@ -1489,14 +1489,14 @@  discard block
 block discarded – undo
1489 1489
      * @param  integer $user_id
1490 1490
      * @return boolean $user_access_permission
1491 1491
      */
1492
-    public static function get_subscription_permission( $user_access_permission, $user_id ){
1492
+    public static function get_subscription_permission($user_access_permission, $user_id) {
1493 1493
 
1494 1494
         global $post;
1495 1495
 
1496 1496
         // ignore the current case if the following conditions are met
1497
-        if ( ! class_exists( 'WC_Subscriptions' ) || empty( $user_id )
1498
-            || ! in_array( $post->post_type, array( 'course','lesson','quiz' ) )
1499
-            || ! wcs_user_has_subscription( $user_id) ){
1497
+        if ( ! class_exists('WC_Subscriptions') || empty($user_id)
1498
+            || ! in_array($post->post_type, array('course', 'lesson', 'quiz'))
1499
+            || ! wcs_user_has_subscription($user_id)) {
1500 1500
 
1501 1501
             return $user_access_permission;
1502 1502
 
@@ -1506,25 +1506,25 @@  discard block
 block discarded – undo
1506 1506
         // is the subscription on the the current course?
1507 1507
 
1508 1508
         $course_id = 0;
1509
-        if ( 'course' == $post->post_type ){
1509
+        if ('course' == $post->post_type) {
1510 1510
 
1511 1511
             $course_id = $post->ID;
1512 1512
 
1513
-        } elseif ( 'lesson' == $post->post_type ) {
1513
+        } elseif ('lesson' == $post->post_type) {
1514 1514
 
1515
-            $course_id = Sensei()->lesson->get_course_id( $post->ID );
1515
+            $course_id = Sensei()->lesson->get_course_id($post->ID);
1516 1516
 
1517 1517
         } else {
1518 1518
 
1519
-            $lesson_id =  Sensei()->quiz->get_lesson_id( $post->ID );
1520
-            $course_id = Sensei()->lesson->get_course_id( $lesson_id );
1519
+            $lesson_id = Sensei()->quiz->get_lesson_id($post->ID);
1520
+            $course_id = Sensei()->lesson->get_course_id($lesson_id);
1521 1521
 
1522 1522
         }
1523 1523
 
1524 1524
         // if the course has no subscription WooCommerce product attached to return the permissions as is
1525
-        $product_id = Sensei_WC::get_course_product_id( $course_id );
1526
-        $product = wc_get_product( $product_id );
1527
-        if( ! in_array( $product->get_type(), self::get_subscription_types() ) ){
1525
+        $product_id = Sensei_WC::get_course_product_id($course_id);
1526
+        $product = wc_get_product($product_id);
1527
+        if ( ! in_array($product->get_type(), self::get_subscription_types())) {
1528 1528
 
1529 1529
             return $user_access_permission;
1530 1530
 
@@ -1532,19 +1532,19 @@  discard block
 block discarded – undo
1532 1532
 
1533 1533
         // give access if user has active subscription on the product otherwise restrict it.
1534 1534
         // also check if the user was added to the course directly after the subscription started.
1535
-        if( wcs_user_has_subscription( $user_id, $product_id, 'active'  )
1536
-            || wcs_user_has_subscription( $user_id, $product_id, 'pending-cancel'  )
1537
-            || self::was_user_added_without_subscription( $user_id, $product_id, $course_id  ) ){
1535
+        if (wcs_user_has_subscription($user_id, $product_id, 'active')
1536
+            || wcs_user_has_subscription($user_id, $product_id, 'pending-cancel')
1537
+            || self::was_user_added_without_subscription($user_id, $product_id, $course_id)) {
1538 1538
 
1539 1539
             $user_access_permission = true;
1540 1540
 
1541
-        }else{
1541
+        } else {
1542 1542
 
1543 1543
             $user_access_permission = false;
1544 1544
             // do not show the WC permissions message
1545
-            remove_filter( 'sensei_the_no_permissions_message', array( 'Sensei_WC', 'alter_no_permissions_message' ), 20, 2 );
1546
-            Sensei()->permissions_message['title'] = __( 'No active subscription', 'woothemes-sensei' );
1547
-            Sensei()->permissions_message['message'] = __( 'Sorry, you do not have an access to this content without an active subscription.', 'woothemes-sensei' );
1545
+            remove_filter('sensei_the_no_permissions_message', array('Sensei_WC', 'alter_no_permissions_message'), 20, 2);
1546
+            Sensei()->permissions_message['title'] = __('No active subscription', 'woothemes-sensei');
1547
+            Sensei()->permissions_message['message'] = __('Sorry, you do not have an access to this content without an active subscription.', 'woothemes-sensei');
1548 1548
         }
1549 1549
 
1550 1550
         return $user_access_permission;
@@ -1557,9 +1557,9 @@  discard block
 block discarded – undo
1557 1557
      * @since 1.9.0
1558 1558
      * @return array
1559 1559
      */
1560
-    public static function get_subscription_types(){
1560
+    public static function get_subscription_types() {
1561 1561
 
1562
-        return array( 'subscription','subscription_variation','variable-subscription' );
1562
+        return array('subscription', 'subscription_variation', 'variable-subscription');
1563 1563
 
1564 1564
     }
1565 1565
 
@@ -1579,15 +1579,15 @@  discard block
 block discarded – undo
1579 1579
      *
1580 1580
      * @return bool
1581 1581
      */
1582
-    public static function was_user_added_without_subscription($user_id, $product_id, $course_id ){
1582
+    public static function was_user_added_without_subscription($user_id, $product_id, $course_id) {
1583 1583
 
1584 1584
         $course_start_date = '';
1585 1585
         $subscription_start_date = '';
1586
-        $is_a_subscription ='';
1586
+        $is_a_subscription = '';
1587 1587
         $was_user_added_without_subscription = true;
1588 1588
 
1589 1589
         // if user is not on the course they were not added
1590
-        if( ! Sensei_Utils::user_started_course( $course_id, $user_id ) ){
1590
+        if ( ! Sensei_Utils::user_started_course($course_id, $user_id)) {
1591 1591
 
1592 1592
             return false;
1593 1593
 
@@ -1596,34 +1596,34 @@  discard block
 block discarded – undo
1596 1596
         // if user doesn't have a subscription and is taking the course
1597 1597
         // they were added manually
1598 1598
         if ( ! wcs_user_has_subscription($user_id, $product_id)
1599
-            && Sensei_Utils::user_started_course( $course_id, get_current_user_id() )  ){
1599
+            && Sensei_Utils::user_started_course($course_id, get_current_user_id())) {
1600 1600
 
1601 1601
             return true;
1602 1602
 
1603 1603
         }
1604 1604
 
1605
-        $course_status =  Sensei_Utils::user_course_status( $course_id, $user_id );
1605
+        $course_status = Sensei_Utils::user_course_status($course_id, $user_id);
1606 1606
 
1607 1607
         // comparing dates setup data
1608
-        $course_start_date = date_create( $course_status->comment_date );
1609
-        $subscriptions = wcs_get_users_subscriptions( $user_id );
1608
+        $course_start_date = date_create($course_status->comment_date);
1609
+        $subscriptions = wcs_get_users_subscriptions($user_id);
1610 1610
 
1611 1611
         // comparing every subscription
1612
-        foreach( $subscriptions as $subscription ){
1612
+        foreach ($subscriptions as $subscription) {
1613 1613
 
1614 1614
             // for the following statuses we know the user was not added
1615 1615
             // manually
1616 1616
             $status = $subscription->get_status();
1617
-            if ( in_array( $status, array( 'pending-canceled', 'active', 'on-hold', 'pending' ) ) ) {
1617
+            if (in_array($status, array('pending-canceled', 'active', 'on-hold', 'pending'))) {
1618 1618
 
1619 1619
                 continue;
1620 1620
 
1621 1621
             }
1622 1622
 
1623
-            $current_subscription_start_date = date_create( $subscription->modified_date );
1623
+            $current_subscription_start_date = date_create($subscription->modified_date);
1624 1624
 
1625 1625
             // is the last updated subscription date newer than course start date
1626
-            if (  $current_subscription_start_date > $course_start_date   ) {
1626
+            if ($current_subscription_start_date > $course_start_date) {
1627 1627
 
1628 1628
                 return false;
1629 1629
 
@@ -1642,15 +1642,15 @@  discard block
 block discarded – undo
1642 1642
 	 *
1643 1643
 	 * @return array $orders
1644 1644
 	 */
1645
-	public static function get_user_product_orders( $user_id =  0, $product_id ) {
1645
+	public static function get_user_product_orders($user_id = 0, $product_id) {
1646 1646
 
1647
-		return get_posts( array(
1647
+		return get_posts(array(
1648 1648
 			'numberposts' => -1,
1649 1649
 			'post_type' => 'shop_order',
1650 1650
 			'meta_key'    => '_customer_user',
1651
-			'meta_value'  => intval( $user_id ),
1652
-			'post_status' => array( 'wc-complete','wc-processing' ),
1653
-		) );
1651
+			'meta_value'  => intval($user_id),
1652
+			'post_status' => array('wc-complete', 'wc-processing'),
1653
+		));
1654 1654
 
1655 1655
 	}
1656 1656
 
Please login to merge, or discard this patch.
Braces   +12 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // 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
 /**
5 8
  * Sensei WooCommerce class
@@ -1200,7 +1203,7 @@  discard block
 block discarded – undo
1200 1203
 
1201 1204
 			$order = $order_id;
1202 1205
 
1203
-		}else{
1206
+		} else{
1204 1207
 
1205 1208
 			$order = new WC_Order( $order_id );
1206 1209
 		}
@@ -1315,7 +1318,9 @@  discard block
 block discarded – undo
1315 1318
 
1316 1319
         global $current_user;
1317 1320
 
1318
-        if ( ! isset( $current_user ) || !$current_user->ID > 0 ) return false;
1321
+        if ( ! isset( $current_user ) || !$current_user->ID > 0 ) {
1322
+        	return false;
1323
+        }
1319 1324
 
1320 1325
         $data_update = false;
1321 1326
 
@@ -1440,7 +1445,9 @@  discard block
 block discarded – undo
1440 1445
 
1441 1446
         $order = new WC_Order( $order_id );
1442 1447
 
1443
-        if ( ! isset ( $order ) ) return '';
1448
+        if ( ! isset ( $order ) ) {
1449
+        	return '';
1450
+        }
1444 1451
 
1445 1452
         if ( $order_status == 'wc-processing' && ( $order->post_status == 'wc-on-hold' || $order->post_status == 'wc-pending' || $order->post_status == 'wc-failed' ) ) {
1446 1453
 
@@ -1538,7 +1545,7 @@  discard block
 block discarded – undo
1538 1545
 
1539 1546
             $user_access_permission = true;
1540 1547
 
1541
-        }else{
1548
+        } else{
1542 1549
 
1543 1550
             $user_access_permission = false;
1544 1551
             // do not show the WC permissions message
Please login to merge, or discard this patch.
includes/class-sensei-lesson.php 2 patches
Indentation   +1071 added lines, -1071 removed lines patch added patch discarded remove patch
@@ -21,12 +21,12 @@  discard block
 block discarded – undo
21 21
 	 */
22 22
 	public function __construct () {
23 23
 
24
-        $this->token = 'lesson';
24
+		$this->token = 'lesson';
25 25
 
26 26
 		// Setup meta fields for this post type
27 27
 		$this->meta_fields = array( 'lesson_prerequisite', 'lesson_course', 'lesson_preview', 'lesson_length', 'lesson_complexity', 'lesson_video_embed' );
28 28
 
29
-        $this->question_order = '';
29
+		$this->question_order = '';
30 30
 
31 31
 		// Admin actions
32 32
 		if ( is_admin() ) {
@@ -84,18 +84,18 @@  discard block
 block discarded – undo
84 84
 			add_action( 'wp_ajax_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) );
85 85
 			add_action( 'wp_ajax_nopriv_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) );
86 86
 
87
-            // output bulk edit fields
88
-            add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
89
-            add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
87
+			// output bulk edit fields
88
+			add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
89
+			add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
90 90
 
91
-            // load quick edit default values
92
-            add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2);
91
+			// load quick edit default values
92
+			add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2);
93 93
 
94
-            // save bulk edit fields
95
-            add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) );
94
+			// save bulk edit fields
95
+			add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) );
96 96
 
97
-            // flush rewrite rules when saving a lesson
98
-            add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) );
97
+			// flush rewrite rules when saving a lesson
98
+			add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) );
99 99
 
100 100
 		} else {
101 101
 			// Frontend actions
@@ -189,8 +189,8 @@  discard block
 block discarded – undo
189 189
 		$post_args = array(	'post_type' 		=> 'lesson',
190 190
 							'posts_per_page' 		=> -1,
191 191
 							'orderby'         	=> 'title',
192
-    						'order'           	=> 'ASC',
193
-    						'exclude' 			=> $post->ID,
192
+							'order'           	=> 'ASC',
193
+							'exclude' 			=> $post->ID,
194 194
 							'suppress_filters' 	=> 0
195 195
 							);
196 196
 		$posts_array = get_posts( $post_args );
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
 
227 227
 		$checked = '';
228 228
 		if ( isset( $lesson_preview ) && ( '' != $lesson_preview ) ) {
229
-	 	    $checked = checked( 'preview', $lesson_preview, false );
229
+	 		$checked = checked( 'preview', $lesson_preview, false );
230 230
 	 	} // End If Statement
231 231
 
232 232
 	 	$html .= '<label for="lesson_preview">';
@@ -275,7 +275,7 @@  discard block
 block discarded – undo
275 275
 
276 276
 
277 277
 	/**
278
-     * Update the lesson quiz and all the post meta
278
+	 * Update the lesson quiz and all the post meta
279 279
 	 *
280 280
 	 * @access public
281 281
 	 * @return integer|boolean $post_id or false
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 		}
297 297
 
298 298
 		// Temporarily disable the filter
299
-        remove_action( 'save_post', array( $this, 'quiz_update' ) );
299
+		remove_action( 'save_post', array( $this, 'quiz_update' ) );
300 300
 		// Save the Quiz
301 301
 		$quiz_id = $this->lesson_quizzes( $post_id, 'any');
302 302
 
@@ -311,11 +311,11 @@  discard block
 block discarded – undo
311 311
 
312 312
 		// Setup Query Arguments
313 313
 		$post_type_args = array(	'post_content' => $post_content,
314
-  		    						'post_status' => $post_status,
315
-  		    						'post_title' => $post_title,
316
-  		    						'post_type' => 'quiz',
317
-                                    'post_parent' => $post_id,
318
-  		    						);
314
+  									'post_status' => $post_status,
315
+  									'post_title' => $post_title,
316
+  									'post_type' => 'quiz',
317
+									'post_parent' => $post_id,
318
+  									);
319 319
 
320 320
 		$settings = $this->get_quiz_settings();
321 321
 
@@ -323,48 +323,48 @@  discard block
 block discarded – undo
323 323
 		if ( 0 < $quiz_id ) {
324 324
 			// Update the Quiz
325 325
 			$post_type_args[ 'ID' ] = $quiz_id;
326
-		    wp_update_post($post_type_args);
327
-
328
-		    // Update the post meta data
329
-		    update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
330
-
331
-		    foreach( $settings as $field ) {
332
-		    	if( 'random_question_order' != $field['id'] ) {
333
-			    	$value = $this->get_submitted_setting_value( $field );
334
-			    	if( isset( $value ) ) {
335
-			    		update_post_meta( $quiz_id, '_' . $field['id'], $value );
336
-			    	}
337
-			    }
338
-		    }
339
-
340
-		    // Set the post terms for quiz-type
341
-		    wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
326
+			wp_update_post($post_type_args);
327
+
328
+			// Update the post meta data
329
+			update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
330
+
331
+			foreach( $settings as $field ) {
332
+				if( 'random_question_order' != $field['id'] ) {
333
+					$value = $this->get_submitted_setting_value( $field );
334
+					if( isset( $value ) ) {
335
+						update_post_meta( $quiz_id, '_' . $field['id'], $value );
336
+					}
337
+				}
338
+			}
339
+
340
+			// Set the post terms for quiz-type
341
+			wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
342 342
 		} else {
343 343
 			// Create the Quiz
344
-		    $quiz_id = wp_insert_post($post_type_args);
345
-
346
-		    // Add the post meta data WP will add it if it doesn't exist
347
-            update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
348
-
349
-		    foreach( $settings as $field ) {
350
-		    	if( 'random_question_order' != $field['id'] ) {
351
-
352
-                    //ignore values not posted to avoid
353
-                    // overwriting with empty or default values
354
-                    // when the values are posted from bulk edit or quick edit
355
-                    if( !isset( $_POST[ $field['id'] ] ) ){
356
-                        continue;
357
-                    }
358
-
359
-			    	$value = $this->get_submitted_setting_value( $field );
360
-			    	if( isset( $value ) ) {
361
-			    		add_post_meta( $quiz_id, '_' . $field['id'], $value );
362
-			    	}
363
-			    }
364
-		    }
365
-
366
-		    // Set the post terms for quiz-type
367
-		    wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
344
+			$quiz_id = wp_insert_post($post_type_args);
345
+
346
+			// Add the post meta data WP will add it if it doesn't exist
347
+			update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
348
+
349
+			foreach( $settings as $field ) {
350
+				if( 'random_question_order' != $field['id'] ) {
351
+
352
+					//ignore values not posted to avoid
353
+					// overwriting with empty or default values
354
+					// when the values are posted from bulk edit or quick edit
355
+					if( !isset( $_POST[ $field['id'] ] ) ){
356
+						continue;
357
+					}
358
+
359
+					$value = $this->get_submitted_setting_value( $field );
360
+					if( isset( $value ) ) {
361
+						add_post_meta( $quiz_id, '_' . $field['id'], $value );
362
+					}
363
+				}
364
+			}
365
+
366
+			// Set the post terms for quiz-type
367
+			wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
368 368
 		} // End If Statement
369 369
 
370 370
 		// Add default lesson order meta value
@@ -386,7 +386,7 @@  discard block
 block discarded – undo
386 386
 		}
387 387
 
388 388
 		// Restore the previously disabled filter
389
-        add_action( 'save_post', array( $this, 'quiz_update' ) );
389
+		add_action( 'save_post', array( $this, 'quiz_update' ) );
390 390
 
391 391
 	} // End post_updated()
392 392
 
@@ -426,22 +426,22 @@  discard block
 block discarded – undo
426 426
 		// Get the meta key.
427 427
 		$meta_key = '_' . $post_key;
428 428
 
429
-        //ignore fields are not posted
429
+		//ignore fields are not posted
430 430
 
431
-        if( !isset( $_POST[ $post_key ] ) ){
431
+		if( !isset( $_POST[ $post_key ] ) ){
432 432
 
433
-            // except for lesson preview checkbox field
434
-            if( 'lesson_preview' == $post_key ){
433
+			// except for lesson preview checkbox field
434
+			if( 'lesson_preview' == $post_key ){
435 435
 
436
-                $_POST[ $post_key ] = '';
436
+				$_POST[ $post_key ] = '';
437 437
 
438
-            } else {
438
+			} else {
439 439
 
440
-                return false;
440
+				return false;
441 441
 
442
-            }
442
+			}
443 443
 
444
-        }
444
+		}
445 445
 
446 446
 		// Get the posted data and sanitize it for use as an HTML class.
447 447
 		if ( 'lesson_video_embed' == $post_key) {
@@ -450,10 +450,10 @@  discard block
 block discarded – undo
450 450
 			$new_meta_value = ( isset( $_POST[$post_key] ) ? sanitize_html_class( $_POST[$post_key] ) : '' );
451 451
 		} // End If Statement
452 452
 
453
-        // update field with the new value
454
-        if( -1 != $new_meta_value  ){
455
-            return update_post_meta( $post_id, $meta_key, $new_meta_value );
456
-        }
453
+		// update field with the new value
454
+		if( -1 != $new_meta_value  ){
455
+			return update_post_meta( $post_id, $meta_key, $new_meta_value );
456
+		}
457 457
 
458 458
 	} // End save_post_meta()
459 459
 
@@ -478,9 +478,9 @@  discard block
 block discarded – undo
478 478
 		$post_args = array(	'post_type' 		=> 'course',
479 479
 							'posts_per_page' 		=> -1,
480 480
 							'orderby'         	=> 'title',
481
-    						'order'           	=> 'ASC',
482
-    						'post_status'      	=> 'any',
483
-    						'suppress_filters' 	=> 0,
481
+							'order'           	=> 'ASC',
482
+							'post_status'      	=> 'any',
483
+							'suppress_filters' 	=> 0,
484 484
 							);
485 485
 		$posts_array = get_posts( $post_args );
486 486
 		// Buid the HTML to Output
@@ -488,20 +488,20 @@  discard block
 block discarded – undo
488 488
 		// Nonce
489 489
 		$html .= wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false  );
490 490
 
491
-        // Select the course for the lesson
492
-        $drop_down_args = array(
493
-            'name'=>'lesson_course',
494
-            'id' => 'lesson-course-options'
495
-        );
491
+		// Select the course for the lesson
492
+		$drop_down_args = array(
493
+			'name'=>'lesson_course',
494
+			'id' => 'lesson-course-options'
495
+		);
496 496
 
497
-        $courses = WooThemes_Sensei_Course::get_all_courses();
498
-        $courses_options = array();
499
-        foreach( $courses as $course ){
500
-            $courses_options[ $course->ID ] = get_the_title( $course ) ;
501
-        }
502
-        $html .= Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args );
497
+		$courses = WooThemes_Sensei_Course::get_all_courses();
498
+		$courses_options = array();
499
+		foreach( $courses as $course ){
500
+			$courses_options[ $course->ID ] = get_the_title( $course ) ;
501
+		}
502
+		$html .= Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args );
503 503
 
504
-        // Course Actions Panel
504
+		// Course Actions Panel
505 505
 		if ( current_user_can( 'publish_courses' )) {
506 506
 				$html .= '<div id="lesson-course-actions">';
507 507
 					$html .= '<p>';
@@ -527,16 +527,16 @@  discard block
 block discarded – undo
527 527
 							} // End For Loop
528 528
 						$html .= '</select>' . "\n";
529 529
 						// Course Product
530
-                        if ( Sensei_WC::is_woocommerce_active() ) {
530
+						if ( Sensei_WC::is_woocommerce_active() ) {
531 531
 	  						// Get the Products
532 532
 							$select_course_woocommerce_product = get_post_meta( $post_item->ID, '_course_woocommerce_product', true );
533 533
 
534 534
 							$product_args = array(	'post_type' 		=> array( 'product', 'product_variation' ),
535 535
 													'posts_per_page' 		=> -1,
536 536
 													'orderby'         	=> 'title',
537
-	    											'order'           	=> 'DESC',
538
-	    											'post_status'		=> array( 'publish', 'private', 'draft' ),
539
-	    											'tax_query'			=> array(
537
+													'order'           	=> 'DESC',
538
+													'post_status'		=> array( 'publish', 'private', 'draft' ),
539
+													'tax_query'			=> array(
540 540
 														array(
541 541
 															'taxonomy'	=> 'product_type',
542 542
 															'field'		=> 'slug',
@@ -544,7 +544,7 @@  discard block
 block discarded – undo
544 544
 															'operator'	=> 'NOT IN'
545 545
 														)
546 546
 													),
547
-	    											'suppress_filters' 	=> 0
547
+													'suppress_filters' 	=> 0
548 548
 													);
549 549
 							$products_array = get_posts( $product_args );
550 550
 							$html .= '<label>' . __( 'WooCommerce Product' , 'woothemes-sensei' ) . '</label> ';
@@ -872,58 +872,58 @@  discard block
 block discarded – undo
872 872
 					$html .= '<tr class="question-quick-edit ' . esc_attr( $edit_class ) . '">';
873 873
 						$html .= '<td colspan="5">';
874 874
 							$html .= '<span class="hidden question_original_counter">' . $question_counter . '</span>';
875
-					    	$html .= '<div class="question_required_fields">';
876
-
877
-						    	// Question title
878
-						    	$html .= '<div>';
879
-							    	$html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> ';
880
-							    	$html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />';
881
-						    	$html .= '</div>';
882
-
883
-						    	// Question description
884
-						    	$html .= '<div>';
885
-							    	$html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> ';
886
-						    	$html .= '</div>';
887
-							    	$html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>';
888
-
889
-						    	// Question grade
890
-						    	$html .= '<div>';
891
-							    	$html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> ';
892
-							    	$html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />';
893
-						    	$html .= '</div>';
894
-
895
-						    	// Random order
896
-						    	if( $question_type == 'multiple-choice' ) {
897
-						    		$html .= '<div>';
898
-						    			$html .= '<label for="' . $question_counter . '_random_order"><input type="checkbox" name="random_order" class="random_order" id="' . $question_counter . '_random_order" value="yes" ' . checked( $random_order, 'yes', false ) . ' /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>';
899
-						    		$html .= '</div>';
900
-						    	}
901
-
902
-						    	// Question media
903
-						    	$html .= '<div>';
904
-							    	$html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
905
-							    	$html .= '<button id="question_' . $question_counter . '_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . $question_media_add_button . '</button>';
906
-							    	$html .= '<button id="question_' . $question_counter . '_media_button_delete" class="delete_media_file_button button-secondary ' . $question_media_delete_class . '">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
907
-							    	$html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>';
908
-							    	$html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>';
909
-							    	$html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />';
910
-						    	$html .= '</div>';
911
-
912
-						    $html .= '</div>';
913
-
914
-						    $html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter );
915
-
916
-						    $html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />';
875
+							$html .= '<div class="question_required_fields">';
876
+
877
+								// Question title
878
+								$html .= '<div>';
879
+									$html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> ';
880
+									$html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />';
881
+								$html .= '</div>';
882
+
883
+								// Question description
884
+								$html .= '<div>';
885
+									$html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> ';
886
+								$html .= '</div>';
887
+									$html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>';
888
+
889
+								// Question grade
890
+								$html .= '<div>';
891
+									$html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> ';
892
+									$html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />';
893
+								$html .= '</div>';
894
+
895
+								// Random order
896
+								if( $question_type == 'multiple-choice' ) {
897
+									$html .= '<div>';
898
+										$html .= '<label for="' . $question_counter . '_random_order"><input type="checkbox" name="random_order" class="random_order" id="' . $question_counter . '_random_order" value="yes" ' . checked( $random_order, 'yes', false ) . ' /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>';
899
+									$html .= '</div>';
900
+								}
901
+
902
+								// Question media
903
+								$html .= '<div>';
904
+									$html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
905
+									$html .= '<button id="question_' . $question_counter . '_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . $question_media_add_button . '</button>';
906
+									$html .= '<button id="question_' . $question_counter . '_media_button_delete" class="delete_media_file_button button-secondary ' . $question_media_delete_class . '">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
907
+									$html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>';
908
+									$html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>';
909
+									$html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />';
910
+								$html .= '</div>';
911
+
912
+							$html .= '</div>';
913
+
914
+							$html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter );
915
+
916
+							$html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />';
917 917
 							$html .= '<input type="hidden" name="question_id" class="row_question_id" id="question_' . $question_counter . '_id" value="' . $question_id . '" />';
918 918
 
919 919
 							if( 'quiz' == $context ) {
920
-					    		$html .= '<div class="update-question">';
921
-						    		$html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> ';
922
-						    		$html .= '<a title="' . esc_attr( __( 'Update Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_table_save button button-highlighted">' . esc_html( __( 'Update', 'woothemes-sensei' ) ) . '</a>';
923
-					    		$html .= '</div>';
924
-					    	}
920
+								$html .= '<div class="update-question">';
921
+									$html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> ';
922
+									$html .= '<a title="' . esc_attr( __( 'Update Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_table_save button button-highlighted">' . esc_html( __( 'Update', 'woothemes-sensei' ) ) . '</a>';
923
+								$html .= '</div>';
924
+							}
925 925
 
926
-			    		$html .= '</td>';
926
+						$html .= '</td>';
927 927
 					$html .= '</tr>';
928 928
 				}
929 929
 
@@ -944,20 +944,20 @@  discard block
 block discarded – undo
944 944
 			$question_cats = get_terms( 'question-category', array( 'hide_empty' => false ) );
945 945
 
946 946
 			if( 'quiz' == $context ) {
947
-	    		$html .= '<h2 class="nav-tab-wrapper add-question-tabs">';
948
-	    			$html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question'  , 'woothemes-sensei' ) . '</a>';
949
-	    			$html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions'  , 'woothemes-sensei' ) . '</a>';
950
-                    if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats )  && ! Sensei()->teacher->is_admin_teacher() ) {
951
-	    				$html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions'  , 'woothemes-sensei' ) . '</a>';
952
-	    			}
953
-	    		$html .= '</h2>';
954
-	    	}
947
+				$html .= '<h2 class="nav-tab-wrapper add-question-tabs">';
948
+					$html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question'  , 'woothemes-sensei' ) . '</a>';
949
+					$html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions'  , 'woothemes-sensei' ) . '</a>';
950
+					if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats )  && ! Sensei()->teacher->is_admin_teacher() ) {
951
+						$html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions'  , 'woothemes-sensei' ) . '</a>';
952
+					}
953
+				$html .= '</h2>';
954
+			}
955 955
 
956
-	    	$html .= '<div class="tab-content" id="tab-new-content">';
956
+			$html .= '<div class="tab-content" id="tab-new-content">';
957 957
 
958
-	    		if( 'quiz' == $context ) {
959
-	    			$html .= '<p><em>' . sprintf( __( 'Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>';
960
-	    		}
958
+				if( 'quiz' == $context ) {
959
+					$html .= '<p><em>' . sprintf( __( 'Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>';
960
+				}
961 961
 
962 962
 				$html .= '<div class="question">';
963 963
 					$html .= '<div class="question_required_fields">';
@@ -999,18 +999,18 @@  discard block
 block discarded – undo
999 999
 
1000 1000
 						// Random order
1001 1001
 						$html .= '<p class="add_question_random_order">';
1002
-			    			$html .= '<label for="add_random_order"><input type="checkbox" name="random_order" class="random_order" id="add_random_order" value="yes" checked="checked" /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>';
1003
-			    		$html .= '</p>';
1002
+							$html .= '<label for="add_random_order"><input type="checkbox" name="random_order" class="random_order" id="add_random_order" value="yes" checked="checked" /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>';
1003
+						$html .= '</p>';
1004 1004
 
1005
-			    		// Question media
1005
+						// Question media
1006 1006
 						$html .= '<p>';
1007
-					    	$html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
1008
-					    	$html .= '<button id="question_add_new_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . __( 'Add file', 'woothemes-sensei' ) . '</button>';
1009
-					    	$html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
1010
-					    	$html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>';
1011
-					    	$html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>';
1012
-					    	$html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />';
1013
-				    	$html .= '</p>';
1007
+							$html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
1008
+							$html .= '<button id="question_add_new_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . __( 'Add file', 'woothemes-sensei' ) . '</button>';
1009
+							$html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
1010
+							$html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>';
1011
+							$html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>';
1012
+							$html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />';
1013
+						$html .= '</p>';
1014 1014
 
1015 1015
 					$html .= '</div>';
1016 1016
 				$html .= '</div>';
@@ -1021,19 +1021,19 @@  discard block
 block discarded – undo
1021 1021
 
1022 1022
 				if( 'quiz' == $context ) {
1023 1023
 					$html .= '<div class="add-question">';
1024
-			    		$html .= '<a title="' . esc_attr( __( 'Add Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="add_question_save button button-primary button-highlighted">' . esc_html( __( 'Add Question', 'woothemes-sensei' ) ) . '</a>';
1025
-		    		$html .= '</div>';
1026
-		    	}
1024
+						$html .= '<a title="' . esc_attr( __( 'Add Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="add_question_save button button-primary button-highlighted">' . esc_html( __( 'Add Question', 'woothemes-sensei' ) ) . '</a>';
1025
+					$html .= '</div>';
1026
+				}
1027 1027
 
1028
-		    $html .= '</div>';
1028
+			$html .= '</div>';
1029 1029
 
1030
-		    if( 'quiz' == $context ) {
1030
+			if( 'quiz' == $context ) {
1031 1031
 
1032
-			    $html .= '<div class="tab-content hidden" id="tab-existing-content">';
1032
+				$html .= '<div class="tab-content hidden" id="tab-existing-content">';
1033 1033
 
1034
-			    	$html .= '<p><em>' . sprintf( __( 'Add an existing question to this quiz from the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>';
1034
+					$html .= '<p><em>' . sprintf( __( 'Add an existing question to this quiz from the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>';
1035 1035
 
1036
-			    	$html .= '<div id="existing-filters" class="alignleft actions">
1036
+					$html .= '<div id="existing-filters" class="alignleft actions">
1037 1037
 			    				<select id="existing-status">
1038 1038
 			    					<option value="all">' . __( 'All', 'woothemes-sensei' ) . '</option>
1039 1039
 			    					<option value="unused">' . __( 'Unused', 'woothemes-sensei' ) . '</option>
@@ -1041,23 +1041,23 @@  discard block
 block discarded – undo
1041 1041
 			    				</select>
1042 1042
 			    				<select id="existing-type">
1043 1043
 			    					<option value="">' . __( 'All Types', 'woothemes-sensei' ) . '</option>';
1044
-							    	foreach ( $question_types as $type => $label ) {
1044
+									foreach ( $question_types as $type => $label ) {
1045 1045
 										$html .= '<option value="' . esc_attr( $type ) . '">' . esc_html( $label ) . '</option>';
1046 1046
 									}
1047
-    				$html .= '</select>
1047
+					$html .= '</select>
1048 1048
     							<select id="existing-category">
1049 1049
 			    					<option value="">' . __( 'All Categories', 'woothemes-sensei' ) . '</option>';
1050
-				    				foreach( $question_cats as $cat ) {
1050
+									foreach( $question_cats as $cat ) {
1051 1051
 										$html .= '<option value="' . esc_attr( $cat->slug ) . '">' . esc_html( $cat->name ) . '</option>';
1052 1052
 									}
1053
-    				$html .= '</select>
1053
+					$html .= '</select>
1054 1054
     							<input type="text" id="existing-search" placeholder="' . __( 'Search', 'woothemes-sensei' ) . '" />
1055 1055
     							<a class="button" id="existing-filter-button">' . __( 'Filter', 'woothemes-sensei' ) . '</a>
1056 1056
 			    			</div>';
1057 1057
 
1058
-			    	$html .= '<table id="existing-table" class="widefat">';
1058
+					$html .= '<table id="existing-table" class="widefat">';
1059 1059
 
1060
-			    		$html .= '<thead>
1060
+						$html .= '<thead>
1061 1061
 									    <tr>
1062 1062
 									        <th scope="col" class="column-cb check-column"><input type="checkbox" /></th>
1063 1063
 									        <th scope="col">' . __( 'Question', 'woothemes-sensei' ) . '</th>
@@ -1085,28 +1085,28 @@  discard block
 block discarded – undo
1085 1085
 
1086 1086
 						$html .= '</tbody>';
1087 1087
 
1088
-			    	$html .= '</table>';
1088
+					$html .= '</table>';
1089 1089
 
1090
-			    	$next_class = '';
1091
-			    	if( $questions['count'] <= 10 ) {
1092
-			    		$next_class = 'hidden';
1093
-			    	}
1090
+					$next_class = '';
1091
+					if( $questions['count'] <= 10 ) {
1092
+						$next_class = 'hidden';
1093
+					}
1094 1094
 
1095
-			    	$html .= '<div id="existing-pagination">';
1096
-			    		$html .= '<input type="hidden" id="existing-page" value="1" />';
1097
-			    		$html .= '<a class="prev no-paging">&larr; ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' &rarr;</a>';
1098
-			    	$html .= '</div>';
1095
+					$html .= '<div id="existing-pagination">';
1096
+						$html .= '<input type="hidden" id="existing-page" value="1" />';
1097
+						$html .= '<a class="prev no-paging">&larr; ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' &rarr;</a>';
1098
+					$html .= '</div>';
1099 1099
 
1100
-			    	$html .= '<div class="existing-actions">';
1101
-			    		$html .= '<a title="' . esc_attr( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '" class="add_existing_save button button-primary button-highlighted">' . esc_html( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '</a></p>';
1102
-			    	$html .= '</div>';
1100
+					$html .= '<div class="existing-actions">';
1101
+						$html .= '<a title="' . esc_attr( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '" class="add_existing_save button button-primary button-highlighted">' . esc_html( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '</a></p>';
1102
+					$html .= '</div>';
1103 1103
 
1104
-			    $html .= '</div>';
1104
+				$html .= '</div>';
1105 1105
 
1106
-			    if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) {
1107
-				    $html .= '<div class="tab-content hidden" id="tab-multiple-content">';
1106
+				if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) {
1107
+					$html .= '<div class="tab-content hidden" id="tab-multiple-content">';
1108 1108
 
1109
-				    	$html .= '<p><em>' . sprintf( __( 'Add any number of questions from a specified category. Edit your question categories %1$shere%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit-tags.php?taxonomy=question-category&post_type=question' ) . '">', '</a>' ) . '</em></p>';
1109
+						$html .= '<p><em>' . sprintf( __( 'Add any number of questions from a specified category. Edit your question categories %1$shere%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit-tags.php?taxonomy=question-category&post_type=question' ) . '">', '</a>' ) . '</em></p>';
1110 1110
 
1111 1111
 						$html .= '<p><select id="add-multiple-question-category-options" name="multiple_category" class="chosen_select widefat question-category-select">' . "\n";
1112 1112
 						$html .= '<option value="">' . __( 'Select a Question Category', 'woothemes-sensei' ) . '</option>' . "\n";
@@ -1119,7 +1119,7 @@  discard block
 block discarded – undo
1119 1119
 
1120 1120
 						$html .= '<a title="' . esc_attr( __( 'Add Question(s)', 'woothemes-sensei' ) ) . '" class="add_multiple_save button button-primary button-highlighted">' . esc_html( __( 'Add Question(s)', 'woothemes-sensei' ) ) . '</a></p>';
1121 1121
 
1122
-				    $html .= '</div>';
1122
+					$html .= '</div>';
1123 1123
 				}
1124 1124
 			}
1125 1125
 
@@ -1192,14 +1192,14 @@  discard block
 block discarded – undo
1192 1192
 
1193 1193
 		$qry = new WP_Query( $args );
1194 1194
 
1195
-        /**
1196
-         * Filter existing questions query
1197
-         *
1198
-         * @since 1.8.0
1199
-         *
1200
-         * @param WP_Query $wp_query
1201
-         */
1202
-        $qry = apply_filters( 'sensei_existing_questions_query_results', $qry );
1195
+		/**
1196
+		 * Filter existing questions query
1197
+		 *
1198
+		 * @since 1.8.0
1199
+		 *
1200
+		 * @param WP_Query $wp_query
1201
+		 */
1202
+		$qry = apply_filters( 'sensei_existing_questions_query_results', $qry );
1203 1203
 
1204 1204
 		$questions['questions'] = $qry->posts;
1205 1205
 		$questions['count'] = intval( $qry->found_posts );
@@ -1214,14 +1214,14 @@  discard block
 block discarded – undo
1214 1214
 
1215 1215
 		if( ! $question_id ) {
1216 1216
 
1217
-            return;
1217
+			return;
1218 1218
 
1219
-        }
1219
+		}
1220 1220
 
1221 1221
 		$existing_class = '';
1222 1222
 		if( $row % 2 ) {
1223
-            $existing_class = 'alternate';
1224
-        }
1223
+			$existing_class = 'alternate';
1224
+		}
1225 1225
 
1226 1226
 		$question_type = Sensei()->question->get_question_type( $question_id );
1227 1227
 
@@ -1355,67 +1355,67 @@  discard block
 block discarded – undo
1355 1355
 							}
1356 1356
 						}
1357 1357
 
1358
-				    	// Calculate total wrong answers available (defaults to 4)
1359
-				    	$total_wrong = 0;
1360
-				    	if( $question_id ) {
1361
-				    		$total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true );
1362
-				    	}
1363
-				    	if( 0 == intval( $total_wrong ) ) {
1364
-				    		$total_wrong = 1;
1365
-				    	}
1358
+						// Calculate total wrong answers available (defaults to 4)
1359
+						$total_wrong = 0;
1360
+						if( $question_id ) {
1361
+							$total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true );
1362
+						}
1363
+						if( 0 == intval( $total_wrong ) ) {
1364
+							$total_wrong = 1;
1365
+						}
1366 1366
 
1367
-                        // Setup Wrong Answer HTML
1368
-                        foreach ( $wrong_answers as $i => $answer ){
1367
+						// Setup Wrong Answer HTML
1368
+						foreach ( $wrong_answers as $i => $answer ){
1369 1369
 
1370
-                            $answer_id = $this->get_answer_id( $answer );
1371
-                            $wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ;
1372
-                            $wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ;
1373
-                            $wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1374
-                            if( $question_id ) {
1370
+							$answer_id = $this->get_answer_id( $answer );
1371
+							$wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ;
1372
+							$wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ;
1373
+							$wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1374
+							if( $question_id ) {
1375 1375
 
1376
-                                $answers[ $answer_id ] = $wrong_answer;
1376
+								$answers[ $answer_id ] = $wrong_answer;
1377 1377
 
1378
-                            } else {
1378
+							} else {
1379 1379
 
1380
-                                $answers[] = $wrong_answer;
1380
+								$answers[] = $wrong_answer;
1381 1381
 
1382
-                            }
1382
+							}
1383 1383
 
1384
-                        } // end for each
1384
+						} // end for each
1385 1385
 
1386
-				    	$answers_sorted = $answers;
1387
-				    	if( $question_id && count( $answer_order ) > 0 ) {
1388
-				    		$answers_sorted = array();
1389
-				    		foreach( $answer_order as $answer_id ) {
1390
-				    			if( isset( $answers[ $answer_id ] ) ) {
1391
-				    				$answers_sorted[ $answer_id ] = $answers[ $answer_id ];
1392
-				    				unset( $answers[ $answer_id ] );
1393
-				    			}
1394
-				    		}
1386
+						$answers_sorted = $answers;
1387
+						if( $question_id && count( $answer_order ) > 0 ) {
1388
+							$answers_sorted = array();
1389
+							foreach( $answer_order as $answer_id ) {
1390
+								if( isset( $answers[ $answer_id ] ) ) {
1391
+									$answers_sorted[ $answer_id ] = $answers[ $answer_id ];
1392
+									unset( $answers[ $answer_id ] );
1393
+								}
1394
+							}
1395 1395
 
1396
-				    		if( count( $answers ) > 0 ) {
1397
-						    	foreach( $answers as $id => $answer ) {
1398
-						    		$answers_sorted[ $id ] = $answer;
1399
-						    	}
1400
-						    }
1401
-				    	}
1396
+							if( count( $answers ) > 0 ) {
1397
+								foreach( $answers as $id => $answer ) {
1398
+									$answers_sorted[ $id ] = $answer;
1399
+								}
1400
+							}
1401
+						}
1402 1402
 
1403 1403
 						foreach( $answers_sorted as $id => $answer ) {
1404
-				    		$html .= $answer;
1405
-				    	}
1404
+							$html .= $answer;
1405
+						}
1406 1406
 
1407
-				    	$html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />';
1408
-				    	$html .= '<span class="hidden right_answer_count">' . $total_right . '</span>';
1409
-				    	$html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>';
1407
+						$html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />';
1408
+						$html .= '<span class="hidden right_answer_count">' . $total_right . '</span>';
1409
+						$html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>';
1410 1410
 
1411
-				    	$html .= '<div class="add_answer_options">';
1412
-					    	$html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>';
1413
-					    	$html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>';
1414
-				    	$html .= '</div>';
1411
+						$html .= '<div class="add_answer_options">';
1412
+							$html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>';
1413
+							$html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>';
1414
+						$html .= '</div>';
1415 1415
 
1416
-                        $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' );
1416
+						$html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' );
1417 1417
 
1418
-			    	$html .= '</div>';
1418
+					$html .= '</div>';
1419 1419
 				break;
1420 1420
 				case 'boolean':
1421 1421
 					$html .= '<div class="question_boolean_fields ' . $question_class . '">';
@@ -1428,7 +1428,7 @@  discard block
 block discarded – undo
1428 1428
 						$html .= '<label for="question_' . $question_id . '_boolean_true"><input id="question_' . $question_id . '_boolean_true" type="radio" name="' . $field_name . '" value="true" '. checked( $right_answer, 'true', false ) . ' /> ' . __( 'True', 'woothemes-sensei' ) . '</label>';
1429 1429
 						$html .= '<label for="question_' . $question_id . '_boolean_false"><input id="question_' . $question_id . '_boolean_false" type="radio" name="' . $field_name . '" value="false" '. checked( $right_answer, 'false', false ) . ' /> ' . __( 'False', 'woothemes-sensei' ) . '</label>';
1430 1430
 
1431
-                    $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' );
1431
+					$html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' );
1432 1432
 
1433 1433
 					$html .= '</div>';
1434 1434
 				break;
@@ -1503,17 +1503,17 @@  discard block
 block discarded – undo
1503 1503
 
1504 1504
 	public function quiz_panel_question_feedback( $question_counter = 0, $question_id = 0, $question_type = '' ) {
1505 1505
 
1506
-        // default field name
1507
-        $field_name = 'answer_feedback';
1508
-        if( 'boolean' == $question_type ){
1506
+		// default field name
1507
+		$field_name = 'answer_feedback';
1508
+		if( 'boolean' == $question_type ){
1509 1509
 
1510
-            $field_name = 'answer_feedback_boolean';
1510
+			$field_name = 'answer_feedback_boolean';
1511 1511
 
1512
-        }elseif( 'multiple-choice' == $question_type ){
1512
+		}elseif( 'multiple-choice' == $question_type ){
1513 1513
 
1514
-            $field_name = 'answer_feedback_multiple_choice';
1514
+			$field_name = 'answer_feedback_multiple_choice';
1515 1515
 
1516
-        }// end if
1516
+		}// end if
1517 1517
 
1518 1518
 		if( $question_counter ) {
1519 1519
 			$field_name = 'answer_' . $question_counter . '_feedback';
@@ -1718,15 +1718,15 @@  discard block
 block discarded – undo
1718 1718
 			$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1719 1719
 
1720 1720
 			// Load the lessons script
1721
-            wp_enqueue_media();
1721
+			wp_enqueue_media();
1722 1722
 			wp_enqueue_script( 'sensei-lesson-metadata', Sensei()->plugin_url . 'assets/js/lesson-metadata' . $suffix . '.js', array( 'jquery', 'sensei-core-select2' ,'jquery-ui-sortable' ), Sensei()->version, true );
1723 1723
 			wp_enqueue_script( 'sensei-lesson-chosen', Sensei()->plugin_url . 'assets/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
1724 1724
 			wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery' . $suffix . '.js', array( 'jquery', 'sensei-lesson-chosen' ), Sensei()->version, true );
1725 1725
 
1726
-            // Load the bulk edit screen script
1727
-            if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) {
1728
-                wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true);
1729
-            }
1726
+			// Load the bulk edit screen script
1727
+			if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) {
1728
+				wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true);
1729
+			}
1730 1730
 
1731 1731
 			// Localise script
1732 1732
 			$translation_strings = array( 'right_colon' => __( 'Right:', 'woothemes-sensei' ), 'wrong_colon' => __( 'Wrong:', 'woothemes-sensei' ), 'add_file' => __( 'Add file', 'woothemes-sensei' ), 'change_file' => __( 'Change file', 'woothemes-sensei' ), 'confirm_remove' => __( 'Are you sure you want to remove this question?', 'woothemes-sensei' ), 'confirm_remove_multiple' => __( 'Are you sure you want to remove these questions?', 'woothemes-sensei' ), 'too_many_for_cat' => __( 'You have selected more questions than this category contains - please reduce the number of questions that you are adding.', 'woothemes-sensei' ) );
@@ -1827,7 +1827,7 @@  discard block
 block discarded – undo
1827 1827
 			$nonce = esc_html( $_POST['lesson_add_course_nonce'] );
1828 1828
 		} // End If Statement
1829 1829
 		if ( ! wp_verify_nonce( $nonce, 'lesson_add_course_nonce' )
1830
-            || ! current_user_can( 'edit_lessons' ) ) {
1830
+			|| ! current_user_can( 'edit_lessons' ) ) {
1831 1831
 			die('');
1832 1832
 		} // End If Statement
1833 1833
 		// Parse POST data
@@ -1856,7 +1856,7 @@  discard block
 block discarded – undo
1856 1856
 			$nonce = esc_html( $_POST['lesson_update_question_nonce'] );
1857 1857
 		} // End If Statement
1858 1858
 		if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_nonce' )
1859
-            ||  ! current_user_can( 'edit_questions' )) {
1859
+			||  ! current_user_can( 'edit_questions' )) {
1860 1860
 
1861 1861
 			die('');
1862 1862
 
@@ -1909,7 +1909,7 @@  discard block
 block discarded – undo
1909 1909
 		} // End If Statement
1910 1910
 
1911 1911
 		if( ! wp_verify_nonce( $nonce, 'lesson_add_multiple_questions_nonce' )
1912
-            || ! current_user_can( 'edit_lessons' ) ) {
1912
+			|| ! current_user_can( 'edit_lessons' ) ) {
1913 1913
 			die( $return );
1914 1914
 		} // End If Statement
1915 1915
 
@@ -1965,7 +1965,7 @@  discard block
 block discarded – undo
1965 1965
 		} // End If Statement
1966 1966
 
1967 1967
 		if( ! wp_verify_nonce( $nonce, 'lesson_remove_multiple_questions_nonce' )
1968
-        || ! current_user_can( 'edit_lessons' ) ) {
1968
+		|| ! current_user_can( 'edit_lessons' ) ) {
1969 1969
 			die('');
1970 1970
 		} // End If Statement
1971 1971
 
@@ -2012,7 +2012,7 @@  discard block
 block discarded – undo
2012 2012
 		} // End If Statement
2013 2013
 
2014 2014
 		if( ! wp_verify_nonce( $nonce, 'lesson_add_existing_questions_nonce' )
2015
-        || ! current_user_can( 'edit_lessons' ) ) {
2015
+		|| ! current_user_can( 'edit_lessons' ) ) {
2016 2016
 			die('');
2017 2017
 		} // End If Statement
2018 2018
 
@@ -2037,12 +2037,12 @@  discard block
 block discarded – undo
2037 2037
 
2038 2038
 					$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2039 2039
 					if( ! in_array( $quiz_id, $quizzes ) ) {
2040
-			    		add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2040
+						add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2041 2041
 						$lesson_id = get_post_meta( $quiz_id, '_quiz_lesson', true );
2042 2042
 						update_post_meta( $lesson_id, '_quiz_has_questions', '1' );
2043
-			    	}
2043
+					}
2044 2044
 
2045
-			    	add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2045
+					add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2046 2046
 					$question_type = Sensei()->question->get_question_type( $question_id );
2047 2047
 
2048 2048
 					$return .= $this->quiz_panel_question( $question_type, $question_count, $question_id );
@@ -2064,7 +2064,7 @@  discard block
 block discarded – undo
2064 2064
 		} // End If Statement
2065 2065
 
2066 2066
 		if ( ! wp_verify_nonce( $nonce, 'lesson_update_grade_type_nonce' )
2067
-        || ! current_user_can( 'edit_lessons' ) ) {
2067
+		|| ! current_user_can( 'edit_lessons' ) ) {
2068 2068
 
2069 2069
 			die('');
2070 2070
 
@@ -2084,8 +2084,8 @@  discard block
 block discarded – undo
2084 2084
 			$nonce = esc_html( $_POST['lesson_update_question_order_nonce'] );
2085 2085
 		} // End If Statement
2086 2086
 
2087
-        if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_nonce' )
2088
-            ||! current_user_can( 'edit_lessons' ) ) {
2087
+		if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_nonce' )
2088
+			||! current_user_can( 'edit_lessons' ) ) {
2089 2089
 			die('');
2090 2090
 		} // End If Statement
2091 2091
 
@@ -2111,7 +2111,7 @@  discard block
 block discarded – undo
2111 2111
 			$nonce = esc_html( $_POST['lesson_update_question_order_random_nonce'] );
2112 2112
 		} // End If Statement
2113 2113
 		if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_random_nonce' )
2114
-            || ! current_user_can( 'edit_lessons' ) ) {
2114
+			|| ! current_user_can( 'edit_lessons' ) ) {
2115 2115
 
2116 2116
 			die('');
2117 2117
 
@@ -2161,34 +2161,34 @@  discard block
 block discarded – undo
2161 2161
 		$post_content = $course_content;
2162 2162
 		// Course Query Arguments
2163 2163
 		$post_type_args = array(	'post_content' => $post_content,
2164
-  		    						'post_status' => $post_status,
2165
-  		    						'post_title' => $post_title,
2166
-  		    						'post_type' => $post_type
2167
-  		    						);
2164
+  									'post_status' => $post_status,
2165
+  									'post_title' => $post_title,
2166
+  									'post_type' => $post_type
2167
+  									);
2168 2168
   		// Only save if there is a valid title
2169 2169
   		if ( $post_title != '' ) {
2170
-  		    // Check for prerequisite courses & product id
2171
-  		    $course_prerequisite_id = absint( $data[ 'course_prerequisite' ] );
2172
-  		    $course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] );
2173
-  		    $course_category_id = absint( $data[ 'course_category' ] );
2174
-  		    if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; }
2175
-  		    // Insert or Update the Lesson Quiz
2176
-		    if ( 0 < $course_id ) {
2177
-		    	$post_type_args[ 'ID' ] = $course_id;
2178
-		    	$course_id = wp_update_post($post_type_args);
2179
-		    	update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2180
-		    	update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2181
-		    	if ( 0 < $course_category_id ) {
2182
-		    		wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2183
-		    	} // End If Statement
2184
-		    } else {
2185
-		    	$course_id = wp_insert_post($post_type_args);
2186
-		    	add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2187
-		    	add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2188
-		    	if ( 0 < $course_category_id ) {
2189
-		    		wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2190
-		    	} // End If Statement
2191
-		    } // End If Statement
2170
+  			// Check for prerequisite courses & product id
2171
+  			$course_prerequisite_id = absint( $data[ 'course_prerequisite' ] );
2172
+  			$course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] );
2173
+  			$course_category_id = absint( $data[ 'course_category' ] );
2174
+  			if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; }
2175
+  			// Insert or Update the Lesson Quiz
2176
+			if ( 0 < $course_id ) {
2177
+				$post_type_args[ 'ID' ] = $course_id;
2178
+				$course_id = wp_update_post($post_type_args);
2179
+				update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2180
+				update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2181
+				if ( 0 < $course_category_id ) {
2182
+					wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2183
+				} // End If Statement
2184
+			} else {
2185
+				$course_id = wp_insert_post($post_type_args);
2186
+				add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2187
+				add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2188
+				if ( 0 < $course_category_id ) {
2189
+					wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2190
+				} // End If Statement
2191
+			} // End If Statement
2192 2192
 		} // End If Statement
2193 2193
   		// Check that the insert or update saved by testing the post id
2194 2194
   		if ( 0 < $course_id ) {
@@ -2279,17 +2279,17 @@  discard block
 block discarded – undo
2279 2279
 		$answer_feedback = '';
2280 2280
 		if ( isset( $data[ 'answer_feedback_boolean' ] ) && !empty( $data[ 'answer_feedback_boolean' ] ) ) {
2281 2281
 
2282
-            $answer_feedback = $data[ 'answer_feedback_boolean' ];
2282
+			$answer_feedback = $data[ 'answer_feedback_boolean' ];
2283 2283
 
2284 2284
 		}elseif( isset( $data[ 'answer_feedback_multiple_choice' ] ) && !empty( $data[ 'answer_feedback_multiple_choice' ] ) ){
2285 2285
 
2286
-            $answer_feedback = $data[ 'answer_feedback_multiple_choice' ];
2286
+			$answer_feedback = $data[ 'answer_feedback_multiple_choice' ];
2287 2287
 
2288
-        }elseif( isset( $data[ 'answer_feedback' ] )  ){
2288
+		}elseif( isset( $data[ 'answer_feedback' ] )  ){
2289 2289
 
2290
-            $answer_feedback = $data[ 'answer_feedback' ];
2290
+			$answer_feedback = $data[ 'answer_feedback' ];
2291 2291
 
2292
-        } // End If Statement
2292
+		} // End If Statement
2293 2293
 
2294 2294
 		$post_title = $question_text;
2295 2295
 		$post_author = $data[ 'post_author' ];
@@ -2304,10 +2304,10 @@  discard block
 block discarded – undo
2304 2304
 		}
2305 2305
 		// Question Query Arguments
2306 2306
 		$post_type_args = array(	'post_content' => $post_content,
2307
-  		    						'post_status' => $post_status,
2308
-  		    						'post_title' => $post_title,
2309
-  		    						'post_type' => $post_type
2310
-  		    						);
2307
+  									'post_status' => $post_status,
2308
+  									'post_title' => $post_title,
2309
+  									'post_type' => $post_type
2310
+  									);
2311 2311
 
2312 2312
   		// Remove empty values and reindex the array
2313 2313
   		if ( is_array( $question_right_answers ) && 0 < count($question_right_answers) ) {
@@ -2343,14 +2343,14 @@  discard block
 block discarded – undo
2343 2343
   		if ( $post_title != '' ) {
2344 2344
 
2345 2345
   			// Get Quiz ID for the question
2346
-  		    $quiz_id = $data['quiz_id'];
2346
+  			$quiz_id = $data['quiz_id'];
2347 2347
 
2348
-  		    // Get question media
2348
+  			// Get question media
2349 2349
 			$question_media = $data['question_media'];
2350 2350
 
2351
-  		    // Get answer order
2352
-  		    $answer_order = '';
2353
-  		    if( isset( $data['answer_order'] ) ) {
2351
+  			// Get answer order
2352
+  			$answer_order = '';
2353
+  			if( isset( $data['answer_order'] ) ) {
2354 2354
 				$answer_order = $data['answer_order'];
2355 2355
 			}
2356 2356
 
@@ -2360,38 +2360,38 @@  discard block
 block discarded – undo
2360 2360
 				$random_order = $data['random_order'];
2361 2361
 			}
2362 2362
 
2363
-  		    // Insert or Update the question
2364
-  		    if ( 0 < $question_id ) {
2365
-
2366
-  		    	$post_type_args[ 'ID' ] = $question_id;
2367
-		    	$question_id = wp_update_post( $post_type_args );
2368
-
2369
-		    	// Update poast meta
2370
-		    	if( 'quiz' == $context ) {
2371
-		    		$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2372
-		    		if( ! in_array( $quiz_id, $quizzes ) ) {
2373
-			    		add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2374
-			    	}
2375
-		    	}
2376
-
2377
-		    	update_post_meta( $question_id, '_question_grade', $question_grade );
2378
-		    	update_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2379
-		    	update_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2380
-		    	update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2381
-		    	update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2382
-		    	update_post_meta( $question_id, '_question_media', $question_media );
2383
-		    	update_post_meta( $question_id, '_answer_order', $answer_order );
2384
-		    	update_post_meta( $question_id, '_random_order', $random_order );
2385
-
2386
-		    	if( 'quiz' != $context ) {
2387
-		    		wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false );
2388
-		    	}
2363
+  			// Insert or Update the question
2364
+  			if ( 0 < $question_id ) {
2365
+
2366
+  				$post_type_args[ 'ID' ] = $question_id;
2367
+				$question_id = wp_update_post( $post_type_args );
2368
+
2369
+				// Update poast meta
2370
+				if( 'quiz' == $context ) {
2371
+					$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2372
+					if( ! in_array( $quiz_id, $quizzes ) ) {
2373
+						add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2374
+					}
2375
+				}
2376
+
2377
+				update_post_meta( $question_id, '_question_grade', $question_grade );
2378
+				update_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2379
+				update_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2380
+				update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2381
+				update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2382
+				update_post_meta( $question_id, '_question_media', $question_media );
2383
+				update_post_meta( $question_id, '_answer_order', $answer_order );
2384
+				update_post_meta( $question_id, '_random_order', $random_order );
2385
+
2386
+				if( 'quiz' != $context ) {
2387
+					wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false );
2388
+				}
2389 2389
 				// Don't store empty value, no point
2390 2390
 				if ( !empty($answer_feedback) ) {
2391 2391
 					update_post_meta( $question_id, '_answer_feedback', $answer_feedback );
2392 2392
 				}
2393 2393
 
2394
-		    } else {
2394
+			} else {
2395 2395
 				$question_id = wp_insert_post( $post_type_args );
2396 2396
 				$question_count = intval( $data['question_count'] );
2397 2397
 				++$question_count;
@@ -2404,29 +2404,29 @@  discard block
 block discarded – undo
2404 2404
 				}
2405 2405
 
2406 2406
 				if( isset( $question_grade ) ) {
2407
-		    		add_post_meta( $question_id, '_question_grade', $question_grade );
2408
-		    	}
2409
-		    	add_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2410
-		    	add_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2411
-		    	add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2412
-		    	add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2413
-		    	add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2414
-		    	add_post_meta( $question_id, '_question_media', $question_media );
2415
-		    	add_post_meta( $question_id, '_answer_order', $answer_order );
2416
-		    	add_post_meta( $question_id, '_random_order', $random_order );
2407
+					add_post_meta( $question_id, '_question_grade', $question_grade );
2408
+				}
2409
+				add_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2410
+				add_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2411
+				add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2412
+				add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2413
+				add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2414
+				add_post_meta( $question_id, '_question_media', $question_media );
2415
+				add_post_meta( $question_id, '_answer_order', $answer_order );
2416
+				add_post_meta( $question_id, '_random_order', $random_order );
2417 2417
 				// Don't store empty value, no point
2418 2418
 				if ( !empty($answer_feedback) ) {
2419 2419
 					add_post_meta( $question_id, '_answer_feedback', $answer_feedback );
2420 2420
 				}
2421 2421
 
2422
-		    	// Set the post terms for question-type
2423
-			    wp_set_post_terms( $question_id, array( $question_type ), 'question-type' );
2422
+				// Set the post terms for question-type
2423
+				wp_set_post_terms( $question_id, array( $question_type ), 'question-type' );
2424 2424
 
2425
-			    if( $question_category ) {
2426
-	    			wp_set_post_terms( $question_id, array( $question_category ), 'question-category' );
2427
-	    		}
2425
+				if( $question_category ) {
2426
+					wp_set_post_terms( $question_id, array( $question_category ), 'question-category' );
2427
+				}
2428 2428
 
2429
-		    } // End If Statement
2429
+			} // End If Statement
2430 2430
 		} // End If Statement
2431 2431
   		// Check that the insert or update saved by testing the post id
2432 2432
   		if ( 0 < $question_id ) {
@@ -2475,7 +2475,7 @@  discard block
 block discarded – undo
2475 2475
 	public function lesson_complexities() {
2476 2476
 
2477 2477
 		// V2 - make filter for this array
2478
-        $lesson_complexities = array( 	'easy' => __( 'Easy', 'woothemes-sensei' ),
2478
+		$lesson_complexities = array( 	'easy' => __( 'Easy', 'woothemes-sensei' ),
2479 2479
 									'std' => __( 'Standard', 'woothemes-sensei' ),
2480 2480
 									'hard' => __( 'Hard', 'woothemes-sensei' )
2481 2481
 									);
@@ -2542,14 +2542,14 @@  discard block
 block discarded – undo
2542 2542
 		$post_args = array(	'post_type' 		=> 'quiz',
2543 2543
 							'posts_per_page' 		=> 1,
2544 2544
 							'orderby'         	=> 'title',
2545
-    						'order'           	=> 'DESC',
2546
-    						'post_parent'      	=> $lesson_id,
2547
-    						'post_status'		=> $post_status,
2545
+							'order'           	=> 'DESC',
2546
+							'post_parent'      	=> $lesson_id,
2547
+							'post_status'		=> $post_status,
2548 2548
 							'suppress_filters' 	=> 0,
2549 2549
 							'fields'            => $fields
2550 2550
 							);
2551 2551
 		$posts_array = get_posts( $post_args );
2552
-        $quiz_id = array_shift($posts_array);
2552
+		$quiz_id = array_shift($posts_array);
2553 2553
 
2554 2554
 		return $quiz_id;
2555 2555
 	} // End lesson_quizzes()
@@ -2557,34 +2557,34 @@  discard block
 block discarded – undo
2557 2557
 
2558 2558
 	/**
2559 2559
 	 * Fetches all the questions for a quiz depending on certain conditions.
2560
-     *
2561
-     * Determine which questions should be shown depending on:
2562
-     * - admin/teacher selected questions to be shown
2563
-     * - questions shown to a user previously (saved as asked questions)
2564
-     * - limit number of questions lesson setting
2565 2560
 	 *
2566
-     * @since 1.0
2561
+	 * Determine which questions should be shown depending on:
2562
+	 * - admin/teacher selected questions to be shown
2563
+	 * - questions shown to a user previously (saved as asked questions)
2564
+	 * - limit number of questions lesson setting
2565
+	 *
2566
+	 * @since 1.0
2567 2567
 	 * @param int $quiz_id (default: 0)
2568 2568
 	 * @param string $post_status (default: 'publish')
2569 2569
 	 * @param string $orderby (default: 'meta_value_num title')
2570 2570
 	 * @param string $order (default: 'ASC')
2571
-     *
2571
+	 *
2572 2572
 	 * @return array $questions { $question type WP_Post }
2573 2573
 	 */
2574 2574
 	public function lesson_quiz_questions( $quiz_id = 0, $post_status = 'any', $orderby = 'meta_value_num title', $order = 'ASC' ) {
2575 2575
 
2576 2576
 		$quiz_id = (string) $quiz_id;
2577
-        $quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
2577
+		$quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
2578 2578
 
2579
-        // setup the user id
2580
-        if( is_admin() ) {
2581
-            $user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ;
2582
-        } else {
2583
-            $user_id = get_current_user_id();
2584
-        }
2579
+		// setup the user id
2580
+		if( is_admin() ) {
2581
+			$user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ;
2582
+		} else {
2583
+			$user_id = get_current_user_id();
2584
+		}
2585 2585
 
2586
-        // get the users current status on the lesson
2587
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id );
2586
+		// get the users current status on the lesson
2587
+		$user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id );
2588 2588
 
2589 2589
 		// Set the default question order if it has not already been set for this quiz
2590 2590
 		$this->set_default_question_order( $quiz_id );
@@ -2614,14 +2614,14 @@  discard block
 block discarded – undo
2614 2614
 			'suppress_filters' 	=> 0
2615 2615
 		);
2616 2616
 
2617
-        //query the questions
2617
+		//query the questions
2618 2618
 		$questions_query = new WP_Query( $question_query_args );
2619 2619
 
2620
-        // Set return array to initially include all items
2621
-        $questions = $questions_query->posts;
2620
+		// Set return array to initially include all items
2621
+		$questions = $questions_query->posts;
2622 2622
 
2623
-        // set the questions array that will be manipulated within this function
2624
-        $questions_array = $questions_query->posts;
2623
+		// set the questions array that will be manipulated within this function
2624
+		$questions_array = $questions_query->posts;
2625 2625
 
2626 2626
 		// If viewing quiz on frontend or in grading then only single questions must be shown
2627 2627
 		$selected_questions = false;
@@ -2734,36 +2734,36 @@  discard block
 block discarded – undo
2734 2734
 			}
2735 2735
 		}
2736 2736
 
2737
-        // Save the questions that will be asked for the current user
2738
-        // this happens only once per user/quiz, unless the user resets the quiz
2739
-        if( ! is_admin() ){
2737
+		// Save the questions that will be asked for the current user
2738
+		// this happens only once per user/quiz, unless the user resets the quiz
2739
+		if( ! is_admin() ){
2740 2740
 
2741
-            if( $user_lesson_status ) {
2741
+			if( $user_lesson_status ) {
2742 2742
 
2743
-                $questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true);
2744
-                if ( empty($questions_asked) && $user_lesson_status) {
2743
+				$questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true);
2744
+				if ( empty($questions_asked) && $user_lesson_status) {
2745 2745
 
2746
-                    $questions_asked = array();
2747
-                    foreach ($questions as $question) {
2746
+					$questions_asked = array();
2747
+					foreach ($questions as $question) {
2748 2748
 
2749
-                        $questions_asked[] = $question->ID;
2749
+						$questions_asked[] = $question->ID;
2750 2750
 
2751
-                    }
2751
+					}
2752 2752
 
2753
-                    // save the questions asked id
2754
-                    $questions_asked_csv = implode(',', $questions_asked);
2755
-                    update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_csv);
2753
+					// save the questions asked id
2754
+					$questions_asked_csv = implode(',', $questions_asked);
2755
+					update_comment_meta($user_lesson_status->comment_ID, 'questions_asked', $questions_asked_csv);
2756 2756
 
2757
-                }
2758
-            }
2759
-        }
2757
+				}
2758
+			}
2759
+		}
2760 2760
 
2761
-        /**
2762
-         * Filter the questions returned by Sensei_Lesson::lessons_quiz_questions
2763
-         *
2764
-         * @hooked Sensei_Teacher::allow_teacher_access_to_questions
2765
-         * @since 1.8.0
2766
-         */
2761
+		/**
2762
+		 * Filter the questions returned by Sensei_Lesson::lessons_quiz_questions
2763
+		 *
2764
+		 * @hooked Sensei_Teacher::allow_teacher_access_to_questions
2765
+		 * @since 1.8.0
2766
+		 */
2767 2767
 		return apply_filters( 'sensei_lesson_quiz_questions', $questions,  $quiz_id  );
2768 2768
 
2769 2769
 	} // End lesson_quiz_questions()
@@ -2867,7 +2867,7 @@  discard block
 block discarded – undo
2867 2867
  			// Display Image Placeholder if none
2868 2868
 			if ( Sensei()->settings->settings[ 'placeholder_images_enable' ] ) {
2869 2869
 
2870
-                $img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
2870
+				$img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
2871 2871
 
2872 2872
 			} // End If Statement
2873 2873
 
@@ -2879,418 +2879,418 @@  discard block
 block discarded – undo
2879 2879
 
2880 2880
 	} // End lesson_image()
2881 2881
 
2882
-    /**
2883
-     * Ooutpu the lesson image
2884
-     *
2885
-     * @since 1.9.0
2886
-     * @param integer $lesson_id
2887
-     */
2888
-    public static function the_lesson_image( $lesson_id = 0 ){
2882
+	/**
2883
+	 * Ooutpu the lesson image
2884
+	 *
2885
+	 * @since 1.9.0
2886
+	 * @param integer $lesson_id
2887
+	 */
2888
+	public static function the_lesson_image( $lesson_id = 0 ){
2889 2889
 
2890
-        echo Sensei()->lesson->lesson_image( $lesson_id );
2890
+		echo Sensei()->lesson->lesson_image( $lesson_id );
2891 2891
 
2892
-    }
2892
+	}
2893 2893
 
2894 2894
 	/**
2895 2895
 	 * Returns the the lesson excerpt.
2896 2896
 	 *
2897 2897
 	 * @param WP_Post $lesson
2898
-     * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop()
2898
+	 * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop()
2899 2899
 	 * @return string
2900 2900
 	 */
2901 2901
 	public static function lesson_excerpt( $lesson = null, $add_p_tags = true ) {
2902 2902
 		$html = '';
2903 2903
 		if ( is_a( $lesson, 'WP_Post' ) && 'lesson' == $lesson->post_type ) {
2904 2904
 
2905
-            $excerpt =  $lesson->post_excerpt;
2905
+			$excerpt =  $lesson->post_excerpt;
2906 2906
 
2907
-            // if $add_p_tags true wrap with <p> else return the excerpt as is
2908
-            $html =  $add_p_tags ? wpautop( $excerpt ) : $excerpt;
2907
+			// if $add_p_tags true wrap with <p> else return the excerpt as is
2908
+			$html =  $add_p_tags ? wpautop( $excerpt ) : $excerpt;
2909 2909
 
2910 2910
 		}
2911 2911
 		return apply_filters( 'sensei_lesson_excerpt', $html );
2912 2912
 
2913 2913
 	} // End lesson_excerpt()
2914 2914
 
2915
-    /**
2916
-     * Returns the course for a given lesson
2917
-     *
2918
-     * @since 1.7.4
2919
-     * @access public
2920
-     *
2921
-     * @param int $lesson_id
2922
-     * @return int|bool $course_id or bool when nothing is found.
2923
-     */
2924
-     public function get_course_id( $lesson_id ){
2925
-
2926
-         if( ! isset( $lesson_id ) || empty( $lesson_id )
2927
-         ||  'lesson' != get_post_type( $lesson_id ) ){
2928
-             return false;
2929
-         }
2930
-
2931
-         $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true);
2932
-
2933
-         // make sure the course id is valid
2934
-         if( empty( $lesson_course_id )
2935
-             || is_array( $lesson_course_id )
2936
-             || intval( $lesson_course_id ) < 1
2937
-             || 'course' != get_post_type( $lesson_course_id ) ){
2938
-
2939
-             return false;
2940
-
2941
-         }
2942
-
2943
-         return $lesson_course_id;
2944
-
2945
-     }// en get_course_id
2946
-
2947
-    /**
2948
-     * Add the admin all lessons screen edit options.
2949
-     *
2950
-     * The fields in this function work for both quick and bulk edit. The ID attributes is used
2951
-     * by bulk edit javascript in the front end to retrieve the new values set byt the user. Then
2952
-     * name attribute is will be used by the quick edit and submitted via standard POST. This
2953
-     * will use this classes save_post_meta function to save the new field data.
2954
-     *
2955
-     * @hooked quick_edit_custom_box
2956
-     * @hooked bulk_edit_custom_box
2957
-     *
2958
-     * @since 1.8.0
2959
-     *
2960
-     * @param string $column_name
2961
-     * @param string $post_type
2962
-     * @return void
2963
-     */
2964
-    public function all_lessons_edit_fields( $column_name, $post_type ) {
2965
-
2966
-        // only show these options ont he lesson post type edit screen
2967
-        if( 'lesson' != $post_type || 'lesson-course' != $column_name
2968
-            || ! current_user_can( 'edit_lessons' ) ) {
2969
-            return;
2970
-        }
2971
-
2972
-        ?>
2915
+	/**
2916
+	 * Returns the course for a given lesson
2917
+	 *
2918
+	 * @since 1.7.4
2919
+	 * @access public
2920
+	 *
2921
+	 * @param int $lesson_id
2922
+	 * @return int|bool $course_id or bool when nothing is found.
2923
+	 */
2924
+	 public function get_course_id( $lesson_id ){
2925
+
2926
+		 if( ! isset( $lesson_id ) || empty( $lesson_id )
2927
+		 ||  'lesson' != get_post_type( $lesson_id ) ){
2928
+			 return false;
2929
+		 }
2930
+
2931
+		 $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true);
2932
+
2933
+		 // make sure the course id is valid
2934
+		 if( empty( $lesson_course_id )
2935
+			 || is_array( $lesson_course_id )
2936
+			 || intval( $lesson_course_id ) < 1
2937
+			 || 'course' != get_post_type( $lesson_course_id ) ){
2938
+
2939
+			 return false;
2940
+
2941
+		 }
2942
+
2943
+		 return $lesson_course_id;
2944
+
2945
+	 }// en get_course_id
2946
+
2947
+	/**
2948
+	 * Add the admin all lessons screen edit options.
2949
+	 *
2950
+	 * The fields in this function work for both quick and bulk edit. The ID attributes is used
2951
+	 * by bulk edit javascript in the front end to retrieve the new values set byt the user. Then
2952
+	 * name attribute is will be used by the quick edit and submitted via standard POST. This
2953
+	 * will use this classes save_post_meta function to save the new field data.
2954
+	 *
2955
+	 * @hooked quick_edit_custom_box
2956
+	 * @hooked bulk_edit_custom_box
2957
+	 *
2958
+	 * @since 1.8.0
2959
+	 *
2960
+	 * @param string $column_name
2961
+	 * @param string $post_type
2962
+	 * @return void
2963
+	 */
2964
+	public function all_lessons_edit_fields( $column_name, $post_type ) {
2965
+
2966
+		// only show these options ont he lesson post type edit screen
2967
+		if( 'lesson' != $post_type || 'lesson-course' != $column_name
2968
+			|| ! current_user_can( 'edit_lessons' ) ) {
2969
+			return;
2970
+		}
2971
+
2972
+		?>
2973 2973
         <fieldset class="sensei-edit-field-set inline-edit-lesson">
2974 2974
             <div class="sensei-inline-edit-col column-<?php echo $column_name ?>">
2975 2975
                     <?php
2976
-                    echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>';
2977
-                    // create a nonce field to be  used as a security measure when saving the data
2978
-                    wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' );
2979
-                    wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce'  );
2980
-
2981
-                    // unchanged option - we need this in because
2982
-                    // the default option in bulk edit should not be empty. If it is
2983
-                    // the user will erase data they didn't want to touch.
2984
-                    $no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --';
2985
-
2986
-                    //
2987
-                    //course selection
2988
-                    //
2989
-                    $courses =  WooThemes_Sensei_Course::get_all_courses();
2990
-                    $course_options = array();
2991
-                    if ( count( $courses ) > 0 ) {
2992
-                        foreach ($courses as $course ){
2993
-                            $course_options[ $course->ID ] = get_the_title( $course->ID );
2994
-                        }
2995
-                    }
2996
-                    //pre-append the no change option
2997
-                    $course_options['-1']=  $no_change_text;
2998
-                    $course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' );
2999
-                    $course_field =  Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes );
3000
-                    echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'),   $course_field  );
3001
-
3002
-                    //
3003
-                    // lesson complexity selection
3004
-                    //
3005
-                    $lesson_complexities =  $this->lesson_complexities();
3006
-                    //pre-append the no change option
3007
-                    $lesson_complexities['-1']=  $no_change_text;
3008
-                    $complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' ');
3009
-                    $complexity_filed =  Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes );
3010
-                    echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'),   $complexity_filed  );
3011
-
3012
-                    ?>
2976
+					echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>';
2977
+					// create a nonce field to be  used as a security measure when saving the data
2978
+					wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' );
2979
+					wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce'  );
2980
+
2981
+					// unchanged option - we need this in because
2982
+					// the default option in bulk edit should not be empty. If it is
2983
+					// the user will erase data they didn't want to touch.
2984
+					$no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --';
2985
+
2986
+					//
2987
+					//course selection
2988
+					//
2989
+					$courses =  WooThemes_Sensei_Course::get_all_courses();
2990
+					$course_options = array();
2991
+					if ( count( $courses ) > 0 ) {
2992
+						foreach ($courses as $course ){
2993
+							$course_options[ $course->ID ] = get_the_title( $course->ID );
2994
+						}
2995
+					}
2996
+					//pre-append the no change option
2997
+					$course_options['-1']=  $no_change_text;
2998
+					$course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' );
2999
+					$course_field =  Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes );
3000
+					echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'),   $course_field  );
3001
+
3002
+					//
3003
+					// lesson complexity selection
3004
+					//
3005
+					$lesson_complexities =  $this->lesson_complexities();
3006
+					//pre-append the no change option
3007
+					$lesson_complexities['-1']=  $no_change_text;
3008
+					$complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' ');
3009
+					$complexity_filed =  Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes );
3010
+					echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'),   $complexity_filed  );
3011
+
3012
+					?>
3013 3013
 
3014 3014
                     <h4><?php _e('Quiz Settings', 'woothemes-sensei'); ?> </h4>
3015 3015
 
3016 3016
                     <?php
3017 3017
 
3018
-                    //
3019
-                    // Lesson require pass to complete
3020
-                    //
3021
-                    $pass_required_options = array(
3022
-                        '-1' => $no_change_text,
3023
-                         '0' => __('No','woothemes'),
3024
-                         '1' => __('Yes','woothemes'),
3025
-                    );
3026
-
3027
-                    $pass_required_select_attributes = array( 'name'=> 'pass_required',
3028
-                                                                'id'=> 'sensei-edit-lesson-pass-required',
3029
-                                                                'class'=>' '   );
3030
-                    $require_pass_field =  Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false );
3031
-                    echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'),   $require_pass_field  );
3032
-
3033
-                    //
3034
-                    // Quiz pass percentage
3035
-                    //
3036
-                    $quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />';
3037
-                    echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field  );
3038
-
3039
-                    //
3040
-                    // Enable quiz reset button
3041
-                    //
3042
-                    $quiz_reset_select__options = array(
3043
-                        '-1' => $no_change_text,
3044
-                        '0' => __('No','woothemes'),
3045
-                        '1' => __('Yes','woothemes'),
3046
-                    );
3047
-                    $quiz_reset_name_id = 'sensei-edit-enable-quiz-reset';
3048
-                    $quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' );
3049
-                    $quiz_reset_field =  Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false );
3050
-                    echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field  );
3051
-
3052
-                    ?>
3018
+					//
3019
+					// Lesson require pass to complete
3020
+					//
3021
+					$pass_required_options = array(
3022
+						'-1' => $no_change_text,
3023
+						 '0' => __('No','woothemes'),
3024
+						 '1' => __('Yes','woothemes'),
3025
+					);
3026
+
3027
+					$pass_required_select_attributes = array( 'name'=> 'pass_required',
3028
+																'id'=> 'sensei-edit-lesson-pass-required',
3029
+																'class'=>' '   );
3030
+					$require_pass_field =  Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false );
3031
+					echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'),   $require_pass_field  );
3032
+
3033
+					//
3034
+					// Quiz pass percentage
3035
+					//
3036
+					$quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />';
3037
+					echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field  );
3038
+
3039
+					//
3040
+					// Enable quiz reset button
3041
+					//
3042
+					$quiz_reset_select__options = array(
3043
+						'-1' => $no_change_text,
3044
+						'0' => __('No','woothemes'),
3045
+						'1' => __('Yes','woothemes'),
3046
+					);
3047
+					$quiz_reset_name_id = 'sensei-edit-enable-quiz-reset';
3048
+					$quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' );
3049
+					$quiz_reset_field =  Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false );
3050
+					echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field  );
3051
+
3052
+					?>
3053 3053
             </div>
3054 3054
         </fieldset>
3055 3055
     <?php
3056
-    }// all_lessons_edit_fields
3057
-
3058
-    /**
3059
-     * Create the html for the edit field
3060
-     *
3061
-     * Wraps the passed in field and title combination with the correct html.
3062
-     *
3063
-     * @since 1.8.0
3064
-     *
3065
-     * @param string $title that will stand to the left of the field.
3066
-     * @param string $field type markup for the field that must be wrapped.
3067
-     * @return string $field_html
3068
-     */
3069
-    public function generate_all_lessons_edit_field( $title  ,$field ){
3070
-
3071
-        $html = '';
3072
-        $html = '<div class="inline-edit-group" >';
3073
-        $html .=  '<span class="title">'. $title .'</span> ';
3074
-        $html .= '<span class="input-text-wrap">';
3075
-        $html .= $field;
3076
-        $html .= '</span>';
3077
-        $html .= '</label></div>';
3078
-
3079
-        return $html ;
3080
-
3081
-    }//end generate_all_lessons_edit_field
3082
-
3083
-    /**
3084
-     * Respond to the ajax call from the bulk edit save function. This comes
3085
-     * from the admin all lesson screen.
3086
-     *
3087
-     * @since 1.8.0
3088
-     * @return void
3089
-     */
3090
-    function save_all_lessons_edit_fields() {
3091
-
3092
-        // verify all the data before attempting to save
3093
-        if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' )
3094
-            ||  empty( $_POST[ 'post_ids' ] )  || ! is_array( $_POST[ 'post_ids' ] ) ) {
3095
-            die();
3096
-        }
3097
-
3098
-        // get our variables
3099
-        $new_course = sanitize_text_field(  $_POST['sensei_edit_lesson_course'] );
3100
-        $new_complexity = sanitize_text_field(  $_POST['sensei_edit_complexity'] );
3101
-        $new_pass_required = sanitize_text_field(  $_POST['sensei_edit_pass_required'] );
3102
-        $new_pass_percentage = sanitize_text_field(  $_POST['sensei_edit_pass_percentage'] );
3103
-        $new_enable_quiz_reset = sanitize_text_field(  $_POST['sensei_edit_enable_quiz_reset'] );
3104
-        // store the values for all selected posts
3105
-        foreach( $_POST[ 'post_ids' ] as $lesson_id ) {
3106
-
3107
-            // get the quiz id needed for the quiz meta
3108
-            $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
3109
-
3110
-            // do not save the items if the value is -1 as this
3111
-            // means it was not changed
3112
-
3113
-            // update lesson course
3114
-            if( -1 != $new_course ){
3115
-                update_post_meta( $lesson_id, '_lesson_course', $new_course );
3116
-            }
3117
-            // update lesson complexity
3118
-            if( -1 != $new_complexity ){
3119
-                update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity );
3120
-            }
3121
-
3122
-            // Quiz Related settings
3123
-            if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) {
3124
-
3125
-                // update pass required
3126
-                if (-1 != $new_pass_required) {
3127
-
3128
-                    $checked = $new_pass_required  ? 'on' : '';
3129
-                    update_post_meta($quiz_id, '_pass_required', $checked);
3130
-                    unset( $checked );
3131
-                }
3056
+	}// all_lessons_edit_fields
3057
+
3058
+	/**
3059
+	 * Create the html for the edit field
3060
+	 *
3061
+	 * Wraps the passed in field and title combination with the correct html.
3062
+	 *
3063
+	 * @since 1.8.0
3064
+	 *
3065
+	 * @param string $title that will stand to the left of the field.
3066
+	 * @param string $field type markup for the field that must be wrapped.
3067
+	 * @return string $field_html
3068
+	 */
3069
+	public function generate_all_lessons_edit_field( $title  ,$field ){
3070
+
3071
+		$html = '';
3072
+		$html = '<div class="inline-edit-group" >';
3073
+		$html .=  '<span class="title">'. $title .'</span> ';
3074
+		$html .= '<span class="input-text-wrap">';
3075
+		$html .= $field;
3076
+		$html .= '</span>';
3077
+		$html .= '</label></div>';
3078
+
3079
+		return $html ;
3080
+
3081
+	}//end generate_all_lessons_edit_field
3082
+
3083
+	/**
3084
+	 * Respond to the ajax call from the bulk edit save function. This comes
3085
+	 * from the admin all lesson screen.
3086
+	 *
3087
+	 * @since 1.8.0
3088
+	 * @return void
3089
+	 */
3090
+	function save_all_lessons_edit_fields() {
3132 3091
 
3133
-                // update pass percentage
3134
-                if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){
3092
+		// verify all the data before attempting to save
3093
+		if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' )
3094
+			||  empty( $_POST[ 'post_ids' ] )  || ! is_array( $_POST[ 'post_ids' ] ) ) {
3095
+			die();
3096
+		}
3135 3097
 
3136
-                        update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage);
3098
+		// get our variables
3099
+		$new_course = sanitize_text_field(  $_POST['sensei_edit_lesson_course'] );
3100
+		$new_complexity = sanitize_text_field(  $_POST['sensei_edit_complexity'] );
3101
+		$new_pass_required = sanitize_text_field(  $_POST['sensei_edit_pass_required'] );
3102
+		$new_pass_percentage = sanitize_text_field(  $_POST['sensei_edit_pass_percentage'] );
3103
+		$new_enable_quiz_reset = sanitize_text_field(  $_POST['sensei_edit_enable_quiz_reset'] );
3104
+		// store the values for all selected posts
3105
+		foreach( $_POST[ 'post_ids' ] as $lesson_id ) {
3137 3106
 
3138
-                }
3107
+			// get the quiz id needed for the quiz meta
3108
+			$quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
3139 3109
 
3140
-                //
3141
-                // update enable quiz reset
3142
-                //
3143
-                if (-1 != $new_enable_quiz_reset ) {
3110
+			// do not save the items if the value is -1 as this
3111
+			// means it was not changed
3144 3112
 
3145
-                    $checked = $new_enable_quiz_reset ? 'on' : ''  ;
3146
-                    update_post_meta($quiz_id, '_enable_quiz_reset', $checked);
3147
-                    unset( $checked );
3113
+			// update lesson course
3114
+			if( -1 != $new_course ){
3115
+				update_post_meta( $lesson_id, '_lesson_course', $new_course );
3116
+			}
3117
+			// update lesson complexity
3118
+			if( -1 != $new_complexity ){
3119
+				update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity );
3120
+			}
3148 3121
 
3149
-                }
3122
+			// Quiz Related settings
3123
+			if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) {
3150 3124
 
3125
+				// update pass required
3126
+				if (-1 != $new_pass_required) {
3151 3127
 
3152
-            } // end if quiz
3128
+					$checked = $new_pass_required  ? 'on' : '';
3129
+					update_post_meta($quiz_id, '_pass_required', $checked);
3130
+					unset( $checked );
3131
+				}
3153 3132
 
3154
-        }// end for each
3133
+				// update pass percentage
3134
+				if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){
3155 3135
 
3156
-        die();
3136
+						update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage);
3157 3137
 
3158
-    } // end save_all_lessons_edit_fields
3138
+				}
3139
+
3140
+				//
3141
+				// update enable quiz reset
3142
+				//
3143
+				if (-1 != $new_enable_quiz_reset ) {
3159 3144
 
3160
-    /**
3161
-     * Loading the quick edit fields defaults.
3162
-     *
3163
-     * This function will localise the default values along with the script that will
3164
-     * add these values to the inputs.
3165
-     *
3166
-     * NOTE: this function runs for each row in the edit column
3167
-     *
3168
-     * @since 1.8.0
3169
-     * @return void
3170
-     */
3171
-    public function set_quick_edit_admin_defaults( $column_name, $post_id ){
3145
+					$checked = $new_enable_quiz_reset ? 'on' : ''  ;
3146
+					update_post_meta($quiz_id, '_enable_quiz_reset', $checked);
3147
+					unset( $checked );
3148
+
3149
+				}
3150
+
3151
+
3152
+			} // end if quiz
3153
+
3154
+		}// end for each
3155
+
3156
+		die();
3157
+
3158
+	} // end save_all_lessons_edit_fields
3159
+
3160
+	/**
3161
+	 * Loading the quick edit fields defaults.
3162
+	 *
3163
+	 * This function will localise the default values along with the script that will
3164
+	 * add these values to the inputs.
3165
+	 *
3166
+	 * NOTE: this function runs for each row in the edit column
3167
+	 *
3168
+	 * @since 1.8.0
3169
+	 * @return void
3170
+	 */
3171
+	public function set_quick_edit_admin_defaults( $column_name, $post_id ){
3172 3172
 
3173
-        if( 'lesson-course' != $column_name ){
3174
-            return;
3175
-        }
3176
-        // load the script
3177
-        $suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
3178
-        wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
3173
+		if( 'lesson-course' != $column_name ){
3174
+			return;
3175
+		}
3176
+		// load the script
3177
+		$suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
3178
+		wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
3179 3179
 
3180
-        // setup the values for all meta fields
3181
-        $data = array();
3182
-        foreach( $this->meta_fields as $field ){
3180
+		// setup the values for all meta fields
3181
+		$data = array();
3182
+		foreach( $this->meta_fields as $field ){
3183 3183
 
3184
-            $data[$field] =  get_post_meta( $post_id, '_'.$field, true );
3184
+			$data[$field] =  get_post_meta( $post_id, '_'.$field, true );
3185 3185
 
3186
-        }
3187
-        // add quiz meta fields
3188
-        $quiz_id = Sensei()->lesson->lesson_quizzes( $post_id );
3189
-        foreach( Sensei()->quiz->meta_fields as $field ){
3186
+		}
3187
+		// add quiz meta fields
3188
+		$quiz_id = Sensei()->lesson->lesson_quizzes( $post_id );
3189
+		foreach( Sensei()->quiz->meta_fields as $field ){
3190 3190
 
3191
-            $data[$field] =  get_post_meta( $quiz_id, '_'.$field, true );
3191
+			$data[$field] =  get_post_meta( $quiz_id, '_'.$field, true );
3192 3192
 
3193
-        }
3193
+		}
3194 3194
 
3195
-        wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data );
3195
+		wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data );
3196 3196
 
3197
-    }// end quick edit admin defaults
3197
+	}// end quick edit admin defaults
3198 3198
 
3199
-    /**
3200
-     * Filter the classes for lessons on the single course page.
3201
-     *
3202
-     * Adds the nesecary classes depending on the user data
3203
-     *
3204
-     * @since 1.9.0
3205
-     * @param array $classes
3206
-     * @return array $classes
3207
-     */
3208
-    public static function single_course_lessons_classes( $classes ){
3199
+	/**
3200
+	 * Filter the classes for lessons on the single course page.
3201
+	 *
3202
+	 * Adds the nesecary classes depending on the user data
3203
+	 *
3204
+	 * @since 1.9.0
3205
+	 * @param array $classes
3206
+	 * @return array $classes
3207
+	 */
3208
+	public static function single_course_lessons_classes( $classes ){
3209 3209
 
3210
-        if(  is_singular('course') ){
3210
+		if(  is_singular('course') ){
3211 3211
 
3212
-            global $post;
3213
-            $course_id = $post->ID;
3212
+			global $post;
3213
+			$course_id = $post->ID;
3214 3214
 
3215
-            $lesson_classes = array( 'course', 'post' );
3216
-            if ( is_user_logged_in() ) {
3215
+			$lesson_classes = array( 'course', 'post' );
3216
+			if ( is_user_logged_in() ) {
3217 3217
 
3218
-                // Check if Lesson is complete
3219
-                $single_lesson_complete = Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() );
3220
-                if ( $single_lesson_complete ) {
3218
+				// Check if Lesson is complete
3219
+				$single_lesson_complete = Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() );
3220
+				if ( $single_lesson_complete ) {
3221 3221
 
3222
-                    $lesson_classes[] = 'lesson-completed';
3222
+					$lesson_classes[] = 'lesson-completed';
3223 3223
 
3224
-                } // End If Statement
3224
+				} // End If Statement
3225 3225
 
3226
-            } // End If Statement
3226
+			} // End If Statement
3227 3227
 
3228
-            $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3229
-            if (  Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) {
3228
+			$is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3229
+			if (  Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) {
3230 3230
 
3231
-                $lesson_classes[] = 'lesson-preview';
3231
+				$lesson_classes[] = 'lesson-preview';
3232 3232
 
3233
-            }
3233
+			}
3234 3234
 
3235
-            $classes = array_merge( $classes, $lesson_classes  );
3235
+			$classes = array_merge( $classes, $lesson_classes  );
3236 3236
 
3237
-        }
3237
+		}
3238 3238
 
3239
-        return $classes;
3239
+		return $classes;
3240 3240
 
3241
-    }// end single_course_lessons_classes
3241
+	}// end single_course_lessons_classes
3242 3242
 
3243
-    /**
3244
-     * Output the lesson meta for the given lesson
3245
-     *
3246
-     * @since 1.9.0
3247
-     * @param $lesson_id
3248
-     */
3249
-    public static function the_lesson_meta( $lesson_id ){
3243
+	/**
3244
+	 * Output the lesson meta for the given lesson
3245
+	 *
3246
+	 * @since 1.9.0
3247
+	 * @param $lesson_id
3248
+	 */
3249
+	public static function the_lesson_meta( $lesson_id ){
3250 3250
 
3251
-        global $wp_query;
3252
-        $loop_lesson_number = $wp_query->current_post + 1;
3251
+		global $wp_query;
3252
+		$loop_lesson_number = $wp_query->current_post + 1;
3253 3253
 
3254
-        $course_id = Sensei()->lesson->get_course_id( $lesson_id );
3255
-        $single_lesson_complete = false;
3256
-        $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3254
+		$course_id = Sensei()->lesson->get_course_id( $lesson_id );
3255
+		$single_lesson_complete = false;
3256
+		$is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3257 3257
 
3258
-        // Get Lesson data
3259
-        $complexity_array = Sensei()->lesson->lesson_complexities();
3258
+		// Get Lesson data
3259
+		$complexity_array = Sensei()->lesson->lesson_complexities();
3260 3260
 
3261
-        $lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true );
3262
-        if ( '' != $lesson_complexity ) {
3261
+		$lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true );
3262
+		if ( '' != $lesson_complexity ) {
3263 3263
 
3264
-            $lesson_complexity = $complexity_array[$lesson_complexity];
3264
+			$lesson_complexity = $complexity_array[$lesson_complexity];
3265 3265
 
3266
-        }
3267
-        $user_info = get_userdata( absint( get_post()->post_author ) );
3268
-        $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id);
3269
-        $preview_label = '';
3270
-        if ( $is_preview && !$is_user_taking_course ) {
3266
+		}
3267
+		$user_info = get_userdata( absint( get_post()->post_author ) );
3268
+		$is_preview = Sensei_Utils::is_preview_lesson( $lesson_id);
3269
+		$preview_label = '';
3270
+		if ( $is_preview && !$is_user_taking_course ) {
3271 3271
 
3272
-            $preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id);
3273
-            $preview_label = '<span class="preview-heading">' . $preview_label . '</span>';
3272
+			$preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id);
3273
+			$preview_label = '<span class="preview-heading">' . $preview_label . '</span>';
3274 3274
 
3275
-        }
3275
+		}
3276 3276
 
3277 3277
 
3278
-        $count_markup= '';
3279
-        /**
3280
-         * Filter for if you want the $lesson_count to show next to the lesson.
3281
-         *
3282
-         * @since 1.0
3283
-         * @param bool default false.
3284
-         */
3285
-        if( apply_filters( 'sensei_show_lesson_numbers', false ) ) {
3278
+		$count_markup= '';
3279
+		/**
3280
+		 * Filter for if you want the $lesson_count to show next to the lesson.
3281
+		 *
3282
+		 * @since 1.0
3283
+		 * @param bool default false.
3284
+		 */
3285
+		if( apply_filters( 'sensei_show_lesson_numbers', false ) ) {
3286 3286
 
3287
-            $count_markup =  '<span class="lesson-number">' . $loop_lesson_number. '</span>';
3287
+			$count_markup =  '<span class="lesson-number">' . $loop_lesson_number. '</span>';
3288 3288
 
3289
-        }
3289
+		}
3290 3290
 
3291
-        $heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) );
3291
+		$heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) );
3292 3292
 
3293
-        ?>
3293
+		?>
3294 3294
         <header>
3295 3295
             <h2>
3296 3296
                 <a href="<?php echo esc_url_raw( get_permalink( $lesson_id ) ) ?>"
@@ -3303,40 +3303,40 @@  discard block
 block discarded – undo
3303 3303
 
3304 3304
                 <?php
3305 3305
 
3306
-                $meta_html = '';
3307
-                $user_lesson_status = Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() );
3306
+				$meta_html = '';
3307
+				$user_lesson_status = Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() );
3308 3308
 
3309
-                $lesson_length = get_post_meta( $lesson_id, '_lesson_length', true );
3310
-                if ( '' != $lesson_length ) {
3309
+				$lesson_length = get_post_meta( $lesson_id, '_lesson_length', true );
3310
+				if ( '' != $lesson_length ) {
3311 3311
 
3312
-                    $meta_html .= '<span class="lesson-length">' .  __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>';
3312
+					$meta_html .= '<span class="lesson-length">' .  __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>';
3313 3313
 
3314
-                }
3314
+				}
3315 3315
 
3316
-                if ( Sensei()->settings->get( 'lesson_author' ) ) {
3316
+				if ( Sensei()->settings->get( 'lesson_author' ) ) {
3317 3317
 
3318
-                    $meta_html .= '<span class="lesson-author">' .  __( 'Author: ', 'woothemes-sensei' ) . '<a href="' . get_author_posts_url( absint( get_post()->post_author ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>';
3318
+					$meta_html .= '<span class="lesson-author">' .  __( 'Author: ', 'woothemes-sensei' ) . '<a href="' . get_author_posts_url( absint( get_post()->post_author ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>';
3319 3319
 
3320
-                } // End If Statement
3321
-                if ( '' != $lesson_complexity ) {
3320
+				} // End If Statement
3321
+				if ( '' != $lesson_complexity ) {
3322 3322
 
3323
-                    $meta_html .= '<span class="lesson-complexity">' .  __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>';
3323
+					$meta_html .= '<span class="lesson-complexity">' .  __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>';
3324 3324
 
3325
-                }
3325
+				}
3326 3326
 
3327
-                if ( $single_lesson_complete ) {
3327
+				if ( $single_lesson_complete ) {
3328 3328
 
3329
-                    $meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>';
3329
+					$meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>';
3330 3330
 
3331
-                } elseif ( $user_lesson_status ) {
3331
+				} elseif ( $user_lesson_status ) {
3332 3332
 
3333
-                    $meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>';
3333
+					$meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>';
3334 3334
 
3335
-                } // End If Statement
3335
+				} // End If Statement
3336 3336
 
3337
-                echo $meta_html;
3337
+				echo $meta_html;
3338 3338
 
3339
-                ?>
3339
+				?>
3340 3340
 
3341 3341
             </p> <!-- lesson meta -->
3342 3342
 
@@ -3344,132 +3344,132 @@  discard block
 block discarded – undo
3344 3344
 
3345 3345
     <?php
3346 3346
 
3347
-    } // end the_lesson_meta
3347
+	} // end the_lesson_meta
3348 3348
 
3349
-    /**
3350
-     * Output the lessons thumbnail
3351
-     *
3352
-     * 1.9.0
3353
-     *
3354
-     * @param $lesson_id
3355
-     */
3356
-    public static function the_lesson_thumbnail( $lesson_id ){
3349
+	/**
3350
+	 * Output the lessons thumbnail
3351
+	 *
3352
+	 * 1.9.0
3353
+	 *
3354
+	 * @param $lesson_id
3355
+	 */
3356
+	public static function the_lesson_thumbnail( $lesson_id ){
3357 3357
 
3358
-        if( empty( $lesson_id ) ){
3358
+		if( empty( $lesson_id ) ){
3359 3359
 
3360
-            $lesson_id = get_the_ID();
3360
+			$lesson_id = get_the_ID();
3361 3361
 
3362
-        }
3362
+		}
3363 3363
 
3364
-        if( 'lesson' != get_post_type( $lesson_id ) ){
3365
-            return;
3366
-        }
3364
+		if( 'lesson' != get_post_type( $lesson_id ) ){
3365
+			return;
3366
+		}
3367 3367
 
3368
-        echo Sensei()->lesson->lesson_image( $lesson_id );
3369
-    }
3368
+		echo Sensei()->lesson->lesson_image( $lesson_id );
3369
+	}
3370 3370
 
3371 3371
 
3372
-    /**
3373
-     * Alter the sensei lesson excerpt.
3374
-     *
3375
-     * @since 1.9.0
3376
-     * @param string $excerpt
3377
-     * @return string $excerpt
3378
-     */
3379
-    public static function alter_the_lesson_excerpt( $excerpt ) {
3372
+	/**
3373
+	 * Alter the sensei lesson excerpt.
3374
+	 *
3375
+	 * @since 1.9.0
3376
+	 * @param string $excerpt
3377
+	 * @return string $excerpt
3378
+	 */
3379
+	public static function alter_the_lesson_excerpt( $excerpt ) {
3380 3380
 
3381
-        if ('lesson' == get_post_type(get_the_ID())){
3381
+		if ('lesson' == get_post_type(get_the_ID())){
3382 3382
 
3383
-            // remove this hooks to avoid an infinite loop.
3384
-            remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') );
3383
+			// remove this hooks to avoid an infinite loop.
3384
+			remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') );
3385 3385
 
3386
-            return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) );
3387
-        }
3386
+			return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) );
3387
+		}
3388 3388
 
3389
-        return $excerpt;
3389
+		return $excerpt;
3390 3390
 
3391
-    }// end the_lesson_excerpt
3391
+	}// end the_lesson_excerpt
3392 3392
 
3393
-    /**
3394
-     * Returns the lesson prerequisite for the given lesson id.
3395
-     *
3396
-     * @since 1.9.0
3397
-     *
3398
-     * @param $current_lesson_id
3399
-     * @return mixed | bool | int $prerequisite_lesson_id or false
3400
-     */
3401
-    public static function get_lesson_prerequisite_id( $current_lesson_id  ){
3393
+	/**
3394
+	 * Returns the lesson prerequisite for the given lesson id.
3395
+	 *
3396
+	 * @since 1.9.0
3397
+	 *
3398
+	 * @param $current_lesson_id
3399
+	 * @return mixed | bool | int $prerequisite_lesson_id or false
3400
+	 */
3401
+	public static function get_lesson_prerequisite_id( $current_lesson_id  ){
3402 3402
 
3403
-        $prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true );
3403
+		$prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true );
3404 3404
 
3405
-        // set ti to false if not a valid prerequisite lesson id
3406
-        if(  empty( $prerequisite_lesson_id )
3407
-            || 'lesson' != get_post_type( $prerequisite_lesson_id )
3408
-            || $prerequisite_lesson_id == $current_lesson_id  ) {
3405
+		// set ti to false if not a valid prerequisite lesson id
3406
+		if(  empty( $prerequisite_lesson_id )
3407
+			|| 'lesson' != get_post_type( $prerequisite_lesson_id )
3408
+			|| $prerequisite_lesson_id == $current_lesson_id  ) {
3409 3409
 
3410
-            $prerequisite_lesson_id = false;
3410
+			$prerequisite_lesson_id = false;
3411 3411
 
3412
-        }
3412
+		}
3413 3413
 
3414
-        return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id );
3414
+		return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id );
3415 3415
 
3416
-    }
3416
+	}
3417 3417
 
3418
-    /**
3419
-     * This function requires that you pass in the lesson you would like to check for
3420
-     * a pre-requisite and not the pre-requisite. It will check if the
3421
-     * lesson has a pre-requiste and then check if it is completed.
3422
-     *
3423
-     * @since 1.9.0
3424
-     *
3425
-     * @param $lesson_id
3426
-     * @param $user_id
3427
-     * @return bool
3428
-     */
3429
-    public  static function is_prerequisite_complete( $lesson_id, $user_id  ){
3418
+	/**
3419
+	 * This function requires that you pass in the lesson you would like to check for
3420
+	 * a pre-requisite and not the pre-requisite. It will check if the
3421
+	 * lesson has a pre-requiste and then check if it is completed.
3422
+	 *
3423
+	 * @since 1.9.0
3424
+	 *
3425
+	 * @param $lesson_id
3426
+	 * @param $user_id
3427
+	 * @return bool
3428
+	 */
3429
+	public  static function is_prerequisite_complete( $lesson_id, $user_id  ){
3430 3430
 
3431
-        if( empty( $lesson_id ) || empty( $user_id )
3432
-        || 'lesson' != get_post_type( $lesson_id )
3433
-        ||  ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){
3431
+		if( empty( $lesson_id ) || empty( $user_id )
3432
+		|| 'lesson' != get_post_type( $lesson_id )
3433
+		||  ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){
3434 3434
 
3435
-            return false;
3435
+			return false;
3436 3436
 
3437
-        }
3437
+		}
3438 3438
 
3439
-        $pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id );
3439
+		$pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id );
3440 3440
 
3441
-        // not a valid pre-requisite so pre-requisite is completed
3442
-        if( 'lesson' != get_post_type( $pre_requisite_id )
3443
-            || ! is_numeric( $pre_requisite_id ) ){
3441
+		// not a valid pre-requisite so pre-requisite is completed
3442
+		if( 'lesson' != get_post_type( $pre_requisite_id )
3443
+			|| ! is_numeric( $pre_requisite_id ) ){
3444 3444
 
3445
-            return true;
3445
+			return true;
3446 3446
 
3447
-        }
3447
+		}
3448 3448
 
3449
-        return  Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id );
3449
+		return  Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id );
3450 3450
 
3451
-    }// end is_prerequisite_complete
3451
+	}// end is_prerequisite_complete
3452 3452
 
3453
-    /**
3454
-     * Show the user not taking course message if it is the case
3455
-     *
3456
-     * @since 1.9.0
3457
-     */
3458
-    public  static function user_not_taking_course_message(){
3453
+	/**
3454
+	 * Show the user not taking course message if it is the case
3455
+	 *
3456
+	 * @since 1.9.0
3457
+	 */
3458
+	public  static function user_not_taking_course_message(){
3459 3459
 
3460
-        $lesson_id = get_the_ID();
3460
+		$lesson_id = get_the_ID();
3461 3461
 
3462
-        if( 'lesson' != get_post_type( $lesson_id ) ){
3463
-            return;
3464
-        }
3462
+		if( 'lesson' != get_post_type( $lesson_id ) ){
3463
+			return;
3464
+		}
3465 3465
 
3466
-        $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id );
3467
-        $pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() );
3468
-        $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true );
3469
-        $user_taking_course = Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() );
3466
+		$is_preview = Sensei_Utils::is_preview_lesson( $lesson_id );
3467
+		$pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() );
3468
+		$lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true );
3469
+		$user_taking_course = Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() );
3470 3470
 
3471
-        if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) {
3472
-            ?>
3471
+		if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) {
3472
+			?>
3473 3473
 
3474 3474
             <div class="sensei-message alert">
3475 3475
                 <?php echo Sensei()->permissions_message['message']; ?>
@@ -3477,46 +3477,46 @@  discard block
 block discarded – undo
3477 3477
 
3478 3478
             <?php
3479 3479
 
3480
-        }// end if
3480
+		}// end if
3481 3481
 
3482
-    } // end user_not_taking_course_message
3482
+	} // end user_not_taking_course_message
3483 3483
 
3484
-    /**
3485
-     * Outputs the lessons course signup lingk
3486
-     *
3487
-     * This hook runs inside the single lesson page.
3488
-     *
3489
-     * @since 1.9.0
3490
-     */
3491
-    public static function course_signup_link( ){
3484
+	/**
3485
+	 * Outputs the lessons course signup lingk
3486
+	 *
3487
+	 * This hook runs inside the single lesson page.
3488
+	 *
3489
+	 * @since 1.9.0
3490
+	 */
3491
+	public static function course_signup_link( ){
3492 3492
 
3493
-        $course_id =  Sensei()->lesson->get_course_id( get_the_ID() );
3493
+		$course_id =  Sensei()->lesson->get_course_id( get_the_ID() );
3494 3494
 
3495
-        if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) {
3495
+		if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) {
3496 3496
 
3497
-            return;
3497
+			return;
3498 3498
 
3499
-        }
3500
-        ?>
3499
+		}
3500
+		?>
3501 3501
 
3502 3502
         <section class="course-signup lesson-meta">
3503 3503
 
3504 3504
             <?php
3505
-            $wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true );
3505
+			$wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true );
3506 3506
 
3507
-            if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
3507
+			if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
3508 3508
 
3509
-                global $current_user;
3510
-                if( is_user_logged_in() ) {
3511
-                    wp_get_current_user();
3509
+				global $current_user;
3510
+				if( is_user_logged_in() ) {
3511
+					wp_get_current_user();
3512 3512
 
3513
-                    $course_purchased = Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id );
3513
+					$course_purchased = Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id );
3514 3514
 
3515
-                    if( $course_purchased ) {
3515
+					if( $course_purchased ) {
3516 3516
 
3517
-                        $prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true );
3518
-                        $course_link = '<a href="' . esc_url( get_permalink( $prereq_course_id ) ) . '" title="' . esc_attr( get_the_title( $prereq_course_id ) ) . '">' . __( 'the previous course', 'woothemes-sensei' )  . '</a>';
3519
-                        ?>
3517
+						$prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true );
3518
+						$course_link = '<a href="' . esc_url( get_permalink( $prereq_course_id ) ) . '" title="' . esc_attr( get_the_title( $prereq_course_id ) ) . '">' . __( 'the previous course', 'woothemes-sensei' )  . '</a>';
3519
+						?>
3520 3520
                             <div class="sensei-message info">
3521 3521
 
3522 3522
                                 <?php  echo sprintf( __( 'Please complete %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); ?>
@@ -3525,27 +3525,27 @@  discard block
 block discarded – undo
3525 3525
 
3526 3526
                     <?php } else {
3527 3527
 
3528
-	                    if( ! Sensei_Utils::user_started_course( $course_id, $current_user->ID )  ){
3528
+						if( ! Sensei_Utils::user_started_course( $course_id, $current_user->ID )  ){
3529 3529
 
3530
-		                    ?>
3530
+							?>
3531 3531
 
3532 3532
 	                        <div class="sensei-message info">
3533 3533
 
3534 3534
 	                            <?php
3535
-	                            $course_link = '<a href="' . esc_url( get_permalink( $course_id ) )
3536
-	                                            . '"title="' . __( 'Sign Up', 'woothemes-sensei' )
3537
-	                                            . '">' . __( 'course', 'woothemes-sensei' )
3538
-	                                            . '</a>';
3535
+								$course_link = '<a href="' . esc_url( get_permalink( $course_id ) )
3536
+												. '"title="' . __( 'Sign Up', 'woothemes-sensei' )
3537
+												. '">' . __( 'course', 'woothemes-sensei' )
3538
+												. '</a>';
3539 3539
 
3540
-	                            echo  sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
3540
+								echo  sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
3541 3541
 
3542
-	                            ?>
3542
+								?>
3543 3543
 
3544 3544
 	                        </div>
3545 3545
                     <?php
3546
-	                    }
3547
-                    }
3548
-	                ?>
3546
+						}
3547
+					}
3548
+					?>
3549 3549
 
3550 3550
                 <?php } else { ?>
3551 3551
 
@@ -3559,11 +3559,11 @@  discard block
 block discarded – undo
3559 3559
 
3560 3560
                 <div class="sensei-message alert">
3561 3561
                     <?php
3562
-                    $course_link =  '<a href="'
3563
-                                        . esc_url( get_permalink( $course_id ) )
3564
-                                        . '" title="' . __( 'Sign Up', 'woothemes-sensei' )
3565
-                                        . '">' . __( 'course', 'woothemes-sensei' )
3566
-                                    . '</a>';
3562
+					$course_link =  '<a href="'
3563
+										. esc_url( get_permalink( $course_id ) )
3564
+										. '" title="' . __( 'Sign Up', 'woothemes-sensei' )
3565
+										. '">' . __( 'course', 'woothemes-sensei' )
3566
+									. '</a>';
3567 3567
 
3568 3568
 					if ( Sensei_Utils::is_preview_lesson( get_the_ID( ) ) ) {
3569 3569
 
@@ -3575,7 +3575,7 @@  discard block
 block discarded – undo
3575 3575
 
3576 3576
 					}
3577 3577
 
3578
-                    ?>
3578
+					?>
3579 3579
                 </div>
3580 3580
 
3581 3581
             <?php endif; ?>
@@ -3585,75 +3585,75 @@  discard block
 block discarded – undo
3585 3585
         </section>
3586 3586
 
3587 3587
         <?php
3588
-    }// end course_signup_link
3588
+	}// end course_signup_link
3589 3589
 
3590
-    /**
3591
-     * Show a message telling the user to complete the previous message if they haven't done so yet
3592
-     *
3593
-     * @since 1.9.0
3594
-     */
3595
-    public  static function prerequisite_complete_message(){
3590
+	/**
3591
+	 * Show a message telling the user to complete the previous message if they haven't done so yet
3592
+	 *
3593
+	 * @since 1.9.0
3594
+	 */
3595
+	public  static function prerequisite_complete_message(){
3596 3596
 
3597
-        $lesson_prerequisite =  WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() );
3598
-        $lesson_has_pre_requisite = $lesson_prerequisite > 0;
3599
-        if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete(  get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) {
3597
+		$lesson_prerequisite =  WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() );
3598
+		$lesson_has_pre_requisite = $lesson_prerequisite > 0;
3599
+		if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete(  get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) {
3600 3600
 
3601
-            $prerequisite_lesson_link  = '<a href="' . esc_url( get_permalink( $lesson_prerequisite ) ) . '" title="' . esc_attr(  sprintf( __( 'You must first complete: %1$s', 'woothemes-sensei' ), get_the_title( $lesson_prerequisite ) ) ) . '">' . get_the_title( $lesson_prerequisite ). '</a>';
3602
-            echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link );
3601
+			$prerequisite_lesson_link  = '<a href="' . esc_url( get_permalink( $lesson_prerequisite ) ) . '" title="' . esc_attr(  sprintf( __( 'You must first complete: %1$s', 'woothemes-sensei' ), get_the_title( $lesson_prerequisite ) ) ) . '">' . get_the_title( $lesson_prerequisite ). '</a>';
3602
+			echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link );
3603 3603
 
3604
-        }
3604
+		}
3605 3605
 
3606
-    }
3606
+	}
3607 3607
 
3608
-    /**
3609
-     * Deprecate the sensei_lesson_archive_header hook but keep it
3610
-     * active for backwards compatibility.
3611
-     *
3612
-     * @deprecated since 1.9.0
3613
-     */
3614
-    public static function deprecate_sensei_lesson_archive_header_hook(){
3608
+	/**
3609
+	 * Deprecate the sensei_lesson_archive_header hook but keep it
3610
+	 * active for backwards compatibility.
3611
+	 *
3612
+	 * @deprecated since 1.9.0
3613
+	 */
3614
+	public static function deprecate_sensei_lesson_archive_header_hook(){
3615 3615
 
3616
-        sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before');
3616
+		sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before');
3617 3617
 
3618
-    }
3618
+	}
3619 3619
 
3620
-    /**
3621
-     * Outputs the the lesson archive header.
3622
-     *
3623
-     * @since  1.9.0
3624
-     * @return void
3625
-     */
3626
-    public function the_archive_header( ) {
3620
+	/**
3621
+	 * Outputs the the lesson archive header.
3622
+	 *
3623
+	 * @since  1.9.0
3624
+	 * @return void
3625
+	 */
3626
+	public function the_archive_header( ) {
3627 3627
 
3628
-        $before_html = '<header class="archive-header"><h1>';
3629
-        $after_html = '</h1></header>';
3630
-        $html = $before_html .  __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html;
3628
+		$before_html = '<header class="archive-header"><h1>';
3629
+		$after_html = '</h1></header>';
3630
+		$html = $before_html .  __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html;
3631 3631
 
3632
-        echo apply_filters( 'sensei_lesson_archive_title', $html );
3632
+		echo apply_filters( 'sensei_lesson_archive_title', $html );
3633 3633
 
3634
-    } // sensei_course_archive_header()
3634
+	} // sensei_course_archive_header()
3635 3635
 
3636
-    /**
3637
-     * Output the title for the single lesson page
3638
-     *
3639
-     * @global $post
3640
-     * @since 1.9.0
3641
-     */
3642
-    public static function the_title(){
3636
+	/**
3637
+	 * Output the title for the single lesson page
3638
+	 *
3639
+	 * @global $post
3640
+	 * @since 1.9.0
3641
+	 */
3642
+	public static function the_title(){
3643 3643
 
3644
-        global $post;
3644
+		global $post;
3645 3645
 
3646
-        ?>
3646
+		?>
3647 3647
         <header>
3648 3648
 
3649 3649
             <h1>
3650 3650
 
3651 3651
                 <?php
3652
-                /**
3653
-                 * Filter documented in class-sensei-messages.php the_title
3654
-                 */
3655
-                echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
3656
-                ?>
3652
+				/**
3653
+				 * Filter documented in class-sensei-messages.php the_title
3654
+				 */
3655
+				echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
3656
+				?>
3657 3657
 
3658 3658
             </h1>
3659 3659
 
@@ -3661,75 +3661,75 @@  discard block
 block discarded – undo
3661 3661
 
3662 3662
         <?php
3663 3663
 
3664
-    }//the_title
3664
+	}//the_title
3665 3665
 
3666
-    /**
3667
-     * Flush the rewrite rules for a lesson post type
3668
-     *
3669
-     * @since 1.9.0
3670
-     *
3671
-     * @param $post_id
3672
-     */
3673
-    public static function flush_rewrite_rules( $post_id ){
3666
+	/**
3667
+	 * Flush the rewrite rules for a lesson post type
3668
+	 *
3669
+	 * @since 1.9.0
3670
+	 *
3671
+	 * @param $post_id
3672
+	 */
3673
+	public static function flush_rewrite_rules( $post_id ){
3674 3674
 
3675
-        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
3675
+		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
3676 3676
 
3677
-            return;
3677
+			return;
3678 3678
 
3679
-        }
3679
+		}
3680 3680
 
3681 3681
 
3682
-        if( 'lesson' == get_post_type( $post_id )  ){
3682
+		if( 'lesson' == get_post_type( $post_id )  ){
3683 3683
 
3684
-            Sensei()->initiate_rewrite_rules_flush();
3684
+			Sensei()->initiate_rewrite_rules_flush();
3685 3685
 
3686
-        }
3686
+		}
3687 3687
 
3688
-    }
3688
+	}
3689 3689
 
3690
-    /**
3691
-     * Output the quiz specific buttons and messaging on the single lesson page
3692
-     *
3693
-     *
3694
-     * @since 1.0.0 moved here from frontend class
3695
-     *
3696
-     * @param int $lesson_id
3697
-     * @param int $user_id
3698
-     */
3699
-    public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) {
3690
+	/**
3691
+	 * Output the quiz specific buttons and messaging on the single lesson page
3692
+	 *
3693
+	 *
3694
+	 * @since 1.0.0 moved here from frontend class
3695
+	 *
3696
+	 * @param int $lesson_id
3697
+	 * @param int $user_id
3698
+	 */
3699
+	public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) {
3700 3700
 
3701 3701
 
3702
-        $lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3703
-        $user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3702
+		$lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3703
+		$user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3704 3704
 
3705 3705
 
3706
-	    if ( ! sensei_can_user_view_lesson( $lesson_id, $user_id ) ) {
3707
-		    return;
3708
-	    }
3706
+		if ( ! sensei_can_user_view_lesson( $lesson_id, $user_id ) ) {
3707
+			return;
3708
+		}
3709 3709
 
3710
-        $lesson_prerequisite       = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
3711
-        $lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3712
-        $quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3713
-        $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3714
-        $show_actions              = is_user_logged_in() ? true : false;
3710
+		$lesson_prerequisite       = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
3711
+		$lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3712
+		$quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3713
+		$has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3714
+		$show_actions              = is_user_logged_in() ? true : false;
3715 3715
 
3716
-        if( intval( $lesson_prerequisite ) > 0 ) {
3716
+		if( intval( $lesson_prerequisite ) > 0 ) {
3717 3717
 
3718
-            // If the user hasn't completed the prereq then hide the current actions
3719
-            $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id );
3718
+			// If the user hasn't completed the prereq then hide the current actions
3719
+			$show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id );
3720 3720
 
3721
-        }
3721
+		}
3722 3722
 
3723
-        ?>
3723
+		?>
3724 3724
 
3725 3725
         <footer>
3726 3726
 
3727 3727
             <?php
3728
-            if( $show_actions && $quiz_id && Sensei()->access_settings() ) {
3728
+			if( $show_actions && $quiz_id && Sensei()->access_settings() ) {
3729 3729
 
3730
-                $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3731
-                if( $has_quiz_questions ) {
3732
-                    ?>
3730
+				$has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3731
+				if( $has_quiz_questions ) {
3732
+					?>
3733 3733
 
3734 3734
                     <p>
3735 3735
 
@@ -3744,123 +3744,123 @@  discard block
 block discarded – undo
3744 3744
                     </p>
3745 3745
 
3746 3746
                     <?php
3747
-                }
3747
+				}
3748 3748
 
3749
-            } // End If Statement
3749
+			} // End If Statement
3750 3750
 
3751
-            if ( $show_actions && ! $has_user_completed_lesson ) {
3751
+			if ( $show_actions && ! $has_user_completed_lesson ) {
3752 3752
 
3753
-                sensei_complete_lesson_button();
3753
+				sensei_complete_lesson_button();
3754 3754
 
3755
-            } elseif( $show_actions ) {
3755
+			} elseif( $show_actions ) {
3756 3756
 
3757
-                sensei_reset_lesson_button();
3757
+				sensei_reset_lesson_button();
3758 3758
 
3759
-            } // End If Statement
3760
-            ?>
3759
+			} // End If Statement
3760
+			?>
3761 3761
 
3762 3762
         </footer>
3763 3763
 
3764 3764
         <?php
3765
-    } // End sensei_lesson_quiz_meta()
3765
+	} // End sensei_lesson_quiz_meta()
3766 3766
 
3767
-    /**
3768
-     * Show the lesson comments. This should be used in the loop.
3769
-     *
3770
-     * @since 1.9.0
3771
-     */
3772
-    public static function output_comments(){
3767
+	/**
3768
+	 * Show the lesson comments. This should be used in the loop.
3769
+	 *
3770
+	 * @since 1.9.0
3771
+	 */
3772
+	public static function output_comments(){
3773 3773
 
3774
-        if( ! is_user_logged_in() ){
3775
-            return;
3776
-        }
3774
+		if( ! is_user_logged_in() ){
3775
+			return;
3776
+		}
3777 3777
 
3778
-        $pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() );
3779
-        $course_id = Sensei()->lesson->get_course_id( get_the_ID() );
3780
-        $allow_comments = Sensei()->settings->settings[ 'lesson_comments' ];
3781
-        $user_taking_course = Sensei_Utils::user_started_course($course_id );
3778
+		$pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() );
3779
+		$course_id = Sensei()->lesson->get_course_id( get_the_ID() );
3780
+		$allow_comments = Sensei()->settings->settings[ 'lesson_comments' ];
3781
+		$user_taking_course = Sensei_Utils::user_started_course($course_id );
3782 3782
 
3783
-        $lesson_allow_comments = $allow_comments && $pre_requisite_complete  && $user_taking_course;
3783
+		$lesson_allow_comments = $allow_comments && $pre_requisite_complete  && $user_taking_course;
3784 3784
 
3785
-        if (  $lesson_allow_comments || is_singular( 'sensei_message' ) ) {
3785
+		if (  $lesson_allow_comments || is_singular( 'sensei_message' ) ) {
3786 3786
 
3787
-            comments_template();
3787
+			comments_template();
3788 3788
 
3789
-        } // End If Statement
3789
+		} // End If Statement
3790 3790
 
3791
-    } //output_comments
3791
+	} //output_comments
3792 3792
 
3793
-    /**
3794
-     * Display the leeson quiz status if it should be shown
3795
-     *
3796
-     * @param int $lesson_id defaults to the global lesson id
3797
-     * @param int $user_id defaults to the current user id
3798
-     *
3799
-     * @since 1.9.0
3800
-     */
3801
-    public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){
3793
+	/**
3794
+	 * Display the leeson quiz status if it should be shown
3795
+	 *
3796
+	 * @param int $lesson_id defaults to the global lesson id
3797
+	 * @param int $user_id defaults to the current user id
3798
+	 *
3799
+	 * @since 1.9.0
3800
+	 */
3801
+	public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){
3802 3802
 
3803
-        $lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3804
-        $user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3805
-        $lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3806
-        $quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3807
-        $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3803
+		$lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3804
+		$user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3805
+		$lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3806
+		$quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3807
+		$has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3808 3808
 
3809 3809
 
3810
-        if ( $quiz_id && is_user_logged_in()
3811
-            && Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) {
3810
+		if ( $quiz_id && is_user_logged_in()
3811
+			&& Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) {
3812 3812
 
3813
-            $no_quiz_count = 0;
3814
-            $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3813
+			$no_quiz_count = 0;
3814
+			$has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3815 3815
 
3816
-            // Display lesson quiz status message
3817
-            if ( $has_user_completed_lesson || $has_quiz_questions ) {
3818
-                $status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true );
3819
-                echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
3820
-                if( $has_quiz_questions ) {
3821
-                   // echo $status['extra'];
3822
-                } // End If Statement
3823
-            } // End If Statement
3816
+			// Display lesson quiz status message
3817
+			if ( $has_user_completed_lesson || $has_quiz_questions ) {
3818
+				$status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true );
3819
+				echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
3820
+				if( $has_quiz_questions ) {
3821
+				   // echo $status['extra'];
3822
+				} // End If Statement
3823
+			} // End If Statement
3824 3824
 
3825
-        }
3825
+		}
3826 3826
 
3827
-    }
3827
+	}
3828 3828
 
3829
-    /**
3830
-     * On the lesson archive limit the number of words the show up if the access settings are enabled
3831
-     *
3832
-     * @since 1.9.0
3833
-     * @param $content
3834
-     * @return string
3835
-     */
3836
-    public static function limit_archive_content ( $content ){
3829
+	/**
3830
+	 * On the lesson archive limit the number of words the show up if the access settings are enabled
3831
+	 *
3832
+	 * @since 1.9.0
3833
+	 * @param $content
3834
+	 * @return string
3835
+	 */
3836
+	public static function limit_archive_content ( $content ){
3837 3837
 
3838
-        if( is_archive('lesson') && Sensei()->settings->get('access_permission') ){
3838
+		if( is_archive('lesson') && Sensei()->settings->get('access_permission') ){
3839 3839
 
3840
-            return wp_trim_words( $content, $num_words = 30, $more = '…' );
3841
-        }
3840
+			return wp_trim_words( $content, $num_words = 30, $more = '…' );
3841
+		}
3842 3842
 
3843
-        return $content;
3843
+		return $content;
3844 3844
 
3845
-    } // end limit_archive_content
3845
+	} // end limit_archive_content
3846 3846
 
3847
-    /**
3848
-     * Returns all publised lesson ID's
3849
-     *
3850
-     * @since 1.9.0
3851
-     * @return array
3852
-     */
3853
-    public static function get_all_lesson_ids(){
3847
+	/**
3848
+	 * Returns all publised lesson ID's
3849
+	 *
3850
+	 * @since 1.9.0
3851
+	 * @return array
3852
+	 */
3853
+	public static function get_all_lesson_ids(){
3854 3854
 
3855
-        return get_posts( array(
3856
-            'post_type'=>'lesson',
3857
-            'fields'=>'ids',
3858
-            'post_status' => 'publish',
3859
-            'numberposts' => 4000, // legacy support
3860
-            'post_per_page' => 4000
3861
-        ));
3855
+		return get_posts( array(
3856
+			'post_type'=>'lesson',
3857
+			'fields'=>'ids',
3858
+			'post_status' => 'publish',
3859
+			'numberposts' => 4000, // legacy support
3860
+			'post_per_page' => 4000
3861
+		));
3862 3862
 
3863
-    }
3863
+	}
3864 3864
 
3865 3865
 } // End Class
3866 3866
 
Please login to merge, or discard this patch.
Spacing   +1100 added lines, -1100 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 Lessons Class
@@ -19,83 +19,83 @@  discard block
 block discarded – undo
19 19
 	 * Constructor.
20 20
 	 * @since  1.0.0
21 21
 	 */
22
-	public function __construct () {
22
+	public function __construct() {
23 23
 
24 24
         $this->token = 'lesson';
25 25
 
26 26
 		// Setup meta fields for this post type
27
-		$this->meta_fields = array( 'lesson_prerequisite', 'lesson_course', 'lesson_preview', 'lesson_length', 'lesson_complexity', 'lesson_video_embed' );
27
+		$this->meta_fields = array('lesson_prerequisite', 'lesson_course', 'lesson_preview', 'lesson_length', 'lesson_complexity', 'lesson_video_embed');
28 28
 
29 29
         $this->question_order = '';
30 30
 
31 31
 		// Admin actions
32
-		if ( is_admin() ) {
32
+		if (is_admin()) {
33 33
 
34 34
 			// Metabox functions
35
-			add_action( 'admin_menu', array( $this, 'meta_box_setup' ), 20 );
36
-			add_action( 'save_post', array( $this, 'meta_box_save' ) );
37
-			add_action( 'save_post', array( $this, 'quiz_update' ) );
35
+			add_action('admin_menu', array($this, 'meta_box_setup'), 20);
36
+			add_action('save_post', array($this, 'meta_box_save'));
37
+			add_action('save_post', array($this, 'quiz_update'));
38 38
 
39 39
 			// Custom Write Panel Columns
40
-			add_filter( 'manage_edit-lesson_columns', array( $this, 'add_column_headings' ), 10, 1 );
41
-			add_action( 'manage_posts_custom_column', array( $this, 'add_column_data' ), 10, 2 );
40
+			add_filter('manage_edit-lesson_columns', array($this, 'add_column_headings'), 10, 1);
41
+			add_action('manage_posts_custom_column', array($this, 'add_column_data'), 10, 2);
42 42
 
43 43
 			// Add/Update question
44
-			add_action( 'wp_ajax_lesson_update_question', array( $this, 'lesson_update_question' ) );
45
-			add_action( 'wp_ajax_nopriv_lesson_update_question', array( $this, 'lesson_update_question' ) );
44
+			add_action('wp_ajax_lesson_update_question', array($this, 'lesson_update_question'));
45
+			add_action('wp_ajax_nopriv_lesson_update_question', array($this, 'lesson_update_question'));
46 46
 
47 47
 			// Add course
48
-			add_action( 'wp_ajax_lesson_add_course', array( $this, 'lesson_add_course' ) );
49
-			add_action( 'wp_ajax_nopriv_lesson_add_course', array( $this, 'lesson_add_course' ) );
48
+			add_action('wp_ajax_lesson_add_course', array($this, 'lesson_add_course'));
49
+			add_action('wp_ajax_nopriv_lesson_add_course', array($this, 'lesson_add_course'));
50 50
 
51 51
 			// Update grade type
52
-			add_action( 'wp_ajax_lesson_update_grade_type', array( $this, 'lesson_update_grade_type' ) );
53
-			add_action( 'wp_ajax_nopriv_lesson_update_grade_type', array( $this, 'lesson_update_grade_type' ) );
52
+			add_action('wp_ajax_lesson_update_grade_type', array($this, 'lesson_update_grade_type'));
53
+			add_action('wp_ajax_nopriv_lesson_update_grade_type', array($this, 'lesson_update_grade_type'));
54 54
 
55 55
 			// Update question order
56
-			add_action( 'wp_ajax_lesson_update_question_order', array( $this, 'lesson_update_question_order' ) );
57
-			add_action( 'wp_ajax_nopriv_lesson_update_question_order', array( $this, 'lesson_update_question_order' ) );
56
+			add_action('wp_ajax_lesson_update_question_order', array($this, 'lesson_update_question_order'));
57
+			add_action('wp_ajax_nopriv_lesson_update_question_order', array($this, 'lesson_update_question_order'));
58 58
 
59 59
 			//Update question order
60
-			add_action( 'wp_ajax_lesson_update_question_order_random', array( $this, 'lesson_update_question_order_random' ) );
61
-			add_action( 'wp_ajax_nopriv_lesson_update_question_order_random', array( $this, 'lesson_update_question_order_random' ) );
60
+			add_action('wp_ajax_lesson_update_question_order_random', array($this, 'lesson_update_question_order_random'));
61
+			add_action('wp_ajax_nopriv_lesson_update_question_order_random', array($this, 'lesson_update_question_order_random'));
62 62
 
63 63
 			// Get answer ID
64
-			add_action( 'wp_ajax_question_get_answer_id', array( $this, 'question_get_answer_id' ) );
65
-			add_action( 'wp_ajax_nopriv_question_get_answer_id', array( $this, 'question_get_answer_id' ) );
64
+			add_action('wp_ajax_question_get_answer_id', array($this, 'question_get_answer_id'));
65
+			add_action('wp_ajax_nopriv_question_get_answer_id', array($this, 'question_get_answer_id'));
66 66
 
67 67
 			// Add multiple questions
68
-			add_action( 'wp_ajax_lesson_add_multiple_questions', array( $this, 'lesson_add_multiple_questions' ) );
69
-			add_action( 'wp_ajax_nopriv_lesson_add_multiple_questions', array( $this, 'lesson_add_multiple_questions' ) );
68
+			add_action('wp_ajax_lesson_add_multiple_questions', array($this, 'lesson_add_multiple_questions'));
69
+			add_action('wp_ajax_nopriv_lesson_add_multiple_questions', array($this, 'lesson_add_multiple_questions'));
70 70
 
71 71
 			// Remove multiple questions
72
-			add_action( 'wp_ajax_lesson_remove_multiple_questions', array( $this, 'lesson_remove_multiple_questions' ) );
73
-			add_action( 'wp_ajax_nopriv_lesson_remove_multiple_questions', array( $this, 'lesson_remove_multiple_questions' ) );
72
+			add_action('wp_ajax_lesson_remove_multiple_questions', array($this, 'lesson_remove_multiple_questions'));
73
+			add_action('wp_ajax_nopriv_lesson_remove_multiple_questions', array($this, 'lesson_remove_multiple_questions'));
74 74
 
75 75
 			// Get question category limit
76
-			add_action( 'wp_ajax_get_question_category_limit', array( $this, 'get_question_category_limit' ) );
77
-			add_action( 'wp_ajax_nopriv_get_question_category_limit', array( $this, 'get_question_category_limit' ) );
76
+			add_action('wp_ajax_get_question_category_limit', array($this, 'get_question_category_limit'));
77
+			add_action('wp_ajax_nopriv_get_question_category_limit', array($this, 'get_question_category_limit'));
78 78
 
79 79
 			// Add existing questions
80
-			add_action( 'wp_ajax_lesson_add_existing_questions', array( $this, 'lesson_add_existing_questions' ) );
81
-			add_action( 'wp_ajax_nopriv_lesson_add_existing_questions', array( $this, 'lesson_add_existing_questions' ) );
80
+			add_action('wp_ajax_lesson_add_existing_questions', array($this, 'lesson_add_existing_questions'));
81
+			add_action('wp_ajax_nopriv_lesson_add_existing_questions', array($this, 'lesson_add_existing_questions'));
82 82
 
83 83
 			// Filter existing questions
84
-			add_action( 'wp_ajax_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) );
85
-			add_action( 'wp_ajax_nopriv_filter_existing_questions', array( $this, 'quiz_panel_filter_existing_questions' ) );
84
+			add_action('wp_ajax_filter_existing_questions', array($this, 'quiz_panel_filter_existing_questions'));
85
+			add_action('wp_ajax_nopriv_filter_existing_questions', array($this, 'quiz_panel_filter_existing_questions'));
86 86
 
87 87
             // output bulk edit fields
88
-            add_action( 'bulk_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
89
-            add_action( 'quick_edit_custom_box', array( $this, 'all_lessons_edit_fields' ), 10, 2 );
88
+            add_action('bulk_edit_custom_box', array($this, 'all_lessons_edit_fields'), 10, 2);
89
+            add_action('quick_edit_custom_box', array($this, 'all_lessons_edit_fields'), 10, 2);
90 90
 
91 91
             // load quick edit default values
92
-            add_action('manage_lesson_posts_custom_column', array( $this, 'set_quick_edit_admin_defaults'), 11, 2);
92
+            add_action('manage_lesson_posts_custom_column', array($this, 'set_quick_edit_admin_defaults'), 11, 2);
93 93
 
94 94
             // save bulk edit fields
95
-            add_action( 'wp_ajax_save_bulk_edit_book', array( $this, 'save_all_lessons_edit_fields' ) );
95
+            add_action('wp_ajax_save_bulk_edit_book', array($this, 'save_all_lessons_edit_fields'));
96 96
 
97 97
             // flush rewrite rules when saving a lesson
98
-            add_action('save_post', array( __CLASS__, 'flush_rewrite_rules' ) );
98
+            add_action('save_post', array(__CLASS__, 'flush_rewrite_rules'));
99 99
 
100 100
 		} else {
101 101
 			// Frontend actions
@@ -108,34 +108,34 @@  discard block
 block discarded – undo
108 108
 	 * @access public
109 109
 	 * @return void
110 110
 	 */
111
-	public function meta_box_setup () {
111
+	public function meta_box_setup() {
112 112
 
113 113
 		// Add Meta Box for Prerequisite Lesson
114
-		add_meta_box( 'lesson-prerequisite', __( 'Lesson Prerequisite', 'woothemes-sensei' ), array( $this, 'lesson_prerequisite_meta_box_content' ), $this->token, 'side', 'default' );
114
+		add_meta_box('lesson-prerequisite', __('Lesson Prerequisite', 'woothemes-sensei'), array($this, 'lesson_prerequisite_meta_box_content'), $this->token, 'side', 'default');
115 115
 
116 116
 		// Add Meta Box for Lesson Course
117
-		add_meta_box( 'lesson-course', __( 'Lesson Course', 'woothemes-sensei' ), array( $this, 'lesson_course_meta_box_content' ), $this->token, 'side', 'default' );
117
+		add_meta_box('lesson-course', __('Lesson Course', 'woothemes-sensei'), array($this, 'lesson_course_meta_box_content'), $this->token, 'side', 'default');
118 118
 
119 119
 		// Add Meta Box for Lesson Preview
120
-		add_meta_box( 'lesson-preview', __( 'Lesson Preview', 'woothemes-sensei' ), array( $this, 'lesson_preview_meta_box_content' ), $this->token, 'side', 'default' );
120
+		add_meta_box('lesson-preview', __('Lesson Preview', 'woothemes-sensei'), array($this, 'lesson_preview_meta_box_content'), $this->token, 'side', 'default');
121 121
 
122 122
 		// Add Meta Box for Lesson Information
123
-		add_meta_box( 'lesson-info', __( 'Lesson Information', 'woothemes-sensei' ), array( $this, 'lesson_info_meta_box_content' ), $this->token, 'normal', 'default' );
123
+		add_meta_box('lesson-info', __('Lesson Information', 'woothemes-sensei'), array($this, 'lesson_info_meta_box_content'), $this->token, 'normal', 'default');
124 124
 
125 125
 		// Add Meta Box for Quiz Settings
126
-		add_meta_box( 'lesson-quiz-settings', __( 'Quiz Settings', 'woothemes-sensei' ), array( $this, 'lesson_quiz_settings_meta_box_content' ), $this->token, 'normal', 'default' );
126
+		add_meta_box('lesson-quiz-settings', __('Quiz Settings', 'woothemes-sensei'), array($this, 'lesson_quiz_settings_meta_box_content'), $this->token, 'normal', 'default');
127 127
 
128 128
 		// Add Meta Box for Lesson Quiz Questions
129
-		add_meta_box( 'lesson-quiz', __( 'Quiz Questions', 'woothemes-sensei' ), array( $this, 'lesson_quiz_meta_box_content' ), $this->token, 'normal', 'default' );
129
+		add_meta_box('lesson-quiz', __('Quiz Questions', 'woothemes-sensei'), array($this, 'lesson_quiz_meta_box_content'), $this->token, 'normal', 'default');
130 130
 
131 131
 		// Remove "Custom Settings" meta box.
132
-		remove_meta_box( 'woothemes-settings', $this->token, 'normal' );
132
+		remove_meta_box('woothemes-settings', $this->token, 'normal');
133 133
 
134 134
 		// Add JS scripts
135
-		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
135
+		add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
136 136
 
137 137
 		// Add CSS
138
-		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_styles' ) );
138
+		add_action('admin_enqueue_scripts', array($this, 'enqueue_styles'));
139 139
 
140 140
 	} // End meta_box_setup()
141 141
 
@@ -146,30 +146,30 @@  discard block
 block discarded – undo
146 146
 	 * @access public
147 147
 	 * @return void
148 148
 	 */
149
-	public function lesson_info_meta_box_content () {
149
+	public function lesson_info_meta_box_content() {
150 150
 		global $post;
151 151
 
152
-		$lesson_length = get_post_meta( $post->ID, '_lesson_length', true );
153
-		$lesson_complexity = get_post_meta( $post->ID, '_lesson_complexity', true );
152
+		$lesson_length = get_post_meta($post->ID, '_lesson_length', true);
153
+		$lesson_complexity = get_post_meta($post->ID, '_lesson_complexity', true);
154 154
 		$complexity_array = $this->lesson_complexities();
155
-		$lesson_video_embed = get_post_meta( $post->ID, '_lesson_video_embed', true );
155
+		$lesson_video_embed = get_post_meta($post->ID, '_lesson_video_embed', true);
156 156
 
157 157
 		$html = '';
158 158
 		// Lesson Length
159
-		$html .= '<p><label for="lesson_length">' . __( 'Lesson Length in minutes', 'woothemes-sensei' ) . ': </label>';
160
-		$html .= '<input type="number" id="lesson-length" name="lesson_length" class="small-text" value="' . esc_attr( $lesson_length ) . '" /></p>' . "\n";
159
+		$html .= '<p><label for="lesson_length">'.__('Lesson Length in minutes', 'woothemes-sensei').': </label>';
160
+		$html .= '<input type="number" id="lesson-length" name="lesson_length" class="small-text" value="'.esc_attr($lesson_length).'" /></p>'."\n";
161 161
 		// Lesson Complexity
162
-		$html .= '<p><label for="lesson_complexity">' . __( 'Lesson Complexity', 'woothemes-sensei' ) . ': </label>';
162
+		$html .= '<p><label for="lesson_complexity">'.__('Lesson Complexity', 'woothemes-sensei').': </label>';
163 163
 		$html .= '<select id="lesson-complexity-options" name="lesson_complexity" class="chosen_select lesson-complexity-select">';
164
-			$html .= '<option value="">' . __( 'None', 'woothemes-sensei' ) . '</option>';
165
-			foreach ($complexity_array as $key => $value){
166
-				$html .= '<option value="' . esc_attr( $key ) . '"' . selected( $key, $lesson_complexity, false ) . '>' . esc_html( $value ) . '</option>' . "\n";
164
+			$html .= '<option value="">'.__('None', 'woothemes-sensei').'</option>';
165
+			foreach ($complexity_array as $key => $value) {
166
+				$html .= '<option value="'.esc_attr($key).'"'.selected($key, $lesson_complexity, false).'>'.esc_html($value).'</option>'."\n";
167 167
 			} // End For Loop
168
-		$html .= '</select></p>' . "\n";
168
+		$html .= '</select></p>'."\n";
169 169
 
170
-		$html .= '<p><label for="lesson_video_embed">' . __( 'Video Embed Code', 'woothemes-sensei' ) . ':</label><br/>' . "\n";
171
-		$html .= '<textarea rows="5" cols="50" name="lesson_video_embed" tabindex="6" id="course-video-embed">' . $lesson_video_embed . '</textarea></p>' . "\n";
172
-		$html .= '<p>' .  __( 'Paste the embed code for your video (e.g. YouTube, Vimeo etc.) in the box above.', 'woothemes-sensei' ) . '</p>';
170
+		$html .= '<p><label for="lesson_video_embed">'.__('Video Embed Code', 'woothemes-sensei').':</label><br/>'."\n";
171
+		$html .= '<textarea rows="5" cols="50" name="lesson_video_embed" tabindex="6" id="course-video-embed">'.$lesson_video_embed.'</textarea></p>'."\n";
172
+		$html .= '<p>'.__('Paste the embed code for your video (e.g. YouTube, Vimeo etc.) in the box above.', 'woothemes-sensei').'</p>';
173 173
 
174 174
 		echo $html;
175 175
 
@@ -181,31 +181,31 @@  discard block
 block discarded – undo
181 181
 	 * @access public
182 182
 	 * @return void
183 183
 	 */
184
-	public function lesson_prerequisite_meta_box_content () {
184
+	public function lesson_prerequisite_meta_box_content() {
185 185
 		global $post;
186 186
 		// Get existing post meta
187
-		$select_lesson_prerequisite = get_post_meta( $post->ID, '_lesson_prerequisite', true );
187
+		$select_lesson_prerequisite = get_post_meta($post->ID, '_lesson_prerequisite', true);
188 188
 		// Get the Lesson Posts
189
-		$post_args = array(	'post_type' 		=> 'lesson',
189
+		$post_args = array('post_type' 		=> 'lesson',
190 190
 							'posts_per_page' 		=> -1,
191 191
 							'orderby'         	=> 'title',
192 192
     						'order'           	=> 'ASC',
193 193
     						'exclude' 			=> $post->ID,
194 194
 							'suppress_filters' 	=> 0
195 195
 							);
196
-		$posts_array = get_posts( $post_args );
196
+		$posts_array = get_posts($post_args);
197 197
 		// Build the HTML to Output
198 198
 		$html = '';
199
-		$html .= wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false  );
200
-		if ( count( $posts_array ) > 0 ) {
201
-			$html .= '<select id="lesson-prerequisite-options" name="lesson_prerequisite" class="chosen_select widefat">' . "\n";
202
-			$html .= '<option value="">' . __( 'None', 'woothemes-sensei' ) . '</option>';
203
-				foreach ($posts_array as $post_item){
204
-					$html .= '<option value="' . esc_attr( absint( $post_item->ID ) ) . '"' . selected( $post_item->ID, $select_lesson_prerequisite, false ) . '>' . esc_html( $post_item->post_title ) . '</option>' . "\n";
199
+		$html .= wp_nonce_field('sensei-save-post-meta', 'woo_'.$this->token.'_nonce', true, false);
200
+		if (count($posts_array) > 0) {
201
+			$html .= '<select id="lesson-prerequisite-options" name="lesson_prerequisite" class="chosen_select widefat">'."\n";
202
+			$html .= '<option value="">'.__('None', 'woothemes-sensei').'</option>';
203
+				foreach ($posts_array as $post_item) {
204
+					$html .= '<option value="'.esc_attr(absint($post_item->ID)).'"'.selected($post_item->ID, $select_lesson_prerequisite, false).'>'.esc_html($post_item->post_title).'</option>'."\n";
205 205
 				} // End For Loop
206
-			$html .= '</select>' . "\n";
206
+			$html .= '</select>'."\n";
207 207
 		} else {
208
-			$html .= '<p>' . esc_html( __( 'No lessons exist yet. Please add some first.', 'woothemes-sensei' ) ) . '</p>';
208
+			$html .= '<p>'.esc_html(__('No lessons exist yet. Please add some first.', 'woothemes-sensei')).'</p>';
209 209
 		} // End If Statement
210 210
 		// Output the HTML
211 211
 		echo $html;
@@ -217,20 +217,20 @@  discard block
 block discarded – undo
217 217
 	 * @access public
218 218
 	 * @return void
219 219
 	 */
220
-	public function lesson_preview_meta_box_content () {
220
+	public function lesson_preview_meta_box_content() {
221 221
 		global $post;
222 222
 		// Get existing post meta
223
-		$lesson_preview = get_post_meta( $post->ID, '_lesson_preview', true );
223
+		$lesson_preview = get_post_meta($post->ID, '_lesson_preview', true);
224 224
 		$html = '';
225
-		$html .= wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false  );
225
+		$html .= wp_nonce_field('sensei-save-post-meta', 'woo_'.$this->token.'_nonce', true, false);
226 226
 
227 227
 		$checked = '';
228
-		if ( isset( $lesson_preview ) && ( '' != $lesson_preview ) ) {
229
-	 	    $checked = checked( 'preview', $lesson_preview, false );
228
+		if (isset($lesson_preview) && ('' != $lesson_preview)) {
229
+	 	    $checked = checked('preview', $lesson_preview, false);
230 230
 	 	} // End If Statement
231 231
 
232 232
 	 	$html .= '<label for="lesson_preview">';
233
-	 	$html .= '<input type="checkbox" id="lesson_preview" name="lesson_preview" value="preview" ' . $checked . '>&nbsp;' . __( 'Allow this lesson to be viewed without purchase/login', 'woothemes-sensei' ) . '<br>';
233
+	 	$html .= '<input type="checkbox" id="lesson_preview" name="lesson_preview" value="preview" '.$checked.'>&nbsp;'.__('Allow this lesson to be viewed without purchase/login', 'woothemes-sensei').'<br>';
234 234
 
235 235
 		// Output the HTML
236 236
 		echo $html;
@@ -243,32 +243,32 @@  discard block
 block discarded – undo
243 243
 	 * @param int $post_id
244 244
 	 * @return integer $post_id
245 245
 	 */
246
-	public function meta_box_save ( $post_id ) {
246
+	public function meta_box_save($post_id) {
247 247
 
248 248
 		// Verify the nonce before proceeding.
249
-		if ( ( get_post_type( $post_id ) != $this->token ) || !isset(   $_POST[ 'woo_' . $this->token . '_nonce'] )  || ! wp_verify_nonce( $_POST[ 'woo_' . $this->token . '_nonce' ], 'sensei-save-post-meta' ) ) {
249
+		if ((get_post_type($post_id) != $this->token) || ! isset($_POST['woo_'.$this->token.'_nonce']) || ! wp_verify_nonce($_POST['woo_'.$this->token.'_nonce'], 'sensei-save-post-meta')) {
250 250
 			return $post_id;
251 251
 		} // End If Statement
252 252
 		// Get the post type object.
253
-		$post_type = get_post_type_object( get_post_type( $post_id ) );
253
+		$post_type = get_post_type_object(get_post_type($post_id));
254 254
 		// Check if the current user has permission to edit the post.
255
-		if ( !current_user_can( $post_type->cap->edit_post, $post_id ) ) {
255
+		if ( ! current_user_can($post_type->cap->edit_post, $post_id)) {
256 256
 			return $post_id;
257 257
 		} // End If Statement
258 258
 		// Check if the current post type is a page
259
-		if ( 'page' == $_POST[ 'post_type' ] ) {
260
-			if ( ! current_user_can( 'edit_page', $post_id ) ) {
259
+		if ('page' == $_POST['post_type']) {
260
+			if ( ! current_user_can('edit_page', $post_id)) {
261 261
 				return $post_id;
262 262
 			} // End If Statement
263 263
 		} else {
264
-			if ( ! current_user_can( 'edit_post', $post_id ) ) {
264
+			if ( ! current_user_can('edit_post', $post_id)) {
265 265
 				return $post_id;
266 266
 			} // End If Statement
267 267
 		} // End If Statement
268 268
 		// Save the post meta data fields
269
-		if ( isset($this->meta_fields) && is_array($this->meta_fields) ) {
270
-			foreach ( $this->meta_fields as $meta_key ) {
271
-				$this->save_post_meta( $meta_key, $post_id );
269
+		if (isset($this->meta_fields) && is_array($this->meta_fields)) {
270
+			foreach ($this->meta_fields as $meta_key) {
271
+				$this->save_post_meta($meta_key, $post_id);
272 272
 			} // End For Loop
273 273
 		} // End If Statement
274 274
 	} // End meta_box_save()
@@ -280,37 +280,37 @@  discard block
 block discarded – undo
280 280
 	 * @access public
281 281
 	 * @return integer|boolean $post_id or false
282 282
 	 */
283
-	public function quiz_update( $post_id ) {
283
+	public function quiz_update($post_id) {
284 284
 		global $post;
285 285
 		// Verify the nonce before proceeding.
286
-		if ( ( 'lesson' != get_post_type( $post_id ) )|| !isset(   $_POST[ 'woo_' . $this->token . '_nonce'] )  || ! wp_verify_nonce( $_POST[ 'woo_' . $this->token . '_nonce' ], 'sensei-save-post-meta') ) {
287
-			if ( isset($post->ID) ) {
286
+		if (('lesson' != get_post_type($post_id)) || ! isset($_POST['woo_'.$this->token.'_nonce']) || ! wp_verify_nonce($_POST['woo_'.$this->token.'_nonce'], 'sensei-save-post-meta')) {
287
+			if (isset($post->ID)) {
288 288
 				return $post->ID;
289 289
 			} else {
290 290
 				return false;
291 291
 			} // End If Statement
292 292
 		} // End If Statement
293 293
 
294
-		if( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) {
294
+		if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) {
295 295
 			return false;
296 296
 		}
297 297
 
298 298
 		// Temporarily disable the filter
299
-        remove_action( 'save_post', array( $this, 'quiz_update' ) );
299
+        remove_action('save_post', array($this, 'quiz_update'));
300 300
 		// Save the Quiz
301
-		$quiz_id = $this->lesson_quizzes( $post_id, 'any');
301
+		$quiz_id = $this->lesson_quizzes($post_id, 'any');
302 302
 
303 303
 		 // Sanitize and setup the post data
304
-		$_POST = stripslashes_deep( $_POST );
305
-		if ( isset( $_POST[ 'quiz_id' ] ) && ( 0 < absint( $_POST[ 'quiz_id' ] ) ) ) {
306
-			$quiz_id = absint( $_POST[ 'quiz_id' ] );
304
+		$_POST = stripslashes_deep($_POST);
305
+		if (isset($_POST['quiz_id']) && (0 < absint($_POST['quiz_id']))) {
306
+			$quiz_id = absint($_POST['quiz_id']);
307 307
 		} // End If Statement
308
-		$post_title = esc_html( $_POST[ 'post_title' ] );
309
-		$post_status = esc_html( $_POST[ 'post_status' ] );
308
+		$post_title = esc_html($_POST['post_title']);
309
+		$post_status = esc_html($_POST['post_status']);
310 310
 		$post_content = '';
311 311
 
312 312
 		// Setup Query Arguments
313
-		$post_type_args = array(	'post_content' => $post_content,
313
+		$post_type_args = array('post_content' => $post_content,
314 314
   		    						'post_status' => $post_status,
315 315
   		    						'post_title' => $post_title,
316 316
   		    						'post_type' => 'quiz',
@@ -320,84 +320,84 @@  discard block
 block discarded – undo
320 320
 		$settings = $this->get_quiz_settings();
321 321
 
322 322
   		// Update or Insert the Lesson Quiz
323
-		if ( 0 < $quiz_id ) {
323
+		if (0 < $quiz_id) {
324 324
 			// Update the Quiz
325
-			$post_type_args[ 'ID' ] = $quiz_id;
325
+			$post_type_args['ID'] = $quiz_id;
326 326
 		    wp_update_post($post_type_args);
327 327
 
328 328
 		    // Update the post meta data
329
-		    update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
329
+		    update_post_meta($quiz_id, '_quiz_lesson', $post_id);
330 330
 
331
-		    foreach( $settings as $field ) {
332
-		    	if( 'random_question_order' != $field['id'] ) {
333
-			    	$value = $this->get_submitted_setting_value( $field );
334
-			    	if( isset( $value ) ) {
335
-			    		update_post_meta( $quiz_id, '_' . $field['id'], $value );
331
+		    foreach ($settings as $field) {
332
+		    	if ('random_question_order' != $field['id']) {
333
+			    	$value = $this->get_submitted_setting_value($field);
334
+			    	if (isset($value)) {
335
+			    		update_post_meta($quiz_id, '_'.$field['id'], $value);
336 336
 			    	}
337 337
 			    }
338 338
 		    }
339 339
 
340 340
 		    // Set the post terms for quiz-type
341
-		    wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
341
+		    wp_set_post_terms($quiz_id, array('multiple-choice'), 'quiz-type');
342 342
 		} else {
343 343
 			// Create the Quiz
344 344
 		    $quiz_id = wp_insert_post($post_type_args);
345 345
 
346 346
 		    // Add the post meta data WP will add it if it doesn't exist
347
-            update_post_meta( $quiz_id, '_quiz_lesson', $post_id );
347
+            update_post_meta($quiz_id, '_quiz_lesson', $post_id);
348 348
 
349
-		    foreach( $settings as $field ) {
350
-		    	if( 'random_question_order' != $field['id'] ) {
349
+		    foreach ($settings as $field) {
350
+		    	if ('random_question_order' != $field['id']) {
351 351
 
352 352
                     //ignore values not posted to avoid
353 353
                     // overwriting with empty or default values
354 354
                     // when the values are posted from bulk edit or quick edit
355
-                    if( !isset( $_POST[ $field['id'] ] ) ){
355
+                    if ( ! isset($_POST[$field['id']])) {
356 356
                         continue;
357 357
                     }
358 358
 
359
-			    	$value = $this->get_submitted_setting_value( $field );
360
-			    	if( isset( $value ) ) {
361
-			    		add_post_meta( $quiz_id, '_' . $field['id'], $value );
359
+			    	$value = $this->get_submitted_setting_value($field);
360
+			    	if (isset($value)) {
361
+			    		add_post_meta($quiz_id, '_'.$field['id'], $value);
362 362
 			    	}
363 363
 			    }
364 364
 		    }
365 365
 
366 366
 		    // Set the post terms for quiz-type
367
-		    wp_set_post_terms( $quiz_id, array( 'multiple-choice' ), 'quiz-type' );
367
+		    wp_set_post_terms($quiz_id, array('multiple-choice'), 'quiz-type');
368 368
 		} // End If Statement
369 369
 
370 370
 		// Add default lesson order meta value
371
-		$course_id = get_post_meta( $post_id, '_lesson_course', true );
372
-		if( $course_id ) {
373
-			if( ! get_post_meta( $post_id, '_order_' . $course_id, true ) ) {
374
-				update_post_meta( $post_id, '_order_' . $course_id, 0 );
371
+		$course_id = get_post_meta($post_id, '_lesson_course', true);
372
+		if ($course_id) {
373
+			if ( ! get_post_meta($post_id, '_order_'.$course_id, true)) {
374
+				update_post_meta($post_id, '_order_'.$course_id, 0);
375 375
 			}
376 376
 		}
377 377
 		// Add reference back to the Quiz
378
-		update_post_meta( $post_id, '_lesson_quiz', $quiz_id );
378
+		update_post_meta($post_id, '_lesson_quiz', $quiz_id);
379 379
 		// Mark if the Lesson Quiz has questions
380
-		$quiz_questions = Sensei()->lesson->lesson_quiz_questions( $quiz_id );
381
-		if( 0 < count( $quiz_questions ) ) {
382
-			update_post_meta( $post_id, '_quiz_has_questions', '1' );
380
+		$quiz_questions = Sensei()->lesson->lesson_quiz_questions($quiz_id);
381
+		if (0 < count($quiz_questions)) {
382
+			update_post_meta($post_id, '_quiz_has_questions', '1');
383 383
 		}
384 384
 		else {
385
-			delete_post_meta( $post_id, '_quiz_has_questions' );
385
+			delete_post_meta($post_id, '_quiz_has_questions');
386 386
 		}
387 387
 
388 388
 		// Restore the previously disabled filter
389
-        add_action( 'save_post', array( $this, 'quiz_update' ) );
389
+        add_action('save_post', array($this, 'quiz_update'));
390 390
 
391 391
 	} // End post_updated()
392 392
 
393
-	public function get_submitted_setting_value( $field = false ) {
393
+	public function get_submitted_setting_value($field = false) {
394 394
 
395
-		if( ! $field ) return;
395
+		if ( ! $field) return;
396 396
 
397 397
 		$value = false;
398 398
 
399
-		if( 'quiz_grade_type' == $field['id'] ) {
400
-			if( isset( $_POST[ $field['id'] ] ) && 'on' == $_POST[ $field['id'] ] ) {
399
+		if ('quiz_grade_type' == $field['id']) {
400
+			if (isset($_POST[$field['id']]) && 'on' == $_POST[$field['id']]) {
401 401
 				$value = 'auto';
402 402
 			} else {
403 403
 				$value = 'manual';
@@ -405,8 +405,8 @@  discard block
 block discarded – undo
405 405
 			return $value;
406 406
 		}
407 407
 
408
-		if ( isset( $_POST[ $field['id'] ] ) ) {
409
-			$value = $_POST[ $field['id'] ];
408
+		if (isset($_POST[$field['id']])) {
409
+			$value = $_POST[$field['id']];
410 410
 		} else {
411 411
 			$value = $field['default'];
412 412
 		}
@@ -422,18 +422,18 @@  discard block
 block discarded – undo
422 422
 	 * @param int $post_id (default: 0)
423 423
 	 * @return int|bool meta id or saved status
424 424
 	 */
425
-	private function save_post_meta( $post_key = '', $post_id = 0 ) {
425
+	private function save_post_meta($post_key = '', $post_id = 0) {
426 426
 		// Get the meta key.
427
-		$meta_key = '_' . $post_key;
427
+		$meta_key = '_'.$post_key;
428 428
 
429 429
         //ignore fields are not posted
430 430
 
431
-        if( !isset( $_POST[ $post_key ] ) ){
431
+        if ( ! isset($_POST[$post_key])) {
432 432
 
433 433
             // except for lesson preview checkbox field
434
-            if( 'lesson_preview' == $post_key ){
434
+            if ('lesson_preview' == $post_key) {
435 435
 
436
-                $_POST[ $post_key ] = '';
436
+                $_POST[$post_key] = '';
437 437
 
438 438
             } else {
439 439
 
@@ -444,15 +444,15 @@  discard block
 block discarded – undo
444 444
         }
445 445
 
446 446
 		// Get the posted data and sanitize it for use as an HTML class.
447
-		if ( 'lesson_video_embed' == $post_key) {
448
-			$new_meta_value = esc_html( $_POST[$post_key] );
447
+		if ('lesson_video_embed' == $post_key) {
448
+			$new_meta_value = esc_html($_POST[$post_key]);
449 449
 		} else {
450
-			$new_meta_value = ( isset( $_POST[$post_key] ) ? sanitize_html_class( $_POST[$post_key] ) : '' );
450
+			$new_meta_value = (isset($_POST[$post_key]) ? sanitize_html_class($_POST[$post_key]) : '');
451 451
 		} // End If Statement
452 452
 
453 453
         // update field with the new value
454
-        if( -1 != $new_meta_value  ){
455
-            return update_post_meta( $post_id, $meta_key, $new_meta_value );
454
+        if ( -1 != $new_meta_value  ) {
455
+            return update_post_meta($post_id, $meta_key, $new_meta_value);
456 456
         }
457 457
 
458 458
 	} // End save_post_meta()
@@ -463,30 +463,30 @@  discard block
 block discarded – undo
463 463
 	 * @access public
464 464
 	 * @return void
465 465
 	 */
466
-	public function lesson_course_meta_box_content () {
466
+	public function lesson_course_meta_box_content() {
467 467
 		global $post;
468 468
 		// Setup Lesson Meta Data
469 469
 		$selected_lesson_course = 0;
470
-		if ( 0 < $post->ID ) {
471
-			$selected_lesson_course = get_post_meta( $post->ID, '_lesson_course', true );
470
+		if (0 < $post->ID) {
471
+			$selected_lesson_course = get_post_meta($post->ID, '_lesson_course', true);
472 472
 		} // End If Statement
473 473
 		// Handle preselected course
474
-		if ( isset( $_GET[ 'course_id' ] ) && ( 0 < absint( $_GET[ 'course_id' ] ) ) ) {
475
-			$selected_lesson_course = absint( $_GET[ 'course_id' ] );
474
+		if (isset($_GET['course_id']) && (0 < absint($_GET['course_id']))) {
475
+			$selected_lesson_course = absint($_GET['course_id']);
476 476
 		} // End If Statement
477 477
 		// Get the Lesson Posts
478
-		$post_args = array(	'post_type' 		=> 'course',
478
+		$post_args = array('post_type' 		=> 'course',
479 479
 							'posts_per_page' 		=> -1,
480 480
 							'orderby'         	=> 'title',
481 481
     						'order'           	=> 'ASC',
482 482
     						'post_status'      	=> 'any',
483 483
     						'suppress_filters' 	=> 0,
484 484
 							);
485
-		$posts_array = get_posts( $post_args );
485
+		$posts_array = get_posts($post_args);
486 486
 		// Buid the HTML to Output
487 487
 		$html = '';
488 488
 		// Nonce
489
-		$html .= wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false  );
489
+		$html .= wp_nonce_field('sensei-save-post-meta', 'woo_'.$this->token.'_nonce', true, false);
490 490
 
491 491
         // Select the course for the lesson
492 492
         $drop_down_args = array(
@@ -496,67 +496,67 @@  discard block
 block discarded – undo
496 496
 
497 497
         $courses = WooThemes_Sensei_Course::get_all_courses();
498 498
         $courses_options = array();
499
-        foreach( $courses as $course ){
500
-            $courses_options[ $course->ID ] = get_the_title( $course ) ;
499
+        foreach ($courses as $course) {
500
+            $courses_options[$course->ID] = get_the_title($course);
501 501
         }
502
-        $html .= Sensei_Utils::generate_drop_down( $selected_lesson_course, $courses_options, $drop_down_args );
502
+        $html .= Sensei_Utils::generate_drop_down($selected_lesson_course, $courses_options, $drop_down_args);
503 503
 
504 504
         // Course Actions Panel
505
-		if ( current_user_can( 'publish_courses' )) {
505
+		if (current_user_can('publish_courses')) {
506 506
 				$html .= '<div id="lesson-course-actions">';
507 507
 					$html .= '<p>';
508 508
 						// Add a course action link
509
-						$html .= '<a id="lesson-course-add" href="#course-add" class="lesson-add-course">+ ' . __('Add New Course', 'woothemes-sensei' ) . '</a>';
509
+						$html .= '<a id="lesson-course-add" href="#course-add" class="lesson-add-course">+ '.__('Add New Course', 'woothemes-sensei').'</a>';
510 510
 					$html .= '</p>';
511 511
 				$html .= '</div>';
512 512
 				// Add a course input fields
513 513
 				$html .= '<div id="lesson-course-details" class="hidden">';
514 514
 					$html .= '<p>';
515 515
 						// Course Title input
516
-						$html .= '<label>' . __( 'Course Title' , 'woothemes-sensei' ) . '</label> ';
516
+						$html .= '<label>'.__('Course Title', 'woothemes-sensei').'</label> ';
517 517
 	  					$html .= '<input type="text" id="course-title" name="course_title" value="" size="25" class="widefat" />';
518 518
 	  					// Course Description input
519
-	  					$html .= '<label>' . __( 'Description' , 'woothemes-sensei' ) . '</label> ';
519
+	  					$html .= '<label>'.__('Description', 'woothemes-sensei').'</label> ';
520 520
 	  					$html .= '<textarea rows="10" cols="40" id="course-content" name="course_content" value="" size="300" class="widefat"></textarea>';
521 521
 	  					// Course Prerequisite
522
-	  					$html .= '<label>' . __( 'Course Prerequisite' , 'woothemes-sensei' ) . '</label> ';
523
-	  					$html .= '<select id="course-prerequisite-options" name="course_prerequisite" class="chosen_select widefat">' . "\n";
524
-							$html .= '<option value="">' . __( 'None', 'woothemes-sensei' ) . '</option>';
525
-							foreach ($posts_array as $post_item){
526
-								$html .= '<option value="' . esc_attr( absint( $post_item->ID ) ) . '">' . esc_html( $post_item->post_title ) . '</option>' . "\n";
522
+	  					$html .= '<label>'.__('Course Prerequisite', 'woothemes-sensei').'</label> ';
523
+	  					$html .= '<select id="course-prerequisite-options" name="course_prerequisite" class="chosen_select widefat">'."\n";
524
+							$html .= '<option value="">'.__('None', 'woothemes-sensei').'</option>';
525
+							foreach ($posts_array as $post_item) {
526
+								$html .= '<option value="'.esc_attr(absint($post_item->ID)).'">'.esc_html($post_item->post_title).'</option>'."\n";
527 527
 							} // End For Loop
528
-						$html .= '</select>' . "\n";
528
+						$html .= '</select>'."\n";
529 529
 						// Course Product
530
-                        if ( Sensei_WC::is_woocommerce_active() ) {
530
+                        if (Sensei_WC::is_woocommerce_active()) {
531 531
 	  						// Get the Products
532
-							$select_course_woocommerce_product = get_post_meta( $post_item->ID, '_course_woocommerce_product', true );
532
+							$select_course_woocommerce_product = get_post_meta($post_item->ID, '_course_woocommerce_product', true);
533 533
 
534
-							$product_args = array(	'post_type' 		=> array( 'product', 'product_variation' ),
534
+							$product_args = array('post_type' 		=> array('product', 'product_variation'),
535 535
 													'posts_per_page' 		=> -1,
536 536
 													'orderby'         	=> 'title',
537 537
 	    											'order'           	=> 'DESC',
538
-	    											'post_status'		=> array( 'publish', 'private', 'draft' ),
538
+	    											'post_status'		=> array('publish', 'private', 'draft'),
539 539
 	    											'tax_query'			=> array(
540 540
 														array(
541 541
 															'taxonomy'	=> 'product_type',
542 542
 															'field'		=> 'slug',
543
-															'terms'		=> array( 'variable', 'grouped' ),
543
+															'terms'		=> array('variable', 'grouped'),
544 544
 															'operator'	=> 'NOT IN'
545 545
 														)
546 546
 													),
547 547
 	    											'suppress_filters' 	=> 0
548 548
 													);
549
-							$products_array = get_posts( $product_args );
550
-							$html .= '<label>' . __( 'WooCommerce Product' , 'woothemes-sensei' ) . '</label> ';
551
-	  						$html .= '<select id="course-woocommerce-product-options" name="course_woocommerce_product" class="chosen_select widefat">' . "\n";
552
-								$html .= '<option value="-">' . __( 'None', 'woothemes-sensei' ) . '</option>';
549
+							$products_array = get_posts($product_args);
550
+							$html .= '<label>'.__('WooCommerce Product', 'woothemes-sensei').'</label> ';
551
+	  						$html .= '<select id="course-woocommerce-product-options" name="course_woocommerce_product" class="chosen_select widefat">'."\n";
552
+								$html .= '<option value="-">'.__('None', 'woothemes-sensei').'</option>';
553 553
 								$prev_parent_id = 0;
554
-								foreach ($products_array as $products_item){
554
+								foreach ($products_array as $products_item) {
555 555
 
556
-									if ( 'product_variation' == $products_item->post_type ) {
557
-										$product_object = get_product( $products_item->ID );
558
-										$parent_id = wp_get_post_parent_id( $products_item->ID );
559
-										$product_name = ucwords( woocommerce_get_formatted_variation( $product_object->variation_data, true ) );
556
+									if ('product_variation' == $products_item->post_type) {
557
+										$product_object = get_product($products_item->ID);
558
+										$parent_id = wp_get_post_parent_id($products_item->ID);
559
+										$product_name = ucwords(woocommerce_get_formatted_variation($product_object->variation_data, true));
560 560
 									} else {
561 561
 										$parent_id = false;
562 562
 										$prev_parent_id = 0;
@@ -564,32 +564,32 @@  discard block
 block discarded – undo
564 564
 									}
565 565
 
566 566
 									// Show variations in groups
567
-									if( $parent_id && $parent_id != $prev_parent_id ) {
568
-										if( 0 != $prev_parent_id ) {
567
+									if ($parent_id && $parent_id != $prev_parent_id) {
568
+										if (0 != $prev_parent_id) {
569 569
 											$html .= '</optgroup>';
570 570
 										}
571
-										$html .= '<optgroup label="' . get_the_title( $parent_id ) . '">';
571
+										$html .= '<optgroup label="'.get_the_title($parent_id).'">';
572 572
 										$prev_parent_id = $parent_id;
573
-									} elseif( ! $parent_id && 0 == $prev_parent_id ) {
573
+									} elseif ( ! $parent_id && 0 == $prev_parent_id) {
574 574
 										$html .= '</optgroup>';
575 575
 									}
576 576
 
577
-									$html .= '<option value="' . esc_attr( absint( $products_item->ID ) ) . '">' . esc_html( $products_item->post_title ) . '</option>' . "\n";
577
+									$html .= '<option value="'.esc_attr(absint($products_item->ID)).'">'.esc_html($products_item->post_title).'</option>'."\n";
578 578
 								} // End For Loop
579
-							$html .= '</select>' . "\n";
579
+							$html .= '</select>'."\n";
580 580
 						} else {
581 581
 							// Default
582 582
 							$html .= '<input type="hidden" name="course_woocommerce_product" id="course-woocommerce-product-options" value="-" />';
583 583
 						}
584 584
 						// Course Category
585
-	  					$html .= '<label>' . __( 'Course Category' , 'woothemes-sensei' ) . '</label> ';
586
-	  					$cat_args = array( 'echo' => false, 'hierarchical' => true, 'show_option_none' => __( 'None', 'woothemes-sensei' ), 'taxonomy' => 'course-category', 'orderby' => 'name', 'id' => 'course-category-options', 'name' => 'course_category', 'class' => 'widefat' );
587
-						$html .= wp_dropdown_categories(apply_filters('widget_course_categories_dropdown_args', $cat_args)) . "\n";
585
+	  					$html .= '<label>'.__('Course Category', 'woothemes-sensei').'</label> ';
586
+	  					$cat_args = array('echo' => false, 'hierarchical' => true, 'show_option_none' => __('None', 'woothemes-sensei'), 'taxonomy' => 'course-category', 'orderby' => 'name', 'id' => 'course-category-options', 'name' => 'course_category', 'class' => 'widefat');
587
+						$html .= wp_dropdown_categories(apply_filters('widget_course_categories_dropdown_args', $cat_args))."\n";
588 588
 	  					// Save the course action button
589
-	  					$html .= '<a title="' . esc_attr( __( 'Save Course', 'woothemes-sensei' ) ) . '" href="#add-course-metadata" class="lesson_course_save button button-highlighted">' . esc_html( __( 'Add Course', 'woothemes-sensei' ) ) . '</a>';
589
+	  					$html .= '<a title="'.esc_attr(__('Save Course', 'woothemes-sensei')).'" href="#add-course-metadata" class="lesson_course_save button button-highlighted">'.esc_html(__('Add Course', 'woothemes-sensei')).'</a>';
590 590
 						$html .= '&nbsp;&nbsp;&nbsp;';
591 591
 						// Cancel action link
592
-						$html .= '<a href="#course-add-cancel" class="lesson_course_cancel">' . __( 'Cancel', 'woothemes-sensei' ) . '</a>';
592
+						$html .= '<a href="#course-add-cancel" class="lesson_course_cancel">'.__('Cancel', 'woothemes-sensei').'</a>';
593 593
 					$html .= '</p>';
594 594
 				$html .= '</div>';
595 595
 			} // End If Statement
@@ -598,20 +598,20 @@  discard block
 block discarded – undo
598 598
 		echo $html;
599 599
 	} // End lesson_course_meta_box_content()
600 600
 
601
-	public function quiz_panel( $quiz_id = 0 ) {
601
+	public function quiz_panel($quiz_id = 0) {
602 602
 
603
-		$html = wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce', true, false  );
603
+		$html = wp_nonce_field('sensei-save-post-meta', 'woo_'.$this->token.'_nonce', true, false);
604 604
 		$html .= '<div id="add-quiz-main">';
605
-			if ( 0 == $quiz_id ) {
605
+			if (0 == $quiz_id) {
606 606
 				$html .= '<p>';
607 607
 					// Default message and Add a Quiz button
608
-					$html .= esc_html( __( 'Once you have saved your lesson you will be able to add questions.', 'woothemes-sensei' ) );
608
+					$html .= esc_html(__('Once you have saved your lesson you will be able to add questions.', 'woothemes-sensei'));
609 609
 				$html .= '</p>';
610 610
 			}
611 611
 
612 612
 			// Quiz Panel CSS Class
613 613
 			$quiz_class = '';
614
-			if ( 0 == $quiz_id ) {
614
+			if (0 == $quiz_id) {
615 615
 				$quiz_class = ' class="hidden"';
616 616
 			} // End If Statement
617 617
 			// Build the HTML to Output
@@ -619,15 +619,15 @@  discard block
 block discarded – undo
619 619
 
620 620
 			// Setup Questions Query
621 621
 			$questions = array();
622
-			if ( 0 < $quiz_id ) {
623
-				$questions = $this->lesson_quiz_questions( $quiz_id );
622
+			if (0 < $quiz_id) {
623
+				$questions = $this->lesson_quiz_questions($quiz_id);
624 624
 			} // End If Statement
625 625
 
626 626
 			$question_count = 0;
627
-			foreach( $questions as $question ) {
627
+			foreach ($questions as $question) {
628 628
 
629
-				if( $question->post_type == 'multiple_question' ) {
630
-					$question_number = get_post_meta( $question->ID, 'number', true );
629
+				if ($question->post_type == 'multiple_question') {
630
+					$question_number = get_post_meta($question->ID, 'number', true);
631 631
 					$question_count += $question_number;
632 632
 				} else {
633 633
 					++$question_count;
@@ -636,68 +636,68 @@  discard block
 block discarded – undo
636 636
 			}
637 637
 
638 638
 			// Inner DIV
639
-			$html .= '<div id="add-quiz-metadata"' . $quiz_class . '>';
639
+			$html .= '<div id="add-quiz-metadata"'.$quiz_class.'>';
640 640
 
641 641
 				// Quiz ID
642
-				$html .= '<input type="hidden" name="quiz_id" id="quiz_id" value="' . esc_attr( $quiz_id ) . '" />';
642
+				$html .= '<input type="hidden" name="quiz_id" id="quiz_id" value="'.esc_attr($quiz_id).'" />';
643 643
 
644 644
 				// Default Message
645
-				if ( 0 == $quiz_id ) {
645
+				if (0 == $quiz_id) {
646 646
 					$html .= '<p class="save-note">';
647
-						$html .= esc_html( __( 'Please save your lesson in order to add questions to your quiz.', 'woothemes-sensei' ) );
647
+						$html .= esc_html(__('Please save your lesson in order to add questions to your quiz.', 'woothemes-sensei'));
648 648
 					$html .= '</p>';
649 649
 				} // End If Statement
650 650
 
651 651
 			$html .= '</div>';
652 652
 
653 653
 			// Question Container DIV
654
-			$html .= '<div id="add-question-main"' . $quiz_class . '>';
654
+			$html .= '<div id="add-question-main"'.$quiz_class.'>';
655 655
 				// Inner DIV
656 656
 				$html .= '<div id="add-question-metadata">';
657 657
 
658 658
 					// Count of questions
659
-					$html .= '<input type="hidden" name="question_counter" id="question_counter" value="' . esc_attr( $question_count ) . '" />';
659
+					$html .= '<input type="hidden" name="question_counter" id="question_counter" value="'.esc_attr($question_count).'" />';
660 660
 					// Table headers
661 661
 					$html .= '<table class="widefat" id="sortable-questions">
662 662
 								<thead>
663 663
 								    <tr>
664 664
 								        <th class="question-count-column">#</th>
665
-								        <th>' . __( 'Question', 'woothemes-sensei' ) . '</th>
666
-								        <th style="width:45px;">' . __( 'Grade', 'woothemes-sensei' ) . '</th>
667
-								        <th style="width:125px;">' . __( 'Type', 'woothemes-sensei' ) . '</th>
668
-								        <th style="width:125px;">' . __( 'Action', 'woothemes-sensei' ) . '</th>
665
+								        <th>' . __('Question', 'woothemes-sensei').'</th>
666
+								        <th style="width:45px;">' . __('Grade', 'woothemes-sensei').'</th>
667
+								        <th style="width:125px;">' . __('Type', 'woothemes-sensei').'</th>
668
+								        <th style="width:125px;">' . __('Action', 'woothemes-sensei').'</th>
669 669
 								    </tr>
670 670
 								</thead>
671 671
 								<tfoot>
672 672
 								    <tr>
673 673
 									    <th class="question-count-column">#</th>
674
-									    <th>' . __( 'Question', 'woothemes-sensei' ) . '</th>
675
-									    <th>' . __( 'Grade', 'woothemes-sensei' ) . '</th>
676
-									    <th>' . __( 'Type', 'woothemes-sensei' ) . '</th>
677
-									    <th>' . __( 'Action', 'woothemes-sensei' ) . '</th>
674
+									    <th>' . __('Question', 'woothemes-sensei').'</th>
675
+									    <th>' . __('Grade', 'woothemes-sensei').'</th>
676
+									    <th>' . __('Type', 'woothemes-sensei').'</th>
677
+									    <th>' . __('Action', 'woothemes-sensei').'</th>
678 678
 								    </tr>
679 679
 								</tfoot>';
680 680
 
681 681
 					$message_class = '';
682
-					if ( 0 < $question_count ) { $message_class = 'hidden'; }
682
+					if (0 < $question_count) { $message_class = 'hidden'; }
683 683
 
684
-					$html .= '<tbody id="no-questions-message" class="' . esc_attr( $message_class ) . '">';
684
+					$html .= '<tbody id="no-questions-message" class="'.esc_attr($message_class).'">';
685 685
 						$html .= '<tr>';
686
-							$html .= '<td colspan="5">' . __( 'There are no Questions for this Quiz yet. Please add some below.', 'woothemes-sensei' ) . '</td>';
686
+							$html .= '<td colspan="5">'.__('There are no Questions for this Quiz yet. Please add some below.', 'woothemes-sensei').'</td>';
687 687
 						$html .= '</tr>';
688 688
 					$html .= '</tbody>';
689 689
 
690
-					if( 0 < $question_count ) {
691
-						$html .= $this->quiz_panel_questions( $questions );
690
+					if (0 < $question_count) {
691
+						$html .= $this->quiz_panel_questions($questions);
692 692
 					}
693 693
 
694 694
 					$html .= '</table>';
695 695
 
696
-					if( ! isset( $this->question_order ) ) {
696
+					if ( ! isset($this->question_order)) {
697 697
 						$this->question_order = '';
698 698
 					}
699 699
 
700
-					$html .= '<input type="hidden" id="question-order" name="question-order" value="' . $this->question_order . '" />';
700
+					$html .= '<input type="hidden" id="question-order" name="question-order" value="'.$this->question_order.'" />';
701 701
 
702 702
 				$html .= '</div>';
703 703
 
@@ -716,47 +716,47 @@  discard block
 block discarded – undo
716 716
 
717 717
 	}
718 718
 
719
-	public function quiz_panel_questions( $questions = array() ) {
719
+	public function quiz_panel_questions($questions = array()) {
720 720
 		global $quiz_questions;
721 721
 
722 722
 		$quiz_questions = $questions;
723 723
 
724 724
 		$html = '';
725 725
 
726
-		if( count( $questions ) > 0 ) {
726
+		if (count($questions) > 0) {
727 727
 
728 728
 			$question_class = '';
729 729
 			$question_counter = 1;
730 730
 
731
-			foreach ( $questions as $question ) {
731
+			foreach ($questions as $question) {
732 732
 
733 733
 				$question_id = $question->ID;
734 734
 
735
-				$question_type = Sensei()->question->get_question_type( $question_id );
735
+				$question_type = Sensei()->question->get_question_type($question_id);
736 736
 
737 737
 				$multiple_data = array();
738 738
 				$question_increment = 1;
739
-				if( 'multiple_question' == $question->post_type ) {
739
+				if ('multiple_question' == $question->post_type) {
740 740
 					$question_type = 'category';
741 741
 
742
-					$question_category = get_post_meta( $question->ID, 'category', true );
743
-					$question_cat = get_term( $question_category, 'question-category' );
742
+					$question_category = get_post_meta($question->ID, 'category', true);
743
+					$question_cat = get_term($question_category, 'question-category');
744 744
 
745
-					$question_number = get_post_meta( $question->ID, 'number', true );
745
+					$question_number = get_post_meta($question->ID, 'number', true);
746 746
 					$question_increment = $question_number;
747 747
 
748
-					$multiple_data = array( $question_cat->name, $question_number );
748
+					$multiple_data = array($question_cat->name, $question_number);
749 749
 				}
750 750
 
751
-				if( ! $question_type ) {
751
+				if ( ! $question_type) {
752 752
 					$question_type = 'multiple-choice';
753 753
 				}
754 754
 
755 755
 				// Row with question and actions
756
-				$html .= $this->quiz_panel_question( $question_type, $question_counter, $question_id, 'quiz', $multiple_data );
756
+				$html .= $this->quiz_panel_question($question_type, $question_counter, $question_id, 'quiz', $multiple_data);
757 757
 				$question_counter += $question_increment;
758 758
 
759
-				if( isset( $this->question_order ) && strlen( $this->question_order ) > 0 ) { $this->question_order .= ','; }
759
+				if (isset($this->question_order) && strlen($this->question_order) > 0) { $this->question_order .= ','; }
760 760
 				$this->question_order .= $question_id;
761 761
 			} // End For Loop
762 762
 		}
@@ -765,161 +765,161 @@  discard block
 block discarded – undo
765 765
 
766 766
 	}
767 767
 
768
-	public function quiz_panel_question( $question_type = '', $question_counter = 0, $question_id = 0, $context = 'quiz', $multiple_data = array() ) {
769
-		global $row_counter,  $quiz_questions;
768
+	public function quiz_panel_question($question_type = '', $question_counter = 0, $question_id = 0, $context = 'quiz', $multiple_data = array()) {
769
+		global $row_counter, $quiz_questions;
770 770
 
771 771
 		$html = '';
772 772
 
773 773
 		$question_class = '';
774
-		if( 'quiz' == $context ) {
775
-			if( ! $row_counter || ! isset( $row_counter ) ) {
774
+		if ('quiz' == $context) {
775
+			if ( ! $row_counter || ! isset($row_counter)) {
776 776
 				$row_counter = 1;
777 777
 			}
778
-			if( $row_counter % 2 ) { $question_class = 'alternate'; }
778
+			if ($row_counter % 2) { $question_class = 'alternate'; }
779 779
 			++$row_counter;
780 780
 		}
781 781
 
782
-		if( $question_id ) {
782
+		if ($question_id) {
783 783
 
784
-			if( $question_type != 'category' ) {
784
+			if ($question_type != 'category') {
785 785
 
786
-				$question_grade = Sensei()->question->get_question_grade( $question_id );
786
+				$question_grade = Sensei()->question->get_question_grade($question_id);
787 787
 
788
-				$question_media = get_post_meta( $question_id, '_question_media', true );
788
+				$question_media = get_post_meta($question_id, '_question_media', true);
789 789
 				$question_media_type = $question_media_thumb = $question_media_link = $question_media_title = '';
790 790
 				$question_media_thumb_class = $question_media_link_class = $question_media_delete_class = 'hidden';
791
-				$question_media_add_button = __( 'Add file', 'woothemes-sensei' );
792
-				if( 0 < intval( $question_media ) ) {
793
-					$mimetype = get_post_mime_type( $question_media );
794
-					if( $mimetype ) {
795
-						$mimetype_array = explode( '/', $mimetype);
796
-						if( isset( $mimetype_array[0] ) && $mimetype_array[0] ) {
791
+				$question_media_add_button = __('Add file', 'woothemes-sensei');
792
+				if (0 < intval($question_media)) {
793
+					$mimetype = get_post_mime_type($question_media);
794
+					if ($mimetype) {
795
+						$mimetype_array = explode('/', $mimetype);
796
+						if (isset($mimetype_array[0]) && $mimetype_array[0]) {
797 797
 							$question_media_delete_class = '';
798 798
 							$question_media_type = $mimetype_array[0];
799
-							if( 'image' == $question_media_type ) {
800
-								$question_media_thumb = wp_get_attachment_thumb_url( $question_media );
801
-								if( $question_media_thumb ) {
799
+							if ('image' == $question_media_type) {
800
+								$question_media_thumb = wp_get_attachment_thumb_url($question_media);
801
+								if ($question_media_thumb) {
802 802
 									$question_media_thumb_class = '';
803 803
 								}
804 804
 							}
805
-							$question_media_url = wp_get_attachment_url( $question_media );
806
-							if( $question_media_url ) {
807
-								$attachment = get_post( $question_media );
805
+							$question_media_url = wp_get_attachment_url($question_media);
806
+							if ($question_media_url) {
807
+								$attachment = get_post($question_media);
808 808
 								$question_media_title = $attachment->post_title;
809 809
 
810
-								if( ! $question_media_title ) {
811
-									$question_media_filename = basename( $question_media_url );
810
+								if ( ! $question_media_title) {
811
+									$question_media_filename = basename($question_media_url);
812 812
 									$question_media_title = $question_media_filename;
813 813
 								}
814
-								$question_media_link = '<a class="' . $question_media_type . '" href="' . esc_url( $question_media_url ) . '" target="_blank">' . $question_media_title . '</a>';
814
+								$question_media_link = '<a class="'.$question_media_type.'" href="'.esc_url($question_media_url).'" target="_blank">'.$question_media_title.'</a>';
815 815
 								$question_media_link_class = '';
816 816
 							}
817 817
 
818
-							$question_media_add_button = __( 'Change file', 'woothemes-sensei' );
818
+							$question_media_add_button = __('Change file', 'woothemes-sensei');
819 819
 						}
820 820
 					}
821 821
 				}
822 822
 
823
-				$random_order = get_post_meta( $question_id, '_random_order', true );
824
-				if( ! $random_order ) {
823
+				$random_order = get_post_meta($question_id, '_random_order', true);
824
+				if ( ! $random_order) {
825 825
 					$random_order = 'yes';
826 826
 				}
827 827
 
828
-				if( ! $question_type ) { $question_type = 'multiple-choice'; }
828
+				if ( ! $question_type) { $question_type = 'multiple-choice'; }
829 829
 			}
830 830
 
831
-			$html .= '<tbody class="' . $question_class . '">';
831
+			$html .= '<tbody class="'.$question_class.'">';
832 832
 
833
-				if( 'quiz' == $context ) {
833
+				if ('quiz' == $context) {
834 834
 					$html .= '<tr>';
835
-						if( $question_type != 'category' ) {
836
-							$question = get_post( $question_id );
837
-							$html .= '<td class="table-count question-number question-count-column"><span class="number">' . $question_counter . '</span></td>';
838
-							$html .= '<td>' . esc_html( $question->post_title ) . '</td>';
839
-							$html .= '<td class="question-grade-column">' . esc_html( $question_grade ) . '</td>';
840
-							$question_types_filtered = ucwords( str_replace( array( '-', 'boolean' ), array( ' ', __( 'True/False', 'woothemes-sensei' ) ), $question_type ) );
841
-							$html .= '<td>' . esc_html( $question_types_filtered ) . '</td>';
842
-							$html .= '<td><a title="' . esc_attr( __( 'Edit Question', 'woothemes-sensei' ) ) . '" href="#question_' . $question_counter .'" class="question_table_edit">' . esc_html( __( 'Edit', 'woothemes-sensei' ) ) . '</a> <a title="' . esc_attr( __( 'Remove Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_table_delete">' . esc_html( __( 'Remove', 'woothemes-sensei' ) ) . '</a></td>';
835
+						if ($question_type != 'category') {
836
+							$question = get_post($question_id);
837
+							$html .= '<td class="table-count question-number question-count-column"><span class="number">'.$question_counter.'</span></td>';
838
+							$html .= '<td>'.esc_html($question->post_title).'</td>';
839
+							$html .= '<td class="question-grade-column">'.esc_html($question_grade).'</td>';
840
+							$question_types_filtered = ucwords(str_replace(array('-', 'boolean'), array(' ', __('True/False', 'woothemes-sensei')), $question_type));
841
+							$html .= '<td>'.esc_html($question_types_filtered).'</td>';
842
+							$html .= '<td><a title="'.esc_attr(__('Edit Question', 'woothemes-sensei')).'" href="#question_'.$question_counter.'" class="question_table_edit">'.esc_html(__('Edit', 'woothemes-sensei')).'</a> <a title="'.esc_attr(__('Remove Question', 'woothemes-sensei')).'" href="#add-question-metadata" class="question_table_delete">'.esc_html(__('Remove', 'woothemes-sensei')).'</a></td>';
843 843
 
844 844
 						} else {
845 845
 
846
-							$end_number = intval( $question_counter ) + intval( $multiple_data[1] ) - 1;
847
-							if( $question_counter == $end_number ) {
846
+							$end_number = intval($question_counter) + intval($multiple_data[1]) - 1;
847
+							if ($question_counter == $end_number) {
848 848
 								$row_numbers = $question_counter;
849 849
 							} else {
850
-								$row_numbers = $question_counter . ' - ' . $end_number;
850
+								$row_numbers = $question_counter.' - '.$end_number;
851 851
 							}
852
-							$row_title = sprintf( __( 'Selected from \'%1$s\' ', 'woothemes-sensei' ), $multiple_data[0] );
852
+							$row_title = sprintf(__('Selected from \'%1$s\' ', 'woothemes-sensei'), $multiple_data[0]);
853 853
 
854
-							$html .= '<td class="table-count question-number question-count-column"><span class="number hidden">' . $question_counter . '</span><span class="hidden total-number">' . $multiple_data[1] . '</span><span class="row-numbers">' . esc_html( $row_numbers ) . '</span></td>';
855
-							$html .= '<td>' . esc_html( $row_title ) . '</td>';
854
+							$html .= '<td class="table-count question-number question-count-column"><span class="number hidden">'.$question_counter.'</span><span class="hidden total-number">'.$multiple_data[1].'</span><span class="row-numbers">'.esc_html($row_numbers).'</span></td>';
855
+							$html .= '<td>'.esc_html($row_title).'</td>';
856 856
 							$html .= '<td class="question-grade-column"></td>';
857
-							$html .= '<td><input type="hidden" name="question_id" class="row_question_id" id="question_' . $question_counter . '_id" value="' . $question_id . '" /></td>';
858
-							$html .= '<td><a title="' . esc_attr( __( 'Edit Question', 'woothemes-sensei' ) ) . '" href="#question_' . $question_counter .'" class="question_table_edit" style="visibility:hidden;">' . esc_html( __( 'Edit', 'woothemes-sensei' ) ) . '</a> <a title="' . esc_attr( __( 'Remove Question(s)', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_multiple_delete" rel="' . $question_id . '">' . esc_html( __( 'Remove', 'woothemes-sensei' ) ) . '</a></td>';
857
+							$html .= '<td><input type="hidden" name="question_id" class="row_question_id" id="question_'.$question_counter.'_id" value="'.$question_id.'" /></td>';
858
+							$html .= '<td><a title="'.esc_attr(__('Edit Question', 'woothemes-sensei')).'" href="#question_'.$question_counter.'" class="question_table_edit" style="visibility:hidden;">'.esc_html(__('Edit', 'woothemes-sensei')).'</a> <a title="'.esc_attr(__('Remove Question(s)', 'woothemes-sensei')).'" href="#add-question-metadata" class="question_multiple_delete" rel="'.$question_id.'">'.esc_html(__('Remove', 'woothemes-sensei')).'</a></td>';
859 859
 
860 860
 						}
861 861
 					$html .= '</tr>';
862 862
 				}
863 863
 
864
-				if( $question_type != 'category' ) {
864
+				if ($question_type != 'category') {
865 865
 
866 866
 					$edit_class = '';
867
-					if( 'quiz' == $context ) {
867
+					if ('quiz' == $context) {
868 868
 						$edit_class = 'hidden';
869 869
 					}
870 870
 
871
-					$question = get_post( $question_id );
872
-					$html .= '<tr class="question-quick-edit ' . esc_attr( $edit_class ) . '">';
871
+					$question = get_post($question_id);
872
+					$html .= '<tr class="question-quick-edit '.esc_attr($edit_class).'">';
873 873
 						$html .= '<td colspan="5">';
874
-							$html .= '<span class="hidden question_original_counter">' . $question_counter . '</span>';
874
+							$html .= '<span class="hidden question_original_counter">'.$question_counter.'</span>';
875 875
 					    	$html .= '<div class="question_required_fields">';
876 876
 
877 877
 						    	// Question title
878 878
 						    	$html .= '<div>';
879
-							    	$html .= '<label for="question_' . $question_counter . '">' . __( 'Question:', 'woothemes-sensei' ) . '</label> ';
880
-							    	$html .= '<input type="text" id="question_' . $question_counter . '" name="question" value="' . esc_attr( htmlspecialchars( $question->post_title ) ) . '" size="25" class="widefat" />';
879
+							    	$html .= '<label for="question_'.$question_counter.'">'.__('Question:', 'woothemes-sensei').'</label> ';
880
+							    	$html .= '<input type="text" id="question_'.$question_counter.'" name="question" value="'.esc_attr(htmlspecialchars($question->post_title)).'" size="25" class="widefat" />';
881 881
 						    	$html .= '</div>';
882 882
 
883 883
 						    	// Question description
884 884
 						    	$html .= '<div>';
885
-							    	$html .= '<label for="question_' . $question_counter . '_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> ';
885
+							    	$html .= '<label for="question_'.$question_counter.'_desc">'.__('Question Description (optional):', 'woothemes-sensei').'</label> ';
886 886
 						    	$html .= '</div>';
887
-							    	$html .= '<textarea id="question_' . $question_counter . '_desc" name="question_description" class="widefat" rows="4">' . esc_textarea( $question->post_content ) . '</textarea>';
887
+							    	$html .= '<textarea id="question_'.$question_counter.'_desc" name="question_description" class="widefat" rows="4">'.esc_textarea($question->post_content).'</textarea>';
888 888
 
889 889
 						    	// Question grade
890 890
 						    	$html .= '<div>';
891
-							    	$html .= '<label for="question_' . $question_counter . '_grade">' . __( 'Question grade:', 'woothemes-sensei' ) . '</label> ';
892
-							    	$html .= '<input type="number" id="question_' . $question_counter . '_grade" class="question_grade small-text" name="question_grade" min="0" value="' . $question_grade . '" />';
891
+							    	$html .= '<label for="question_'.$question_counter.'_grade">'.__('Question grade:', 'woothemes-sensei').'</label> ';
892
+							    	$html .= '<input type="number" id="question_'.$question_counter.'_grade" class="question_grade small-text" name="question_grade" min="0" value="'.$question_grade.'" />';
893 893
 						    	$html .= '</div>';
894 894
 
895 895
 						    	// Random order
896
-						    	if( $question_type == 'multiple-choice' ) {
896
+						    	if ($question_type == 'multiple-choice') {
897 897
 						    		$html .= '<div>';
898
-						    			$html .= '<label for="' . $question_counter . '_random_order"><input type="checkbox" name="random_order" class="random_order" id="' . $question_counter . '_random_order" value="yes" ' . checked( $random_order, 'yes', false ) . ' /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>';
898
+						    			$html .= '<label for="'.$question_counter.'_random_order"><input type="checkbox" name="random_order" class="random_order" id="'.$question_counter.'_random_order" value="yes" '.checked($random_order, 'yes', false).' /> '.__('Randomise answer order', 'woothemes-sensei').'</label>';
899 899
 						    		$html .= '</div>';
900 900
 						    	}
901 901
 
902 902
 						    	// Question media
903 903
 						    	$html .= '<div>';
904
-							    	$html .= '<label for="question_' . $question_counter . '_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
905
-							    	$html .= '<button id="question_' . $question_counter . '_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . $question_media_add_button . '</button>';
906
-							    	$html .= '<button id="question_' . $question_counter . '_media_button_delete" class="delete_media_file_button button-secondary ' . $question_media_delete_class . '">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
907
-							    	$html .= '<span id="question_' . $question_counter . '_media_link" class="question_media_link ' . $question_media_link_class . '">' . $question_media_link . '</span>';
908
-							    	$html .= '<br/><img id="question_' . $question_counter . '_media_preview" class="question_media_preview ' . $question_media_thumb_class . '" src="' . $question_media_thumb . '" /><br/>';
909
-							    	$html .= '<input type="hidden" id="question_' . $question_counter . '_media" class="question_media" name="question_media" value="' . $question_media . '" />';
904
+							    	$html .= '<label for="question_'.$question_counter.'_media_button">'.__('Question media:', 'woothemes-sensei').'</label><br/>';
905
+							    	$html .= '<button id="question_'.$question_counter.'_media_button" class="upload_media_file_button button-secondary" data-uploader_title="'.__('Add file to question', 'woothemes-sensei').'" data-uploader_button_text="'.__('Add to question', 'woothemes-sensei').'">'.$question_media_add_button.'</button>';
906
+							    	$html .= '<button id="question_'.$question_counter.'_media_button_delete" class="delete_media_file_button button-secondary '.$question_media_delete_class.'">'.__('Delete file', 'woothemes-sensei').'</button><br/>';
907
+							    	$html .= '<span id="question_'.$question_counter.'_media_link" class="question_media_link '.$question_media_link_class.'">'.$question_media_link.'</span>';
908
+							    	$html .= '<br/><img id="question_'.$question_counter.'_media_preview" class="question_media_preview '.$question_media_thumb_class.'" src="'.$question_media_thumb.'" /><br/>';
909
+							    	$html .= '<input type="hidden" id="question_'.$question_counter.'_media" class="question_media" name="question_media" value="'.$question_media.'" />';
910 910
 						    	$html .= '</div>';
911 911
 
912 912
 						    $html .= '</div>';
913 913
 
914
-						    $html .= $this->quiz_panel_question_field( $question_type, $question_id, $question_counter );
914
+						    $html .= $this->quiz_panel_question_field($question_type, $question_id, $question_counter);
915 915
 
916
-						    $html .= '<input type="hidden" id="question_' . $question_counter . '_question_type" class="question_type" name="question_type" value="' . $question_type . '" />';
917
-							$html .= '<input type="hidden" name="question_id" class="row_question_id" id="question_' . $question_counter . '_id" value="' . $question_id . '" />';
916
+						    $html .= '<input type="hidden" id="question_'.$question_counter.'_question_type" class="question_type" name="question_type" value="'.$question_type.'" />';
917
+							$html .= '<input type="hidden" name="question_id" class="row_question_id" id="question_'.$question_counter.'_id" value="'.$question_id.'" />';
918 918
 
919
-							if( 'quiz' == $context ) {
919
+							if ('quiz' == $context) {
920 920
 					    		$html .= '<div class="update-question">';
921
-						    		$html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="' . esc_attr( __( 'Cancel', 'woothemes-sensei' ) ) . '">' . __( 'Cancel', 'woothemes-sensei' ) . '</a> ';
922
-						    		$html .= '<a title="' . esc_attr( __( 'Update Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="question_table_save button button-highlighted">' . esc_html( __( 'Update', 'woothemes-sensei' ) ) . '</a>';
921
+						    		$html .= '<a href="#question-edit-cancel" class="lesson_question_cancel" title="'.esc_attr(__('Cancel', 'woothemes-sensei')).'">'.__('Cancel', 'woothemes-sensei').'</a> ';
922
+						    		$html .= '<a title="'.esc_attr(__('Update Question', 'woothemes-sensei')).'" href="#add-question-metadata" class="question_table_save button button-highlighted">'.esc_html(__('Update', 'woothemes-sensei')).'</a>';
923 923
 					    		$html .= '</div>';
924 924
 					    	}
925 925
 
@@ -934,79 +934,79 @@  discard block
 block discarded – undo
934 934
 		return $html;
935 935
 	}
936 936
 
937
-	public function quiz_panel_add( $context = 'quiz' ) {
937
+	public function quiz_panel_add($context = 'quiz') {
938 938
 
939 939
 
940 940
 		$html = '<div id="add-new-question">';
941 941
 
942 942
 			$question_types = Sensei()->question->question_types();
943 943
 
944
-			$question_cats = get_terms( 'question-category', array( 'hide_empty' => false ) );
944
+			$question_cats = get_terms('question-category', array('hide_empty' => false));
945 945
 
946
-			if( 'quiz' == $context ) {
946
+			if ('quiz' == $context) {
947 947
 	    		$html .= '<h2 class="nav-tab-wrapper add-question-tabs">';
948
-	    			$html .= '<a id="tab-new" class="nav-tab nav-tab-active">' . __( 'New Question'  , 'woothemes-sensei' ) . '</a>';
949
-	    			$html .= '<a id="tab-existing" class="nav-tab">' . __( 'Existing Questions'  , 'woothemes-sensei' ) . '</a>';
950
-                    if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats )  && ! Sensei()->teacher->is_admin_teacher() ) {
951
-	    				$html .= '<a id="tab-multiple" class="nav-tab">' . __( 'Category Questions'  , 'woothemes-sensei' ) . '</a>';
948
+	    			$html .= '<a id="tab-new" class="nav-tab nav-tab-active">'.__('New Question', 'woothemes-sensei').'</a>';
949
+	    			$html .= '<a id="tab-existing" class="nav-tab">'.__('Existing Questions', 'woothemes-sensei').'</a>';
950
+                    if ( ! empty($question_cats) && ! is_wp_error($question_cats) && ! Sensei()->teacher->is_admin_teacher()) {
951
+	    				$html .= '<a id="tab-multiple" class="nav-tab">'.__('Category Questions', 'woothemes-sensei').'</a>';
952 952
 	    			}
953 953
 	    		$html .= '</h2>';
954 954
 	    	}
955 955
 
956 956
 	    	$html .= '<div class="tab-content" id="tab-new-content">';
957 957
 
958
-	    		if( 'quiz' == $context ) {
959
-	    			$html .= '<p><em>' . sprintf( __( 'Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>';
958
+	    		if ('quiz' == $context) {
959
+	    			$html .= '<p><em>'.sprintf(__('Add a new question to this quiz - your question will also be added to the %1$squestion bank%2$s.', 'woothemes-sensei'), '<a href="'.admin_url('edit.php?post_type=question').'">', '</a>').'</em></p>';
960 960
 	    		}
961 961
 
962 962
 				$html .= '<div class="question">';
963 963
 					$html .= '<div class="question_required_fields">';
964 964
 
965 965
 						// Question title
966
-						$html .= '<p><label>' . __( 'Question:'  , 'woothemes-sensei' ) . '</label> ';
966
+						$html .= '<p><label>'.__('Question:', 'woothemes-sensei').'</label> ';
967 967
 	  					$html .= '<input type="text" id="add_question" name="question" value="" size="25" class="widefat" /></p>';
968 968
 
969 969
 						// Question description
970 970
 						$html .= '<p>';
971
-							$html .= '<label for="question_desc">' . __( 'Question Description (optional):', 'woothemes-sensei' ) . '</label> ';
971
+							$html .= '<label for="question_desc">'.__('Question Description (optional):', 'woothemes-sensei').'</label> ';
972 972
 						$html .= '</p>';
973 973
 						$html .= '<textarea id="question_desc" name="question_description" class="widefat" rows="4"></textarea>';
974 974
 
975 975
 	  					// Question type
976
-						$html .= '<p><label>' . __( 'Question Type:' , 'woothemes-sensei' ) . '</label> ';
977
-						$html .= '<select id="add-question-type-options" name="question_type" class="chosen_select widefat question-type-select">' . "\n";
978
-							foreach ( $question_types as $type => $label ) {
979
-								$html .= '<option value="' . esc_attr( $type ) . '">' . esc_html( $label ) . '</option>' . "\n";
976
+						$html .= '<p><label>'.__('Question Type:', 'woothemes-sensei').'</label> ';
977
+						$html .= '<select id="add-question-type-options" name="question_type" class="chosen_select widefat question-type-select">'."\n";
978
+							foreach ($question_types as $type => $label) {
979
+								$html .= '<option value="'.esc_attr($type).'">'.esc_html($label).'</option>'."\n";
980 980
 							} // End For Loop
981
-						$html .= '</select></p>' . "\n";
981
+						$html .= '</select></p>'."\n";
982 982
 
983 983
 						// Question category
984
-						if( 'quiz' == $context ) {
985
-							if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) {
986
-								$html .= '<p><label>' . __( 'Question Category:' , 'woothemes-sensei' ) . '</label> ';
987
-								$html .= '<select id="add-question-category-options" name="question_category" class="chosen_select widefat question-category-select">' . "\n";
988
-								$html .= '<option value="">' . __( 'None', 'woothemes-sensei' ) . '</option>' . "\n";
989
-								foreach( $question_cats as $cat ) {
990
-									$html .= '<option value="' . esc_attr( $cat->term_id ) . '">' . esc_html( $cat->name ) . '</option>';
984
+						if ('quiz' == $context) {
985
+							if ( ! empty($question_cats) && ! is_wp_error($question_cats)) {
986
+								$html .= '<p><label>'.__('Question Category:', 'woothemes-sensei').'</label> ';
987
+								$html .= '<select id="add-question-category-options" name="question_category" class="chosen_select widefat question-category-select">'."\n";
988
+								$html .= '<option value="">'.__('None', 'woothemes-sensei').'</option>'."\n";
989
+								foreach ($question_cats as $cat) {
990
+									$html .= '<option value="'.esc_attr($cat->term_id).'">'.esc_html($cat->name).'</option>';
991 991
 								} // End For Loop
992
-								$html .= '</select></p>' . "\n";
992
+								$html .= '</select></p>'."\n";
993 993
 							}
994 994
 						}
995 995
 
996 996
 	  					// Question grade
997
-						$html .= '<p><label>' . __( 'Question Grade:'  , 'woothemes-sensei' ) . '</label> ';
998
-						$html .= '<input type="number" id="add-question-grade" name="question_grade" class="small-text" min="0" value="1" /></p>' . "\n";
997
+						$html .= '<p><label>'.__('Question Grade:', 'woothemes-sensei').'</label> ';
998
+						$html .= '<input type="number" id="add-question-grade" name="question_grade" class="small-text" min="0" value="1" /></p>'."\n";
999 999
 
1000 1000
 						// Random order
1001 1001
 						$html .= '<p class="add_question_random_order">';
1002
-			    			$html .= '<label for="add_random_order"><input type="checkbox" name="random_order" class="random_order" id="add_random_order" value="yes" checked="checked" /> ' . __( 'Randomise answer order', 'woothemes-sensei' ) . '</label>';
1002
+			    			$html .= '<label for="add_random_order"><input type="checkbox" name="random_order" class="random_order" id="add_random_order" value="yes" checked="checked" /> '.__('Randomise answer order', 'woothemes-sensei').'</label>';
1003 1003
 			    		$html .= '</p>';
1004 1004
 
1005 1005
 			    		// Question media
1006 1006
 						$html .= '<p>';
1007
-					    	$html .= '<label for="question_add_new_media_button">' . __( 'Question media:', 'woothemes-sensei' ) . '</label><br/>';
1008
-					    	$html .= '<button id="question_add_new_media_button" class="upload_media_file_button button-secondary" data-uploader_title="' . __( 'Add file to question', 'woothemes-sensei' ) . '" data-uploader_button_text="' . __( 'Add to question', 'woothemes-sensei' ) . '">' . __( 'Add file', 'woothemes-sensei' ) . '</button>';
1009
-					    	$html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">' . __( 'Delete file', 'woothemes-sensei' ) . '</button><br/>';
1007
+					    	$html .= '<label for="question_add_new_media_button">'.__('Question media:', 'woothemes-sensei').'</label><br/>';
1008
+					    	$html .= '<button id="question_add_new_media_button" class="upload_media_file_button button-secondary" data-uploader_title="'.__('Add file to question', 'woothemes-sensei').'" data-uploader_button_text="'.__('Add to question', 'woothemes-sensei').'">'.__('Add file', 'woothemes-sensei').'</button>';
1009
+					    	$html .= '<button id="question_add_new_media_button_delete" class="delete_media_file_button button-secondary hidden">'.__('Delete file', 'woothemes-sensei').'</button><br/>';
1010 1010
 					    	$html .= '<span id="question_add_new_media_link" class="question_media_link hidden"></span>';
1011 1011
 					    	$html .= '<br/><img id="question_add_new_media_preview" class="question_media_preview hidden" src="" /><br/>';
1012 1012
 					    	$html .= '<input type="hidden" id="question_add_new_media" class="question_media" name="question_media" value="" />';
@@ -1015,44 +1015,44 @@  discard block
 block discarded – undo
1015 1015
 					$html .= '</div>';
1016 1016
 				$html .= '</div>';
1017 1017
 
1018
-				foreach ( $question_types as $type => $label ) {
1019
-					$html .= $this->quiz_panel_question_field( $type );
1018
+				foreach ($question_types as $type => $label) {
1019
+					$html .= $this->quiz_panel_question_field($type);
1020 1020
 				}
1021 1021
 
1022
-				if( 'quiz' == $context ) {
1022
+				if ('quiz' == $context) {
1023 1023
 					$html .= '<div class="add-question">';
1024
-			    		$html .= '<a title="' . esc_attr( __( 'Add Question', 'woothemes-sensei' ) ) . '" href="#add-question-metadata" class="add_question_save button button-primary button-highlighted">' . esc_html( __( 'Add Question', 'woothemes-sensei' ) ) . '</a>';
1024
+			    		$html .= '<a title="'.esc_attr(__('Add Question', 'woothemes-sensei')).'" href="#add-question-metadata" class="add_question_save button button-primary button-highlighted">'.esc_html(__('Add Question', 'woothemes-sensei')).'</a>';
1025 1025
 		    		$html .= '</div>';
1026 1026
 		    	}
1027 1027
 
1028 1028
 		    $html .= '</div>';
1029 1029
 
1030
-		    if( 'quiz' == $context ) {
1030
+		    if ('quiz' == $context) {
1031 1031
 
1032 1032
 			    $html .= '<div class="tab-content hidden" id="tab-existing-content">';
1033 1033
 
1034
-			    	$html .= '<p><em>' . sprintf( __( 'Add an existing question to this quiz from the %1$squestion bank%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit.php?post_type=question' ) . '">', '</a>' ) . '</em></p>';
1034
+			    	$html .= '<p><em>'.sprintf(__('Add an existing question to this quiz from the %1$squestion bank%2$s.', 'woothemes-sensei'), '<a href="'.admin_url('edit.php?post_type=question').'">', '</a>').'</em></p>';
1035 1035
 
1036 1036
 			    	$html .= '<div id="existing-filters" class="alignleft actions">
1037 1037
 			    				<select id="existing-status">
1038
-			    					<option value="all">' . __( 'All', 'woothemes-sensei' ) . '</option>
1039
-			    					<option value="unused">' . __( 'Unused', 'woothemes-sensei' ) . '</option>
1040
-			    					<option value="used">' . __( 'Used', 'woothemes-sensei' ) . '</option>
1038
+			    					<option value="all">' . __('All', 'woothemes-sensei').'</option>
1039
+			    					<option value="unused">' . __('Unused', 'woothemes-sensei').'</option>
1040
+			    					<option value="used">' . __('Used', 'woothemes-sensei').'</option>
1041 1041
 			    				</select>
1042 1042
 			    				<select id="existing-type">
1043
-			    					<option value="">' . __( 'All Types', 'woothemes-sensei' ) . '</option>';
1044
-							    	foreach ( $question_types as $type => $label ) {
1045
-										$html .= '<option value="' . esc_attr( $type ) . '">' . esc_html( $label ) . '</option>';
1043
+			    					<option value="">' . __('All Types', 'woothemes-sensei').'</option>';
1044
+							    	foreach ($question_types as $type => $label) {
1045
+										$html .= '<option value="'.esc_attr($type).'">'.esc_html($label).'</option>';
1046 1046
 									}
1047 1047
     				$html .= '</select>
1048 1048
     							<select id="existing-category">
1049
-			    					<option value="">' . __( 'All Categories', 'woothemes-sensei' ) . '</option>';
1050
-				    				foreach( $question_cats as $cat ) {
1051
-										$html .= '<option value="' . esc_attr( $cat->slug ) . '">' . esc_html( $cat->name ) . '</option>';
1049
+			    					<option value="">' . __('All Categories', 'woothemes-sensei').'</option>';
1050
+				    				foreach ($question_cats as $cat) {
1051
+										$html .= '<option value="'.esc_attr($cat->slug).'">'.esc_html($cat->name).'</option>';
1052 1052
 									}
1053 1053
     				$html .= '</select>
1054
-    							<input type="text" id="existing-search" placeholder="' . __( 'Search', 'woothemes-sensei' ) . '" />
1055
-    							<a class="button" id="existing-filter-button">' . __( 'Filter', 'woothemes-sensei' ) . '</a>
1054
+    							<input type="text" id="existing-search" placeholder="' . __('Search', 'woothemes-sensei').'" />
1055
+    							<a class="button" id="existing-filter-button">' . __('Filter', 'woothemes-sensei').'</a>
1056 1056
 			    			</div>';
1057 1057
 
1058 1058
 			    	$html .= '<table id="existing-table" class="widefat">';
@@ -1060,17 +1060,17 @@  discard block
 block discarded – undo
1060 1060
 			    		$html .= '<thead>
1061 1061
 									    <tr>
1062 1062
 									        <th scope="col" class="column-cb check-column"><input type="checkbox" /></th>
1063
-									        <th scope="col">' . __( 'Question', 'woothemes-sensei' ) . '</th>
1064
-									        <th scope="col">' . __( 'Type', 'woothemes-sensei' ) . '</th>
1065
-									        <th scope="col">' . __( 'Category', 'woothemes-sensei' ) . '</th>
1063
+									        <th scope="col">' . __('Question', 'woothemes-sensei').'</th>
1064
+									        <th scope="col">' . __('Type', 'woothemes-sensei').'</th>
1065
+									        <th scope="col">' . __('Category', 'woothemes-sensei').'</th>
1066 1066
 									    </tr>
1067 1067
 									</thead>
1068 1068
 									<tfoot>
1069 1069
 									    <tr>
1070 1070
 										    <th scope="col" class="check-column"><input type="checkbox" /></th>
1071
-									        <th scope="col">' . __( 'Question', 'woothemes-sensei' ) . '</th>
1072
-									        <th scope="col">' . __( 'Type', 'woothemes-sensei' ) . '</th>
1073
-									        <th scope="col">' . __( 'Category', 'woothemes-sensei' ) . '</th>
1071
+									        <th scope="col">' . __('Question', 'woothemes-sensei').'</th>
1072
+									        <th scope="col">' . __('Type', 'woothemes-sensei').'</th>
1073
+									        <th scope="col">' . __('Category', 'woothemes-sensei').'</th>
1074 1074
 									    </tr>
1075 1075
 									</tfoot>';
1076 1076
 						$html .= '<tbody id="existing-questions">';
@@ -1078,8 +1078,8 @@  discard block
 block discarded – undo
1078 1078
 						$questions = $this->quiz_panel_get_existing_questions();
1079 1079
 
1080 1080
 						$row = 1;
1081
-						foreach( $questions['questions'] as $question ) {
1082
-							$html .= $this->quiz_panel_add_existing_question( $question->ID, $row );
1081
+						foreach ($questions['questions'] as $question) {
1082
+							$html .= $this->quiz_panel_add_existing_question($question->ID, $row);
1083 1083
 							++$row;
1084 1084
 						}
1085 1085
 
@@ -1088,36 +1088,36 @@  discard block
 block discarded – undo
1088 1088
 			    	$html .= '</table>';
1089 1089
 
1090 1090
 			    	$next_class = '';
1091
-			    	if( $questions['count'] <= 10 ) {
1091
+			    	if ($questions['count'] <= 10) {
1092 1092
 			    		$next_class = 'hidden';
1093 1093
 			    	}
1094 1094
 
1095 1095
 			    	$html .= '<div id="existing-pagination">';
1096 1096
 			    		$html .= '<input type="hidden" id="existing-page" value="1" />';
1097
-			    		$html .= '<a class="prev no-paging">&larr; ' . __( 'Previous', 'woothemes-sensei') . '</a> <a class="next ' . esc_attr( $next_class ) . '">' . __( 'Next', 'woothemes-sensei') . ' &rarr;</a>';
1097
+			    		$html .= '<a class="prev no-paging">&larr; '.__('Previous', 'woothemes-sensei').'</a> <a class="next '.esc_attr($next_class).'">'.__('Next', 'woothemes-sensei').' &rarr;</a>';
1098 1098
 			    	$html .= '</div>';
1099 1099
 
1100 1100
 			    	$html .= '<div class="existing-actions">';
1101
-			    		$html .= '<a title="' . esc_attr( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '" class="add_existing_save button button-primary button-highlighted">' . esc_html( __( 'Add Selected Question(s)', 'woothemes-sensei' ) ) . '</a></p>';
1101
+			    		$html .= '<a title="'.esc_attr(__('Add Selected Question(s)', 'woothemes-sensei')).'" class="add_existing_save button button-primary button-highlighted">'.esc_html(__('Add Selected Question(s)', 'woothemes-sensei')).'</a></p>';
1102 1102
 			    	$html .= '</div>';
1103 1103
 
1104 1104
 			    $html .= '</div>';
1105 1105
 
1106
-			    if ( ! empty( $question_cats ) && ! is_wp_error( $question_cats ) ) {
1106
+			    if ( ! empty($question_cats) && ! is_wp_error($question_cats)) {
1107 1107
 				    $html .= '<div class="tab-content hidden" id="tab-multiple-content">';
1108 1108
 
1109
-				    	$html .= '<p><em>' . sprintf( __( 'Add any number of questions from a specified category. Edit your question categories %1$shere%2$s.', 'woothemes-sensei' ), '<a href="' . admin_url( 'edit-tags.php?taxonomy=question-category&post_type=question' ) . '">', '</a>' ) . '</em></p>';
1109
+				    	$html .= '<p><em>'.sprintf(__('Add any number of questions from a specified category. Edit your question categories %1$shere%2$s.', 'woothemes-sensei'), '<a href="'.admin_url('edit-tags.php?taxonomy=question-category&post_type=question').'">', '</a>').'</em></p>';
1110 1110
 
1111
-						$html .= '<p><select id="add-multiple-question-category-options" name="multiple_category" class="chosen_select widefat question-category-select">' . "\n";
1112
-						$html .= '<option value="">' . __( 'Select a Question Category', 'woothemes-sensei' ) . '</option>' . "\n";
1113
-						foreach( $question_cats as $cat ) {
1114
-							$html .= '<option value="' . esc_attr( $cat->term_id ) . '">' . esc_html( $cat->name ) . '</option>';
1111
+						$html .= '<p><select id="add-multiple-question-category-options" name="multiple_category" class="chosen_select widefat question-category-select">'."\n";
1112
+						$html .= '<option value="">'.__('Select a Question Category', 'woothemes-sensei').'</option>'."\n";
1113
+						foreach ($question_cats as $cat) {
1114
+							$html .= '<option value="'.esc_attr($cat->term_id).'">'.esc_html($cat->name).'</option>';
1115 1115
 						} // End For Loop
1116
-						$html .= '</select></p>' . "\n";
1116
+						$html .= '</select></p>'."\n";
1117 1117
 
1118
-						$html .= '<p>' . __( 'Number of questions:', 'woothemes-sensei' ) . ' <input type="number" min="1" value="1" max="1" id="add-multiple-question-count" class="small-text"/>';
1118
+						$html .= '<p>'.__('Number of questions:', 'woothemes-sensei').' <input type="number" min="1" value="1" max="1" id="add-multiple-question-count" class="small-text"/>';
1119 1119
 
1120
-						$html .= '<a title="' . esc_attr( __( 'Add Question(s)', 'woothemes-sensei' ) ) . '" class="add_multiple_save button button-primary button-highlighted">' . esc_html( __( 'Add Question(s)', 'woothemes-sensei' ) ) . '</a></p>';
1120
+						$html .= '<a title="'.esc_attr(__('Add Question(s)', 'woothemes-sensei')).'" class="add_multiple_save button button-primary button-highlighted">'.esc_html(__('Add Question(s)', 'woothemes-sensei')).'</a></p>';
1121 1121
 
1122 1122
 				    $html .= '</div>';
1123 1123
 				}
@@ -1128,7 +1128,7 @@  discard block
 block discarded – undo
1128 1128
 		return $html;
1129 1129
 	}
1130 1130
 
1131
-	public function quiz_panel_get_existing_questions( $question_status = 'all', $question_type = '', $question_category = '', $question_search = '', $page = 1 ) {
1131
+	public function quiz_panel_get_existing_questions($question_status = 'all', $question_type = '', $question_category = '', $question_search = '', $page = 1) {
1132 1132
 
1133 1133
 		$args = array(
1134 1134
 			'post_type' => 'question',
@@ -1137,14 +1137,14 @@  discard block
 block discarded – undo
1137 1137
 			'suppress_filters' => 0,
1138 1138
 		);
1139 1139
 
1140
-		switch( $question_status ) {
1140
+		switch ($question_status) {
1141 1141
 			case 'unused': $quiz_status = 'NOT EXISTS'; break;
1142 1142
 			case 'used': $quiz_status = 'EXISTS'; break;
1143 1143
 			default: $quiz_status = ''; break;
1144 1144
 		}
1145 1145
 
1146
-		if( $quiz_status ) {
1147
-			switch( $quiz_status ) {
1146
+		if ($quiz_status) {
1147
+			switch ($quiz_status) {
1148 1148
 				case 'EXISTS':
1149 1149
 					$args['meta_query'][] = array(
1150 1150
 						'key' => '_quiz_id',
@@ -1162,7 +1162,7 @@  discard block
 block discarded – undo
1162 1162
 			}
1163 1163
 		}
1164 1164
 
1165
-		if( $question_type ) {
1165
+		if ($question_type) {
1166 1166
 			$args['tax_query'][] = array(
1167 1167
 				'taxonomy' => 'question-type',
1168 1168
 				'field' => 'slug',
@@ -1170,7 +1170,7 @@  discard block
 block discarded – undo
1170 1170
 			);
1171 1171
 		}
1172 1172
 
1173
-		if( $question_category ) {
1173
+		if ($question_category) {
1174 1174
 			$args['tax_query'][] = array(
1175 1175
 				'taxonomy' => 'question-category',
1176 1176
 				'field' => 'slug',
@@ -1178,19 +1178,19 @@  discard block
 block discarded – undo
1178 1178
 			);
1179 1179
 		}
1180 1180
 
1181
-		if( $question_type && $question_category ) {
1181
+		if ($question_type && $question_category) {
1182 1182
 			$args['tax_query']['relation'] = 'AND';
1183 1183
 		}
1184 1184
 
1185
-		if( $question_search ) {
1185
+		if ($question_search) {
1186 1186
 			$args['s'] = $question_search;
1187 1187
 		}
1188 1188
 
1189
-		if( $page ) {
1189
+		if ($page) {
1190 1190
 			$args['paged'] = $page;
1191 1191
 		}
1192 1192
 
1193
-		$qry = new WP_Query( $args );
1193
+		$qry = new WP_Query($args);
1194 1194
 
1195 1195
         /**
1196 1196
          * Filter existing questions query
@@ -1199,39 +1199,39 @@  discard block
 block discarded – undo
1199 1199
          *
1200 1200
          * @param WP_Query $wp_query
1201 1201
          */
1202
-        $qry = apply_filters( 'sensei_existing_questions_query_results', $qry );
1202
+        $qry = apply_filters('sensei_existing_questions_query_results', $qry);
1203 1203
 
1204 1204
 		$questions['questions'] = $qry->posts;
1205
-		$questions['count'] = intval( $qry->found_posts );
1205
+		$questions['count'] = intval($qry->found_posts);
1206 1206
 		$questions['page'] = $page;
1207 1207
 
1208 1208
 		return $questions;
1209 1209
 	}
1210 1210
 
1211
-	public function quiz_panel_add_existing_question( $question_id = 0, $row = 1 ) {
1211
+	public function quiz_panel_add_existing_question($question_id = 0, $row = 1) {
1212 1212
 
1213 1213
 		$html = '';
1214 1214
 
1215
-		if( ! $question_id ) {
1215
+		if ( ! $question_id) {
1216 1216
 
1217 1217
             return;
1218 1218
 
1219 1219
         }
1220 1220
 
1221 1221
 		$existing_class = '';
1222
-		if( $row % 2 ) {
1222
+		if ($row % 2) {
1223 1223
             $existing_class = 'alternate';
1224 1224
         }
1225 1225
 
1226
-		$question_type = Sensei()->question->get_question_type( $question_id );
1226
+		$question_type = Sensei()->question->get_question_type($question_id);
1227 1227
 
1228
-		$question_cat_list = strip_tags( get_the_term_list( $question_id, 'question-category', '', ', ', '' ) );
1228
+		$question_cat_list = strip_tags(get_the_term_list($question_id, 'question-category', '', ', ', ''));
1229 1229
 
1230
-		$html .= '<tr class="' . esc_attr( $existing_class ) . '">
1231
-					<td class="cb"><input type="checkbox" value="' . $question_id . '" class="existing-item" /></td>
1232
-					<td>' . get_the_title( $question_id ) . '</td>
1233
-					<td>' . esc_html( $question_type ) . '</td>
1234
-					<td>' . esc_html( $question_cat_list ) . '</td>
1230
+		$html .= '<tr class="'.esc_attr($existing_class).'">
1231
+					<td class="cb"><input type="checkbox" value="' . $question_id.'" class="existing-item" /></td>
1232
+					<td>' . get_the_title($question_id).'</td>
1233
+					<td>' . esc_html($question_type).'</td>
1234
+					<td>' . esc_html($question_cat_list).'</td>
1235 1235
 				  </tr>';
1236 1236
 
1237 1237
 		return $html;
@@ -1244,58 +1244,58 @@  discard block
 block discarded – undo
1244 1244
 
1245 1245
 		//Add nonce security to the request
1246 1246
 		$nonce = '';
1247
-		if( isset( $_POST['filter_existing_questions_nonce'] ) ) {
1248
-			$nonce = esc_html( $_POST['filter_existing_questions_nonce'] );
1247
+		if (isset($_POST['filter_existing_questions_nonce'])) {
1248
+			$nonce = esc_html($_POST['filter_existing_questions_nonce']);
1249 1249
 		} // End If Statement
1250 1250
 
1251
-		if( ! wp_verify_nonce( $nonce, 'filter_existing_questions_nonce' ) ) {
1252
-			die( $return );
1251
+		if ( ! wp_verify_nonce($nonce, 'filter_existing_questions_nonce')) {
1252
+			die($return);
1253 1253
 		} // End If Statement
1254 1254
 
1255 1255
 		// Parse POST data
1256 1256
 		$data = $_POST['data'];
1257 1257
 		$question_data = array();
1258
-		parse_str( $data, $question_data );
1258
+		parse_str($data, $question_data);
1259 1259
 
1260
-		if( 0 < count( $question_data ) ) {
1260
+		if (0 < count($question_data)) {
1261 1261
 
1262 1262
 			$question_status = '';
1263
-			if( isset( $question_data['question_status'] ) ) {
1263
+			if (isset($question_data['question_status'])) {
1264 1264
 				$question_status = $question_data['question_status'];
1265 1265
 			}
1266 1266
 
1267 1267
 			$question_type = '';
1268
-			if( isset( $question_data['question_type'] ) ) {
1268
+			if (isset($question_data['question_type'])) {
1269 1269
 				$question_type = $question_data['question_type'];
1270 1270
 			}
1271 1271
 
1272 1272
 			$question_category = '';
1273
-			if( isset( $question_data['question_category'] ) ) {
1273
+			if (isset($question_data['question_category'])) {
1274 1274
 				$question_category = $question_data['question_category'];
1275 1275
 			}
1276 1276
 
1277 1277
 			$question_search = '';
1278
-			if( isset( $question_data['question_search'] ) ) {
1278
+			if (isset($question_data['question_search'])) {
1279 1279
 				$question_search = $question_data['question_search'];
1280 1280
 			}
1281 1281
 
1282 1282
 			$question_page = 1;
1283
-			if( isset( $question_data['question_page'] ) ) {
1284
-				$question_page = intval( $question_data['question_page'] );
1283
+			if (isset($question_data['question_page'])) {
1284
+				$question_page = intval($question_data['question_page']);
1285 1285
 			}
1286 1286
 
1287
-			$questions = $this->quiz_panel_get_existing_questions( $question_status, $question_type, $question_category, $question_search, $question_page );
1287
+			$questions = $this->quiz_panel_get_existing_questions($question_status, $question_type, $question_category, $question_search, $question_page);
1288 1288
 
1289 1289
 			$row = 1;
1290 1290
 			$html = '';
1291
-			foreach( $questions['questions'] as $question ) {
1292
-				$html .= $this->quiz_panel_add_existing_question( $question->ID, $row );
1291
+			foreach ($questions['questions'] as $question) {
1292
+				$html .= $this->quiz_panel_add_existing_question($question->ID, $row);
1293 1293
 				++$row;
1294 1294
 			}
1295 1295
 
1296
-			if( ! $html ) {
1296
+			if ( ! $html) {
1297 1297
 				$html = '<tr class="alternate">
1298
-								<td class="no-results" colspan="4"><em>' . __( 'There are no questions matching your search.', 'woothemes-sensei' ) . '</em></td>
1298
+								<td class="no-results" colspan="4"><em>' . __('There are no questions matching your search.', 'woothemes-sensei').'</em></td>
1299 1299
 							  </tr>';
1300 1300
 			}
1301 1301
 
@@ -1303,53 +1303,53 @@  discard block
 block discarded – undo
1303 1303
 			$return['count'] = $questions['count'];
1304 1304
 			$return['page'] = $questions['page'];
1305 1305
 
1306
-			wp_send_json( $return );
1306
+			wp_send_json($return);
1307 1307
 		}
1308 1308
 
1309
-		die( $return );
1309
+		die($return);
1310 1310
 	}
1311 1311
 
1312
-	public function quiz_panel_question_field( $question_type = '', $question_id = 0, $question_counter = 0 ) {
1312
+	public function quiz_panel_question_field($question_type = '', $question_id = 0, $question_counter = 0) {
1313 1313
 
1314 1314
 		$html = '';
1315 1315
 
1316
-		if( $question_type ) {
1316
+		if ($question_type) {
1317 1317
 
1318 1318
 			$right_answer = '';
1319 1319
 			$wrong_answers = array();
1320 1320
 			$answer_order_string = '';
1321 1321
 			$answer_order = array();
1322
-			if( $question_id ) {
1323
-				$right_answer = get_post_meta( $question_id, '_question_right_answer', true);
1324
-				$wrong_answers = get_post_meta( $question_id, '_question_wrong_answers', true);
1325
-				$answer_order_string = get_post_meta( $question_id, '_answer_order', true );
1326
-				$answer_order = array_filter( explode( ',', $answer_order_string ) );
1322
+			if ($question_id) {
1323
+				$right_answer = get_post_meta($question_id, '_question_right_answer', true);
1324
+				$wrong_answers = get_post_meta($question_id, '_question_wrong_answers', true);
1325
+				$answer_order_string = get_post_meta($question_id, '_answer_order', true);
1326
+				$answer_order = array_filter(explode(',', $answer_order_string));
1327 1327
 				$question_class = '';
1328 1328
 			} else {
1329 1329
 				$question_id = '';
1330 1330
 				$question_class = 'answer-fields question_required_fields hidden';
1331 1331
 			}
1332 1332
 
1333
-			switch ( $question_type ) {
1333
+			switch ($question_type) {
1334 1334
 				case 'multiple-choice':
1335
-					$html .= '<div class="question_default_fields multiple-choice-answers ' . str_replace( ' hidden', '', $question_class ) . '">';
1335
+					$html .= '<div class="question_default_fields multiple-choice-answers '.str_replace(' hidden', '', $question_class).'">';
1336 1336
 
1337 1337
 						$right_answers = (array) $right_answer;
1338 1338
 						// Calculate total right answers available (defaults to 1)
1339 1339
 						$total_right = 0;
1340
-						if( $question_id ) {
1341
-							$total_right = get_post_meta( $question_id, '_right_answer_count', true );
1340
+						if ($question_id) {
1341
+							$total_right = get_post_meta($question_id, '_right_answer_count', true);
1342 1342
 						}
1343
-						if( 0 == intval( $total_right ) ) {
1343
+						if (0 == intval($total_right)) {
1344 1344
 							$total_right = 1;
1345 1345
 						}
1346
-						for ( $i = 0; $i < $total_right; $i++ ) {
1347
-							if ( !isset( $right_answers[ $i ] ) ) { $right_answers[ $i ] = ''; }
1348
-							$right_answer_id = $this->get_answer_id( $right_answers[ $i ] );
1346
+						for ($i = 0; $i < $total_right; $i++) {
1347
+							if ( ! isset($right_answers[$i])) { $right_answers[$i] = ''; }
1348
+							$right_answer_id = $this->get_answer_id($right_answers[$i]);
1349 1349
 							// Right Answer
1350
-							$right_answer = '<label class="answer" for="question_' . $question_counter . '_right_answer_' . $i . '"><span>' . __( 'Right:' , 'woothemes-sensei' ) . '</span> <input rel="' . esc_attr( $right_answer_id ) . '" type="text" id="question_' . $question_counter . '_right_answer_' . $i . '" name="question_right_answers[]" value="' . esc_attr( $right_answers[ $i ] ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1351
-							if( $question_id ) {
1352
-								$answers[ $right_answer_id ] = $right_answer;
1350
+							$right_answer = '<label class="answer" for="question_'.$question_counter.'_right_answer_'.$i.'"><span>'.__('Right:', 'woothemes-sensei').'</span> <input rel="'.esc_attr($right_answer_id).'" type="text" id="question_'.$question_counter.'_right_answer_'.$i.'" name="question_right_answers[]" value="'.esc_attr($right_answers[$i]).'" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1351
+							if ($question_id) {
1352
+								$answers[$right_answer_id] = $right_answer;
1353 1353
 							} else {
1354 1354
 								$answers[] = $right_answer;
1355 1355
 							}
@@ -1357,23 +1357,23 @@  discard block
 block discarded – undo
1357 1357
 
1358 1358
 				    	// Calculate total wrong answers available (defaults to 4)
1359 1359
 				    	$total_wrong = 0;
1360
-				    	if( $question_id ) {
1361
-				    		$total_wrong = get_post_meta( $question_id, '_wrong_answer_count', true );
1360
+				    	if ($question_id) {
1361
+				    		$total_wrong = get_post_meta($question_id, '_wrong_answer_count', true);
1362 1362
 				    	}
1363
-				    	if( 0 == intval( $total_wrong ) ) {
1363
+				    	if (0 == intval($total_wrong)) {
1364 1364
 				    		$total_wrong = 1;
1365 1365
 				    	}
1366 1366
 
1367 1367
                         // Setup Wrong Answer HTML
1368
-                        foreach ( $wrong_answers as $i => $answer ){
1368
+                        foreach ($wrong_answers as $i => $answer) {
1369 1369
 
1370
-                            $answer_id = $this->get_answer_id( $answer );
1371
-                            $wrong_answer = '<label class="answer" for="question_' . $question_counter . '_wrong_answer_' . $i . '"><span>' . __( 'Wrong:' , 'woothemes-sensei' ) ;
1372
-                            $wrong_answer .= '</span> <input rel="' . esc_attr( $answer_id ) . '" type="text" id="question_' . $question_counter . '_wrong_answer_' . $i ;
1373
-                            $wrong_answer .= '" name="question_wrong_answers[]" value="' . esc_attr( $answer ) . '" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1374
-                            if( $question_id ) {
1370
+                            $answer_id = $this->get_answer_id($answer);
1371
+                            $wrong_answer = '<label class="answer" for="question_'.$question_counter.'_wrong_answer_'.$i.'"><span>'.__('Wrong:', 'woothemes-sensei');
1372
+                            $wrong_answer .= '</span> <input rel="'.esc_attr($answer_id).'" type="text" id="question_'.$question_counter.'_wrong_answer_'.$i;
1373
+                            $wrong_answer .= '" name="question_wrong_answers[]" value="'.esc_attr($answer).'" size="25" class="question_answer widefat" /> <a class="remove_answer_option"></a></label>';
1374
+                            if ($question_id) {
1375 1375
 
1376
-                                $answers[ $answer_id ] = $wrong_answer;
1376
+                                $answers[$answer_id] = $wrong_answer;
1377 1377
 
1378 1378
                             } else {
1379 1379
 
@@ -1384,115 +1384,115 @@  discard block
 block discarded – undo
1384 1384
                         } // end for each
1385 1385
 
1386 1386
 				    	$answers_sorted = $answers;
1387
-				    	if( $question_id && count( $answer_order ) > 0 ) {
1387
+				    	if ($question_id && count($answer_order) > 0) {
1388 1388
 				    		$answers_sorted = array();
1389
-				    		foreach( $answer_order as $answer_id ) {
1390
-				    			if( isset( $answers[ $answer_id ] ) ) {
1391
-				    				$answers_sorted[ $answer_id ] = $answers[ $answer_id ];
1392
-				    				unset( $answers[ $answer_id ] );
1389
+				    		foreach ($answer_order as $answer_id) {
1390
+				    			if (isset($answers[$answer_id])) {
1391
+				    				$answers_sorted[$answer_id] = $answers[$answer_id];
1392
+				    				unset($answers[$answer_id]);
1393 1393
 				    			}
1394 1394
 				    		}
1395 1395
 
1396
-				    		if( count( $answers ) > 0 ) {
1397
-						    	foreach( $answers as $id => $answer ) {
1398
-						    		$answers_sorted[ $id ] = $answer;
1396
+				    		if (count($answers) > 0) {
1397
+						    	foreach ($answers as $id => $answer) {
1398
+						    		$answers_sorted[$id] = $answer;
1399 1399
 						    	}
1400 1400
 						    }
1401 1401
 				    	}
1402 1402
 
1403
-						foreach( $answers_sorted as $id => $answer ) {
1403
+						foreach ($answers_sorted as $id => $answer) {
1404 1404
 				    		$html .= $answer;
1405 1405
 				    	}
1406 1406
 
1407
-				    	$html .= '<input type="hidden" class="answer_order" name="answer_order" value="' . $answer_order_string . '" />';
1408
-				    	$html .= '<span class="hidden right_answer_count">' . $total_right . '</span>';
1409
-				    	$html .= '<span class="hidden wrong_answer_count">' . $total_wrong . '</span>';
1407
+				    	$html .= '<input type="hidden" class="answer_order" name="answer_order" value="'.$answer_order_string.'" />';
1408
+				    	$html .= '<span class="hidden right_answer_count">'.$total_right.'</span>';
1409
+				    	$html .= '<span class="hidden wrong_answer_count">'.$total_wrong.'</span>';
1410 1410
 
1411 1411
 				    	$html .= '<div class="add_answer_options">';
1412
-					    	$html .= '<a class="add_right_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add right answer', 'woothemes-sensei' ) . '</a>';
1413
-					    	$html .= '<a class="add_wrong_answer_option add_answer_option button" rel="' . $question_counter . '">' . __( 'Add wrong answer', 'woothemes-sensei' ) . '</a>';
1412
+					    	$html .= '<a class="add_right_answer_option add_answer_option button" rel="'.$question_counter.'">'.__('Add right answer', 'woothemes-sensei').'</a>';
1413
+					    	$html .= '<a class="add_wrong_answer_option add_answer_option button" rel="'.$question_counter.'">'.__('Add wrong answer', 'woothemes-sensei').'</a>';
1414 1414
 				    	$html .= '</div>';
1415 1415
 
1416
-                        $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id , 'multiple-choice' );
1416
+                        $html .= $this->quiz_panel_question_feedback($question_counter, $question_id, 'multiple-choice');
1417 1417
 
1418 1418
 			    	$html .= '</div>';
1419 1419
 				break;
1420 1420
 				case 'boolean':
1421
-					$html .= '<div class="question_boolean_fields ' . $question_class . '">';
1422
-						if( $question_id ) {
1423
-							$field_name = 'question_' . $question_id . '_right_answer_boolean';
1421
+					$html .= '<div class="question_boolean_fields '.$question_class.'">';
1422
+						if ($question_id) {
1423
+							$field_name = 'question_'.$question_id.'_right_answer_boolean';
1424 1424
 						} else {
1425 1425
 							$field_name = 'question_right_answer_boolean';
1426 1426
 							$right_answer = 'true';
1427 1427
 						}
1428
-						$html .= '<label for="question_' . $question_id . '_boolean_true"><input id="question_' . $question_id . '_boolean_true" type="radio" name="' . $field_name . '" value="true" '. checked( $right_answer, 'true', false ) . ' /> ' . __( 'True', 'woothemes-sensei' ) . '</label>';
1429
-						$html .= '<label for="question_' . $question_id . '_boolean_false"><input id="question_' . $question_id . '_boolean_false" type="radio" name="' . $field_name . '" value="false" '. checked( $right_answer, 'false', false ) . ' /> ' . __( 'False', 'woothemes-sensei' ) . '</label>';
1428
+						$html .= '<label for="question_'.$question_id.'_boolean_true"><input id="question_'.$question_id.'_boolean_true" type="radio" name="'.$field_name.'" value="true" '.checked($right_answer, 'true', false).' /> '.__('True', 'woothemes-sensei').'</label>';
1429
+						$html .= '<label for="question_'.$question_id.'_boolean_false"><input id="question_'.$question_id.'_boolean_false" type="radio" name="'.$field_name.'" value="false" '.checked($right_answer, 'false', false).' /> '.__('False', 'woothemes-sensei').'</label>';
1430 1430
 
1431
-                    $html .= $this->quiz_panel_question_feedback( $question_counter, $question_id, 'boolean' );
1431
+                    $html .= $this->quiz_panel_question_feedback($question_counter, $question_id, 'boolean');
1432 1432
 
1433 1433
 					$html .= '</div>';
1434 1434
 				break;
1435 1435
 				case 'gap-fill':
1436
-					$gapfill_array = explode( '||', $right_answer );
1437
-					if ( isset( $gapfill_array[0] ) ) { $gapfill_pre = $gapfill_array[0]; } else { $gapfill_pre = ''; }
1438
-					if ( isset( $gapfill_array[1] ) ) { $gapfill_gap = $gapfill_array[1]; } else { $gapfill_gap = ''; }
1439
-					if ( isset( $gapfill_array[2] ) ) { $gapfill_post = $gapfill_array[2]; } else { $gapfill_post = ''; }
1440
-					$html .= '<div class="question_gapfill_fields ' . $question_class . '">';
1436
+					$gapfill_array = explode('||', $right_answer);
1437
+					if (isset($gapfill_array[0])) { $gapfill_pre = $gapfill_array[0]; } else { $gapfill_pre = ''; }
1438
+					if (isset($gapfill_array[1])) { $gapfill_gap = $gapfill_array[1]; } else { $gapfill_gap = ''; }
1439
+					if (isset($gapfill_array[2])) { $gapfill_post = $gapfill_array[2]; } else { $gapfill_post = ''; }
1440
+					$html .= '<div class="question_gapfill_fields '.$question_class.'">';
1441 1441
 						// Fill in the Gaps
1442
-						$html .= '<label>' . __( 'Text before the Gap:' , 'woothemes-sensei' ) . '</label> ';
1443
-						$html .= '<input type="text" id="question_' . $question_counter . '_add_question_right_answer_gapfill_pre" name="add_question_right_answer_gapfill_pre" value="' . $gapfill_pre . '" size="25" class="widefat gapfill-field" />';
1444
-	  					$html .= '<label>' . __( 'The Gap:' , 'woothemes-sensei' ) . '</label> ';
1445
-	  					$html .= '<input type="text" id="question_' . $question_counter . '_add_question_right_answer_gapfill_gap" name="add_question_right_answer_gapfill_gap" value="' . $gapfill_gap . '" size="25" class="widefat gapfill-field" />';
1446
-	  					$html .= '<label>' . __( 'Text after the Gap:' , 'woothemes-sensei' ) . '</label> ';
1447
-	  					$html .= '<input type="text" id="question_' . $question_counter . '_add_question_right_answer_gapfill_post" name="add_question_right_answer_gapfill_post" value="' . $gapfill_post . '" size="25" class="widefat gapfill-field" />';
1448
-	  					$html .= '<label>' . __( 'Preview:' , 'woothemes-sensei' ) . '</label> ';
1449
-	  					$html .= '<p class="gapfill-preview">' . $gapfill_pre . '&nbsp;<u>' . $gapfill_gap . '</u>&nbsp;' . $gapfill_post . '</p>';
1442
+						$html .= '<label>'.__('Text before the Gap:', 'woothemes-sensei').'</label> ';
1443
+						$html .= '<input type="text" id="question_'.$question_counter.'_add_question_right_answer_gapfill_pre" name="add_question_right_answer_gapfill_pre" value="'.$gapfill_pre.'" size="25" class="widefat gapfill-field" />';
1444
+	  					$html .= '<label>'.__('The Gap:', 'woothemes-sensei').'</label> ';
1445
+	  					$html .= '<input type="text" id="question_'.$question_counter.'_add_question_right_answer_gapfill_gap" name="add_question_right_answer_gapfill_gap" value="'.$gapfill_gap.'" size="25" class="widefat gapfill-field" />';
1446
+	  					$html .= '<label>'.__('Text after the Gap:', 'woothemes-sensei').'</label> ';
1447
+	  					$html .= '<input type="text" id="question_'.$question_counter.'_add_question_right_answer_gapfill_post" name="add_question_right_answer_gapfill_post" value="'.$gapfill_post.'" size="25" class="widefat gapfill-field" />';
1448
+	  					$html .= '<label>'.__('Preview:', 'woothemes-sensei').'</label> ';
1449
+	  					$html .= '<p class="gapfill-preview">'.$gapfill_pre.'&nbsp;<u>'.$gapfill_gap.'</u>&nbsp;'.$gapfill_post.'</p>';
1450 1450
 	  				$html .= '</div>';
1451 1451
 				break;
1452 1452
 				case 'multi-line':
1453
-					$html .= '<div class="question_multiline_fields ' . $question_class . '">';
1453
+					$html .= '<div class="question_multiline_fields '.$question_class.'">';
1454 1454
 						// Guides for grading
1455
-						if( $question_counter ) {
1456
-							$field_id = 'question_' . $question_counter . '_add_question_right_answer_multiline';
1455
+						if ($question_counter) {
1456
+							$field_id = 'question_'.$question_counter.'_add_question_right_answer_multiline';
1457 1457
 						} else {
1458 1458
 							$field_id = 'add_question_right_answer_multiline';
1459 1459
 						}
1460
-						$html .= '<label>' . __( 'Guide/Teacher Notes for grading the answer' , 'woothemes-sensei' ) . '</label> ';
1461
-						$html .= '<textarea id="' . $field_id . '" name="add_question_right_answer_multiline" rows="4" cols="40" class="widefat">' . $right_answer . '</textarea>';
1460
+						$html .= '<label>'.__('Guide/Teacher Notes for grading the answer', 'woothemes-sensei').'</label> ';
1461
+						$html .= '<textarea id="'.$field_id.'" name="add_question_right_answer_multiline" rows="4" cols="40" class="widefat">'.$right_answer.'</textarea>';
1462 1462
 					$html .= '</div>';
1463 1463
 				break;
1464 1464
 				case 'single-line':
1465
-					$html .= '<div class="question_singleline_fields ' . $question_class . '">';
1465
+					$html .= '<div class="question_singleline_fields '.$question_class.'">';
1466 1466
 						// Recommended Answer
1467
-						if( $question_counter ) {
1468
-							$field_id = 'question_' . $question_counter . '_add_question_right_answer_singleline';
1467
+						if ($question_counter) {
1468
+							$field_id = 'question_'.$question_counter.'_add_question_right_answer_singleline';
1469 1469
 						} else {
1470 1470
 							$field_id = 'add_question_right_answer_singleline';
1471 1471
 						}
1472
-						$html .= '<label>' . __( 'Recommended Answer' , 'woothemes-sensei' ) . '</label> ';
1473
-						$html .= '<input type="text" id="' . $field_id . '" name="add_question_right_answer_singleline" value="' . $right_answer . '" size="25" class="widefat" />';
1472
+						$html .= '<label>'.__('Recommended Answer', 'woothemes-sensei').'</label> ';
1473
+						$html .= '<input type="text" id="'.$field_id.'" name="add_question_right_answer_singleline" value="'.$right_answer.'" size="25" class="widefat" />';
1474 1474
 					$html .= '</div>';
1475 1475
 				break;
1476 1476
 				case 'file-upload':
1477
-					$html .= '<div class="question_fileupload_fields ' . $question_class . '">';
1478
-						if( $question_counter ) {
1479
-							$right_field_id = 'question_' . $question_counter . '_add_question_right_answer_fileupload';
1480
-							$wrong_field_id = 'question_' . $question_counter . '_add_question_wrong_answer_fileupload';
1477
+					$html .= '<div class="question_fileupload_fields '.$question_class.'">';
1478
+						if ($question_counter) {
1479
+							$right_field_id = 'question_'.$question_counter.'_add_question_right_answer_fileupload';
1480
+							$wrong_field_id = 'question_'.$question_counter.'_add_question_wrong_answer_fileupload';
1481 1481
 						} else {
1482 1482
 							$right_field_id = 'add_question_right_answer_fileupload';
1483 1483
 							$wrong_field_id = 'add_question_wrong_answer_fileupload';
1484 1484
 						}
1485 1485
 
1486 1486
 						$wrong_answer = '';
1487
-						if( isset( $wrong_answers[0] ) ) {
1487
+						if (isset($wrong_answers[0])) {
1488 1488
 							$wrong_answer = $wrong_answers[0];
1489 1489
 						}
1490
-						$html .= '<label>' . __( 'Description for student explaining what needs to be uploaded' , 'woothemes-sensei' ) . '</label> ';
1491
-						$html .= '<textarea id="' . $wrong_field_id . '" name="add_question_wrong_answer_fileupload" rows="4" cols="40" class="widefat">' . $wrong_answer . '</textarea>';
1490
+						$html .= '<label>'.__('Description for student explaining what needs to be uploaded', 'woothemes-sensei').'</label> ';
1491
+						$html .= '<textarea id="'.$wrong_field_id.'" name="add_question_wrong_answer_fileupload" rows="4" cols="40" class="widefat">'.$wrong_answer.'</textarea>';
1492 1492
 
1493 1493
 						// Guides for grading
1494
-						$html .= '<label>' . __( 'Guide/Teacher Notes for grading the upload' , 'woothemes-sensei' ) . '</label> ';
1495
-						$html .= '<textarea id="' . $right_field_id . '" name="add_question_right_answer_fileupload" rows="4" cols="40" class="widefat">' . $right_answer . '</textarea>';
1494
+						$html .= '<label>'.__('Guide/Teacher Notes for grading the upload', 'woothemes-sensei').'</label> ';
1495
+						$html .= '<textarea id="'.$right_field_id.'" name="add_question_right_answer_fileupload" rows="4" cols="40" class="widefat">'.$right_answer.'</textarea>';
1496 1496
 					$html .= '</div>';
1497 1497
 				break;
1498 1498
 			}
@@ -1501,32 +1501,32 @@  discard block
 block discarded – undo
1501 1501
 		return $html;
1502 1502
 	}
1503 1503
 
1504
-	public function quiz_panel_question_feedback( $question_counter = 0, $question_id = 0, $question_type = '' ) {
1504
+	public function quiz_panel_question_feedback($question_counter = 0, $question_id = 0, $question_type = '') {
1505 1505
 
1506 1506
         // default field name
1507 1507
         $field_name = 'answer_feedback';
1508
-        if( 'boolean' == $question_type ){
1508
+        if ('boolean' == $question_type) {
1509 1509
 
1510 1510
             $field_name = 'answer_feedback_boolean';
1511 1511
 
1512
-        }elseif( 'multiple-choice' == $question_type ){
1512
+        }elseif ('multiple-choice' == $question_type) {
1513 1513
 
1514 1514
             $field_name = 'answer_feedback_multiple_choice';
1515 1515
 
1516 1516
         }// end if
1517 1517
 
1518
-		if( $question_counter ) {
1519
-			$field_name = 'answer_' . $question_counter . '_feedback';
1518
+		if ($question_counter) {
1519
+			$field_name = 'answer_'.$question_counter.'_feedback';
1520 1520
 		}
1521 1521
 
1522 1522
 		$feedback = '';
1523
-		if( $question_id ) {
1524
-			$feedback = get_post_meta( $question_id, '_answer_feedback', true );
1523
+		if ($question_id) {
1524
+			$feedback = get_post_meta($question_id, '_answer_feedback', true);
1525 1525
 		}
1526 1526
 
1527
-		$html = '<p title="' . __( 'This feedback will be automatically displayed to the student once they have completed the quiz.', 'woothemes-sensei' ) . '">';
1528
-		$html .= '<label for="' . $field_name . '">' . __( 'Answer Feedback' , 'woothemes-sensei' ) . ':</label>';
1529
-		$html .= '<textarea id="' . $field_name . '" name="' . $field_name . '" rows="4" cols="40" class="answer_feedback widefat">' . $feedback . '</textarea>';
1527
+		$html = '<p title="'.__('This feedback will be automatically displayed to the student once they have completed the quiz.', 'woothemes-sensei').'">';
1528
+		$html .= '<label for="'.$field_name.'">'.__('Answer Feedback', 'woothemes-sensei').':</label>';
1529
+		$html .= '<textarea id="'.$field_name.'" name="'.$field_name.'" rows="4" cols="40" class="answer_feedback widefat">'.$feedback.'</textarea>';
1530 1530
 		$html .= '</p>';
1531 1531
 
1532 1532
 		return $html;
@@ -1535,19 +1535,19 @@  discard block
 block discarded – undo
1535 1535
 	public function question_get_answer_id() {
1536 1536
 		$data = $_POST['data'];
1537 1537
 		$answer_data = array();
1538
-		parse_str( $data, $answer_data );
1538
+		parse_str($data, $answer_data);
1539 1539
 		$answer = $answer_data['answer_value'];
1540
-		$answer_id = $this->get_answer_id( $answer );
1540
+		$answer_id = $this->get_answer_id($answer);
1541 1541
 		echo $answer_id;
1542 1542
 		die();
1543 1543
 	}
1544 1544
 
1545
-	public function get_answer_id( $answer = '' ) {
1545
+	public function get_answer_id($answer = '') {
1546 1546
 
1547 1547
 		$answer_id = '';
1548 1548
 
1549
-		if( $answer ) {
1550
-			$answer_id = md5( $answer );
1549
+		if ($answer) {
1550
+			$answer_id = md5($answer);
1551 1551
 		}
1552 1552
 
1553 1553
 		return $answer_id;
@@ -1560,17 +1560,17 @@  discard block
 block discarded – undo
1560 1560
 	 * @access public
1561 1561
 	 * @return void
1562 1562
 	 */
1563
-	public function lesson_quiz_meta_box_content () {
1563
+	public function lesson_quiz_meta_box_content() {
1564 1564
 		global $post;
1565 1565
 
1566 1566
 		// Get quiz panel
1567 1567
 		$quiz_id = 0;
1568 1568
 		$quizzes = array();
1569
-		if ( 0 < $post->ID ) {
1570
-			$quiz_id = $this->lesson_quizzes( $post->ID, 'any' );
1569
+		if (0 < $post->ID) {
1570
+			$quiz_id = $this->lesson_quizzes($post->ID, 'any');
1571 1571
 		}
1572 1572
 
1573
-		echo $this->quiz_panel( $quiz_id );
1573
+		echo $this->quiz_panel($quiz_id);
1574 1574
 
1575 1575
 	} // End lesson_quiz_meta_box_content()
1576 1576
 
@@ -1587,53 +1587,53 @@  discard block
 block discarded – undo
1587 1587
 		$quiz_id = 0;
1588 1588
 		$lesson_id = $post->ID;
1589 1589
 		$quizzes = array();
1590
-		if ( 0 < $lesson_id ) {
1591
-			$quiz_id = $this->lesson_quizzes( $lesson_id, 'any' );
1590
+		if (0 < $lesson_id) {
1591
+			$quiz_id = $this->lesson_quizzes($lesson_id, 'any');
1592 1592
 		}
1593 1593
 
1594
-		if( $quiz_id ) {
1595
-			$html .= $this->quiz_settings_panel( $lesson_id, $quiz_id );
1594
+		if ($quiz_id) {
1595
+			$html .= $this->quiz_settings_panel($lesson_id, $quiz_id);
1596 1596
 		} else {
1597
-			$html .= '<p><em>' . __( 'There is no quiz for this lesson yet - please add one in the \'Quiz Questions\' box.', 'woothemes-sensei' ) . '</em></p>';
1597
+			$html .= '<p><em>'.__('There is no quiz for this lesson yet - please add one in the \'Quiz Questions\' box.', 'woothemes-sensei').'</em></p>';
1598 1598
 		}
1599 1599
 
1600 1600
 		echo $html;
1601 1601
 	}
1602 1602
 
1603
-	public function quiz_settings_panel( $lesson_id = 0, $quiz_id = 0 ) {
1603
+	public function quiz_settings_panel($lesson_id = 0, $quiz_id = 0) {
1604 1604
 
1605 1605
 
1606 1606
 		$html = '';
1607 1607
 
1608
-		if( ! $lesson_id && ! $quiz_id ) return $html;
1608
+		if ( ! $lesson_id && ! $quiz_id) return $html;
1609 1609
 
1610
-		$settings = $this->get_quiz_settings( $quiz_id );
1610
+		$settings = $this->get_quiz_settings($quiz_id);
1611 1611
 
1612
-		$html = Sensei()->admin->render_settings( $settings, $quiz_id, 'quiz-settings' );
1612
+		$html = Sensei()->admin->render_settings($settings, $quiz_id, 'quiz-settings');
1613 1613
 
1614 1614
 		return $html;
1615 1615
 
1616 1616
 	}
1617 1617
 
1618
-	public function get_quiz_settings( $quiz_id = 0 ) {
1618
+	public function get_quiz_settings($quiz_id = 0) {
1619 1619
 
1620 1620
 		$disable_passmark = '';
1621
-		$pass_required = get_post_meta( $quiz_id, '_pass_required', true );
1622
-		if( ! $pass_required ) {
1621
+		$pass_required = get_post_meta($quiz_id, '_pass_required', true);
1622
+		if ( ! $pass_required) {
1623 1623
 			$disable_passmark = 'hidden';
1624 1624
 		}
1625 1625
 
1626 1626
 		// Setup Questions Query
1627 1627
 		$questions = array();
1628
-		if ( 0 < $quiz_id ) {
1629
-			$questions = $this->lesson_quiz_questions( $quiz_id );
1628
+		if (0 < $quiz_id) {
1629
+			$questions = $this->lesson_quiz_questions($quiz_id);
1630 1630
 		}
1631 1631
 
1632 1632
 		// Count questions
1633 1633
 		$question_count = 0;
1634
-		foreach( $questions as $question ) {
1635
-			if( $question->post_type == 'multiple_question' ) {
1636
-				$question_number = get_post_meta( $question->ID, 'number', true );
1634
+		foreach ($questions as $question) {
1635
+			if ($question->post_type == 'multiple_question') {
1636
+				$question_number = get_post_meta($question->ID, 'number', true);
1637 1637
 				$question_count += $question_number;
1638 1638
 			} else {
1639 1639
 				++$question_count;
@@ -1643,15 +1643,15 @@  discard block
 block discarded – undo
1643 1643
 		$settings = array(
1644 1644
 			array(
1645 1645
 				'id' 			=> 'pass_required',
1646
-				'label'			=> __( 'Pass required to complete lesson', 'woothemes-sensei' ),
1647
-				'description'	=> __( 'The passmark must be achieved before the lesson is complete.', 'woothemes-sensei' ),
1646
+				'label'			=> __('Pass required to complete lesson', 'woothemes-sensei'),
1647
+				'description'	=> __('The passmark must be achieved before the lesson is complete.', 'woothemes-sensei'),
1648 1648
 				'type'			=> 'checkbox',
1649 1649
 				'default'		=> '',
1650 1650
 				'checked'		=> 'on',
1651 1651
 			),
1652 1652
 			array(
1653 1653
 				'id' 			=> 'quiz_passmark',
1654
-				'label'			=> __( 'Quiz passmark percentage', 'woothemes-sensei' ),
1654
+				'label'			=> __('Quiz passmark percentage', 'woothemes-sensei'),
1655 1655
 				'description'	=> '',
1656 1656
 				'type'			=> 'number',
1657 1657
 				'default'		=> 0,
@@ -1662,17 +1662,17 @@  discard block
 block discarded – undo
1662 1662
 			),
1663 1663
 			array(
1664 1664
 				'id' 			=> 'show_questions',
1665
-				'label'			=> __( 'Number of questions to show', 'woothemes-sensei' ),
1666
-				'description'	=> __( 'Show a random selection of questions from this quiz each time a student views it.', 'woothemes-sensei' ),
1665
+				'label'			=> __('Number of questions to show', 'woothemes-sensei'),
1666
+				'description'	=> __('Show a random selection of questions from this quiz each time a student views it.', 'woothemes-sensei'),
1667 1667
 				'type'			=> 'number',
1668 1668
 				'default'		=> '',
1669
-				'placeholder'	=> __( 'All', 'woothemes-sensei' ),
1669
+				'placeholder'	=> __('All', 'woothemes-sensei'),
1670 1670
 				'min'			=> 1,
1671 1671
 				'max'			=> $question_count,
1672 1672
 			),
1673 1673
 			array(
1674 1674
 				'id' 			=> 'random_question_order',
1675
-				'label'			=> __( 'Randomise question order', 'woothemes-sensei' ),
1675
+				'label'			=> __('Randomise question order', 'woothemes-sensei'),
1676 1676
 				'description'	=> '',
1677 1677
 				'type'			=> 'checkbox',
1678 1678
 				'default'		=> 'no',
@@ -1680,23 +1680,23 @@  discard block
 block discarded – undo
1680 1680
 			),
1681 1681
 			array(
1682 1682
 				'id' 			=> 'quiz_grade_type',
1683
-				'label'			=> __( 'Grade quiz automatically', 'woothemes-sensei' ),
1684
-				'description'	=> __( 'Grades quiz and displays answer explanation immediately after completion. Only applicable if quiz is limited to Multiple Choice, True/False and Gap Fill questions. Questions that have a grade of zero are skipped during autograding.', 'woothemes-sensei' ),
1683
+				'label'			=> __('Grade quiz automatically', 'woothemes-sensei'),
1684
+				'description'	=> __('Grades quiz and displays answer explanation immediately after completion. Only applicable if quiz is limited to Multiple Choice, True/False and Gap Fill questions. Questions that have a grade of zero are skipped during autograding.', 'woothemes-sensei'),
1685 1685
 				'type'			=> 'checkbox',
1686 1686
 				'default'		=> 'auto',
1687 1687
 				'checked'		=> 'auto',
1688 1688
 			),
1689 1689
 			array(
1690 1690
 				'id' 			=> 'enable_quiz_reset',
1691
-				'label'			=> __( 'Allow user to retake the quiz', 'woothemes-sensei' ),
1692
-				'description'	=> __( 'Enables the quiz reset button.', 'woothemes-sensei' ),
1691
+				'label'			=> __('Allow user to retake the quiz', 'woothemes-sensei'),
1692
+				'description'	=> __('Enables the quiz reset button.', 'woothemes-sensei'),
1693 1693
 				'type'			=> 'checkbox',
1694 1694
 				'default'		=> '',
1695 1695
 				'checked'		=> 'on',
1696 1696
 			),
1697 1697
 		);
1698 1698
 
1699
-		return apply_filters( 'sensei_quiz_settings', $settings );
1699
+		return apply_filters('sensei_quiz_settings', $settings);
1700 1700
 	}
1701 1701
 
1702 1702
 	/**
@@ -1705,38 +1705,38 @@  discard block
 block discarded – undo
1705 1705
 	 * @access public
1706 1706
 	 * @return void
1707 1707
 	 */
1708
-	public function enqueue_scripts( $hook ) {
1708
+	public function enqueue_scripts($hook) {
1709 1709
 		global  $post_type;
1710 1710
 
1711
-		$allowed_post_types = apply_filters( 'sensei_scripts_allowed_post_types', array( 'lesson', 'course', 'question' ) );
1712
-		$allowed_post_type_pages = apply_filters( 'sensei_scripts_allowed_post_type_pages', array( 'edit.php', 'post-new.php', 'post.php', 'edit-tags.php' ) );
1713
-		$allowed_pages = apply_filters( 'sensei_scripts_allowed_pages', array( 'sensei_grading', 'sensei_analysis', 'sensei_learners', 'sensei_updates', 'woothemes-sensei-settings', 'lesson-order' ) );
1711
+		$allowed_post_types = apply_filters('sensei_scripts_allowed_post_types', array('lesson', 'course', 'question'));
1712
+		$allowed_post_type_pages = apply_filters('sensei_scripts_allowed_post_type_pages', array('edit.php', 'post-new.php', 'post.php', 'edit-tags.php'));
1713
+		$allowed_pages = apply_filters('sensei_scripts_allowed_pages', array('sensei_grading', 'sensei_analysis', 'sensei_learners', 'sensei_updates', 'woothemes-sensei-settings', 'lesson-order'));
1714 1714
 
1715 1715
 		// Test for Write Panel Pages
1716
-		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 ) ) ) {
1716
+		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))) {
1717 1717
 
1718
-			$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1718
+			$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
1719 1719
 
1720 1720
 			// Load the lessons script
1721 1721
             wp_enqueue_media();
1722
-			wp_enqueue_script( 'sensei-lesson-metadata', Sensei()->plugin_url . 'assets/js/lesson-metadata' . $suffix . '.js', array( 'jquery', 'sensei-core-select2' ,'jquery-ui-sortable' ), Sensei()->version, true );
1723
-			wp_enqueue_script( 'sensei-lesson-chosen', Sensei()->plugin_url . 'assets/chosen/chosen.jquery' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
1724
-			wp_enqueue_script( 'sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery' . $suffix . '.js', array( 'jquery', 'sensei-lesson-chosen' ), Sensei()->version, true );
1722
+			wp_enqueue_script('sensei-lesson-metadata', Sensei()->plugin_url.'assets/js/lesson-metadata'.$suffix.'.js', array('jquery', 'sensei-core-select2', 'jquery-ui-sortable'), Sensei()->version, true);
1723
+			wp_enqueue_script('sensei-lesson-chosen', Sensei()->plugin_url.'assets/chosen/chosen.jquery'.$suffix.'.js', array('jquery'), Sensei()->version, true);
1724
+			wp_enqueue_script('sensei-chosen-ajax', Sensei()->plugin_url.'assets/chosen/ajax-chosen.jquery'.$suffix.'.js', array('jquery', 'sensei-lesson-chosen'), Sensei()->version, true);
1725 1725
 
1726 1726
             // Load the bulk edit screen script
1727
-            if( 'edit.php' == $hook && 'lesson'==$_GET['post_type'] ) {
1728
-                wp_enqueue_script( 'sensei-lessons-bulk-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-bulk-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version , true);
1727
+            if ('edit.php' == $hook && 'lesson' == $_GET['post_type']) {
1728
+                wp_enqueue_script('sensei-lessons-bulk-edit', Sensei()->plugin_url.'assets/js/admin/lesson-bulk-edit'.$suffix.'.js', array('jquery'), Sensei()->version, true);
1729 1729
             }
1730 1730
 
1731 1731
 			// Localise script
1732
-			$translation_strings = array( 'right_colon' => __( 'Right:', 'woothemes-sensei' ), 'wrong_colon' => __( 'Wrong:', 'woothemes-sensei' ), 'add_file' => __( 'Add file', 'woothemes-sensei' ), 'change_file' => __( 'Change file', 'woothemes-sensei' ), 'confirm_remove' => __( 'Are you sure you want to remove this question?', 'woothemes-sensei' ), 'confirm_remove_multiple' => __( 'Are you sure you want to remove these questions?', 'woothemes-sensei' ), 'too_many_for_cat' => __( 'You have selected more questions than this category contains - please reduce the number of questions that you are adding.', 'woothemes-sensei' ) );
1733
-			$ajax_vars = array( 'lesson_update_question_nonce' => wp_create_nonce( 'lesson_update_question_nonce' ), 'lesson_add_course_nonce' => wp_create_nonce( 'lesson_add_course_nonce' ), 'lesson_update_grade_type_nonce' => wp_create_nonce( 'lesson_update_grade_type_nonce' ), 'lesson_update_question_order_nonce' => wp_create_nonce( 'lesson_update_question_order_nonce' ), 'lesson_update_question_order_random_nonce' => wp_create_nonce( 'lesson_update_question_order_random_nonce' ), 'lesson_add_multiple_questions_nonce' => wp_create_nonce( 'lesson_add_multiple_questions_nonce' ), 'lesson_remove_multiple_questions_nonce' => wp_create_nonce( 'lesson_remove_multiple_questions_nonce' ), 'lesson_add_existing_questions_nonce' => wp_create_nonce( 'lesson_add_existing_questions_nonce' ), 'filter_existing_questions_nonce' => wp_create_nonce( 'filter_existing_questions_nonce' ) );
1734
-			$data = array_merge( $translation_strings, $ajax_vars );
1735
-			wp_localize_script( 'sensei-lesson-metadata', 'woo_localized_data', $data );
1732
+			$translation_strings = array('right_colon' => __('Right:', 'woothemes-sensei'), 'wrong_colon' => __('Wrong:', 'woothemes-sensei'), 'add_file' => __('Add file', 'woothemes-sensei'), 'change_file' => __('Change file', 'woothemes-sensei'), 'confirm_remove' => __('Are you sure you want to remove this question?', 'woothemes-sensei'), 'confirm_remove_multiple' => __('Are you sure you want to remove these questions?', 'woothemes-sensei'), 'too_many_for_cat' => __('You have selected more questions than this category contains - please reduce the number of questions that you are adding.', 'woothemes-sensei'));
1733
+			$ajax_vars = array('lesson_update_question_nonce' => wp_create_nonce('lesson_update_question_nonce'), 'lesson_add_course_nonce' => wp_create_nonce('lesson_add_course_nonce'), 'lesson_update_grade_type_nonce' => wp_create_nonce('lesson_update_grade_type_nonce'), 'lesson_update_question_order_nonce' => wp_create_nonce('lesson_update_question_order_nonce'), 'lesson_update_question_order_random_nonce' => wp_create_nonce('lesson_update_question_order_random_nonce'), 'lesson_add_multiple_questions_nonce' => wp_create_nonce('lesson_add_multiple_questions_nonce'), 'lesson_remove_multiple_questions_nonce' => wp_create_nonce('lesson_remove_multiple_questions_nonce'), 'lesson_add_existing_questions_nonce' => wp_create_nonce('lesson_add_existing_questions_nonce'), 'filter_existing_questions_nonce' => wp_create_nonce('filter_existing_questions_nonce'));
1734
+			$data = array_merge($translation_strings, $ajax_vars);
1735
+			wp_localize_script('sensei-lesson-metadata', 'woo_localized_data', $data);
1736 1736
 
1737 1737
 			// Chosen RTL
1738
-			if ( is_rtl() ) {
1739
-				wp_enqueue_script( 'sensei-chosen-rtl', Sensei()->plugin_url . 'assets/chosen/chosen-rtl' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
1738
+			if (is_rtl()) {
1739
+				wp_enqueue_script('sensei-chosen-rtl', Sensei()->plugin_url.'assets/chosen/chosen-rtl'.$suffix.'.js', array('jquery'), Sensei()->version, true);
1740 1740
 			}
1741 1741
 
1742 1742
 		}
@@ -1750,16 +1750,16 @@  discard block
 block discarded – undo
1750 1750
 	 * @since  1.4.0
1751 1751
 	 * @return void
1752 1752
 	 */
1753
-	public function enqueue_styles ( $hook ) {
1753
+	public function enqueue_styles($hook) {
1754 1754
 		global  $post_type;
1755 1755
 
1756
-		$allowed_post_types = apply_filters( 'sensei_scripts_allowed_post_types', array( 'lesson', 'course', 'question', 'sensei_message' ) );
1757
-		$allowed_post_type_pages = apply_filters( 'sensei_scripts_allowed_post_type_pages', array( 'edit.php', 'post-new.php', 'post.php', 'edit-tags.php' ) );
1758
-		$allowed_pages = apply_filters( 'sensei_scripts_allowed_pages', array( 'sensei_grading', 'sensei_analysis', 'sensei_learners', 'sensei_updates', 'woothemes-sensei-settings' ) );
1756
+		$allowed_post_types = apply_filters('sensei_scripts_allowed_post_types', array('lesson', 'course', 'question', 'sensei_message'));
1757
+		$allowed_post_type_pages = apply_filters('sensei_scripts_allowed_post_type_pages', array('edit.php', 'post-new.php', 'post.php', 'edit-tags.php'));
1758
+		$allowed_pages = apply_filters('sensei_scripts_allowed_pages', array('sensei_grading', 'sensei_analysis', 'sensei_learners', 'sensei_updates', 'woothemes-sensei-settings'));
1759 1759
 
1760 1760
 		// Test for Write Panel Pages
1761
-		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 ) ) ) {
1762
-			wp_enqueue_style( 'woothemes-sensei-settings-api', esc_url( Sensei()->plugin_url . 'assets/css/settings.css' ), '', Sensei()->version );
1761
+		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))) {
1762
+			wp_enqueue_style('woothemes-sensei-settings-api', esc_url(Sensei()->plugin_url.'assets/css/settings.css'), '', Sensei()->version);
1763 1763
 		}
1764 1764
 
1765 1765
 	} // End enqueue_styles()
@@ -1771,12 +1771,12 @@  discard block
 block discarded – undo
1771 1771
 	 * @param  array $defaults
1772 1772
 	 * @return array $new_columns
1773 1773
 	 */
1774
-	public function add_column_headings ( $defaults ) {
1774
+	public function add_column_headings($defaults) {
1775 1775
 		$new_columns['cb'] = '<input type="checkbox" />';
1776
-		$new_columns['title'] = _x( 'Lesson Title', 'column name', 'woothemes-sensei' );
1777
-		$new_columns['lesson-course'] = _x( 'Course', 'column name', 'woothemes-sensei' );
1778
-		$new_columns['lesson-prerequisite'] = _x( 'Pre-requisite Lesson', 'column name', 'woothemes-sensei' );
1779
-		if ( isset( $defaults['date'] ) ) {
1776
+		$new_columns['title'] = _x('Lesson Title', 'column name', 'woothemes-sensei');
1777
+		$new_columns['lesson-course'] = _x('Course', 'column name', 'woothemes-sensei');
1778
+		$new_columns['lesson-prerequisite'] = _x('Pre-requisite Lesson', 'column name', 'woothemes-sensei');
1779
+		if (isset($defaults['date'])) {
1780 1780
 			$new_columns['date'] = $defaults['date'];
1781 1781
 		}
1782 1782
 		return $new_columns;
@@ -1790,23 +1790,23 @@  discard block
 block discarded – undo
1790 1790
 	 * @param  int $id
1791 1791
 	 * @return void
1792 1792
 	 */
1793
-	public function add_column_data ( $column_name, $id ) {
1793
+	public function add_column_data($column_name, $id) {
1794 1794
 		global $wpdb, $post;
1795 1795
 
1796
-		switch ( $column_name ) {
1796
+		switch ($column_name) {
1797 1797
 			case 'id':
1798 1798
 				echo $id;
1799 1799
 			break;
1800 1800
 			case 'lesson-course':
1801
-				$lesson_course_id = get_post_meta( $id, '_lesson_course', true);
1802
-				if ( 0 < absint( $lesson_course_id ) ) {
1803
-					echo '<a href="' . esc_url( get_edit_post_link( absint( $lesson_course_id ) ) ) . '" title="' . esc_attr( sprintf( __( 'Edit %s', 'woothemes-sensei' ), get_the_title( absint( $lesson_course_id ) ) ) ) . '">' . get_the_title( absint( $lesson_course_id ) ) . '</a>';
1801
+				$lesson_course_id = get_post_meta($id, '_lesson_course', true);
1802
+				if (0 < absint($lesson_course_id)) {
1803
+					echo '<a href="'.esc_url(get_edit_post_link(absint($lesson_course_id))).'" title="'.esc_attr(sprintf(__('Edit %s', 'woothemes-sensei'), get_the_title(absint($lesson_course_id)))).'">'.get_the_title(absint($lesson_course_id)).'</a>';
1804 1804
 				} // End If Statement
1805 1805
 			break;
1806 1806
 			case 'lesson-prerequisite':
1807
-				$lesson_prerequisite_id = get_post_meta( $id, '_lesson_prerequisite', true);
1808
-				if ( 0 < absint( $lesson_prerequisite_id ) ) {
1809
-					echo '<a href="' . esc_url( get_edit_post_link( absint( $lesson_prerequisite_id ) ) ) . '" title="' . esc_attr( sprintf( __( 'Edit %s', 'woothemes-sensei' ), get_the_title( absint( $lesson_prerequisite_id ) ) ) ) . '">' . get_the_title( absint( $lesson_prerequisite_id ) ) . '</a>';
1807
+				$lesson_prerequisite_id = get_post_meta($id, '_lesson_prerequisite', true);
1808
+				if (0 < absint($lesson_prerequisite_id)) {
1809
+					echo '<a href="'.esc_url(get_edit_post_link(absint($lesson_prerequisite_id))).'" title="'.esc_attr(sprintf(__('Edit %s', 'woothemes-sensei'), get_the_title(absint($lesson_prerequisite_id)))).'">'.get_the_title(absint($lesson_prerequisite_id)).'</a>';
1810 1810
 				} // End If Statement
1811 1811
 			break;
1812 1812
 			default:
@@ -1820,14 +1820,14 @@  discard block
 block discarded – undo
1820 1820
 	 * @access public
1821 1821
 	 * @return void
1822 1822
 	 */
1823
-	public function lesson_add_course () {
1823
+	public function lesson_add_course() {
1824 1824
 		global $current_user;
1825 1825
 		//Add nonce security to the request
1826
-		if ( isset($_POST['lesson_add_course_nonce']) ) {
1827
-			$nonce = esc_html( $_POST['lesson_add_course_nonce'] );
1826
+		if (isset($_POST['lesson_add_course_nonce'])) {
1827
+			$nonce = esc_html($_POST['lesson_add_course_nonce']);
1828 1828
 		} // End If Statement
1829
-		if ( ! wp_verify_nonce( $nonce, 'lesson_add_course_nonce' )
1830
-            || ! current_user_can( 'edit_lessons' ) ) {
1829
+		if ( ! wp_verify_nonce($nonce, 'lesson_add_course_nonce')
1830
+            || ! current_user_can('edit_lessons')) {
1831 1831
 			die('');
1832 1832
 		} // End If Statement
1833 1833
 		// Parse POST data
@@ -1849,14 +1849,14 @@  discard block
 block discarded – undo
1849 1849
 	 * @access public
1850 1850
 	 * @return void
1851 1851
 	 */
1852
-	public function lesson_update_question () {
1852
+	public function lesson_update_question() {
1853 1853
 		global $current_user;
1854 1854
 		//Add nonce security to the request
1855
-		if ( isset($_POST['lesson_update_question_nonce']) ) {
1856
-			$nonce = esc_html( $_POST['lesson_update_question_nonce'] );
1855
+		if (isset($_POST['lesson_update_question_nonce'])) {
1856
+			$nonce = esc_html($_POST['lesson_update_question_nonce']);
1857 1857
 		} // End If Statement
1858
-		if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_nonce' )
1859
-            ||  ! current_user_can( 'edit_questions' )) {
1858
+		if ( ! wp_verify_nonce($nonce, 'lesson_update_question_nonce')
1859
+            ||  ! current_user_can('edit_questions')) {
1860 1860
 
1861 1861
 			die('');
1862 1862
 
@@ -1866,30 +1866,30 @@  discard block
 block discarded – undo
1866 1866
 		// WP slashes all incoming data regardless of Magic Quotes setting (see wp_magic_quotes()), which means that
1867 1867
 		// even the $_POST['data'] encoded with encodeURIComponent has it's apostrophes slashed.
1868 1868
 		// So first restore the original unslashed apostrophes by removing those slashes
1869
-		$data = wp_unslash( $_POST['data'] );
1869
+		$data = wp_unslash($_POST['data']);
1870 1870
 		// Then parse the string to an array (note that parse_str automatically urldecodes all the variables)
1871 1871
 		$question_data = array();
1872 1872
 		parse_str($data, $question_data);
1873 1873
 		// Finally re-slash all elements to ensure consistancy for lesson_save_question()
1874
-		$question_data = wp_slash( $question_data );
1874
+		$question_data = wp_slash($question_data);
1875 1875
 		// Save the question
1876 1876
 		$return = false;
1877 1877
 		// Question Save and Delete logic
1878
-		if ( isset( $question_data['action'] ) && ( $question_data['action'] == 'delete' ) ) {
1878
+		if (isset($question_data['action']) && ($question_data['action'] == 'delete')) {
1879 1879
 			// Delete the Question
1880 1880
 			$return = $this->lesson_delete_question($question_data);
1881 1881
 		} else {
1882 1882
 			// Save the Question
1883
-			if ( isset( $question_data['quiz_id'] ) && ( 0 < absint( $question_data['quiz_id'] ) ) ) {
1883
+			if (isset($question_data['quiz_id']) && (0 < absint($question_data['quiz_id']))) {
1884 1884
 				$current_user = wp_get_current_user();
1885 1885
 				$question_data['post_author'] = $current_user->ID;
1886
-				$question_id = $this->lesson_save_question( $question_data );
1887
-				$question_type = Sensei()->question->get_question_type( $question_id );
1886
+				$question_id = $this->lesson_save_question($question_data);
1887
+				$question_type = Sensei()->question->get_question_type($question_id);
1888 1888
 
1889
-				$question_count = intval( $question_data['question_count'] );
1889
+				$question_count = intval($question_data['question_count']);
1890 1890
 				++$question_count;
1891 1891
 
1892
-				$return = $this->quiz_panel_question( $question_type, $question_count, $question_id );
1892
+				$return = $this->quiz_panel_question($question_type, $question_count, $question_id);
1893 1893
 			} // End If Statement
1894 1894
 		} // End If Statement
1895 1895
 
@@ -1904,49 +1904,49 @@  discard block
 block discarded – undo
1904 1904
 
1905 1905
 		//Add nonce security to the request
1906 1906
 		$nonce = '';
1907
-		if( isset( $_POST['lesson_add_multiple_questions_nonce'] ) ) {
1908
-			$nonce = esc_html( $_POST['lesson_add_multiple_questions_nonce'] );
1907
+		if (isset($_POST['lesson_add_multiple_questions_nonce'])) {
1908
+			$nonce = esc_html($_POST['lesson_add_multiple_questions_nonce']);
1909 1909
 		} // End If Statement
1910 1910
 
1911
-		if( ! wp_verify_nonce( $nonce, 'lesson_add_multiple_questions_nonce' )
1912
-            || ! current_user_can( 'edit_lessons' ) ) {
1913
-			die( $return );
1911
+		if ( ! wp_verify_nonce($nonce, 'lesson_add_multiple_questions_nonce')
1912
+            || ! current_user_can('edit_lessons')) {
1913
+			die($return);
1914 1914
 		} // End If Statement
1915 1915
 
1916 1916
 		// Parse POST data
1917 1917
 		$data = $_POST['data'];
1918 1918
 		$question_data = array();
1919
-		parse_str( $data, $question_data );
1919
+		parse_str($data, $question_data);
1920 1920
 
1921
-		if( is_array( $question_data ) ) {
1922
-			if( isset( $question_data['quiz_id'] ) && ( 0 < absint( $question_data['quiz_id'] ) ) ) {
1921
+		if (is_array($question_data)) {
1922
+			if (isset($question_data['quiz_id']) && (0 < absint($question_data['quiz_id']))) {
1923 1923
 
1924
-				$quiz_id = intval( $question_data['quiz_id'] );
1925
-				$question_number = intval( $question_data['question_number'] );
1926
-				$question_category = intval( $question_data['question_category'] );
1924
+				$quiz_id = intval($question_data['quiz_id']);
1925
+				$question_number = intval($question_data['question_number']);
1926
+				$question_category = intval($question_data['question_category']);
1927 1927
 
1928
-				$question_counter = intval( $question_data['question_count'] );
1928
+				$question_counter = intval($question_data['question_count']);
1929 1929
 				++$question_counter;
1930 1930
 
1931
-				$cat = get_term( $question_category, 'question-category' );
1931
+				$cat = get_term($question_category, 'question-category');
1932 1932
 
1933 1933
 				$post_data = array(
1934 1934
 					'post_content' => '',
1935 1935
 					'post_status' => 'publish',
1936
-					'post_title' => sprintf( __( '%1$s Question(s) from %2$s', 'woothemes-sensei' ), $question_number, $cat->name ),
1936
+					'post_title' => sprintf(__('%1$s Question(s) from %2$s', 'woothemes-sensei'), $question_number, $cat->name),
1937 1937
 					'post_type' => 'multiple_question'
1938 1938
 				);
1939 1939
 
1940
-				$multiple_id = wp_insert_post( $post_data );
1940
+				$multiple_id = wp_insert_post($post_data);
1941 1941
 
1942
-				if( $multiple_id && ! is_wp_error( $multiple_id ) ) {
1943
-					add_post_meta( $multiple_id, 'category', $question_category );
1944
-					add_post_meta( $multiple_id, 'number', $question_number );
1945
-					add_post_meta( $multiple_id, '_quiz_id', $quiz_id, false );
1946
-					add_post_meta( $multiple_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_counter );
1947
-					$lesson_id = get_post_meta( $quiz_id, '_quiz_lesson', true );
1948
-					update_post_meta( $lesson_id, '_quiz_has_questions', '1' );
1949
-					$return = $this->quiz_panel_question( 'category', $question_counter, $multiple_id, 'quiz', array( $cat->name, $question_number ) );
1942
+				if ($multiple_id && ! is_wp_error($multiple_id)) {
1943
+					add_post_meta($multiple_id, 'category', $question_category);
1944
+					add_post_meta($multiple_id, 'number', $question_number);
1945
+					add_post_meta($multiple_id, '_quiz_id', $quiz_id, false);
1946
+					add_post_meta($multiple_id, '_quiz_question_order'.$quiz_id, $quiz_id.'000'.$question_counter);
1947
+					$lesson_id = get_post_meta($quiz_id, '_quiz_lesson', true);
1948
+					update_post_meta($lesson_id, '_quiz_has_questions', '1');
1949
+					$return = $this->quiz_panel_question('category', $question_counter, $multiple_id, 'quiz', array($cat->name, $question_number));
1950 1950
 				}
1951 1951
 			}
1952 1952
 		}
@@ -1960,25 +1960,25 @@  discard block
 block discarded – undo
1960 1960
 
1961 1961
 		//Add nonce security to the request
1962 1962
 		$nonce = '';
1963
-		if( isset( $_POST['lesson_remove_multiple_questions_nonce'] ) ) {
1964
-			$nonce = esc_html( $_POST['lesson_remove_multiple_questions_nonce'] );
1963
+		if (isset($_POST['lesson_remove_multiple_questions_nonce'])) {
1964
+			$nonce = esc_html($_POST['lesson_remove_multiple_questions_nonce']);
1965 1965
 		} // End If Statement
1966 1966
 
1967
-		if( ! wp_verify_nonce( $nonce, 'lesson_remove_multiple_questions_nonce' )
1968
-        || ! current_user_can( 'edit_lessons' ) ) {
1967
+		if ( ! wp_verify_nonce($nonce, 'lesson_remove_multiple_questions_nonce')
1968
+        || ! current_user_can('edit_lessons')) {
1969 1969
 			die('');
1970 1970
 		} // End If Statement
1971 1971
 
1972 1972
 		// Parse POST data
1973 1973
 		$data = $_POST['data'];
1974 1974
 		$question_data = array();
1975
-		parse_str( $data, $question_data );
1975
+		parse_str($data, $question_data);
1976 1976
 
1977
-		if( is_array( $question_data ) ) {
1978
-			wp_delete_post( $question_data['question_id'], true );
1977
+		if (is_array($question_data)) {
1978
+			wp_delete_post($question_data['question_id'], true);
1979 1979
 		}
1980 1980
 
1981
-		die( 'Deleted' );
1981
+		die('Deleted');
1982 1982
 	}
1983 1983
 
1984 1984
 	public function get_question_category_limit() {
@@ -1989,11 +1989,11 @@  discard block
 block discarded – undo
1989 1989
 		// Parse POST data
1990 1990
 		$data = $_POST['data'];
1991 1991
 		$cat_data = array();
1992
-		parse_str( $data, $cat_data );
1992
+		parse_str($data, $cat_data);
1993 1993
 
1994
-		if( isset( $cat_data['cat'] ) && '' != $cat_data['cat'] ) {
1995
-			$cat = get_term( $cat_data['cat'], 'question-category' );
1996
-			if( isset( $cat->count ) ) {
1994
+		if (isset($cat_data['cat']) && '' != $cat_data['cat']) {
1995
+			$cat = get_term($cat_data['cat'], 'question-category');
1996
+			if (isset($cat->count)) {
1997 1997
 				$return = $cat->count;
1998 1998
 			}
1999 1999
 		}
@@ -2007,45 +2007,45 @@  discard block
 block discarded – undo
2007 2007
 
2008 2008
 		//Add nonce security to the request
2009 2009
 		$nonce = '';
2010
-		if( isset( $_POST['lesson_add_existing_questions_nonce'] ) ) {
2011
-			$nonce = esc_html( $_POST['lesson_add_existing_questions_nonce'] );
2010
+		if (isset($_POST['lesson_add_existing_questions_nonce'])) {
2011
+			$nonce = esc_html($_POST['lesson_add_existing_questions_nonce']);
2012 2012
 		} // End If Statement
2013 2013
 
2014
-		if( ! wp_verify_nonce( $nonce, 'lesson_add_existing_questions_nonce' )
2015
-        || ! current_user_can( 'edit_lessons' ) ) {
2014
+		if ( ! wp_verify_nonce($nonce, 'lesson_add_existing_questions_nonce')
2015
+        || ! current_user_can('edit_lessons')) {
2016 2016
 			die('');
2017 2017
 		} // End If Statement
2018 2018
 
2019 2019
 		// Parse POST data
2020 2020
 		$data = $_POST['data'];
2021 2021
 		$question_data = array();
2022
-		parse_str( $data, $question_data );
2022
+		parse_str($data, $question_data);
2023 2023
 
2024 2024
 		$return = '';
2025 2025
 
2026
-		if( is_array( $question_data ) ) {
2026
+		if (is_array($question_data)) {
2027 2027
 
2028
-			if( isset( $question_data['questions'] ) && '' != $question_data['questions'] ) {
2028
+			if (isset($question_data['questions']) && '' != $question_data['questions']) {
2029 2029
 
2030
-				$questions = explode( ',', trim( $question_data['questions'], ',' ) );
2030
+				$questions = explode(',', trim($question_data['questions'], ','));
2031 2031
 				$quiz_id = $question_data['quiz_id'];
2032
-				$question_count = intval( $question_data['question_count'] );
2032
+				$question_count = intval($question_data['question_count']);
2033 2033
 
2034
-				foreach( $questions as $question_id ) {
2034
+				foreach ($questions as $question_id) {
2035 2035
 
2036 2036
 					++$question_count;
2037 2037
 
2038
-					$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2039
-					if( ! in_array( $quiz_id, $quizzes ) ) {
2040
-			    		add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2041
-						$lesson_id = get_post_meta( $quiz_id, '_quiz_lesson', true );
2042
-						update_post_meta( $lesson_id, '_quiz_has_questions', '1' );
2038
+					$quizzes = get_post_meta($question_id, '_quiz_id', false);
2039
+					if ( ! in_array($quiz_id, $quizzes)) {
2040
+			    		add_post_meta($question_id, '_quiz_id', $quiz_id, false);
2041
+						$lesson_id = get_post_meta($quiz_id, '_quiz_lesson', true);
2042
+						update_post_meta($lesson_id, '_quiz_has_questions', '1');
2043 2043
 			    	}
2044 2044
 
2045
-			    	add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2046
-					$question_type = Sensei()->question->get_question_type( $question_id );
2045
+			    	add_post_meta($question_id, '_quiz_question_order'.$quiz_id, $quiz_id.'000'.$question_count);
2046
+					$question_type = Sensei()->question->get_question_type($question_id);
2047 2047
 
2048
-					$return .= $this->quiz_panel_question( $question_type, $question_count, $question_id );
2048
+					$return .= $this->quiz_panel_question($question_type, $question_count, $question_id);
2049 2049
 				}
2050 2050
 			}
2051 2051
 		}
@@ -2057,14 +2057,14 @@  discard block
 block discarded – undo
2057 2057
 
2058 2058
 	public function lesson_update_grade_type() {
2059 2059
 		//Add nonce security to the request
2060
-		if ( isset($_POST['lesson_update_grade_type_nonce']) ) {
2060
+		if (isset($_POST['lesson_update_grade_type_nonce'])) {
2061 2061
 
2062
-			$nonce = esc_html( $_POST['lesson_update_grade_type_nonce'] );
2062
+			$nonce = esc_html($_POST['lesson_update_grade_type_nonce']);
2063 2063
 
2064 2064
 		} // End If Statement
2065 2065
 
2066
-		if ( ! wp_verify_nonce( $nonce, 'lesson_update_grade_type_nonce' )
2067
-        || ! current_user_can( 'edit_lessons' ) ) {
2066
+		if ( ! wp_verify_nonce($nonce, 'lesson_update_grade_type_nonce')
2067
+        || ! current_user_can('edit_lessons')) {
2068 2068
 
2069 2069
 			die('');
2070 2070
 
@@ -2074,18 +2074,18 @@  discard block
 block discarded – undo
2074 2074
 		$data = $_POST['data'];
2075 2075
 		$quiz_data = array();
2076 2076
 		parse_str($data, $quiz_data);
2077
-		update_post_meta( $quiz_data['quiz_id'], '_quiz_grade_type', $quiz_data['quiz_grade_type'] );
2077
+		update_post_meta($quiz_data['quiz_id'], '_quiz_grade_type', $quiz_data['quiz_grade_type']);
2078 2078
 		die();
2079 2079
 	}
2080 2080
 
2081 2081
 	public function lesson_update_question_order() {
2082 2082
 		// Add nonce security to the request
2083
-		if ( isset($_POST['lesson_update_question_order_nonce']) ) {
2084
-			$nonce = esc_html( $_POST['lesson_update_question_order_nonce'] );
2083
+		if (isset($_POST['lesson_update_question_order_nonce'])) {
2084
+			$nonce = esc_html($_POST['lesson_update_question_order_nonce']);
2085 2085
 		} // End If Statement
2086 2086
 
2087
-        if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_nonce' )
2088
-            ||! current_user_can( 'edit_lessons' ) ) {
2087
+        if ( ! wp_verify_nonce($nonce, 'lesson_update_question_order_nonce')
2088
+            ||! current_user_can('edit_lessons')) {
2089 2089
 			die('');
2090 2090
 		} // End If Statement
2091 2091
 
@@ -2093,25 +2093,25 @@  discard block
 block discarded – undo
2093 2093
 		$data = $_POST['data'];
2094 2094
 		$quiz_data = array();
2095 2095
 		parse_str($data, $quiz_data);
2096
-		if( strlen( $quiz_data['question_order'] ) > 0 ) {
2097
-			$questions = explode( ',', $quiz_data['question_order'] );
2096
+		if (strlen($quiz_data['question_order']) > 0) {
2097
+			$questions = explode(',', $quiz_data['question_order']);
2098 2098
 			$o = 1;
2099
-			foreach( $questions as $question_id ) {
2100
-				update_post_meta( $question_id, '_quiz_question_order' . $quiz_data['quiz_id'], $quiz_data['quiz_id'] . '000' . $o );
2099
+			foreach ($questions as $question_id) {
2100
+				update_post_meta($question_id, '_quiz_question_order'.$quiz_data['quiz_id'], $quiz_data['quiz_id'].'000'.$o);
2101 2101
 				++$o;
2102 2102
 			}
2103
-			update_post_meta( $quiz_data['quiz_id'], '_question_order', $questions );
2103
+			update_post_meta($quiz_data['quiz_id'], '_question_order', $questions);
2104 2104
 		}
2105 2105
 		die();
2106 2106
 	}
2107 2107
 
2108 2108
 	public function lesson_update_question_order_random() {
2109 2109
 		//Add nonce security to the request
2110
-		if ( isset($_POST['lesson_update_question_order_random_nonce']) ) {
2111
-			$nonce = esc_html( $_POST['lesson_update_question_order_random_nonce'] );
2110
+		if (isset($_POST['lesson_update_question_order_random_nonce'])) {
2111
+			$nonce = esc_html($_POST['lesson_update_question_order_random_nonce']);
2112 2112
 		} // End If Statement
2113
-		if ( ! wp_verify_nonce( $nonce, 'lesson_update_question_order_random_nonce' )
2114
-            || ! current_user_can( 'edit_lessons' ) ) {
2113
+		if ( ! wp_verify_nonce($nonce, 'lesson_update_question_order_random_nonce')
2114
+            || ! current_user_can('edit_lessons')) {
2115 2115
 
2116 2116
 			die('');
2117 2117
 
@@ -2120,7 +2120,7 @@  discard block
 block discarded – undo
2120 2120
 		$data = $_POST['data'];
2121 2121
 		$quiz_data = array();
2122 2122
 		parse_str($data, $quiz_data);
2123
-		update_post_meta( $quiz_data['quiz_id'], '_random_question_order', $quiz_data['random_question_order'] );
2123
+		update_post_meta($quiz_data['quiz_id'], '_random_question_order', $quiz_data['random_question_order']);
2124 2124
 		die();
2125 2125
 	}
2126 2126
 
@@ -2131,7 +2131,7 @@  discard block
 block discarded – undo
2131 2131
 	 * @param array $data (default: array())
2132 2132
 	 * @return integer|boolean $course_id or false
2133 2133
 	 */
2134
-	private function lesson_save_course( $data = array() ) {
2134
+	private function lesson_save_course($data = array()) {
2135 2135
 		global $current_user;
2136 2136
 		$return = false;
2137 2137
 		// Setup the course data
@@ -2140,58 +2140,58 @@  discard block
 block discarded – undo
2140 2140
 		$course_title = '';
2141 2141
 		$course_prerequisite = 0;
2142 2142
 		$course_category = 0;
2143
-		if ( isset( $data[ 'course_id' ] ) && ( 0 < absint( $data[ 'course_id' ] ) ) ) {
2144
-			$course_id = absint( $data[ 'course_id' ] );
2143
+		if (isset($data['course_id']) && (0 < absint($data['course_id']))) {
2144
+			$course_id = absint($data['course_id']);
2145 2145
 		} // End If Statement
2146
-		if ( isset( $data[ 'course_title' ] ) && ( '' != $data[ 'course_title' ] ) ) {
2147
-			$course_title = $data[ 'course_title' ];
2146
+		if (isset($data['course_title']) && ('' != $data['course_title'])) {
2147
+			$course_title = $data['course_title'];
2148 2148
 		} // End If Statement
2149 2149
 		$post_title = $course_title;
2150
-		if ( isset($data[ 'post_author' ]) ) {
2151
-			$post_author = $data[ 'post_author' ];
2150
+		if (isset($data['post_author'])) {
2151
+			$post_author = $data['post_author'];
2152 2152
 		} else {
2153 2153
 			$current_user = wp_get_current_user();
2154 2154
 			$post_author = $current_user->ID;
2155 2155
 		} // End If Statement
2156 2156
 		$post_status = 'publish';
2157 2157
 		$post_type = 'course';
2158
-		if ( isset( $data[ 'course_content' ] ) && ( '' != $data[ 'course_content' ] ) ) {
2159
-			$course_content = $data[ 'course_content' ];
2158
+		if (isset($data['course_content']) && ('' != $data['course_content'])) {
2159
+			$course_content = $data['course_content'];
2160 2160
 		} // End If Statement
2161 2161
 		$post_content = $course_content;
2162 2162
 		// Course Query Arguments
2163
-		$post_type_args = array(	'post_content' => $post_content,
2163
+		$post_type_args = array('post_content' => $post_content,
2164 2164
   		    						'post_status' => $post_status,
2165 2165
   		    						'post_title' => $post_title,
2166 2166
   		    						'post_type' => $post_type
2167 2167
   		    						);
2168 2168
   		// Only save if there is a valid title
2169
-  		if ( $post_title != '' ) {
2169
+  		if ($post_title != '') {
2170 2170
   		    // Check for prerequisite courses & product id
2171
-  		    $course_prerequisite_id = absint( $data[ 'course_prerequisite' ] );
2172
-  		    $course_woocommerce_product_id = absint( $data[ 'course_woocommerce_product' ] );
2173
-  		    $course_category_id = absint( $data[ 'course_category' ] );
2174
-  		    if ( 0 == $course_woocommerce_product_id ) { $course_woocommerce_product_id = '-'; }
2171
+  		    $course_prerequisite_id = absint($data['course_prerequisite']);
2172
+  		    $course_woocommerce_product_id = absint($data['course_woocommerce_product']);
2173
+  		    $course_category_id = absint($data['course_category']);
2174
+  		    if (0 == $course_woocommerce_product_id) { $course_woocommerce_product_id = '-'; }
2175 2175
   		    // Insert or Update the Lesson Quiz
2176
-		    if ( 0 < $course_id ) {
2177
-		    	$post_type_args[ 'ID' ] = $course_id;
2176
+		    if (0 < $course_id) {
2177
+		    	$post_type_args['ID'] = $course_id;
2178 2178
 		    	$course_id = wp_update_post($post_type_args);
2179
-		    	update_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2180
-		    	update_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2181
-		    	if ( 0 < $course_category_id ) {
2182
-		    		wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2179
+		    	update_post_meta($course_id, '_course_prerequisite', $course_prerequisite_id);
2180
+		    	update_post_meta($course_id, '_course_woocommerce_product', $course_woocommerce_product_id);
2181
+		    	if (0 < $course_category_id) {
2182
+		    		wp_set_object_terms($course_id, $course_category_id, 'course-category');
2183 2183
 		    	} // End If Statement
2184 2184
 		    } else {
2185 2185
 		    	$course_id = wp_insert_post($post_type_args);
2186
-		    	add_post_meta( $course_id, '_course_prerequisite', $course_prerequisite_id );
2187
-		    	add_post_meta( $course_id, '_course_woocommerce_product', $course_woocommerce_product_id );
2188
-		    	if ( 0 < $course_category_id ) {
2189
-		    		wp_set_object_terms( $course_id, $course_category_id, 'course-category' );
2186
+		    	add_post_meta($course_id, '_course_prerequisite', $course_prerequisite_id);
2187
+		    	add_post_meta($course_id, '_course_woocommerce_product', $course_woocommerce_product_id);
2188
+		    	if (0 < $course_category_id) {
2189
+		    		wp_set_object_terms($course_id, $course_category_id, 'course-category');
2190 2190
 		    	} // End If Statement
2191 2191
 		    } // End If Statement
2192 2192
 		} // End If Statement
2193 2193
   		// Check that the insert or update saved by testing the post id
2194
-  		if ( 0 < $course_id ) {
2194
+  		if (0 < $course_id) {
2195 2195
   			$return = $course_id;
2196 2196
   		} // End If Statement
2197 2197
   		return $return;
@@ -2205,7 +2205,7 @@  discard block
 block discarded – undo
2205 2205
 	 * @param array $data (default: array())
2206 2206
 	 * @return integer|boolean $question_id or false
2207 2207
 	 */
2208
-	public function lesson_save_question( $data = array(), $context = 'quiz' ) {
2208
+	public function lesson_save_question($data = array(), $context = 'quiz') {
2209 2209
 		$return = false;
2210 2210
 		// Save the Questions
2211 2211
 		// Setup the Question data
@@ -2217,130 +2217,130 @@  discard block
 block discarded – undo
2217 2217
 		$question_category = '';
2218 2218
 
2219 2219
 		// Handle Question Type
2220
-		if ( isset( $data[ 'question_type' ] ) && ( '' != $data[ 'question_type' ] ) ) {
2221
-			$question_type = $data[ 'question_type' ];
2220
+		if (isset($data['question_type']) && ('' != $data['question_type'])) {
2221
+			$question_type = $data['question_type'];
2222 2222
 		} // End If Statement
2223 2223
 
2224
-		if ( isset( $data[ 'question_category' ] ) && ( '' != $data[ 'question_category' ] ) ) {
2225
-			$question_category = $data[ 'question_category' ];
2224
+		if (isset($data['question_category']) && ('' != $data['question_category'])) {
2225
+			$question_category = $data['question_category'];
2226 2226
 		} // End If Statement
2227 2227
 
2228
-		if ( isset( $data[ 'question_id' ] ) && ( 0 < absint( $data[ 'question_id' ] ) ) ) {
2229
-			$question_id = absint( $data[ 'question_id' ] );
2228
+		if (isset($data['question_id']) && (0 < absint($data['question_id']))) {
2229
+			$question_id = absint($data['question_id']);
2230 2230
 		} // End If Statement
2231
-		if ( isset( $data[ 'question' ] ) && ( '' != $data[ 'question' ] ) ) {
2232
-			$question_text = $data[ 'question' ];
2231
+		if (isset($data['question']) && ('' != $data['question'])) {
2232
+			$question_text = $data['question'];
2233 2233
 		} // End If Statement
2234 2234
 		$post_title = $question_text;
2235 2235
 		// Handle Default Fields (multiple choice)
2236
-		if ( 'multiple-choice' == $question_type && isset( $data[ 'question_right_answers' ] ) && ( '' != $data[ 'question_right_answers' ] ) ) {
2237
-			$question_right_answers = $data[ 'question_right_answers' ];
2236
+		if ('multiple-choice' == $question_type && isset($data['question_right_answers']) && ('' != $data['question_right_answers'])) {
2237
+			$question_right_answers = $data['question_right_answers'];
2238 2238
 		} // End If Statement
2239
-		elseif ( 'multiple-choice' == $question_type && isset( $data[ 'question_right_answer' ] ) && ( '' != $data[ 'question_right_answer' ] ) ) {
2240
-			$question_right_answer = $data[ 'question_right_answer' ];
2239
+		elseif ('multiple-choice' == $question_type && isset($data['question_right_answer']) && ('' != $data['question_right_answer'])) {
2240
+			$question_right_answer = $data['question_right_answer'];
2241 2241
 		} // End If Statement
2242
-		if ( 'multiple-choice' == $question_type && isset( $data[ 'question_wrong_answers' ] ) && ( '' != $data[ 'question_wrong_answers' ] ) ) {
2243
-			$question_wrong_answers = $data[ 'question_wrong_answers' ];
2242
+		if ('multiple-choice' == $question_type && isset($data['question_wrong_answers']) && ('' != $data['question_wrong_answers'])) {
2243
+			$question_wrong_answers = $data['question_wrong_answers'];
2244 2244
 		} // End If Statement
2245 2245
 		// Handle Boolean Fields - Edit
2246
-		if ( 'boolean' == $question_type && isset( $data[ 'question_' . $question_id . '_right_answer_boolean' ] ) && ( '' != $data[ 'question_' . $question_id . '_right_answer_boolean' ] ) ) {
2247
-			$question_right_answer = $data[ 'question_' . $question_id . '_right_answer_boolean' ];
2246
+		if ('boolean' == $question_type && isset($data['question_'.$question_id.'_right_answer_boolean']) && ('' != $data['question_'.$question_id.'_right_answer_boolean'])) {
2247
+			$question_right_answer = $data['question_'.$question_id.'_right_answer_boolean'];
2248 2248
 		} // End If Statement
2249 2249
 		// Handle Boolean Fields - Add
2250
-		if ( 'boolean' == $question_type && isset( $data[ 'question_right_answer_boolean' ] ) && ( '' != $data[ 'question_right_answer_boolean' ] ) ) {
2251
-			$question_right_answer = $data[ 'question_right_answer_boolean' ];
2250
+		if ('boolean' == $question_type && isset($data['question_right_answer_boolean']) && ('' != $data['question_right_answer_boolean'])) {
2251
+			$question_right_answer = $data['question_right_answer_boolean'];
2252 2252
 		} // End If Statement
2253 2253
 		// Handle Gap Fill Fields
2254
-		if ( 'gap-fill' == $question_type && isset( $data[ 'add_question_right_answer_gapfill_gap' ] ) && '' != $data[ 'add_question_right_answer_gapfill_gap' ] ) {
2255
-			$question_right_answer = $data[ 'add_question_right_answer_gapfill_pre' ] . '||' . $data[ 'add_question_right_answer_gapfill_gap' ] . '||' . $data[ 'add_question_right_answer_gapfill_post' ];
2254
+		if ('gap-fill' == $question_type && isset($data['add_question_right_answer_gapfill_gap']) && '' != $data['add_question_right_answer_gapfill_gap']) {
2255
+			$question_right_answer = $data['add_question_right_answer_gapfill_pre'].'||'.$data['add_question_right_answer_gapfill_gap'].'||'.$data['add_question_right_answer_gapfill_post'];
2256 2256
 		} // End If Statement
2257 2257
 		// Handle Multi Line Fields
2258
-		if ( 'multi-line' == $question_type && isset( $data[ 'add_question_right_answer_multiline' ] ) && ( '' != $data[ 'add_question_right_answer_multiline' ] ) ) {
2259
-			$question_right_answer = $data[ 'add_question_right_answer_multiline' ];
2258
+		if ('multi-line' == $question_type && isset($data['add_question_right_answer_multiline']) && ('' != $data['add_question_right_answer_multiline'])) {
2259
+			$question_right_answer = $data['add_question_right_answer_multiline'];
2260 2260
 		} // End If Statement
2261 2261
 		// Handle Single Line Fields
2262
-		if ( 'single-line' == $question_type && isset( $data[ 'add_question_right_answer_singleline' ] ) && ( '' != $data[ 'add_question_right_answer_singleline' ] ) ) {
2263
-			$question_right_answer = $data[ 'add_question_right_answer_singleline' ];
2262
+		if ('single-line' == $question_type && isset($data['add_question_right_answer_singleline']) && ('' != $data['add_question_right_answer_singleline'])) {
2263
+			$question_right_answer = $data['add_question_right_answer_singleline'];
2264 2264
 		} // End If Statement
2265 2265
 		// Handle File Upload Fields
2266
-		if ( 'file-upload' == $question_type && isset( $data[ 'add_question_right_answer_fileupload' ] ) && ( '' != $data[ 'add_question_right_answer_fileupload' ] ) ) {
2267
-			$question_right_answer = $data[ 'add_question_right_answer_fileupload' ];
2266
+		if ('file-upload' == $question_type && isset($data['add_question_right_answer_fileupload']) && ('' != $data['add_question_right_answer_fileupload'])) {
2267
+			$question_right_answer = $data['add_question_right_answer_fileupload'];
2268 2268
 		} // End If Statement
2269
-		if ( 'file-upload' == $question_type && isset( $data[ 'add_question_wrong_answer_fileupload' ] ) && ( '' != $data[ 'add_question_wrong_answer_fileupload' ] ) ) {
2270
-			$question_wrong_answers = array( $data[ 'add_question_wrong_answer_fileupload' ] );
2269
+		if ('file-upload' == $question_type && isset($data['add_question_wrong_answer_fileupload']) && ('' != $data['add_question_wrong_answer_fileupload'])) {
2270
+			$question_wrong_answers = array($data['add_question_wrong_answer_fileupload']);
2271 2271
 		} // End If Statement
2272 2272
 
2273 2273
 		// Handle Question Grade
2274
-		if ( isset( $data[ 'question_grade' ] ) && ( '' != $data[ 'question_grade' ] ) ) {
2275
-			$question_grade = $data[ 'question_grade' ];
2274
+		if (isset($data['question_grade']) && ('' != $data['question_grade'])) {
2275
+			$question_grade = $data['question_grade'];
2276 2276
 		} // End If Statement
2277 2277
 
2278 2278
 		// Handle Answer Feedback
2279 2279
 		$answer_feedback = '';
2280
-		if ( isset( $data[ 'answer_feedback_boolean' ] ) && !empty( $data[ 'answer_feedback_boolean' ] ) ) {
2280
+		if (isset($data['answer_feedback_boolean']) && ! empty($data['answer_feedback_boolean'])) {
2281 2281
 
2282
-            $answer_feedback = $data[ 'answer_feedback_boolean' ];
2282
+            $answer_feedback = $data['answer_feedback_boolean'];
2283 2283
 
2284
-		}elseif( isset( $data[ 'answer_feedback_multiple_choice' ] ) && !empty( $data[ 'answer_feedback_multiple_choice' ] ) ){
2284
+		}elseif (isset($data['answer_feedback_multiple_choice']) && ! empty($data['answer_feedback_multiple_choice'])) {
2285 2285
 
2286
-            $answer_feedback = $data[ 'answer_feedback_multiple_choice' ];
2286
+            $answer_feedback = $data['answer_feedback_multiple_choice'];
2287 2287
 
2288
-        }elseif( isset( $data[ 'answer_feedback' ] )  ){
2288
+        }elseif (isset($data['answer_feedback'])) {
2289 2289
 
2290
-            $answer_feedback = $data[ 'answer_feedback' ];
2290
+            $answer_feedback = $data['answer_feedback'];
2291 2291
 
2292 2292
         } // End If Statement
2293 2293
 
2294 2294
 		$post_title = $question_text;
2295
-		$post_author = $data[ 'post_author' ];
2295
+		$post_author = $data['post_author'];
2296 2296
 		$post_status = 'publish';
2297 2297
 		$post_type = 'question';
2298 2298
 		// Handle the extended question text
2299
-		if ( isset( $data[ 'question_description' ] ) && ( '' != $data[ 'question_description' ] ) ) {
2300
-			$post_content = $data[ 'question_description' ];
2299
+		if (isset($data['question_description']) && ('' != $data['question_description'])) {
2300
+			$post_content = $data['question_description'];
2301 2301
 		}
2302 2302
 		else {
2303 2303
 			$post_content = '';
2304 2304
 		}
2305 2305
 		// Question Query Arguments
2306
-		$post_type_args = array(	'post_content' => $post_content,
2306
+		$post_type_args = array('post_content' => $post_content,
2307 2307
   		    						'post_status' => $post_status,
2308 2308
   		    						'post_title' => $post_title,
2309 2309
   		    						'post_type' => $post_type
2310 2310
   		    						);
2311 2311
 
2312 2312
   		// Remove empty values and reindex the array
2313
-  		if ( is_array( $question_right_answers ) && 0 < count($question_right_answers) ) {
2314
-  			$question_right_answers_array = array_values( array_filter( $question_right_answers, 'strlen' ) );
2313
+  		if (is_array($question_right_answers) && 0 < count($question_right_answers)) {
2314
+  			$question_right_answers_array = array_values(array_filter($question_right_answers, 'strlen'));
2315 2315
   			$question_right_answers = array();
2316 2316
 
2317
-  			foreach( $question_right_answers_array as $answer ) {
2318
-  				if( ! in_array( $answer, $question_right_answers ) ) {
2317
+  			foreach ($question_right_answers_array as $answer) {
2318
+  				if ( ! in_array($answer, $question_right_answers)) {
2319 2319
   					$question_right_answers[] = $answer;
2320 2320
   				}
2321 2321
   			}
2322
-  			if ( 0 < count($question_right_answers) ) {
2322
+  			if (0 < count($question_right_answers)) {
2323 2323
   				$question_right_answer = $question_right_answers;
2324 2324
   			}
2325 2325
   		} // End If Statement
2326
-  		$right_answer_count = count( $question_right_answer );
2326
+  		$right_answer_count = count($question_right_answer);
2327 2327
 
2328 2328
 		// Remove empty values and reindex the array
2329
-  		if ( is_array( $question_wrong_answers ) ) {
2330
-  			$question_wrong_answers_array = array_values( array_filter( $question_wrong_answers, 'strlen' ) );
2329
+  		if (is_array($question_wrong_answers)) {
2330
+  			$question_wrong_answers_array = array_values(array_filter($question_wrong_answers, 'strlen'));
2331 2331
   			$question_wrong_answers = array();
2332 2332
   		} // End If Statement
2333 2333
 
2334
-  		foreach( $question_wrong_answers_array as $answer ) {
2335
-  			if( ! in_array( $answer, $question_wrong_answers ) ) {
2334
+  		foreach ($question_wrong_answers_array as $answer) {
2335
+  			if ( ! in_array($answer, $question_wrong_answers)) {
2336 2336
   				$question_wrong_answers[] = $answer;
2337 2337
   			}
2338 2338
   		}
2339 2339
 
2340
-  		$wrong_answer_count = count( $question_wrong_answers );
2340
+  		$wrong_answer_count = count($question_wrong_answers);
2341 2341
 
2342 2342
   		// Only save if there is a valid title
2343
-  		if ( $post_title != '' ) {
2343
+  		if ($post_title != '') {
2344 2344
 
2345 2345
   			// Get Quiz ID for the question
2346 2346
   		    $quiz_id = $data['quiz_id'];
@@ -2350,86 +2350,86 @@  discard block
 block discarded – undo
2350 2350
 
2351 2351
   		    // Get answer order
2352 2352
   		    $answer_order = '';
2353
-  		    if( isset( $data['answer_order'] ) ) {
2353
+  		    if (isset($data['answer_order'])) {
2354 2354
 				$answer_order = $data['answer_order'];
2355 2355
 			}
2356 2356
 
2357 2357
 			// Get random order selection
2358 2358
 			$random_order = 'no';
2359
-			if( isset( $data['random_order'] ) ) {
2359
+			if (isset($data['random_order'])) {
2360 2360
 				$random_order = $data['random_order'];
2361 2361
 			}
2362 2362
 
2363 2363
   		    // Insert or Update the question
2364
-  		    if ( 0 < $question_id ) {
2364
+  		    if (0 < $question_id) {
2365 2365
 
2366
-  		    	$post_type_args[ 'ID' ] = $question_id;
2367
-		    	$question_id = wp_update_post( $post_type_args );
2366
+  		    	$post_type_args['ID'] = $question_id;
2367
+		    	$question_id = wp_update_post($post_type_args);
2368 2368
 
2369 2369
 		    	// Update poast meta
2370
-		    	if( 'quiz' == $context ) {
2371
-		    		$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2372
-		    		if( ! in_array( $quiz_id, $quizzes ) ) {
2373
-			    		add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2370
+		    	if ('quiz' == $context) {
2371
+		    		$quizzes = get_post_meta($question_id, '_quiz_id', false);
2372
+		    		if ( ! in_array($quiz_id, $quizzes)) {
2373
+			    		add_post_meta($question_id, '_quiz_id', $quiz_id, false);
2374 2374
 			    	}
2375 2375
 		    	}
2376 2376
 
2377
-		    	update_post_meta( $question_id, '_question_grade', $question_grade );
2378
-		    	update_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2379
-		    	update_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2380
-		    	update_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2381
-		    	update_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2382
-		    	update_post_meta( $question_id, '_question_media', $question_media );
2383
-		    	update_post_meta( $question_id, '_answer_order', $answer_order );
2384
-		    	update_post_meta( $question_id, '_random_order', $random_order );
2385
-
2386
-		    	if( 'quiz' != $context ) {
2387
-		    		wp_set_post_terms( $question_id, array( $question_type ), 'question-type', false );
2377
+		    	update_post_meta($question_id, '_question_grade', $question_grade);
2378
+		    	update_post_meta($question_id, '_question_right_answer', $question_right_answer);
2379
+		    	update_post_meta($question_id, '_right_answer_count', $right_answer_count);
2380
+		    	update_post_meta($question_id, '_question_wrong_answers', $question_wrong_answers);
2381
+		    	update_post_meta($question_id, '_wrong_answer_count', $wrong_answer_count);
2382
+		    	update_post_meta($question_id, '_question_media', $question_media);
2383
+		    	update_post_meta($question_id, '_answer_order', $answer_order);
2384
+		    	update_post_meta($question_id, '_random_order', $random_order);
2385
+
2386
+		    	if ('quiz' != $context) {
2387
+		    		wp_set_post_terms($question_id, array($question_type), 'question-type', false);
2388 2388
 		    	}
2389 2389
 				// Don't store empty value, no point
2390
-				if ( !empty($answer_feedback) ) {
2391
-					update_post_meta( $question_id, '_answer_feedback', $answer_feedback );
2390
+				if ( ! empty($answer_feedback)) {
2391
+					update_post_meta($question_id, '_answer_feedback', $answer_feedback);
2392 2392
 				}
2393 2393
 
2394 2394
 		    } else {
2395
-				$question_id = wp_insert_post( $post_type_args );
2396
-				$question_count = intval( $data['question_count'] );
2395
+				$question_id = wp_insert_post($post_type_args);
2396
+				$question_count = intval($data['question_count']);
2397 2397
 				++$question_count;
2398 2398
 
2399 2399
 				// Set post meta
2400
-				if( 'quiz' == $context ) {
2401
-					add_post_meta( $question_id, '_quiz_id', $quiz_id, false );
2402
-					$lesson_id = get_post_meta( $quiz_id, '_quiz_lesson', true );
2403
-					update_post_meta( $lesson_id, '_quiz_has_questions', '1' );
2400
+				if ('quiz' == $context) {
2401
+					add_post_meta($question_id, '_quiz_id', $quiz_id, false);
2402
+					$lesson_id = get_post_meta($quiz_id, '_quiz_lesson', true);
2403
+					update_post_meta($lesson_id, '_quiz_has_questions', '1');
2404 2404
 				}
2405 2405
 
2406
-				if( isset( $question_grade ) ) {
2407
-		    		add_post_meta( $question_id, '_question_grade', $question_grade );
2406
+				if (isset($question_grade)) {
2407
+		    		add_post_meta($question_id, '_question_grade', $question_grade);
2408 2408
 		    	}
2409
-		    	add_post_meta( $question_id, '_question_right_answer', $question_right_answer );
2410
-		    	add_post_meta( $question_id, '_right_answer_count', $right_answer_count );
2411
-		    	add_post_meta( $question_id, '_question_wrong_answers', $question_wrong_answers );
2412
-		    	add_post_meta( $question_id, '_wrong_answer_count', $wrong_answer_count );
2413
-		    	add_post_meta( $question_id, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $question_count );
2414
-		    	add_post_meta( $question_id, '_question_media', $question_media );
2415
-		    	add_post_meta( $question_id, '_answer_order', $answer_order );
2416
-		    	add_post_meta( $question_id, '_random_order', $random_order );
2409
+		    	add_post_meta($question_id, '_question_right_answer', $question_right_answer);
2410
+		    	add_post_meta($question_id, '_right_answer_count', $right_answer_count);
2411
+		    	add_post_meta($question_id, '_question_wrong_answers', $question_wrong_answers);
2412
+		    	add_post_meta($question_id, '_wrong_answer_count', $wrong_answer_count);
2413
+		    	add_post_meta($question_id, '_quiz_question_order'.$quiz_id, $quiz_id.'000'.$question_count);
2414
+		    	add_post_meta($question_id, '_question_media', $question_media);
2415
+		    	add_post_meta($question_id, '_answer_order', $answer_order);
2416
+		    	add_post_meta($question_id, '_random_order', $random_order);
2417 2417
 				// Don't store empty value, no point
2418
-				if ( !empty($answer_feedback) ) {
2419
-					add_post_meta( $question_id, '_answer_feedback', $answer_feedback );
2418
+				if ( ! empty($answer_feedback)) {
2419
+					add_post_meta($question_id, '_answer_feedback', $answer_feedback);
2420 2420
 				}
2421 2421
 
2422 2422
 		    	// Set the post terms for question-type
2423
-			    wp_set_post_terms( $question_id, array( $question_type ), 'question-type' );
2423
+			    wp_set_post_terms($question_id, array($question_type), 'question-type');
2424 2424
 
2425
-			    if( $question_category ) {
2426
-	    			wp_set_post_terms( $question_id, array( $question_category ), 'question-category' );
2425
+			    if ($question_category) {
2426
+	    			wp_set_post_terms($question_id, array($question_category), 'question-category');
2427 2427
 	    		}
2428 2428
 
2429 2429
 		    } // End If Statement
2430 2430
 		} // End If Statement
2431 2431
   		// Check that the insert or update saved by testing the post id
2432
-  		if ( 0 < $question_id ) {
2432
+  		if (0 < $question_id) {
2433 2433
   			$return = $question_id;
2434 2434
   		} // End If Statement
2435 2435
   		return $return;
@@ -2443,20 +2443,20 @@  discard block
 block discarded – undo
2443 2443
 	 * @param array $data (default: array())
2444 2444
 	 * @return boolean
2445 2445
 	 */
2446
-	private function lesson_delete_question( $data = array() ) {
2446
+	private function lesson_delete_question($data = array()) {
2447 2447
 
2448 2448
 		// Get which question to delete
2449 2449
 		$question_id = 0;
2450
-		if ( isset( $data[ 'question_id' ] ) && ( 0 < absint( $data[ 'question_id' ] ) ) ) {
2451
-			$question_id = absint( $data[ 'question_id' ] );
2450
+		if (isset($data['question_id']) && (0 < absint($data['question_id']))) {
2451
+			$question_id = absint($data['question_id']);
2452 2452
 		} // End If Statement
2453 2453
 		// Delete the question
2454
-		if ( 0 < $question_id ) {
2455
-			$quizzes = get_post_meta( $question_id, '_quiz_id', false );
2454
+		if (0 < $question_id) {
2455
+			$quizzes = get_post_meta($question_id, '_quiz_id', false);
2456 2456
 
2457
-			foreach( $quizzes as $quiz_id ) {
2458
-				if( $quiz_id == $data['quiz_id'] ) {
2459
-					delete_post_meta( $question_id, '_quiz_id', $quiz_id );
2457
+			foreach ($quizzes as $quiz_id) {
2458
+				if ($quiz_id == $data['quiz_id']) {
2459
+					delete_post_meta($question_id, '_quiz_id', $quiz_id);
2460 2460
 				}
2461 2461
 			}
2462 2462
 
@@ -2475,9 +2475,9 @@  discard block
 block discarded – undo
2475 2475
 	public function lesson_complexities() {
2476 2476
 
2477 2477
 		// V2 - make filter for this array
2478
-        $lesson_complexities = array( 	'easy' => __( 'Easy', 'woothemes-sensei' ),
2479
-									'std' => __( 'Standard', 'woothemes-sensei' ),
2480
-									'hard' => __( 'Hard', 'woothemes-sensei' )
2478
+        $lesson_complexities = array('easy' => __('Easy', 'woothemes-sensei'),
2479
+									'std' => __('Standard', 'woothemes-sensei'),
2480
+									'hard' => __('Hard', 'woothemes-sensei')
2481 2481
 									);
2482 2482
 
2483 2483
 		return $lesson_complexities;
@@ -2492,9 +2492,9 @@  discard block
 block discarded – undo
2492 2492
 	 * @param string $post_status (default: 'publish')
2493 2493
 	 * @return int
2494 2494
 	 */
2495
-	public function lesson_count( $post_status = 'publish', $course_id = false ) {
2495
+	public function lesson_count($post_status = 'publish', $course_id = false) {
2496 2496
 
2497
-		$post_args = array(	'post_type'         => 'lesson',
2497
+		$post_args = array('post_type'         => 'lesson',
2498 2498
 							'posts_per_page'    => -1,
2499 2499
 //							'orderby'           => 'menu_order date',
2500 2500
 //							'order'             => 'ASC',
@@ -2502,7 +2502,7 @@  discard block
 block discarded – undo
2502 2502
 							'suppress_filters'  => 0,
2503 2503
 							'fields'            => 'ids',
2504 2504
 							);
2505
-		if( $course_id ) {
2505
+		if ($course_id) {
2506 2506
 			$post_args['meta_query'][] = array(
2507 2507
 				'key' => '_lesson_course',
2508 2508
 				'value' => $course_id,
@@ -2519,10 +2519,10 @@  discard block
 block discarded – undo
2519 2519
 
2520 2520
 		// Allow WP to generate the complex final query, just shortcut to only do an overall count
2521 2521
 //		add_filter( 'posts_clauses', array( 'WooThemes_Sensei_Utils', 'get_posts_count_only_filter' ) );
2522
-		$lessons_query = new WP_Query( apply_filters( 'sensei_lesson_count', $post_args ) );
2522
+		$lessons_query = new WP_Query(apply_filters('sensei_lesson_count', $post_args));
2523 2523
 //		remove_filter( 'posts_clauses', array( 'WooThemes_Sensei_Utils', 'get_posts_count_only_filter' ) );
2524 2524
 
2525
-		return count( $lessons_query->posts );
2525
+		return count($lessons_query->posts);
2526 2526
 	} // End lesson_count()
2527 2527
 
2528 2528
 
@@ -2535,11 +2535,11 @@  discard block
 block discarded – undo
2535 2535
 	 * @param string $fields (default: 'ids')
2536 2536
 	 * @return int $quiz_id
2537 2537
 	 */
2538
-	public function lesson_quizzes( $lesson_id = 0, $post_status = 'any', $fields = 'ids' ) {
2538
+	public function lesson_quizzes($lesson_id = 0, $post_status = 'any', $fields = 'ids') {
2539 2539
 
2540 2540
 		$posts_array = array();
2541 2541
 
2542
-		$post_args = array(	'post_type' 		=> 'quiz',
2542
+		$post_args = array('post_type' 		=> 'quiz',
2543 2543
 							'posts_per_page' 		=> 1,
2544 2544
 							'orderby'         	=> 'title',
2545 2545
     						'order'           	=> 'DESC',
@@ -2548,7 +2548,7 @@  discard block
 block discarded – undo
2548 2548
 							'suppress_filters' 	=> 0,
2549 2549
 							'fields'            => $fields
2550 2550
 							);
2551
-		$posts_array = get_posts( $post_args );
2551
+		$posts_array = get_posts($post_args);
2552 2552
         $quiz_id = array_shift($posts_array);
2553 2553
 
2554 2554
 		return $quiz_id;
@@ -2571,37 +2571,37 @@  discard block
 block discarded – undo
2571 2571
      *
2572 2572
 	 * @return array $questions { $question type WP_Post }
2573 2573
 	 */
2574
-	public function lesson_quiz_questions( $quiz_id = 0, $post_status = 'any', $orderby = 'meta_value_num title', $order = 'ASC' ) {
2574
+	public function lesson_quiz_questions($quiz_id = 0, $post_status = 'any', $orderby = 'meta_value_num title', $order = 'ASC') {
2575 2575
 
2576 2576
 		$quiz_id = (string) $quiz_id;
2577
-        $quiz_lesson_id = Sensei()->quiz->get_lesson_id( $quiz_id );
2577
+        $quiz_lesson_id = Sensei()->quiz->get_lesson_id($quiz_id);
2578 2578
 
2579 2579
         // setup the user id
2580
-        if( is_admin() ) {
2581
-            $user_id = isset( $_GET['user'] ) ? $_GET['user'] : '' ;
2580
+        if (is_admin()) {
2581
+            $user_id = isset($_GET['user']) ? $_GET['user'] : '';
2582 2582
         } else {
2583 2583
             $user_id = get_current_user_id();
2584 2584
         }
2585 2585
 
2586 2586
         // get the users current status on the lesson
2587
-        $user_lesson_status = Sensei_Utils::user_lesson_status( $quiz_lesson_id, $user_id );
2587
+        $user_lesson_status = Sensei_Utils::user_lesson_status($quiz_lesson_id, $user_id);
2588 2588
 
2589 2589
 		// Set the default question order if it has not already been set for this quiz
2590
-		$this->set_default_question_order( $quiz_id );
2590
+		$this->set_default_question_order($quiz_id);
2591 2591
 
2592 2592
 		// If viewing quiz on the frontend then show questions in random order if set
2593
-		if ( ! is_admin() ) {
2594
-			$random_order = get_post_meta( $quiz_id, '_random_question_order', true );
2595
-			if( $random_order && $random_order == 'yes' ) {
2593
+		if ( ! is_admin()) {
2594
+			$random_order = get_post_meta($quiz_id, '_random_question_order', true);
2595
+			if ($random_order && $random_order == 'yes') {
2596 2596
 				$orderby = 'rand';
2597 2597
 			}
2598 2598
 		}
2599 2599
 
2600 2600
 		// Get all questions and multiple questions
2601 2601
 		$question_query_args = array(
2602
-			'post_type' 		=> array( 'question', 'multiple_question' ),
2602
+			'post_type' 		=> array('question', 'multiple_question'),
2603 2603
 			'posts_per_page' 	=> -1,
2604
-			'meta_key'        	=> '_quiz_question_order' . $quiz_id,
2604
+			'meta_key'        	=> '_quiz_question_order'.$quiz_id,
2605 2605
 			'orderby'         	=> $orderby,
2606 2606
 			'order'           	=> $order,
2607 2607
 			'meta_query'		=> array(
@@ -2615,7 +2615,7 @@  discard block
 block discarded – undo
2615 2615
 		);
2616 2616
 
2617 2617
         //query the questions
2618
-		$questions_query = new WP_Query( $question_query_args );
2618
+		$questions_query = new WP_Query($question_query_args);
2619 2619
 
2620 2620
         // Set return array to initially include all items
2621 2621
         $questions = $questions_query->posts;
@@ -2625,20 +2625,20 @@  discard block
 block discarded – undo
2625 2625
 
2626 2626
 		// If viewing quiz on frontend or in grading then only single questions must be shown
2627 2627
 		$selected_questions = false;
2628
-		if( ! is_admin() || ( is_admin() && isset( $_GET['page'] ) && 'sensei_grading' == $_GET['page'] && isset( $_GET['user'] ) && isset( $_GET['quiz_id'] ) ) ) {
2628
+		if ( ! is_admin() || (is_admin() && isset($_GET['page']) && 'sensei_grading' == $_GET['page'] && isset($_GET['user']) && isset($_GET['quiz_id']))) {
2629 2629
 
2630 2630
 			// Fetch the questions that the user was asked in their quiz if they have already completed it
2631
-			$questions_asked_string = !empty( $user_lesson_status->comment_ID) ? get_comment_meta( $user_lesson_status->comment_ID, 'questions_asked', true ) : false;
2632
-			if( !empty($questions_asked_string) ) {
2631
+			$questions_asked_string = ! empty($user_lesson_status->comment_ID) ? get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true) : false;
2632
+			if ( ! empty($questions_asked_string)) {
2633 2633
 
2634
-				$selected_questions = explode( ',', $questions_asked_string );
2634
+				$selected_questions = explode(',', $questions_asked_string);
2635 2635
 
2636 2636
 				// Fetch each question in the order in which they were asked
2637 2637
 				$questions = array();
2638
-				foreach( $selected_questions as $question_id ) {
2639
-					if( ! $question_id ) continue;
2640
-					$question = get_post( $question_id );
2641
-					if( ! isset( $question ) || ! isset( $question->ID ) ) continue;
2638
+				foreach ($selected_questions as $question_id) {
2639
+					if ( ! $question_id) continue;
2640
+					$question = get_post($question_id);
2641
+					if ( ! isset($question) || ! isset($question->ID)) continue;
2642 2642
 					$questions[] = $question;
2643 2643
 				}
2644 2644
 
@@ -2650,24 +2650,24 @@  discard block
 block discarded – undo
2650 2650
 				$existing_questions = array();
2651 2651
 
2652 2652
 				// Set array of questions that already exist so we can prevent duplicates from appearing
2653
-				foreach( $questions_array as $question ) {
2654
-					if( 'question' != $question->post_type ) continue;
2653
+				foreach ($questions_array as $question) {
2654
+					if ('question' != $question->post_type) continue;
2655 2655
 					$existing_questions[] = $question->ID;
2656 2656
 				}
2657 2657
 
2658 2658
 				// Include only single questions in the return array
2659 2659
 				$questions_loop = $questions_array;
2660 2660
 				$questions_array = array();
2661
-				foreach( $questions_loop as $k => $question ) {
2661
+				foreach ($questions_loop as $k => $question) {
2662 2662
 
2663 2663
 					// If this is a single question then include it
2664
-					if( 'question' == $question->post_type ) {
2664
+					if ('question' == $question->post_type) {
2665 2665
 						$questions_array[] = $question;
2666 2666
 					} else {
2667 2667
 
2668 2668
 						// If this is a multiple question then get the specified amount of questions from the specified category
2669
-						$question_cat = intval( get_post_meta( $question->ID, 'category', true ) );
2670
-						$question_number = intval( get_post_meta( $question->ID, 'number', true ) );
2669
+						$question_cat = intval(get_post_meta($question->ID, 'category', true));
2670
+						$question_number = intval(get_post_meta($question->ID, 'number', true));
2671 2671
 
2672 2672
 						$qargs = array(
2673 2673
 							'post_type' 		=> 'question',
@@ -2684,14 +2684,14 @@  discard block
 block discarded – undo
2684 2684
 							'suppress_filters' 	=> 0,
2685 2685
 							'post__not_in'		=> $existing_questions,
2686 2686
 						);
2687
-						$cat_questions = get_posts( $qargs );
2687
+						$cat_questions = get_posts($qargs);
2688 2688
 
2689 2689
 						// Merge results into return array
2690
-						$questions_array = array_merge( $questions_array, $cat_questions );
2690
+						$questions_array = array_merge($questions_array, $cat_questions);
2691 2691
 
2692 2692
 						// Add selected questions to existing questions array to prevent duplicates from being added
2693
-						foreach( $questions_array as $cat_question ) {
2694
-							if( in_array( $cat_question->ID, $existing_questions ) ) continue;
2693
+						foreach ($questions_array as $cat_question) {
2694
+							if (in_array($cat_question->ID, $existing_questions)) continue;
2695 2695
 							$existing_questions[] = $cat_question->ID;
2696 2696
 						}
2697 2697
 					}
@@ -2703,29 +2703,29 @@  discard block
 block discarded – undo
2703 2703
 		}
2704 2704
 
2705 2705
 		// If user has not already taken the quiz and a limited number of questions are to be shown, then show a random selection of the specified amount of questions
2706
-		if( ! $selected_questions ) {
2706
+		if ( ! $selected_questions) {
2707 2707
 
2708 2708
 			// Only limit questions like this on the frontend
2709
-			if( ! is_admin() ) {
2709
+			if ( ! is_admin()) {
2710 2710
 
2711 2711
 				// Get number of questions to show
2712
-				$show_questions = intval( get_post_meta( $quiz_id, '_show_questions', true ) );
2713
-				if( $show_questions ) {
2712
+				$show_questions = intval(get_post_meta($quiz_id, '_show_questions', true));
2713
+				if ($show_questions) {
2714 2714
 
2715 2715
 					// Get random set of array keys from selected questions array
2716
-					$selected_questions = array_rand( $questions_array, $show_questions );
2716
+					$selected_questions = array_rand($questions_array, $show_questions);
2717 2717
 
2718 2718
 					// Loop through all questions and pick the the ones to be shown based on the random key selection
2719 2719
 					$questions = array();
2720
-					foreach( $questions_array as $k => $question ) {
2720
+					foreach ($questions_array as $k => $question) {
2721 2721
 
2722 2722
 						// Random keys will always be an array, unless only one question is to be shown
2723
-						if( is_array( $selected_questions ) ) {
2724
-							if( in_array( $k, $selected_questions ) ) {
2723
+						if (is_array($selected_questions)) {
2724
+							if (in_array($k, $selected_questions)) {
2725 2725
 								$questions[] = $question;
2726 2726
 							}
2727
-						} elseif( 1 == $show_questions ) {
2728
-							if ( $selected_questions == $k ) {
2727
+						} elseif (1 == $show_questions) {
2728
+							if ($selected_questions == $k) {
2729 2729
 								$questions[] = $question;
2730 2730
 							}
2731 2731
 						}
@@ -2736,12 +2736,12 @@  discard block
 block discarded – undo
2736 2736
 
2737 2737
         // Save the questions that will be asked for the current user
2738 2738
         // this happens only once per user/quiz, unless the user resets the quiz
2739
-        if( ! is_admin() ){
2739
+        if ( ! is_admin()) {
2740 2740
 
2741
-            if( $user_lesson_status ) {
2741
+            if ($user_lesson_status) {
2742 2742
 
2743 2743
                 $questions_asked = get_comment_meta($user_lesson_status->comment_ID, 'questions_asked', true);
2744
-                if ( empty($questions_asked) && $user_lesson_status) {
2744
+                if (empty($questions_asked) && $user_lesson_status) {
2745 2745
 
2746 2746
                     $questions_asked = array();
2747 2747
                     foreach ($questions as $question) {
@@ -2764,7 +2764,7 @@  discard block
 block discarded – undo
2764 2764
          * @hooked Sensei_Teacher::allow_teacher_access_to_questions
2765 2765
          * @since 1.8.0
2766 2766
          */
2767
-		return apply_filters( 'sensei_lesson_quiz_questions', $questions,  $quiz_id  );
2767
+		return apply_filters('sensei_lesson_quiz_questions', $questions, $quiz_id);
2768 2768
 
2769 2769
 	} // End lesson_quiz_questions()
2770 2770
 
@@ -2772,13 +2772,13 @@  discard block
 block discarded – undo
2772 2772
 	 * Set the default quiz order
2773 2773
 	 * @param integer $quiz_id ID of quiz
2774 2774
 	 */
2775
-	public function set_default_question_order( $quiz_id = 0 ) {
2775
+	public function set_default_question_order($quiz_id = 0) {
2776 2776
 
2777
-		if( $quiz_id ) {
2777
+		if ($quiz_id) {
2778 2778
 
2779
-			$question_order = get_post_meta( $quiz_id, '_question_order', true );
2779
+			$question_order = get_post_meta($quiz_id, '_question_order', true);
2780 2780
 
2781
-			if( ! $question_order ) {
2781
+			if ( ! $question_order) {
2782 2782
 
2783 2783
 				$args = array(
2784 2784
 					'post_type' 		=> 'question',
@@ -2794,11 +2794,11 @@  discard block
 block discarded – undo
2794 2794
 					'post_status'		=> 'any',
2795 2795
 					'suppress_filters' 	=> 0
2796 2796
 				);
2797
-				$questions = get_posts( $args );
2797
+				$questions = get_posts($args);
2798 2798
 
2799 2799
 				$o = 1;
2800
-				foreach( $questions as $question ) {
2801
-					add_post_meta( $question->ID, '_quiz_question_order' . $quiz_id, $quiz_id . '000' . $o, true );
2800
+				foreach ($questions as $question) {
2801
+					add_post_meta($question->ID, '_quiz_question_order'.$quiz_id, $quiz_id.'000'.$o, true);
2802 2802
 					$o++;
2803 2803
 				}
2804 2804
 			}
@@ -2817,36 +2817,36 @@  discard block
 block discarded – undo
2817 2817
 	 * @param string $height (default: '100')
2818 2818
 	 * @return string
2819 2819
 	 */
2820
-	public function lesson_image( $lesson_id = 0, $width = '100', $height = '100', $widget = false ) {
2820
+	public function lesson_image($lesson_id = 0, $width = '100', $height = '100', $widget = false) {
2821 2821
 
2822 2822
 		$html = '';
2823 2823
 
2824 2824
 		// Get Width and Height settings
2825
-		if ( ( $width == '100' ) && ( $height == '100' ) ) {
2825
+		if (($width == '100') && ($height == '100')) {
2826 2826
 
2827
-			if ( is_singular( 'lesson' ) ) {
2827
+			if (is_singular('lesson')) {
2828 2828
 
2829
-				if ( ! $widget && ! Sensei()->settings->settings[ 'lesson_single_image_enable' ] ) {
2829
+				if ( ! $widget && ! Sensei()->settings->settings['lesson_single_image_enable']) {
2830 2830
 
2831 2831
 					return '';
2832 2832
 
2833 2833
 				} // End If Statement
2834 2834
 
2835 2835
 				$image_thumb_size = 'lesson_single_image';
2836
-				$dimensions = Sensei()->get_image_size( $image_thumb_size );
2836
+				$dimensions = Sensei()->get_image_size($image_thumb_size);
2837 2837
 				$width = $dimensions['width'];
2838 2838
 				$height = $dimensions['height'];
2839 2839
 				$crop = $dimensions['crop'];
2840 2840
 
2841 2841
 			} else {
2842 2842
 
2843
-				if ( ! $widget && ! Sensei()->settings->settings[ 'course_lesson_image_enable' ] ) {
2843
+				if ( ! $widget && ! Sensei()->settings->settings['course_lesson_image_enable']) {
2844 2844
 
2845 2845
 					return '';
2846 2846
 				} // End If Statement
2847 2847
 
2848 2848
 				$image_thumb_size = 'lesson_archive_image';
2849
-				$dimensions = Sensei()->get_image_size( $image_thumb_size );
2849
+				$dimensions = Sensei()->get_image_size($image_thumb_size);
2850 2850
 				$width = $dimensions['width'];
2851 2851
 				$height = $dimensions['height'];
2852 2852
 				$crop = $dimensions['crop'];
@@ -2857,23 +2857,23 @@  discard block
 block discarded – undo
2857 2857
 
2858 2858
 		$img_url = '';
2859 2859
 
2860
-		if ( has_post_thumbnail( $lesson_id ) ) {
2860
+		if (has_post_thumbnail($lesson_id)) {
2861 2861
 
2862 2862
    			// Get Featured Image
2863
-   			$img_url = get_the_post_thumbnail( $lesson_id, array( $width, $height ), array( 'class' => 'woo-image thumbnail alignleft') );
2863
+   			$img_url = get_the_post_thumbnail($lesson_id, array($width, $height), array('class' => 'woo-image thumbnail alignleft'));
2864 2864
 
2865 2865
  		} else {
2866 2866
 
2867 2867
  			// Display Image Placeholder if none
2868
-			if ( Sensei()->settings->settings[ 'placeholder_images_enable' ] ) {
2868
+			if (Sensei()->settings->settings['placeholder_images_enable']) {
2869 2869
 
2870
-                $img_url = apply_filters( 'sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/' . $width . 'x' . $height . '" class="woo-image thumbnail alignleft" />' );
2870
+                $img_url = apply_filters('sensei_lesson_placeholder_image_url', '<img src="http://placehold.it/'.$width.'x'.$height.'" class="woo-image thumbnail alignleft" />');
2871 2871
 
2872 2872
 			} // End If Statement
2873 2873
 
2874 2874
 		} // End If Statement
2875 2875
 
2876
-		$html .= '<a href="' . get_permalink( $lesson_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $lesson_id ) ) . '">' . $img_url . '</a>';
2876
+		$html .= '<a href="'.get_permalink($lesson_id).'" title="'.esc_attr(get_post_field('post_title', $lesson_id)).'">'.$img_url.'</a>';
2877 2877
 
2878 2878
 		return $html;
2879 2879
 
@@ -2885,9 +2885,9 @@  discard block
 block discarded – undo
2885 2885
      * @since 1.9.0
2886 2886
      * @param integer $lesson_id
2887 2887
      */
2888
-    public static function the_lesson_image( $lesson_id = 0 ){
2888
+    public static function the_lesson_image($lesson_id = 0) {
2889 2889
 
2890
-        echo Sensei()->lesson->lesson_image( $lesson_id );
2890
+        echo Sensei()->lesson->lesson_image($lesson_id);
2891 2891
 
2892 2892
     }
2893 2893
 
@@ -2898,17 +2898,17 @@  discard block
 block discarded – undo
2898 2898
      * @param bool $add_p_tags should the excerpt be wrapped by calling wpautop()
2899 2899
 	 * @return string
2900 2900
 	 */
2901
-	public static function lesson_excerpt( $lesson = null, $add_p_tags = true ) {
2901
+	public static function lesson_excerpt($lesson = null, $add_p_tags = true) {
2902 2902
 		$html = '';
2903
-		if ( is_a( $lesson, 'WP_Post' ) && 'lesson' == $lesson->post_type ) {
2903
+		if (is_a($lesson, 'WP_Post') && 'lesson' == $lesson->post_type) {
2904 2904
 
2905
-            $excerpt =  $lesson->post_excerpt;
2905
+            $excerpt = $lesson->post_excerpt;
2906 2906
 
2907 2907
             // if $add_p_tags true wrap with <p> else return the excerpt as is
2908
-            $html =  $add_p_tags ? wpautop( $excerpt ) : $excerpt;
2908
+            $html = $add_p_tags ? wpautop($excerpt) : $excerpt;
2909 2909
 
2910 2910
 		}
2911
-		return apply_filters( 'sensei_lesson_excerpt', $html );
2911
+		return apply_filters('sensei_lesson_excerpt', $html);
2912 2912
 
2913 2913
 	} // End lesson_excerpt()
2914 2914
 
@@ -2921,20 +2921,20 @@  discard block
 block discarded – undo
2921 2921
      * @param int $lesson_id
2922 2922
      * @return int|bool $course_id or bool when nothing is found.
2923 2923
      */
2924
-     public function get_course_id( $lesson_id ){
2924
+     public function get_course_id($lesson_id) {
2925 2925
 
2926
-         if( ! isset( $lesson_id ) || empty( $lesson_id )
2927
-         ||  'lesson' != get_post_type( $lesson_id ) ){
2926
+         if ( ! isset($lesson_id) || empty($lesson_id)
2927
+         ||  'lesson' != get_post_type($lesson_id)) {
2928 2928
              return false;
2929 2929
          }
2930 2930
 
2931
-         $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true);
2931
+         $lesson_course_id = get_post_meta($lesson_id, '_lesson_course', true);
2932 2932
 
2933 2933
          // make sure the course id is valid
2934
-         if( empty( $lesson_course_id )
2935
-             || is_array( $lesson_course_id )
2936
-             || intval( $lesson_course_id ) < 1
2937
-             || 'course' != get_post_type( $lesson_course_id ) ){
2934
+         if (empty($lesson_course_id)
2935
+             || is_array($lesson_course_id)
2936
+             || intval($lesson_course_id) < 1
2937
+             || 'course' != get_post_type($lesson_course_id)) {
2938 2938
 
2939 2939
              return false;
2940 2940
 
@@ -2961,11 +2961,11 @@  discard block
 block discarded – undo
2961 2961
      * @param string $post_type
2962 2962
      * @return void
2963 2963
      */
2964
-    public function all_lessons_edit_fields( $column_name, $post_type ) {
2964
+    public function all_lessons_edit_fields($column_name, $post_type) {
2965 2965
 
2966 2966
         // only show these options ont he lesson post type edit screen
2967
-        if( 'lesson' != $post_type || 'lesson-course' != $column_name
2968
-            || ! current_user_can( 'edit_lessons' ) ) {
2967
+        if ('lesson' != $post_type || 'lesson-course' != $column_name
2968
+            || ! current_user_can('edit_lessons')) {
2969 2969
             return;
2970 2970
         }
2971 2971
 
@@ -2973,41 +2973,41 @@  discard block
 block discarded – undo
2973 2973
         <fieldset class="sensei-edit-field-set inline-edit-lesson">
2974 2974
             <div class="sensei-inline-edit-col column-<?php echo $column_name ?>">
2975 2975
                     <?php
2976
-                    echo '<h4>' . __('Lesson Information', 'woothemes-sensei') . '</h4>';
2976
+                    echo '<h4>'.__('Lesson Information', 'woothemes-sensei').'</h4>';
2977 2977
                     // create a nonce field to be  used as a security measure when saving the data
2978
-                    wp_nonce_field( 'bulk-edit-lessons', '_edit_lessons_nonce' );
2979
-                    wp_nonce_field( 'sensei-save-post-meta','woo_' . $this->token . '_nonce'  );
2978
+                    wp_nonce_field('bulk-edit-lessons', '_edit_lessons_nonce');
2979
+                    wp_nonce_field('sensei-save-post-meta', 'woo_'.$this->token.'_nonce');
2980 2980
 
2981 2981
                     // unchanged option - we need this in because
2982 2982
                     // the default option in bulk edit should not be empty. If it is
2983 2983
                     // the user will erase data they didn't want to touch.
2984
-                    $no_change_text = '-- ' . __('No Change', 'woothemes-sensei') . ' --';
2984
+                    $no_change_text = '-- '.__('No Change', 'woothemes-sensei').' --';
2985 2985
 
2986 2986
                     //
2987 2987
                     //course selection
2988 2988
                     //
2989
-                    $courses =  WooThemes_Sensei_Course::get_all_courses();
2989
+                    $courses = WooThemes_Sensei_Course::get_all_courses();
2990 2990
                     $course_options = array();
2991
-                    if ( count( $courses ) > 0 ) {
2992
-                        foreach ($courses as $course ){
2993
-                            $course_options[ $course->ID ] = get_the_title( $course->ID );
2991
+                    if (count($courses) > 0) {
2992
+                        foreach ($courses as $course) {
2993
+                            $course_options[$course->ID] = get_the_title($course->ID);
2994 2994
                         }
2995 2995
                     }
2996 2996
                     //pre-append the no change option
2997
-                    $course_options['-1']=  $no_change_text;
2998
-                    $course_attributes = array( 'name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course' , 'class'=>' ' );
2999
-                    $course_field =  Sensei_Utils::generate_drop_down( '-1', $course_options, $course_attributes );
3000
-                    echo $this->generate_all_lessons_edit_field( __('Lesson Course', 'woothemes-sensei'),   $course_field  );
2997
+                    $course_options['-1'] = $no_change_text;
2998
+                    $course_attributes = array('name'=> 'lesson_course', 'id'=>'sensei-edit-lesson-course', 'class'=>' ');
2999
+                    $course_field = Sensei_Utils::generate_drop_down('-1', $course_options, $course_attributes);
3000
+                    echo $this->generate_all_lessons_edit_field(__('Lesson Course', 'woothemes-sensei'), $course_field);
3001 3001
 
3002 3002
                     //
3003 3003
                     // lesson complexity selection
3004 3004
                     //
3005
-                    $lesson_complexities =  $this->lesson_complexities();
3005
+                    $lesson_complexities = $this->lesson_complexities();
3006 3006
                     //pre-append the no change option
3007
-                    $lesson_complexities['-1']=  $no_change_text;
3008
-                    $complexity_dropdown_attributes = array( 'name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity' , 'class'=>' ');
3009
-                    $complexity_filed =  Sensei_Utils::generate_drop_down( '-1', $lesson_complexities, $complexity_dropdown_attributes );
3010
-                    echo $this->generate_all_lessons_edit_field( __('Lesson Complexity', 'woothemes-sensei'),   $complexity_filed  );
3007
+                    $lesson_complexities['-1'] = $no_change_text;
3008
+                    $complexity_dropdown_attributes = array('name'=> 'lesson_complexity', 'id'=>'sensei-edit-lesson-complexity', 'class'=>' ');
3009
+                    $complexity_filed = Sensei_Utils::generate_drop_down('-1', $lesson_complexities, $complexity_dropdown_attributes);
3010
+                    echo $this->generate_all_lessons_edit_field(__('Lesson Complexity', 'woothemes-sensei'), $complexity_filed);
3011 3011
 
3012 3012
                     ?>
3013 3013
 
@@ -3020,34 +3020,34 @@  discard block
 block discarded – undo
3020 3020
                     //
3021 3021
                     $pass_required_options = array(
3022 3022
                         '-1' => $no_change_text,
3023
-                         '0' => __('No','woothemes'),
3024
-                         '1' => __('Yes','woothemes'),
3023
+                         '0' => __('No', 'woothemes'),
3024
+                         '1' => __('Yes', 'woothemes'),
3025 3025
                     );
3026 3026
 
3027
-                    $pass_required_select_attributes = array( 'name'=> 'pass_required',
3027
+                    $pass_required_select_attributes = array('name'=> 'pass_required',
3028 3028
                                                                 'id'=> 'sensei-edit-lesson-pass-required',
3029
-                                                                'class'=>' '   );
3030
-                    $require_pass_field =  Sensei_Utils::generate_drop_down( '-1', $pass_required_options, $pass_required_select_attributes, false );
3031
-                    echo $this->generate_all_lessons_edit_field( __('Pass required', 'woothemes-sensei'),   $require_pass_field  );
3029
+                                                                'class'=>' ');
3030
+                    $require_pass_field = Sensei_Utils::generate_drop_down('-1', $pass_required_options, $pass_required_select_attributes, false);
3031
+                    echo $this->generate_all_lessons_edit_field(__('Pass required', 'woothemes-sensei'), $require_pass_field);
3032 3032
 
3033 3033
                     //
3034 3034
                     // Quiz pass percentage
3035 3035
                     //
3036 3036
                     $quiz_pass_percentage_field = '<input name="quiz_passmark" id="sensei-edit-quiz-pass-percentage" type="number" />';
3037
-                    echo $this->generate_all_lessons_edit_field( __('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field  );
3037
+                    echo $this->generate_all_lessons_edit_field(__('Pass Percentage', 'woothemes-sensei'), $quiz_pass_percentage_field);
3038 3038
 
3039 3039
                     //
3040 3040
                     // Enable quiz reset button
3041 3041
                     //
3042 3042
                     $quiz_reset_select__options = array(
3043 3043
                         '-1' => $no_change_text,
3044
-                        '0' => __('No','woothemes'),
3045
-                        '1' => __('Yes','woothemes'),
3044
+                        '0' => __('No', 'woothemes'),
3045
+                        '1' => __('Yes', 'woothemes'),
3046 3046
                     );
3047 3047
                     $quiz_reset_name_id = 'sensei-edit-enable-quiz-reset';
3048
-                    $quiz_reset_select_attributes = array( 'name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ' );
3049
-                    $quiz_reset_field =  Sensei_Utils::generate_drop_down( '-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false );
3050
-                    echo $this->generate_all_lessons_edit_field( __('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field  );
3048
+                    $quiz_reset_select_attributes = array('name'=> 'enable_quiz_reset', 'id'=>$quiz_reset_name_id, 'class'=>' ');
3049
+                    $quiz_reset_field = Sensei_Utils::generate_drop_down('-1', $quiz_reset_select__options, $quiz_reset_select_attributes, false);
3050
+                    echo $this->generate_all_lessons_edit_field(__('Enable quiz reset button', 'woothemes-sensei'), $quiz_reset_field);
3051 3051
 
3052 3052
                     ?>
3053 3053
             </div>
@@ -3066,17 +3066,17 @@  discard block
 block discarded – undo
3066 3066
      * @param string $field type markup for the field that must be wrapped.
3067 3067
      * @return string $field_html
3068 3068
      */
3069
-    public function generate_all_lessons_edit_field( $title  ,$field ){
3069
+    public function generate_all_lessons_edit_field($title, $field) {
3070 3070
 
3071 3071
         $html = '';
3072 3072
         $html = '<div class="inline-edit-group" >';
3073
-        $html .=  '<span class="title">'. $title .'</span> ';
3073
+        $html .= '<span class="title">'.$title.'</span> ';
3074 3074
         $html .= '<span class="input-text-wrap">';
3075 3075
         $html .= $field;
3076 3076
         $html .= '</span>';
3077 3077
         $html .= '</label></div>';
3078 3078
 
3079
-        return $html ;
3079
+        return $html;
3080 3080
 
3081 3081
     }//end generate_all_lessons_edit_field
3082 3082
 
@@ -3090,48 +3090,48 @@  discard block
 block discarded – undo
3090 3090
     function save_all_lessons_edit_fields() {
3091 3091
 
3092 3092
         // verify all the data before attempting to save
3093
-        if( ! isset( $_POST['security'] ) || ! check_ajax_referer( 'bulk-edit-lessons', 'security' )
3094
-            ||  empty( $_POST[ 'post_ids' ] )  || ! is_array( $_POST[ 'post_ids' ] ) ) {
3093
+        if ( ! isset($_POST['security']) || ! check_ajax_referer('bulk-edit-lessons', 'security')
3094
+            ||  empty($_POST['post_ids']) || ! is_array($_POST['post_ids'])) {
3095 3095
             die();
3096 3096
         }
3097 3097
 
3098 3098
         // get our variables
3099
-        $new_course = sanitize_text_field(  $_POST['sensei_edit_lesson_course'] );
3100
-        $new_complexity = sanitize_text_field(  $_POST['sensei_edit_complexity'] );
3101
-        $new_pass_required = sanitize_text_field(  $_POST['sensei_edit_pass_required'] );
3102
-        $new_pass_percentage = sanitize_text_field(  $_POST['sensei_edit_pass_percentage'] );
3103
-        $new_enable_quiz_reset = sanitize_text_field(  $_POST['sensei_edit_enable_quiz_reset'] );
3099
+        $new_course = sanitize_text_field($_POST['sensei_edit_lesson_course']);
3100
+        $new_complexity = sanitize_text_field($_POST['sensei_edit_complexity']);
3101
+        $new_pass_required = sanitize_text_field($_POST['sensei_edit_pass_required']);
3102
+        $new_pass_percentage = sanitize_text_field($_POST['sensei_edit_pass_percentage']);
3103
+        $new_enable_quiz_reset = sanitize_text_field($_POST['sensei_edit_enable_quiz_reset']);
3104 3104
         // store the values for all selected posts
3105
-        foreach( $_POST[ 'post_ids' ] as $lesson_id ) {
3105
+        foreach ($_POST['post_ids'] as $lesson_id) {
3106 3106
 
3107 3107
             // get the quiz id needed for the quiz meta
3108
-            $quiz_id = Sensei()->lesson->lesson_quizzes( $lesson_id );
3108
+            $quiz_id = Sensei()->lesson->lesson_quizzes($lesson_id);
3109 3109
 
3110 3110
             // do not save the items if the value is -1 as this
3111 3111
             // means it was not changed
3112 3112
 
3113 3113
             // update lesson course
3114
-            if( -1 != $new_course ){
3115
-                update_post_meta( $lesson_id, '_lesson_course', $new_course );
3114
+            if ( -1 != $new_course ) {
3115
+                update_post_meta($lesson_id, '_lesson_course', $new_course);
3116 3116
             }
3117 3117
             // update lesson complexity
3118
-            if( -1 != $new_complexity ){
3119
-                update_post_meta( $lesson_id, '_lesson_complexity', $new_complexity );
3118
+            if ( -1 != $new_complexity ) {
3119
+                update_post_meta($lesson_id, '_lesson_complexity', $new_complexity);
3120 3120
             }
3121 3121
 
3122 3122
             // Quiz Related settings
3123
-            if( isset( $quiz_id) && 0 < intval( $quiz_id ) ) {
3123
+            if (isset($quiz_id) && 0 < intval($quiz_id)) {
3124 3124
 
3125 3125
                 // update pass required
3126 3126
                 if (-1 != $new_pass_required) {
3127 3127
 
3128
-                    $checked = $new_pass_required  ? 'on' : '';
3128
+                    $checked = $new_pass_required ? 'on' : '';
3129 3129
                     update_post_meta($quiz_id, '_pass_required', $checked);
3130
-                    unset( $checked );
3130
+                    unset($checked);
3131 3131
                 }
3132 3132
 
3133 3133
                 // update pass percentage
3134
-                if( !empty( $new_pass_percentage) && is_numeric( $new_pass_percentage ) ){
3134
+                if ( ! empty($new_pass_percentage) && is_numeric($new_pass_percentage)) {
3135 3135
 
3136 3136
                         update_post_meta($quiz_id, '_quiz_passmark', $new_pass_percentage);
3137 3137
 
@@ -3142,9 +3142,9 @@  discard block
 block discarded – undo
3142 3142
                 //
3143 3143
                 if (-1 != $new_enable_quiz_reset ) {
3144 3144
 
3145
-                    $checked = $new_enable_quiz_reset ? 'on' : ''  ;
3145
+                    $checked = $new_enable_quiz_reset ? 'on' : '';
3146 3146
                     update_post_meta($quiz_id, '_enable_quiz_reset', $checked);
3147
-                    unset( $checked );
3147
+                    unset($checked);
3148 3148
 
3149 3149
                 }
3150 3150
 
@@ -3168,31 +3168,31 @@  discard block
 block discarded – undo
3168 3168
      * @since 1.8.0
3169 3169
      * @return void
3170 3170
      */
3171
-    public function set_quick_edit_admin_defaults( $column_name, $post_id ){
3171
+    public function set_quick_edit_admin_defaults($column_name, $post_id) {
3172 3172
 
3173
-        if( 'lesson-course' != $column_name ){
3173
+        if ('lesson-course' != $column_name) {
3174 3174
             return;
3175 3175
         }
3176 3176
         // load the script
3177
-        $suffix = defined( 'SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
3178
-        wp_enqueue_script( 'sensei-lesson-quick-edit', Sensei()->plugin_url . 'assets/js/admin/lesson-quick-edit' . $suffix . '.js', array( 'jquery' ), Sensei()->version, true );
3177
+        $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
3178
+        wp_enqueue_script('sensei-lesson-quick-edit', Sensei()->plugin_url.'assets/js/admin/lesson-quick-edit'.$suffix.'.js', array('jquery'), Sensei()->version, true);
3179 3179
 
3180 3180
         // setup the values for all meta fields
3181 3181
         $data = array();
3182
-        foreach( $this->meta_fields as $field ){
3182
+        foreach ($this->meta_fields as $field) {
3183 3183
 
3184
-            $data[$field] =  get_post_meta( $post_id, '_'.$field, true );
3184
+            $data[$field] = get_post_meta($post_id, '_'.$field, true);
3185 3185
 
3186 3186
         }
3187 3187
         // add quiz meta fields
3188
-        $quiz_id = Sensei()->lesson->lesson_quizzes( $post_id );
3189
-        foreach( Sensei()->quiz->meta_fields as $field ){
3188
+        $quiz_id = Sensei()->lesson->lesson_quizzes($post_id);
3189
+        foreach (Sensei()->quiz->meta_fields as $field) {
3190 3190
 
3191
-            $data[$field] =  get_post_meta( $quiz_id, '_'.$field, true );
3191
+            $data[$field] = get_post_meta($quiz_id, '_'.$field, true);
3192 3192
 
3193 3193
         }
3194 3194
 
3195
-        wp_localize_script( 'sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data );
3195
+        wp_localize_script('sensei-lesson-quick-edit', 'sensei_quick_edit_'.$post_id, $data);
3196 3196
 
3197 3197
     }// end quick edit admin defaults
3198 3198
 
@@ -3205,19 +3205,19 @@  discard block
 block discarded – undo
3205 3205
      * @param array $classes
3206 3206
      * @return array $classes
3207 3207
      */
3208
-    public static function single_course_lessons_classes( $classes ){
3208
+    public static function single_course_lessons_classes($classes) {
3209 3209
 
3210
-        if(  is_singular('course') ){
3210
+        if (is_singular('course')) {
3211 3211
 
3212 3212
             global $post;
3213 3213
             $course_id = $post->ID;
3214 3214
 
3215
-            $lesson_classes = array( 'course', 'post' );
3216
-            if ( is_user_logged_in() ) {
3215
+            $lesson_classes = array('course', 'post');
3216
+            if (is_user_logged_in()) {
3217 3217
 
3218 3218
                 // Check if Lesson is complete
3219
-                $single_lesson_complete = Sensei_Utils::user_completed_lesson( get_the_ID(), get_current_user_id() );
3220
-                if ( $single_lesson_complete ) {
3219
+                $single_lesson_complete = Sensei_Utils::user_completed_lesson(get_the_ID(), get_current_user_id());
3220
+                if ($single_lesson_complete) {
3221 3221
 
3222 3222
                     $lesson_classes[] = 'lesson-completed';
3223 3223
 
@@ -3225,14 +3225,14 @@  discard block
 block discarded – undo
3225 3225
 
3226 3226
             } // End If Statement
3227 3227
 
3228
-            $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3229
-            if (  Sensei_Utils::is_preview_lesson( get_the_ID() ) && !$is_user_taking_course ) {
3228
+            $is_user_taking_course = Sensei_Utils::user_started_course($course_id, get_current_user_id());
3229
+            if (Sensei_Utils::is_preview_lesson(get_the_ID()) && ! $is_user_taking_course) {
3230 3230
 
3231 3231
                 $lesson_classes[] = 'lesson-preview';
3232 3232
 
3233 3233
             }
3234 3234
 
3235
-            $classes = array_merge( $classes, $lesson_classes  );
3235
+            $classes = array_merge($classes, $lesson_classes);
3236 3236
 
3237 3237
         }
3238 3238
 
@@ -3246,56 +3246,56 @@  discard block
 block discarded – undo
3246 3246
      * @since 1.9.0
3247 3247
      * @param $lesson_id
3248 3248
      */
3249
-    public static function the_lesson_meta( $lesson_id ){
3249
+    public static function the_lesson_meta($lesson_id) {
3250 3250
 
3251 3251
         global $wp_query;
3252 3252
         $loop_lesson_number = $wp_query->current_post + 1;
3253 3253
 
3254
-        $course_id = Sensei()->lesson->get_course_id( $lesson_id );
3254
+        $course_id = Sensei()->lesson->get_course_id($lesson_id);
3255 3255
         $single_lesson_complete = false;
3256
-        $is_user_taking_course = Sensei_Utils::user_started_course( $course_id, get_current_user_id() );
3256
+        $is_user_taking_course = Sensei_Utils::user_started_course($course_id, get_current_user_id());
3257 3257
 
3258 3258
         // Get Lesson data
3259 3259
         $complexity_array = Sensei()->lesson->lesson_complexities();
3260 3260
 
3261
-        $lesson_complexity = get_post_meta( $lesson_id, '_lesson_complexity', true );
3262
-        if ( '' != $lesson_complexity ) {
3261
+        $lesson_complexity = get_post_meta($lesson_id, '_lesson_complexity', true);
3262
+        if ('' != $lesson_complexity) {
3263 3263
 
3264 3264
             $lesson_complexity = $complexity_array[$lesson_complexity];
3265 3265
 
3266 3266
         }
3267
-        $user_info = get_userdata( absint( get_post()->post_author ) );
3268
-        $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id);
3267
+        $user_info = get_userdata(absint(get_post()->post_author));
3268
+        $is_preview = Sensei_Utils::is_preview_lesson($lesson_id);
3269 3269
         $preview_label = '';
3270
-        if ( $is_preview && !$is_user_taking_course ) {
3270
+        if ($is_preview && ! $is_user_taking_course) {
3271 3271
 
3272
-            $preview_label = Sensei()->frontend->sensei_lesson_preview_title_text( $lesson_id);
3273
-            $preview_label = '<span class="preview-heading">' . $preview_label . '</span>';
3272
+            $preview_label = Sensei()->frontend->sensei_lesson_preview_title_text($lesson_id);
3273
+            $preview_label = '<span class="preview-heading">'.$preview_label.'</span>';
3274 3274
 
3275 3275
         }
3276 3276
 
3277 3277
 
3278
-        $count_markup= '';
3278
+        $count_markup = '';
3279 3279
         /**
3280 3280
          * Filter for if you want the $lesson_count to show next to the lesson.
3281 3281
          *
3282 3282
          * @since 1.0
3283 3283
          * @param bool default false.
3284 3284
          */
3285
-        if( apply_filters( 'sensei_show_lesson_numbers', false ) ) {
3285
+        if (apply_filters('sensei_show_lesson_numbers', false)) {
3286 3286
 
3287
-            $count_markup =  '<span class="lesson-number">' . $loop_lesson_number. '</span>';
3287
+            $count_markup = '<span class="lesson-number">'.$loop_lesson_number.'</span>';
3288 3288
 
3289 3289
         }
3290 3290
 
3291
-        $heading_link_title = sprintf( __( 'Start %s', 'woothemes-sensei' ), get_the_title( $lesson_id ) );
3291
+        $heading_link_title = sprintf(__('Start %s', 'woothemes-sensei'), get_the_title($lesson_id));
3292 3292
 
3293 3293
         ?>
3294 3294
         <header>
3295 3295
             <h2>
3296
-                <a href="<?php echo esc_url_raw( get_permalink( $lesson_id ) ) ?>"
3297
-                   title="<?php esc_attr_e( $heading_link_title ) ?>" >
3298
-                    <?php echo $count_markup. get_the_title( $lesson_id ) . $preview_label; ?>
3296
+                <a href="<?php echo esc_url_raw(get_permalink($lesson_id)) ?>"
3297
+                   title="<?php esc_attr_e($heading_link_title) ?>" >
3298
+                    <?php echo $count_markup.get_the_title($lesson_id).$preview_label; ?>
3299 3299
                 </a>
3300 3300
             </h2>
3301 3301
 
@@ -3304,33 +3304,33 @@  discard block
 block discarded – undo
3304 3304
                 <?php
3305 3305
 
3306 3306
                 $meta_html = '';
3307
-                $user_lesson_status = Sensei_Utils::user_lesson_status( get_the_ID(), get_current_user_id() );
3307
+                $user_lesson_status = Sensei_Utils::user_lesson_status(get_the_ID(), get_current_user_id());
3308 3308
 
3309
-                $lesson_length = get_post_meta( $lesson_id, '_lesson_length', true );
3310
-                if ( '' != $lesson_length ) {
3309
+                $lesson_length = get_post_meta($lesson_id, '_lesson_length', true);
3310
+                if ('' != $lesson_length) {
3311 3311
 
3312
-                    $meta_html .= '<span class="lesson-length">' .  __( 'Length: ', 'woothemes-sensei' ) . $lesson_length . __( ' minutes', 'woothemes-sensei' ) . '</span>';
3312
+                    $meta_html .= '<span class="lesson-length">'.__('Length: ', 'woothemes-sensei').$lesson_length.__(' minutes', 'woothemes-sensei').'</span>';
3313 3313
 
3314 3314
                 }
3315 3315
 
3316
-                if ( Sensei()->settings->get( 'lesson_author' ) ) {
3316
+                if (Sensei()->settings->get('lesson_author')) {
3317 3317
 
3318
-                    $meta_html .= '<span class="lesson-author">' .  __( 'Author: ', 'woothemes-sensei' ) . '<a href="' . get_author_posts_url( absint( get_post()->post_author ) ) . '" title="' . esc_attr( $user_info->display_name ) . '">' . esc_html( $user_info->display_name ) . '</a></span>';
3318
+                    $meta_html .= '<span class="lesson-author">'.__('Author: ', 'woothemes-sensei').'<a href="'.get_author_posts_url(absint(get_post()->post_author)).'" title="'.esc_attr($user_info->display_name).'">'.esc_html($user_info->display_name).'</a></span>';
3319 3319
 
3320 3320
                 } // End If Statement
3321
-                if ( '' != $lesson_complexity ) {
3321
+                if ('' != $lesson_complexity) {
3322 3322
 
3323
-                    $meta_html .= '<span class="lesson-complexity">' .  __( 'Complexity: ', 'woothemes-sensei' ) . $lesson_complexity .'</span>';
3323
+                    $meta_html .= '<span class="lesson-complexity">'.__('Complexity: ', 'woothemes-sensei').$lesson_complexity.'</span>';
3324 3324
 
3325 3325
                 }
3326 3326
 
3327
-                if ( $single_lesson_complete ) {
3327
+                if ($single_lesson_complete) {
3328 3328
 
3329
-                    $meta_html .= '<span class="lesson-status complete">' .__( 'Complete', 'woothemes-sensei' ) .'</span>';
3329
+                    $meta_html .= '<span class="lesson-status complete">'.__('Complete', 'woothemes-sensei').'</span>';
3330 3330
 
3331
-                } elseif ( $user_lesson_status ) {
3331
+                } elseif ($user_lesson_status) {
3332 3332
 
3333
-                    $meta_html .= '<span class="lesson-status in-progress">' . __( 'In Progress', 'woothemes-sensei' ) .'</span>';
3333
+                    $meta_html .= '<span class="lesson-status in-progress">'.__('In Progress', 'woothemes-sensei').'</span>';
3334 3334
 
3335 3335
                 } // End If Statement
3336 3336
 
@@ -3353,19 +3353,19 @@  discard block
 block discarded – undo
3353 3353
      *
3354 3354
      * @param $lesson_id
3355 3355
      */
3356
-    public static function the_lesson_thumbnail( $lesson_id ){
3356
+    public static function the_lesson_thumbnail($lesson_id) {
3357 3357
 
3358
-        if( empty( $lesson_id ) ){
3358
+        if (empty($lesson_id)) {
3359 3359
 
3360 3360
             $lesson_id = get_the_ID();
3361 3361
 
3362 3362
         }
3363 3363
 
3364
-        if( 'lesson' != get_post_type( $lesson_id ) ){
3364
+        if ('lesson' != get_post_type($lesson_id)) {
3365 3365
             return;
3366 3366
         }
3367 3367
 
3368
-        echo Sensei()->lesson->lesson_image( $lesson_id );
3368
+        echo Sensei()->lesson->lesson_image($lesson_id);
3369 3369
     }
3370 3370
 
3371 3371
 
@@ -3376,14 +3376,14 @@  discard block
 block discarded – undo
3376 3376
      * @param string $excerpt
3377 3377
      * @return string $excerpt
3378 3378
      */
3379
-    public static function alter_the_lesson_excerpt( $excerpt ) {
3379
+    public static function alter_the_lesson_excerpt($excerpt) {
3380 3380
 
3381
-        if ('lesson' == get_post_type(get_the_ID())){
3381
+        if ('lesson' == get_post_type(get_the_ID())) {
3382 3382
 
3383 3383
             // remove this hooks to avoid an infinite loop.
3384
-            remove_filter( 'get_the_excerpt', array( 'WooThemes_Sensei_Lesson','alter_the_lesson_excerpt') );
3384
+            remove_filter('get_the_excerpt', array('WooThemes_Sensei_Lesson', 'alter_the_lesson_excerpt'));
3385 3385
 
3386
-            return WooThemes_Sensei_Lesson::lesson_excerpt( get_post( get_the_ID() ) );
3386
+            return WooThemes_Sensei_Lesson::lesson_excerpt(get_post(get_the_ID()));
3387 3387
         }
3388 3388
 
3389 3389
         return $excerpt;
@@ -3398,20 +3398,20 @@  discard block
 block discarded – undo
3398 3398
      * @param $current_lesson_id
3399 3399
      * @return mixed | bool | int $prerequisite_lesson_id or false
3400 3400
      */
3401
-    public static function get_lesson_prerequisite_id( $current_lesson_id  ){
3401
+    public static function get_lesson_prerequisite_id($current_lesson_id) {
3402 3402
 
3403
-        $prerequisite_lesson_id = get_post_meta( $current_lesson_id , '_lesson_prerequisite', true );
3403
+        $prerequisite_lesson_id = get_post_meta($current_lesson_id, '_lesson_prerequisite', true);
3404 3404
 
3405 3405
         // set ti to false if not a valid prerequisite lesson id
3406
-        if(  empty( $prerequisite_lesson_id )
3407
-            || 'lesson' != get_post_type( $prerequisite_lesson_id )
3408
-            || $prerequisite_lesson_id == $current_lesson_id  ) {
3406
+        if (empty($prerequisite_lesson_id)
3407
+            || 'lesson' != get_post_type($prerequisite_lesson_id)
3408
+            || $prerequisite_lesson_id == $current_lesson_id) {
3409 3409
 
3410 3410
             $prerequisite_lesson_id = false;
3411 3411
 
3412 3412
         }
3413 3413
 
3414
-        return apply_filters( 'sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id );
3414
+        return apply_filters('sensei_lesson_prerequisite', $prerequisite_lesson_id, $current_lesson_id);
3415 3415
 
3416 3416
     }
3417 3417
 
@@ -3426,27 +3426,27 @@  discard block
 block discarded – undo
3426 3426
      * @param $user_id
3427 3427
      * @return bool
3428 3428
      */
3429
-    public  static function is_prerequisite_complete( $lesson_id, $user_id  ){
3429
+    public  static function is_prerequisite_complete($lesson_id, $user_id) {
3430 3430
 
3431
-        if( empty( $lesson_id ) || empty( $user_id )
3432
-        || 'lesson' != get_post_type( $lesson_id )
3433
-        ||  ! is_a( get_user_by( 'id', $user_id ), 'WP_User' )){
3431
+        if (empty($lesson_id) || empty($user_id)
3432
+        || 'lesson' != get_post_type($lesson_id)
3433
+        ||  ! is_a(get_user_by('id', $user_id), 'WP_User')) {
3434 3434
 
3435 3435
             return false;
3436 3436
 
3437 3437
         }
3438 3438
 
3439
-        $pre_requisite_id = (string) self::get_lesson_prerequisite_id( $lesson_id );
3439
+        $pre_requisite_id = (string) self::get_lesson_prerequisite_id($lesson_id);
3440 3440
 
3441 3441
         // not a valid pre-requisite so pre-requisite is completed
3442
-        if( 'lesson' != get_post_type( $pre_requisite_id )
3443
-            || ! is_numeric( $pre_requisite_id ) ){
3442
+        if ('lesson' != get_post_type($pre_requisite_id)
3443
+            || ! is_numeric($pre_requisite_id)) {
3444 3444
 
3445 3445
             return true;
3446 3446
 
3447 3447
         }
3448 3448
 
3449
-        return  Sensei_Utils::user_completed_lesson( $pre_requisite_id, $user_id );
3449
+        return  Sensei_Utils::user_completed_lesson($pre_requisite_id, $user_id);
3450 3450
 
3451 3451
     }// end is_prerequisite_complete
3452 3452
 
@@ -3455,20 +3455,20 @@  discard block
 block discarded – undo
3455 3455
      *
3456 3456
      * @since 1.9.0
3457 3457
      */
3458
-    public  static function user_not_taking_course_message(){
3458
+    public  static function user_not_taking_course_message() {
3459 3459
 
3460 3460
         $lesson_id = get_the_ID();
3461 3461
 
3462
-        if( 'lesson' != get_post_type( $lesson_id ) ){
3462
+        if ('lesson' != get_post_type($lesson_id)) {
3463 3463
             return;
3464 3464
         }
3465 3465
 
3466
-        $is_preview = Sensei_Utils::is_preview_lesson( $lesson_id );
3467
-        $pre_requisite_complete = self::is_prerequisite_complete( $lesson_id , get_current_user_id() );
3468
-        $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course', true );
3469
-        $user_taking_course = Sensei_Utils::user_started_course( $lesson_course_id, get_current_user_id() );
3466
+        $is_preview = Sensei_Utils::is_preview_lesson($lesson_id);
3467
+        $pre_requisite_complete = self::is_prerequisite_complete($lesson_id, get_current_user_id());
3468
+        $lesson_course_id = get_post_meta($lesson_id, '_lesson_course', true);
3469
+        $user_taking_course = Sensei_Utils::user_started_course($lesson_course_id, get_current_user_id());
3470 3470
 
3471
-        if ( $pre_requisite_complete && $is_preview && !$user_taking_course ) {
3471
+        if ($pre_requisite_complete && $is_preview && ! $user_taking_course) {
3472 3472
             ?>
3473 3473
 
3474 3474
             <div class="sensei-message alert">
@@ -3488,11 +3488,11 @@  discard block
 block discarded – undo
3488 3488
      *
3489 3489
      * @since 1.9.0
3490 3490
      */
3491
-    public static function course_signup_link( ){
3491
+    public static function course_signup_link( ) {
3492 3492
 
3493
-        $course_id =  Sensei()->lesson->get_course_id( get_the_ID() );
3493
+        $course_id = Sensei()->lesson->get_course_id(get_the_ID());
3494 3494
 
3495
-        if ( empty( $course_id ) || 'course' != get_post_type( $course_id ) || sensei_all_access() ) {
3495
+        if (empty($course_id) || 'course' != get_post_type($course_id) || sensei_all_access()) {
3496 3496
 
3497 3497
             return;
3498 3498
 
@@ -3502,42 +3502,42 @@  discard block
 block discarded – undo
3502 3502
         <section class="course-signup lesson-meta">
3503 3503
 
3504 3504
             <?php
3505
-            $wc_post_id = (int) get_post_meta( $course_id, '_course_woocommerce_product', true );
3505
+            $wc_post_id = (int) get_post_meta($course_id, '_course_woocommerce_product', true);
3506 3506
 
3507
-            if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
3507
+            if (Sensei_WC::is_woocommerce_active() && (0 < $wc_post_id)) {
3508 3508
 
3509 3509
                 global $current_user;
3510
-                if( is_user_logged_in() ) {
3510
+                if (is_user_logged_in()) {
3511 3511
                     wp_get_current_user();
3512 3512
 
3513
-                    $course_purchased = Sensei_Utils::sensei_customer_bought_product( $current_user->user_email, $current_user->ID, $wc_post_id );
3513
+                    $course_purchased = Sensei_Utils::sensei_customer_bought_product($current_user->user_email, $current_user->ID, $wc_post_id);
3514 3514
 
3515
-                    if( $course_purchased ) {
3515
+                    if ($course_purchased) {
3516 3516
 
3517
-                        $prereq_course_id = get_post_meta( $course_id, '_course_prerequisite',true );
3518
-                        $course_link = '<a href="' . esc_url( get_permalink( $prereq_course_id ) ) . '" title="' . esc_attr( get_the_title( $prereq_course_id ) ) . '">' . __( 'the previous course', 'woothemes-sensei' )  . '</a>';
3517
+                        $prereq_course_id = get_post_meta($course_id, '_course_prerequisite', true);
3518
+                        $course_link = '<a href="'.esc_url(get_permalink($prereq_course_id)).'" title="'.esc_attr(get_the_title($prereq_course_id)).'">'.__('the previous course', 'woothemes-sensei').'</a>';
3519 3519
                         ?>
3520 3520
                             <div class="sensei-message info">
3521 3521
 
3522
-                                <?php  echo sprintf( __( 'Please complete %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link ); ?>
3522
+                                <?php  echo sprintf(__('Please complete %1$s before starting the lesson.', 'woothemes-sensei'), $course_link); ?>
3523 3523
 
3524 3524
                             </div>
3525 3525
 
3526 3526
                     <?php } else {
3527 3527
 
3528
-	                    if( ! Sensei_Utils::user_started_course( $course_id, $current_user->ID )  ){
3528
+	                    if ( ! Sensei_Utils::user_started_course($course_id, $current_user->ID)) {
3529 3529
 
3530 3530
 		                    ?>
3531 3531
 
3532 3532
 	                        <div class="sensei-message info">
3533 3533
 
3534 3534
 	                            <?php
3535
-	                            $course_link = '<a href="' . esc_url( get_permalink( $course_id ) )
3536
-	                                            . '"title="' . __( 'Sign Up', 'woothemes-sensei' )
3537
-	                                            . '">' . __( 'course', 'woothemes-sensei' )
3535
+	                            $course_link = '<a href="'.esc_url(get_permalink($course_id))
3536
+	                                            . '"title="'.__('Sign Up', 'woothemes-sensei')
3537
+	                                            . '">'.__('course', 'woothemes-sensei')
3538 3538
 	                                            . '</a>';
3539 3539
 
3540
-	                            echo  sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
3540
+	                            echo  sprintf(__('Please purchase the %1$s before starting the lesson.', 'woothemes-sensei'), $course_link);
3541 3541
 
3542 3542
 	                            ?>
3543 3543
 
@@ -3549,29 +3549,29 @@  discard block
 block discarded – undo
3549 3549
 
3550 3550
                 <?php } else { ?>
3551 3551
 
3552
-                    <div class="sensei-message info"><?php echo sprintf( __( 'Please purchase the %1$s before starting the lesson.', 'woothemes-sensei' ), '<a href="' . esc_url( get_permalink( $course_id ) ) . '" title="' . __( 'Sign Up', 'woothemes-sensei' )  . '">' . __( 'course', 'woothemes-sensei' ) . '</a>' ); ?></div>
3552
+                    <div class="sensei-message info"><?php echo sprintf(__('Please purchase the %1$s before starting the lesson.', 'woothemes-sensei'), '<a href="'.esc_url(get_permalink($course_id)).'" title="'.__('Sign Up', 'woothemes-sensei').'">'.__('course', 'woothemes-sensei').'</a>'); ?></div>
3553 3553
 
3554 3554
                 <?php } ?>
3555 3555
 
3556 3556
             <?php } else { ?>
3557 3557
 
3558
-            <?php if( ! Sensei_Utils::user_started_course( $course_id, get_current_user_id() ) &&  sensei_is_login_required() )  : ?>
3558
+            <?php if ( ! Sensei_Utils::user_started_course($course_id, get_current_user_id()) && sensei_is_login_required())  : ?>
3559 3559
 
3560 3560
                 <div class="sensei-message alert">
3561 3561
                     <?php
3562
-                    $course_link =  '<a href="'
3563
-                                        . esc_url( get_permalink( $course_id ) )
3564
-                                        . '" title="' . __( 'Sign Up', 'woothemes-sensei' )
3565
-                                        . '">' . __( 'course', 'woothemes-sensei' )
3562
+                    $course_link = '<a href="'
3563
+                                        . esc_url(get_permalink($course_id))
3564
+                                        . '" title="'.__('Sign Up', 'woothemes-sensei')
3565
+                                        . '">'.__('course', 'woothemes-sensei')
3566 3566
                                     . '</a>';
3567 3567
 
3568
-					if ( Sensei_Utils::is_preview_lesson( get_the_ID( ) ) ) {
3568
+					if (Sensei_Utils::is_preview_lesson(get_the_ID( ))) {
3569 3569
 
3570
-						echo sprintf( __( 'This is a preview lesson. Please sign up for the %1$s to access all lessons.', 'woothemes-sensei' ),  $course_link );
3570
+						echo sprintf(__('This is a preview lesson. Please sign up for the %1$s to access all lessons.', 'woothemes-sensei'), $course_link);
3571 3571
 
3572 3572
 					} else {
3573 3573
 
3574
-						echo sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ),  $course_link );
3574
+						echo sprintf(__('Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei'), $course_link);
3575 3575
 
3576 3576
 					}
3577 3577
 
@@ -3592,14 +3592,14 @@  discard block
 block discarded – undo
3592 3592
      *
3593 3593
      * @since 1.9.0
3594 3594
      */
3595
-    public  static function prerequisite_complete_message(){
3595
+    public  static function prerequisite_complete_message() {
3596 3596
 
3597
-        $lesson_prerequisite =  WooThemes_Sensei_Lesson::get_lesson_prerequisite_id( get_the_ID() );
3597
+        $lesson_prerequisite = WooThemes_Sensei_Lesson::get_lesson_prerequisite_id(get_the_ID());
3598 3598
         $lesson_has_pre_requisite = $lesson_prerequisite > 0;
3599
-        if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete(  get_the_ID(), get_current_user_id() ) && $lesson_has_pre_requisite ) {
3599
+        if ( ! WooThemes_Sensei_Lesson::is_prerequisite_complete(get_the_ID(), get_current_user_id()) && $lesson_has_pre_requisite) {
3600 3600
 
3601
-            $prerequisite_lesson_link  = '<a href="' . esc_url( get_permalink( $lesson_prerequisite ) ) . '" title="' . esc_attr(  sprintf( __( 'You must first complete: %1$s', 'woothemes-sensei' ), get_the_title( $lesson_prerequisite ) ) ) . '">' . get_the_title( $lesson_prerequisite ). '</a>';
3602
-            echo sprintf( __( 'You must first complete %1$s before viewing this Lesson', 'woothemes-sensei' ), $prerequisite_lesson_link );
3601
+            $prerequisite_lesson_link = '<a href="'.esc_url(get_permalink($lesson_prerequisite)).'" title="'.esc_attr(sprintf(__('You must first complete: %1$s', 'woothemes-sensei'), get_the_title($lesson_prerequisite))).'">'.get_the_title($lesson_prerequisite).'</a>';
3602
+            echo sprintf(__('You must first complete %1$s before viewing this Lesson', 'woothemes-sensei'), $prerequisite_lesson_link);
3603 3603
 
3604 3604
         }
3605 3605
 
@@ -3611,7 +3611,7 @@  discard block
 block discarded – undo
3611 3611
      *
3612 3612
      * @deprecated since 1.9.0
3613 3613
      */
3614
-    public static function deprecate_sensei_lesson_archive_header_hook(){
3614
+    public static function deprecate_sensei_lesson_archive_header_hook() {
3615 3615
 
3616 3616
         sensei_do_deprecated_action('sensei_lesson_archive_header', '1.9.0', 'sensei_loop_lesson_inside_before');
3617 3617
 
@@ -3627,9 +3627,9 @@  discard block
 block discarded – undo
3627 3627
 
3628 3628
         $before_html = '<header class="archive-header"><h1>';
3629 3629
         $after_html = '</h1></header>';
3630
-        $html = $before_html .  __( 'Lessons Archive', 'woothemes-sensei' ) . $after_html;
3630
+        $html = $before_html.__('Lessons Archive', 'woothemes-sensei').$after_html;
3631 3631
 
3632
-        echo apply_filters( 'sensei_lesson_archive_title', $html );
3632
+        echo apply_filters('sensei_lesson_archive_title', $html);
3633 3633
 
3634 3634
     } // sensei_course_archive_header()
3635 3635
 
@@ -3639,7 +3639,7 @@  discard block
 block discarded – undo
3639 3639
      * @global $post
3640 3640
      * @since 1.9.0
3641 3641
      */
3642
-    public static function the_title(){
3642
+    public static function the_title() {
3643 3643
 
3644 3644
         global $post;
3645 3645
 
@@ -3652,7 +3652,7 @@  discard block
 block discarded – undo
3652 3652
                 /**
3653 3653
                  * Filter documented in class-sensei-messages.php the_title
3654 3654
                  */
3655
-                echo apply_filters( 'sensei_single_title', get_the_title( $post ), $post->post_type );
3655
+                echo apply_filters('sensei_single_title', get_the_title($post), $post->post_type);
3656 3656
                 ?>
3657 3657
 
3658 3658
             </h1>
@@ -3670,16 +3670,16 @@  discard block
 block discarded – undo
3670 3670
      *
3671 3671
      * @param $post_id
3672 3672
      */
3673
-    public static function flush_rewrite_rules( $post_id ){
3673
+    public static function flush_rewrite_rules($post_id) {
3674 3674
 
3675
-        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){
3675
+        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
3676 3676
 
3677 3677
             return;
3678 3678
 
3679 3679
         }
3680 3680
 
3681 3681
 
3682
-        if( 'lesson' == get_post_type( $post_id )  ){
3682
+        if ('lesson' == get_post_type($post_id)) {
3683 3683
 
3684 3684
             Sensei()->initiate_rewrite_rules_flush();
3685 3685
 
@@ -3696,27 +3696,27 @@  discard block
 block discarded – undo
3696 3696
      * @param int $lesson_id
3697 3697
      * @param int $user_id
3698 3698
      */
3699
-    public static function footer_quiz_call_to_action( $lesson_id = 0, $user_id = 0 ) {
3699
+    public static function footer_quiz_call_to_action($lesson_id = 0, $user_id = 0) {
3700 3700
 
3701 3701
 
3702
-        $lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3703
-        $user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3702
+        $lesson_id                 = empty($lesson_id) ? get_the_ID() : $lesson_id;
3703
+        $user_id                   = empty($lesson_id) ? get_current_user_id() : $user_id;
3704 3704
 
3705 3705
 
3706
-	    if ( ! sensei_can_user_view_lesson( $lesson_id, $user_id ) ) {
3706
+	    if ( ! sensei_can_user_view_lesson($lesson_id, $user_id)) {
3707 3707
 		    return;
3708 3708
 	    }
3709 3709
 
3710
-        $lesson_prerequisite       = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true );
3711
-        $lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3712
-        $quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3713
-        $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3710
+        $lesson_prerequisite       = (int) get_post_meta($lesson_id, '_lesson_prerequisite', true);
3711
+        $lesson_course_id          = (int) get_post_meta($lesson_id, '_lesson_course', true);
3712
+        $quiz_id                   = Sensei()->lesson->lesson_quizzes($lesson_id);
3713
+        $has_user_completed_lesson = Sensei_Utils::user_completed_lesson(intval($lesson_id), $user_id);
3714 3714
         $show_actions              = is_user_logged_in() ? true : false;
3715 3715
 
3716
-        if( intval( $lesson_prerequisite ) > 0 ) {
3716
+        if (intval($lesson_prerequisite) > 0) {
3717 3717
 
3718 3718
             // If the user hasn't completed the prereq then hide the current actions
3719
-            $show_actions = Sensei_Utils::user_completed_lesson( $lesson_prerequisite, $user_id );
3719
+            $show_actions = Sensei_Utils::user_completed_lesson($lesson_prerequisite, $user_id);
3720 3720
 
3721 3721
         }
3722 3722
 
@@ -3725,19 +3725,19 @@  discard block
 block discarded – undo
3725 3725
         <footer>
3726 3726
 
3727 3727
             <?php
3728
-            if( $show_actions && $quiz_id && Sensei()->access_settings() ) {
3728
+            if ($show_actions && $quiz_id && Sensei()->access_settings()) {
3729 3729
 
3730
-                $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3731
-                if( $has_quiz_questions ) {
3730
+                $has_quiz_questions = get_post_meta($lesson_id, '_quiz_has_questions', true);
3731
+                if ($has_quiz_questions) {
3732 3732
                     ?>
3733 3733
 
3734 3734
                     <p>
3735 3735
 
3736 3736
                         <a class="button"
3737
-                           href="<?php echo esc_url_raw( get_permalink( $quiz_id ) ); ?>"
3738
-                           title="<?php _e( 'View the Lesson Quiz', 'woothemes-sensei'  ); ?>">
3737
+                           href="<?php echo esc_url_raw(get_permalink($quiz_id)); ?>"
3738
+                           title="<?php _e('View the Lesson Quiz', 'woothemes-sensei'); ?>">
3739 3739
 
3740
-                            <?php  _e( 'View the Lesson Quiz', 'woothemes-sensei' ); ?>
3740
+                            <?php  _e('View the Lesson Quiz', 'woothemes-sensei'); ?>
3741 3741
 
3742 3742
                         </a>
3743 3743
 
@@ -3748,11 +3748,11 @@  discard block
 block discarded – undo
3748 3748
 
3749 3749
             } // End If Statement
3750 3750
 
3751
-            if ( $show_actions && ! $has_user_completed_lesson ) {
3751
+            if ($show_actions && ! $has_user_completed_lesson) {
3752 3752
 
3753 3753
                 sensei_complete_lesson_button();
3754 3754
 
3755
-            } elseif( $show_actions ) {
3755
+            } elseif ($show_actions) {
3756 3756
 
3757 3757
                 sensei_reset_lesson_button();
3758 3758
 
@@ -3769,20 +3769,20 @@  discard block
 block discarded – undo
3769 3769
      *
3770 3770
      * @since 1.9.0
3771 3771
      */
3772
-    public static function output_comments(){
3772
+    public static function output_comments() {
3773 3773
 
3774
-        if( ! is_user_logged_in() ){
3774
+        if ( ! is_user_logged_in()) {
3775 3775
             return;
3776 3776
         }
3777 3777
 
3778
-        $pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete( get_the_ID(), get_current_user_id() );
3779
-        $course_id = Sensei()->lesson->get_course_id( get_the_ID() );
3780
-        $allow_comments = Sensei()->settings->settings[ 'lesson_comments' ];
3781
-        $user_taking_course = Sensei_Utils::user_started_course($course_id );
3778
+        $pre_requisite_complete = Sensei()->lesson->is_prerequisite_complete(get_the_ID(), get_current_user_id());
3779
+        $course_id = Sensei()->lesson->get_course_id(get_the_ID());
3780
+        $allow_comments = Sensei()->settings->settings['lesson_comments'];
3781
+        $user_taking_course = Sensei_Utils::user_started_course($course_id);
3782 3782
 
3783
-        $lesson_allow_comments = $allow_comments && $pre_requisite_complete  && $user_taking_course;
3783
+        $lesson_allow_comments = $allow_comments && $pre_requisite_complete && $user_taking_course;
3784 3784
 
3785
-        if (  $lesson_allow_comments || is_singular( 'sensei_message' ) ) {
3785
+        if ($lesson_allow_comments || is_singular('sensei_message')) {
3786 3786
 
3787 3787
             comments_template();
3788 3788
 
@@ -3798,26 +3798,26 @@  discard block
 block discarded – undo
3798 3798
      *
3799 3799
      * @since 1.9.0
3800 3800
      */
3801
-    public static function user_lesson_quiz_status_message( $lesson_id = 0, $user_id = 0){
3801
+    public static function user_lesson_quiz_status_message($lesson_id = 0, $user_id = 0) {
3802 3802
 
3803
-        $lesson_id                 =  empty( $lesson_id ) ?  get_the_ID() : $lesson_id;
3804
-        $user_id                   = empty( $lesson_id ) ?  get_current_user_id() : $user_id;
3805
-        $lesson_course_id          = (int) get_post_meta( $lesson_id, '_lesson_course', true );
3806
-        $quiz_id                   = Sensei()->lesson->lesson_quizzes( $lesson_id );
3807
-        $has_user_completed_lesson = Sensei_Utils::user_completed_lesson( intval( $lesson_id ), $user_id );
3803
+        $lesson_id                 = empty($lesson_id) ? get_the_ID() : $lesson_id;
3804
+        $user_id                   = empty($lesson_id) ? get_current_user_id() : $user_id;
3805
+        $lesson_course_id          = (int) get_post_meta($lesson_id, '_lesson_course', true);
3806
+        $quiz_id                   = Sensei()->lesson->lesson_quizzes($lesson_id);
3807
+        $has_user_completed_lesson = Sensei_Utils::user_completed_lesson(intval($lesson_id), $user_id);
3808 3808
 
3809 3809
 
3810
-        if ( $quiz_id && is_user_logged_in()
3811
-            && Sensei_Utils::user_started_course( $lesson_course_id, $user_id ) ) {
3810
+        if ($quiz_id && is_user_logged_in()
3811
+            && Sensei_Utils::user_started_course($lesson_course_id, $user_id)) {
3812 3812
 
3813 3813
             $no_quiz_count = 0;
3814
-            $has_quiz_questions = get_post_meta( $lesson_id, '_quiz_has_questions', true );
3814
+            $has_quiz_questions = get_post_meta($lesson_id, '_quiz_has_questions', true);
3815 3815
 
3816 3816
             // Display lesson quiz status message
3817
-            if ( $has_user_completed_lesson || $has_quiz_questions ) {
3818
-                $status = Sensei_Utils::sensei_user_quiz_status_message( $lesson_id, $user_id, true );
3819
-                echo '<div class="sensei-message ' . $status['box_class'] . '">' . $status['message'] . '</div>';
3820
-                if( $has_quiz_questions ) {
3817
+            if ($has_user_completed_lesson || $has_quiz_questions) {
3818
+                $status = Sensei_Utils::sensei_user_quiz_status_message($lesson_id, $user_id, true);
3819
+                echo '<div class="sensei-message '.$status['box_class'].'">'.$status['message'].'</div>';
3820
+                if ($has_quiz_questions) {
3821 3821
                    // echo $status['extra'];
3822 3822
                 } // End If Statement
3823 3823
             } // End If Statement
@@ -3833,11 +3833,11 @@  discard block
 block discarded – undo
3833 3833
      * @param $content
3834 3834
      * @return string
3835 3835
      */
3836
-    public static function limit_archive_content ( $content ){
3836
+    public static function limit_archive_content($content) {
3837 3837
 
3838
-        if( is_archive('lesson') && Sensei()->settings->get('access_permission') ){
3838
+        if (is_archive('lesson') && Sensei()->settings->get('access_permission')) {
3839 3839
 
3840
-            return wp_trim_words( $content, $num_words = 30, $more = '…' );
3840
+            return wp_trim_words($content, $num_words = 30, $more = '…');
3841 3841
         }
3842 3842
 
3843 3843
         return $content;
@@ -3850,9 +3850,9 @@  discard block
 block discarded – undo
3850 3850
      * @since 1.9.0
3851 3851
      * @return array
3852 3852
      */
3853
-    public static function get_all_lesson_ids(){
3853
+    public static function get_all_lesson_ids() {
3854 3854
 
3855
-        return get_posts( array(
3855
+        return get_posts(array(
3856 3856
             'post_type'=>'lesson',
3857 3857
             'fields'=>'ids',
3858 3858
             'post_status' => 'publish',
@@ -3869,4 +3869,4 @@  discard block
 block discarded – undo
3869 3869
  * @ignore only for backward compatibility
3870 3870
  * @since 1.9.0
3871 3871
  */
3872
-class WooThemes_Sensei_Lesson extends Sensei_Lesson{}
3872
+class WooThemes_Sensei_Lesson extends Sensei_Lesson {}
Please login to merge, or discard this patch.
includes/class-sensei.php 3 patches
Indentation   +1021 added lines, -1021 removed lines patch added patch discarded remove patch
@@ -10,911 +10,911 @@  discard block
 block discarded – undo
10 10
  */
11 11
 class Sensei_Main {
12 12
 
13
-    /**
14
-     * @var string
15
-     * Reference to the main plugin file
16
-     */
17
-    private $file;
18
-
19
-    /**
20
-     * @var Sensei_Main $_instance to the the main and only instance of the Sensei class.
21
-     * @since 1.8.0
22
-     */
23
-    protected static $_instance = null;
24
-
25
-    /**
26
-     * Main reference to the plugins current version
27
-     */
28
-    public $version;
29
-
30
-    /**
31
-     * Public token, referencing for the text domain.
32
-     */
33
-    public $token = 'woothemes-sensei';
34
-
35
-    /**
36
-     * Plugin url and path for use when access resources.
37
-     */
38
-    public $plugin_url;
39
-    public $plugin_path;
40
-    public $template_url;
41
-
42
-    /**
43
-     * @var Sensei_PostTypes
44
-     * All Sensei sub classes. Currently used to access functionality contained within
45
-     * within Sensei sub classes e.g. Sensei()->course->all_courses()
46
-     */
47
-    public $post_types;
48
-
49
-    /**
50
-     * @var WooThemes_Sensei_Settings
51
-     */
52
-    public $settings;
53
-
54
-    /**
55
-     * @var WooThemes_Sensei_Course_Results
56
-     */
57
-    public $course_results;
58
-
59
-    /**
60
-     * @var Sensei_Updates
61
-     */
62
-    public $updates;
63
-    /**
64
-     * @var WooThemes_Sensei_Course
65
-     */
66
-    public $course;
67
-
68
-    /**
69
-     * @var WooThemes_Sensei_Lesson
70
-     */
71
-    public $lesson;
72
-
73
-    /**
74
-     * @var WooThemes_Sensei_Quiz
75
-     */
76
-    public $quiz;
77
-
78
-    /**
79
-     * @var WooThemes_Sensei_Question
80
-     */
81
-    public $question;
82
-
83
-    /**
84
-     * @var WooThemes_Sensei_Admin
85
-     */
86
-    public $admin;
87
-
88
-    /**
89
-     * @var WooThemes_Sensei_Frontend
90
-     */
91
-    public $frontend;
92
-
93
-    /**
94
-     * @var Sensei_Notices
95
-     */
96
-    public $notices;
97
-
98
-    /**
99
-     * @var WooThemes_Sensei_Grading
100
-     */
101
-    public $grading;
102
-
103
-    /**
104
-     * @var WooThemes_Sensei_Emails
105
-     */
106
-    public $emails;
107
-
108
-    /**
109
-     * @var WooThemes_Sensei_Learner_Profiles
110
-     */
111
-    public $learner_profiles;
112
-
113
-    /**
114
-     * @var Sensei_Teacher
115
-     */
116
-    public $teacher;
117
-
118
-    /**
119
-     * @var WooThemes_Sensei_Learners
120
-     */
121
-    public $learners;
122
-
123
-    /**
124
-     * @var array
125
-     * Global instance for access to the permissions message shown
126
-     * when users do not have the right privileges to access resources.
127
-     */
128
-    public $permissions_message;
129
-
130
-    /**
131
-     * @var Sensei_Core_Modules Sensei Modules functionality
132
-     */
133
-    public $modules;
134
-
135
-    /**
136
-     * @var Sensei_Analysis
137
-     */
138
-    public $analysis;
139
-
140
-    /**
141
-     * Constructor method.
142
-     * @param  string $file The base file of the plugin.
143
-     * @since  1.0.0
144
-     */
145
-    public function __construct ( $file ) {
146
-
147
-        // Setup object data
148
-        $this->file = $file;
149
-        $this->plugin_url = trailingslashit( plugins_url( '', $plugin = $file ) );
150
-        $this->plugin_path = trailingslashit( dirname( $file ) );
151
-        $this->template_url	= apply_filters( 'sensei_template_url', 'sensei/' );
152
-        $this->permissions_message = array( 'title' => __( 'Permission Denied', 'woothemes-sensei' ), 'message' => __( 'Unfortunately you do not have permissions to access this page.', 'woothemes-sensei' ) );
153
-
154
-        // Initialize the core Sensei functionality
155
-        $this->init();
156
-
157
-        // Installation
158
-        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) $this->install();
159
-
160
-        // Run this on activation.
161
-        register_activation_hook( $this->file, array( $this, 'activation' ) );
162
-
163
-        // Image Sizes
164
-        $this->init_image_sizes();
165
-
166
-        // load all hooks
167
-        $this->load_hooks();
168
-
169
-    } // End __construct()
170
-
171
-    /**
172
-     * Load the foundations of Sensei.
173
-     * @since 1.9.0
174
-     */
175
-    protected function init(){
176
-
177
-        // Localisation
178
-        $this->load_plugin_textdomain();
179
-        add_action( 'init', array( $this, 'load_localisation' ), 0 );
180
-
181
-        // Setup settings
182
-        $this->settings = new Sensei_Settings();
183
-
184
-        // load the shortcode loader into memory, so as to listen to all for
185
-        // all shortcodes on the front end
186
-        new Sensei_Shortcode_Loader();
187
-
188
-    }
189
-
190
-    /**
191
-     * Global Sensei Instance
192
-     *
193
-     * Ensure that only one instance of the main Sensei class can be loaded.
194
-     *
195
-     * @since 1.8.0
196
-     * @static
197
-     * @see WC()
198
-     * @return WooThemes_Sensei Instance.
199
-     */
200
-    public static function instance() {
13
+	/**
14
+	 * @var string
15
+	 * Reference to the main plugin file
16
+	 */
17
+	private $file;
18
+
19
+	/**
20
+	 * @var Sensei_Main $_instance to the the main and only instance of the Sensei class.
21
+	 * @since 1.8.0
22
+	 */
23
+	protected static $_instance = null;
24
+
25
+	/**
26
+	 * Main reference to the plugins current version
27
+	 */
28
+	public $version;
29
+
30
+	/**
31
+	 * Public token, referencing for the text domain.
32
+	 */
33
+	public $token = 'woothemes-sensei';
34
+
35
+	/**
36
+	 * Plugin url and path for use when access resources.
37
+	 */
38
+	public $plugin_url;
39
+	public $plugin_path;
40
+	public $template_url;
41
+
42
+	/**
43
+	 * @var Sensei_PostTypes
44
+	 * All Sensei sub classes. Currently used to access functionality contained within
45
+	 * within Sensei sub classes e.g. Sensei()->course->all_courses()
46
+	 */
47
+	public $post_types;
48
+
49
+	/**
50
+	 * @var WooThemes_Sensei_Settings
51
+	 */
52
+	public $settings;
53
+
54
+	/**
55
+	 * @var WooThemes_Sensei_Course_Results
56
+	 */
57
+	public $course_results;
58
+
59
+	/**
60
+	 * @var Sensei_Updates
61
+	 */
62
+	public $updates;
63
+	/**
64
+	 * @var WooThemes_Sensei_Course
65
+	 */
66
+	public $course;
67
+
68
+	/**
69
+	 * @var WooThemes_Sensei_Lesson
70
+	 */
71
+	public $lesson;
72
+
73
+	/**
74
+	 * @var WooThemes_Sensei_Quiz
75
+	 */
76
+	public $quiz;
77
+
78
+	/**
79
+	 * @var WooThemes_Sensei_Question
80
+	 */
81
+	public $question;
82
+
83
+	/**
84
+	 * @var WooThemes_Sensei_Admin
85
+	 */
86
+	public $admin;
87
+
88
+	/**
89
+	 * @var WooThemes_Sensei_Frontend
90
+	 */
91
+	public $frontend;
92
+
93
+	/**
94
+	 * @var Sensei_Notices
95
+	 */
96
+	public $notices;
97
+
98
+	/**
99
+	 * @var WooThemes_Sensei_Grading
100
+	 */
101
+	public $grading;
102
+
103
+	/**
104
+	 * @var WooThemes_Sensei_Emails
105
+	 */
106
+	public $emails;
107
+
108
+	/**
109
+	 * @var WooThemes_Sensei_Learner_Profiles
110
+	 */
111
+	public $learner_profiles;
112
+
113
+	/**
114
+	 * @var Sensei_Teacher
115
+	 */
116
+	public $teacher;
117
+
118
+	/**
119
+	 * @var WooThemes_Sensei_Learners
120
+	 */
121
+	public $learners;
122
+
123
+	/**
124
+	 * @var array
125
+	 * Global instance for access to the permissions message shown
126
+	 * when users do not have the right privileges to access resources.
127
+	 */
128
+	public $permissions_message;
129
+
130
+	/**
131
+	 * @var Sensei_Core_Modules Sensei Modules functionality
132
+	 */
133
+	public $modules;
134
+
135
+	/**
136
+	 * @var Sensei_Analysis
137
+	 */
138
+	public $analysis;
139
+
140
+	/**
141
+	 * Constructor method.
142
+	 * @param  string $file The base file of the plugin.
143
+	 * @since  1.0.0
144
+	 */
145
+	public function __construct ( $file ) {
146
+
147
+		// Setup object data
148
+		$this->file = $file;
149
+		$this->plugin_url = trailingslashit( plugins_url( '', $plugin = $file ) );
150
+		$this->plugin_path = trailingslashit( dirname( $file ) );
151
+		$this->template_url	= apply_filters( 'sensei_template_url', 'sensei/' );
152
+		$this->permissions_message = array( 'title' => __( 'Permission Denied', 'woothemes-sensei' ), 'message' => __( 'Unfortunately you do not have permissions to access this page.', 'woothemes-sensei' ) );
153
+
154
+		// Initialize the core Sensei functionality
155
+		$this->init();
156
+
157
+		// Installation
158
+		if ( is_admin() && ! defined( 'DOING_AJAX' ) ) $this->install();
159
+
160
+		// Run this on activation.
161
+		register_activation_hook( $this->file, array( $this, 'activation' ) );
162
+
163
+		// Image Sizes
164
+		$this->init_image_sizes();
165
+
166
+		// load all hooks
167
+		$this->load_hooks();
168
+
169
+	} // End __construct()
170
+
171
+	/**
172
+	 * Load the foundations of Sensei.
173
+	 * @since 1.9.0
174
+	 */
175
+	protected function init(){
176
+
177
+		// Localisation
178
+		$this->load_plugin_textdomain();
179
+		add_action( 'init', array( $this, 'load_localisation' ), 0 );
180
+
181
+		// Setup settings
182
+		$this->settings = new Sensei_Settings();
183
+
184
+		// load the shortcode loader into memory, so as to listen to all for
185
+		// all shortcodes on the front end
186
+		new Sensei_Shortcode_Loader();
187
+
188
+	}
189
+
190
+	/**
191
+	 * Global Sensei Instance
192
+	 *
193
+	 * Ensure that only one instance of the main Sensei class can be loaded.
194
+	 *
195
+	 * @since 1.8.0
196
+	 * @static
197
+	 * @see WC()
198
+	 * @return WooThemes_Sensei Instance.
199
+	 */
200
+	public static function instance() {
201 201
 
202
-        if ( is_null( self::$_instance ) ) {
202
+		if ( is_null( self::$_instance ) ) {
203 203
 
204
-            //Sensei requires a reference to the main Sensei plugin file
205
-            $sensei_main_plugin_file = dirname ( dirname( __FILE__ ) ) . '/woothemes-sensei.php';
204
+			//Sensei requires a reference to the main Sensei plugin file
205
+			$sensei_main_plugin_file = dirname ( dirname( __FILE__ ) ) . '/woothemes-sensei.php';
206 206
 
207
-            self::$_instance = new self( $sensei_main_plugin_file  );
207
+			self::$_instance = new self( $sensei_main_plugin_file  );
208 208
 
209
-            // load the global class objects needed throughout Sensei
210
-            self::$_instance->initialize_global_objects();
209
+			// load the global class objects needed throughout Sensei
210
+			self::$_instance->initialize_global_objects();
211 211
 
212
-        }
212
+		}
213 213
 
214
-        return self::$_instance;
214
+		return self::$_instance;
215 215
 
216
-    } // end instance()
216
+	} // end instance()
217 217
 
218
-    /**
219
-     * This function is linked into the activation
220
-     * hook to reset flush the urls to ensure Sensei post types show up.
221
-     *
222
-     * @since 1.9.0
223
-     *
224
-     * @param $plugin
225
-     */
226
-    public static function activation_flush_rules( $plugin ){
218
+	/**
219
+	 * This function is linked into the activation
220
+	 * hook to reset flush the urls to ensure Sensei post types show up.
221
+	 *
222
+	 * @since 1.9.0
223
+	 *
224
+	 * @param $plugin
225
+	 */
226
+	public static function activation_flush_rules( $plugin ){
227 227
 
228
-        if( strpos( $plugin, '/woothemes-sensei.php' ) > 0  ){
228
+		if( strpos( $plugin, '/woothemes-sensei.php' ) > 0  ){
229 229
 
230
-            flush_rewrite_rules(true);
230
+			flush_rewrite_rules(true);
231 231
 
232
-        }
232
+		}
233 233
 
234
-    }
234
+	}
235 235
 
236
-    /**
237
-     * Cloning is forbidden.
238
-     * @since 1.8.0
239
-     */
240
-    public function __clone() {
241
-        _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woothemes-sensei' ), '1.8' );
242
-    }
236
+	/**
237
+	 * Cloning is forbidden.
238
+	 * @since 1.8.0
239
+	 */
240
+	public function __clone() {
241
+		_doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woothemes-sensei' ), '1.8' );
242
+	}
243 243
 
244
-    /**
245
-     * Unserializing instances of this class is forbidden.
246
-     * @since 1.8.0
247
-     */
248
-    public function __wakeup() {
249
-        _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woothemes-sensei' ), '1.8' );
250
-    }
244
+	/**
245
+	 * Unserializing instances of this class is forbidden.
246
+	 * @since 1.8.0
247
+	 */
248
+	public function __wakeup() {
249
+		_doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woothemes-sensei' ), '1.8' );
250
+	}
251 251
 
252
-    /**
253
-     * Load the properties for the main Sensei object
254
-     *
255
-     * @since 1.9.0
256
-     */
257
-    public function initialize_global_objects(){
252
+	/**
253
+	 * Load the properties for the main Sensei object
254
+	 *
255
+	 * @since 1.9.0
256
+	 */
257
+	public function initialize_global_objects(){
258 258
 
259
-        // Setup post types.
260
-        $this->post_types = new Sensei_PostTypes();
259
+		// Setup post types.
260
+		$this->post_types = new Sensei_PostTypes();
261 261
 
262
-        // Lad the updates class
263
-        $this->updates = new Sensei_Updates( $this );
262
+		// Lad the updates class
263
+		$this->updates = new Sensei_Updates( $this );
264 264
 
265
-        // Load Course Results Class
266
-        $this->course_results = new Sensei_Course_Results();
265
+		// Load Course Results Class
266
+		$this->course_results = new Sensei_Course_Results();
267 267
 
268
-        // Load the teacher role
269
-        $this->teacher = new Sensei_Teacher();
268
+		// Load the teacher role
269
+		$this->teacher = new Sensei_Teacher();
270 270
 
271
-        // Add the Course class
272
-        $this->course = $this->post_types->course;
271
+		// Add the Course class
272
+		$this->course = $this->post_types->course;
273 273
 
274
-        // Add the lesson class
275
-        $this->lesson = $this->post_types->lesson;
274
+		// Add the lesson class
275
+		$this->lesson = $this->post_types->lesson;
276 276
 
277
-        // Add the question class
278
-        $this->question = $this->post_types->question;
277
+		// Add the question class
278
+		$this->question = $this->post_types->question;
279 279
 
280
-        //Add the quiz class
281
-        $this->quiz = $this->post_types->quiz;
280
+		//Add the quiz class
281
+		$this->quiz = $this->post_types->quiz;
282 282
 
283
-        // load the modules class after all plugsin are loaded
284
-	    $this->load_modules_class();
283
+		// load the modules class after all plugsin are loaded
284
+		$this->load_modules_class();
285 285
 
286
-        // Load Learner Management Functionality
287
-        $this->learners = new Sensei_Learner_Management( $this->file );
286
+		// Load Learner Management Functionality
287
+		$this->learners = new Sensei_Learner_Management( $this->file );
288 288
 
289
-        // Differentiate between administration and frontend logic.
290
-        if ( is_admin() ) {
289
+		// Differentiate between administration and frontend logic.
290
+		if ( is_admin() ) {
291 291
 
292
-            // Load Admin Welcome class
293
-            new Sensei_Welcome();
292
+			// Load Admin Welcome class
293
+			new Sensei_Welcome();
294 294
 
295
-            // Load Admin Class
296
-            $this->admin = new Sensei_Admin( $this->file );
295
+			// Load Admin Class
296
+			$this->admin = new Sensei_Admin( $this->file );
297 297
 
298
-            // Load Analysis Reports
299
-            $this->analysis = new Sensei_Analysis( $this->file );
298
+			// Load Analysis Reports
299
+			$this->analysis = new Sensei_Analysis( $this->file );
300 300
 
301
-        } else {
301
+		} else {
302 302
 
303
-            // Load Frontend Class
304
-            $this->frontend = new Sensei_Frontend();
303
+			// Load Frontend Class
304
+			$this->frontend = new Sensei_Frontend();
305 305
 
306
-            // Load notice Class
307
-            $this->notices = new Sensei_Notices();
306
+			// Load notice Class
307
+			$this->notices = new Sensei_Notices();
308 308
 
309
-            // Load built in themes support integration
310
-            new Sensei_Theme_Integration_Loader();
309
+			// Load built in themes support integration
310
+			new Sensei_Theme_Integration_Loader();
311 311
 
312 312
 
313
-        }
313
+		}
314 314
 
315
-        // Load Grading Functionality
316
-        $this->grading = new Sensei_Grading( $this->file );
315
+		// Load Grading Functionality
316
+		$this->grading = new Sensei_Grading( $this->file );
317 317
 
318
-        // Load Email Class
319
-        $this->emails = new Sensei_Emails( $this->file );
318
+		// Load Email Class
319
+		$this->emails = new Sensei_Emails( $this->file );
320 320
 
321
-        // Load Learner Profiles Class
322
-        $this->learner_profiles = new Sensei_Learner_Profiles();
321
+		// Load Learner Profiles Class
322
+		$this->learner_profiles = new Sensei_Learner_Profiles();
323 323
 
324
-    }
324
+	}
325 325
 
326
-    /**
327
-     * Initialize all Sensei hooks
328
-     *
329
-     * @since 1.9.0
330
-     */
331
-    public function load_hooks(){
326
+	/**
327
+	 * Initialize all Sensei hooks
328
+	 *
329
+	 * @since 1.9.0
330
+	 */
331
+	public function load_hooks(){
332 332
 
333
-        add_action( 'widgets_init', array( $this, 'register_widgets' ) );
334
-        add_action( 'after_setup_theme', array( $this, 'ensure_post_thumbnails_support' ) );
333
+		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
334
+		add_action( 'after_setup_theme', array( $this, 'ensure_post_thumbnails_support' ) );
335 335
 
336
-        // Filter comment counts
337
-        add_filter( 'wp_count_comments', array( $this, 'sensei_count_comments' ), 10, 2 );
336
+		// Filter comment counts
337
+		add_filter( 'wp_count_comments', array( $this, 'sensei_count_comments' ), 10, 2 );
338 338
 
339
-        add_action( 'body_class', array( $this, 'body_class' ) );
339
+		add_action( 'body_class', array( $this, 'body_class' ) );
340 340
 
341
-        // Check for and activate JetPack LaTeX support
342
-        add_action( 'plugins_loaded', array( $this, 'jetpack_latex_support'), 200 ); // Runs after Jetpack has loaded it's modules
341
+		// Check for and activate JetPack LaTeX support
342
+		add_action( 'plugins_loaded', array( $this, 'jetpack_latex_support'), 200 ); // Runs after Jetpack has loaded it's modules
343 343
 
344
-        // check flush the rewrite rules if the option sensei_flush_rewrite_rules option is 1
345
-        add_action( 'init', array( $this, 'flush_rewrite_rules'), 101 );
344
+		// check flush the rewrite rules if the option sensei_flush_rewrite_rules option is 1
345
+		add_action( 'init', array( $this, 'flush_rewrite_rules'), 101 );
346 346
 
347
-    }
347
+	}
348 348
 
349
-    /**
350
-     * Run Sensei updates.
351
-     * @access  public
352
-     * @since   1.1.0
353
-     * @return  void
354
-     */
355
-    public function run_updates() {
356
-        // Run updates if administrator
357
-        if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_sensei' ) ) {
349
+	/**
350
+	 * Run Sensei updates.
351
+	 * @access  public
352
+	 * @since   1.1.0
353
+	 * @return  void
354
+	 */
355
+	public function run_updates() {
356
+		// Run updates if administrator
357
+		if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_sensei' ) ) {
358 358
 
359
-            $this->updates->update();
359
+			$this->updates->update();
360 360
 
361
-        } // End If Statement
362
-    } // End run_updates()
361
+		} // End If Statement
362
+	} // End run_updates()
363 363
 
364
-    /**
365
-     * Register the widgets.
366
-     * @access public
367
-     * @since  1.0.0
368
-     * @return void
369
-     */
370
-    public function register_widgets () {
371
-        // Widget List (key => value is filename => widget class).
372
-        $widget_list = apply_filters( 'sensei_registered_widgets_list', array( 	'course-component' 	=> 'Course_Component',
373
-                'lesson-component' 	=> 'Lesson_Component',
374
-                'course-categories' => 'Course_Categories',
375
-                'category-courses' 	=> 'Category_Courses' )
376
-        );
377
-        foreach ( $widget_list as $key => $value ) {
378
-            if ( file_exists( $this->plugin_path . 'widgets/widget-woothemes-sensei-' . $key  . '.php' ) ) {
379
-                require_once( $this->plugin_path . 'widgets/widget-woothemes-sensei-' . $key  . '.php' );
380
-                register_widget( 'WooThemes_Sensei_' . $value . '_Widget' );
381
-            }
382
-        } // End For Loop
364
+	/**
365
+	 * Register the widgets.
366
+	 * @access public
367
+	 * @since  1.0.0
368
+	 * @return void
369
+	 */
370
+	public function register_widgets () {
371
+		// Widget List (key => value is filename => widget class).
372
+		$widget_list = apply_filters( 'sensei_registered_widgets_list', array( 	'course-component' 	=> 'Course_Component',
373
+				'lesson-component' 	=> 'Lesson_Component',
374
+				'course-categories' => 'Course_Categories',
375
+				'category-courses' 	=> 'Category_Courses' )
376
+		);
377
+		foreach ( $widget_list as $key => $value ) {
378
+			if ( file_exists( $this->plugin_path . 'widgets/widget-woothemes-sensei-' . $key  . '.php' ) ) {
379
+				require_once( $this->plugin_path . 'widgets/widget-woothemes-sensei-' . $key  . '.php' );
380
+				register_widget( 'WooThemes_Sensei_' . $value . '_Widget' );
381
+			}
382
+		} // End For Loop
383 383
 
384
-        do_action( 'sensei_register_widgets' );
384
+		do_action( 'sensei_register_widgets' );
385 385
 
386
-    } // End register_widgets()
386
+	} // End register_widgets()
387 387
 
388
-    /**
389
-     * Load the plugin's localisation file.
390
-     * @access public
391
-     * @since  1.0.0
392
-     * @return void
393
-     */
394
-    public function load_localisation () {
388
+	/**
389
+	 * Load the plugin's localisation file.
390
+	 * @access public
391
+	 * @since  1.0.0
392
+	 * @return void
393
+	 */
394
+	public function load_localisation () {
395 395
 
396
-        load_plugin_textdomain( 'woothemes-sensei', false, dirname( plugin_basename( $this->file ) ) . '/lang/' );
396
+		load_plugin_textdomain( 'woothemes-sensei', false, dirname( plugin_basename( $this->file ) ) . '/lang/' );
397 397
 
398
-    } // End load_localisation()
398
+	} // End load_localisation()
399 399
 
400
-    /**
401
-     * Load the plugin textdomain from the main WordPress "languages" folder.
402
-     * @access  public
403
-     * @since   1.0.0
404
-     * @return  void
405
-     */
406
-    public function load_plugin_textdomain () {
407
-
408
-        $domain = 'woothemes-sensei';
409
-        // The "plugin_locale" filter is also used in load_plugin_textdomain()
410
-        $locale = apply_filters( 'plugin_locale', get_locale(), $domain );
411
-        load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' );
412
-        load_plugin_textdomain( $domain, FALSE, dirname( plugin_basename( $this->file ) ) . '/lang/' );
413
-
414
-    } // End load_plugin_textdomain()
415
-
416
-    /**
417
-     * Run on activation.
418
-     * @access public
419
-     * @since  1.0.0
420
-     * @return void
421
-     */
422
-    public function activation () {
423
-
424
-        $this->register_plugin_version();
425
-
426
-    } // End activation()
427
-
428
-
429
-    /**
430
-     * Register activation hooks.
431
-     * @access public
432
-     * @since  1.0.0
433
-     * @return void
434
-     */
435
-    public function install () {
436
-
437
-        register_activation_hook( $this->file, array( $this, 'activate_sensei' ) );
438
-        register_activation_hook( $this->file, 'flush_rewrite_rules' );
439
-
440
-    } // End install()
441
-
442
-
443
-    /**
444
-     * Run on activation of the plugin.
445
-     * @access public
446
-     * @since  1.0.0
447
-     * @return void
448
-     */
449
-    public function activate_sensei () {
450
-
451
-        update_option( 'skip_install_sensei_pages', 0 );
452
-        update_option( 'sensei_installed', 1 );
453
-
454
-    } // End activate_sensei()
455
-
456
-    /**
457
-     * Register the plugin's version.
458
-     * @access public
459
-     * @since  1.0.0
460
-     * @return void
461
-     */
462
-    private function register_plugin_version () {
463
-        if ( $this->version != '' ) {
464
-
465
-            update_option( 'woothemes-sensei-version', $this->version );
466
-
467
-        }
468
-    } // End register_plugin_version()
469
-
470
-    /**
471
-     * Ensure that "post-thumbnails" support is available for those themes that don't register it.
472
-     * @access  public
473
-     * @since   1.0.1
474
-     * @return  void
475
-     */
476
-    public function ensure_post_thumbnails_support () {
400
+	/**
401
+	 * Load the plugin textdomain from the main WordPress "languages" folder.
402
+	 * @access  public
403
+	 * @since   1.0.0
404
+	 * @return  void
405
+	 */
406
+	public function load_plugin_textdomain () {
407
+
408
+		$domain = 'woothemes-sensei';
409
+		// The "plugin_locale" filter is also used in load_plugin_textdomain()
410
+		$locale = apply_filters( 'plugin_locale', get_locale(), $domain );
411
+		load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' );
412
+		load_plugin_textdomain( $domain, FALSE, dirname( plugin_basename( $this->file ) ) . '/lang/' );
413
+
414
+	} // End load_plugin_textdomain()
415
+
416
+	/**
417
+	 * Run on activation.
418
+	 * @access public
419
+	 * @since  1.0.0
420
+	 * @return void
421
+	 */
422
+	public function activation () {
423
+
424
+		$this->register_plugin_version();
425
+
426
+	} // End activation()
427
+
428
+
429
+	/**
430
+	 * Register activation hooks.
431
+	 * @access public
432
+	 * @since  1.0.0
433
+	 * @return void
434
+	 */
435
+	public function install () {
436
+
437
+		register_activation_hook( $this->file, array( $this, 'activate_sensei' ) );
438
+		register_activation_hook( $this->file, 'flush_rewrite_rules' );
439
+
440
+	} // End install()
441
+
442
+
443
+	/**
444
+	 * Run on activation of the plugin.
445
+	 * @access public
446
+	 * @since  1.0.0
447
+	 * @return void
448
+	 */
449
+	public function activate_sensei () {
450
+
451
+		update_option( 'skip_install_sensei_pages', 0 );
452
+		update_option( 'sensei_installed', 1 );
453
+
454
+	} // End activate_sensei()
455
+
456
+	/**
457
+	 * Register the plugin's version.
458
+	 * @access public
459
+	 * @since  1.0.0
460
+	 * @return void
461
+	 */
462
+	private function register_plugin_version () {
463
+		if ( $this->version != '' ) {
464
+
465
+			update_option( 'woothemes-sensei-version', $this->version );
466
+
467
+		}
468
+	} // End register_plugin_version()
469
+
470
+	/**
471
+	 * Ensure that "post-thumbnails" support is available for those themes that don't register it.
472
+	 * @access  public
473
+	 * @since   1.0.1
474
+	 * @return  void
475
+	 */
476
+	public function ensure_post_thumbnails_support () {
477 477
 
478
-        if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); }
478
+		if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); }
479 479
 
480
-    } // End ensure_post_thumbnails_support()
480
+	} // End ensure_post_thumbnails_support()
481 481
 
482
-    /**
483
-     * template_loader function.
484
-     *
485
-     * @access public
486
-     * @param mixed $template
487
-     * @return void
488
-     * @deprecated
489
-     */
490
-    public function template_loader ( $template = '' ) {
482
+	/**
483
+	 * template_loader function.
484
+	 *
485
+	 * @access public
486
+	 * @param mixed $template
487
+	 * @return void
488
+	 * @deprecated
489
+	 */
490
+	public function template_loader ( $template = '' ) {
491 491
 
492
-        _deprecated_function( 'Sensei()->template_loader', '1.9.0', 'Use Sensei_Templates::template_loader( $template ) instead' );
493
-        Sensei_Templates::template_loader( $template );
492
+		_deprecated_function( 'Sensei()->template_loader', '1.9.0', 'Use Sensei_Templates::template_loader( $template ) instead' );
493
+		Sensei_Templates::template_loader( $template );
494 494
 
495
-    } // End template_loader()
495
+	} // End template_loader()
496 496
 
497
-    /**
498
-     * Determine the relative path to the plugin's directory.
499
-     * @access public
500
-     * @since  1.0.0
501
-     * @return string $sensei_plugin_path
502
-     */
503
-    public function plugin_path () {
497
+	/**
498
+	 * Determine the relative path to the plugin's directory.
499
+	 * @access public
500
+	 * @since  1.0.0
501
+	 * @return string $sensei_plugin_path
502
+	 */
503
+	public function plugin_path () {
504 504
 
505
-        if ( $this->plugin_path ) {
505
+		if ( $this->plugin_path ) {
506 506
 
507
-            $sensei_plugin_path =  $this->plugin_path;
507
+			$sensei_plugin_path =  $this->plugin_path;
508 508
 
509
-        }else{
509
+		}else{
510 510
 
511
-            $sensei_plugin_path = plugin_dir_path( __FILE__ );
511
+			$sensei_plugin_path = plugin_dir_path( __FILE__ );
512 512
 
513
-        }
513
+		}
514 514
 
515
-        return $sensei_plugin_path;
516
-
517
-    } // End plugin_path()
518
-
519
-    /**
520
-     * Retrieve the ID of a specified page setting.
521
-     * @access public
522
-     * @since  1.0.0
523
-     * @param  string $page
524
-     * @return int
525
-     */
526
-    public function get_page_id ( $page ) {
527
-        $page = apply_filters( 'sensei_get_' . esc_attr( $page ) . '_page_id', get_option( 'sensei_' . esc_attr( $page ) . '_page_id' ) );
528
-        return ( $page ) ? $page : -1;
529
-    } // End get_page_id()
530
-
531
-    /**
532
-     * check_user_permissions function.
533
-     *
534
-     * @access public
535
-     * @param string $page (default: '')
536
-     *
537
-     * @return bool
538
-     */
539
-    public function check_user_permissions ( $page = '' ) {
515
+		return $sensei_plugin_path;
516
+
517
+	} // End plugin_path()
518
+
519
+	/**
520
+	 * Retrieve the ID of a specified page setting.
521
+	 * @access public
522
+	 * @since  1.0.0
523
+	 * @param  string $page
524
+	 * @return int
525
+	 */
526
+	public function get_page_id ( $page ) {
527
+		$page = apply_filters( 'sensei_get_' . esc_attr( $page ) . '_page_id', get_option( 'sensei_' . esc_attr( $page ) . '_page_id' ) );
528
+		return ( $page ) ? $page : -1;
529
+	} // End get_page_id()
530
+
531
+	/**
532
+	 * check_user_permissions function.
533
+	 *
534
+	 * @access public
535
+	 * @param string $page (default: '')
536
+	 *
537
+	 * @return bool
538
+	 */
539
+	public function check_user_permissions ( $page = '' ) {
540 540
 
541
-        global $current_user, $post;
542
-
543
-        // if user is not logged in skipped for single lesson
544
-        if ( empty( $current_user->caps ) && Sensei()->settings->get('access_permission')
545
-            && 'lesson-single' !=  $page ){
541
+		global $current_user, $post;
542
+
543
+		// if user is not logged in skipped for single lesson
544
+		if ( empty( $current_user->caps ) && Sensei()->settings->get('access_permission')
545
+			&& 'lesson-single' !=  $page ){
546 546
 
547
-            $this->permissions_message['title'] = __('Restricted Access:', 'woothemes-sensei' );
548
-            $this->permissions_message['message'] = sprintf( __('You must be logged in to view this %s'), get_post_type() );
547
+			$this->permissions_message['title'] = __('Restricted Access:', 'woothemes-sensei' );
548
+			$this->permissions_message['message'] = sprintf( __('You must be logged in to view this %s'), get_post_type() );
549 549
 
550
-            return false;
551
-        }
550
+			return false;
551
+		}
552 552
 
553
-        $user_allowed = false;
553
+		$user_allowed = false;
554 554
 
555
-        switch ( $page ) {
556
-	        case 'course-single':
557
-		        // check for prerequisite course or lesson,
558
-		        $course_prerequisite_id = (int) get_post_meta( $post->ID, '_course_prerequisite', true );
559
-		        $update_course          = Sensei_WC::course_update( $post->ID );
555
+		switch ( $page ) {
556
+			case 'course-single':
557
+				// check for prerequisite course or lesson,
558
+				$course_prerequisite_id = (int) get_post_meta( $post->ID, '_course_prerequisite', true );
559
+				$update_course          = Sensei_WC::course_update( $post->ID );
560 560
 
561
-		        // Count completed lessons
562
-		        if ( 0 < absint( $course_prerequisite_id ) ) {
561
+				// Count completed lessons
562
+				if ( 0 < absint( $course_prerequisite_id ) ) {
563 563
 
564
-			        $prerequisite_complete = Sensei_Utils::user_completed_course( $course_prerequisite_id, $current_user->ID );
565
-
566
-		        } else {
567
-			        $prerequisite_complete = true;
568
-		        } // End If Statement
569
-
570
-		        // Handles restrictions on the course
571
-		        if ( ( ! $prerequisite_complete && 0 < absint( $course_prerequisite_id ) ) ) {
572
-
573
-			        $user_allowed                         = false;
574
-			        $course_link                          = '<a href="' . esc_url( get_permalink( $course_prerequisite_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
575
-			        $this->permissions_message['message'] = sprintf( __( 'Please complete the previous %1$s before taking this course.', 'woothemes-sensei' ), $course_link );
576
-
577
-		        } elseif ( ! Sensei_Utils::user_started_course( $post->ID, $current_user->ID ) ) {
578
-
579
-			        $user_allowed                         = false;
580
-
581
-		        } else  {
582
-
583
-                    $user_allowed = true;
584
-
585
-                } // End If Statement
586
-                break;
587
-            case 'lesson-single':
588
-                // Check for WC purchase
589
-                $lesson_course_id = get_post_meta( $post->ID, '_lesson_course',true );
590
-
591
-                $update_course = Sensei_WC::course_update( $lesson_course_id );
592
-                $is_preview = Sensei_Utils::is_preview_lesson( $post->ID );
593
-
594
-                if ( $this->access_settings() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) {
595
-                    $user_allowed = true;
596
-                } elseif( $this->access_settings() && false == $is_preview ) {
597
-
598
-                    $user_allowed = true;
599
-
600
-                } else {
601
-                    $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
602
-                    $course_link = '<a href="' . esc_url( get_permalink( $lesson_course_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
603
-                    $wc_post_id = get_post_meta( $lesson_course_id, '_course_woocommerce_product',true );
604
-                    if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
605
-                        if ( $is_preview ) {
606
-                            $this->permissions_message['message'] = sprintf( __('This is a preview lesson. Please purchase the %1$s to access all lessons.', 'woothemes-sensei' ), $course_link );
607
-                        } else {
608
-                            $this->permissions_message['message'] =  sprintf( __('Please purchase the %1$s before starting this Lesson.', 'woothemes-sensei' ), $course_link );
609
-                        }
610
-                    } else {
611
-                        if ( $is_preview ) {
612
-                            $this->permissions_message['message'] = sprintf( __('This is a preview lesson. Please sign up for the %1$s to access all lessons.', 'woothemes-sensei' ), $course_link );
613
-                        } else {
614
-                            /** This filter is documented in class-woothemes-sensei-frontend.php */
615
-                            $this->permissions_message['message'] =  sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
616
-                        }
617
-                    } // End If Statement
618
-                } // End If Statement
619
-                break;
620
-            case 'quiz-single':
621
-                $lesson_id = get_post_meta( $post->ID, '_quiz_lesson',true );
622
-                $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course',true );
623
-
624
-                $update_course = Sensei_WC::course_update( $lesson_course_id );
625
-                if ( ( $this->access_settings() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) || sensei_all_access() ) {
626
-
627
-                    // Check for prerequisite lesson for this quiz
628
-                    $lesson_prerequisite_id = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true);
629
-                    $user_lesson_prerequisite_complete = Sensei_Utils::user_completed_lesson( $lesson_prerequisite_id, $current_user->ID);
630
-
631
-                    // Handle restrictions
632
-                    if( sensei_all_access() ) {
633
-
634
-                        $user_allowed = true;
635
-
636
-                    } else {
637
-
638
-                        if ( 0 < absint( $lesson_prerequisite_id ) && ( !$user_lesson_prerequisite_complete ) ) {
639
-
640
-                            $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
641
-                            $lesson_link = '<a href="' . esc_url( get_permalink( $lesson_prerequisite_id ) ) . '">' . __( 'lesson', 'woothemes-sensei' ) . '</a>';
642
-                            $this->permissions_message['message'] = sprintf( __('Please complete the previous %1$s before taking this Quiz.', 'woothemes-sensei' ), $lesson_link );
643
-
644
-                        } else {
645
-
646
-                            $user_allowed = true;
647
-
648
-                        } // End If Statement
649
-                    } // End If Statement
650
-                } elseif( $this->access_settings() ) {
651
-                    // Check if the user has started the course
652
-
653
-                    if ( is_user_logged_in() && ! Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) && ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) ) {
654
-
655
-                        $user_allowed = false;
656
-                        $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
657
-                        $course_link = '<a href="' . esc_url( get_permalink( $lesson_course_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
658
-                        $wc_post_id = get_post_meta( $lesson_course_id, '_course_woocommerce_product',true );
659
-                        if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
660
-                            $this->permissions_message['message'] = sprintf( __('Please purchase the %1$s before starting this Quiz.', 'woothemes-sensei' ), $course_link );
661
-                        } else {
662
-                            $this->permissions_message['message'] = sprintf( __('Please sign up for the %1$s before starting this Quiz.', 'woothemes-sensei' ), $course_link );
663
-                        } // End If Statement
664
-                    } else {
665
-                        $user_allowed = true;
666
-                    } // End If Statement
667
-                } else {
668
-                    $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
669
-                    $course_link = '<a href="' . esc_url( get_permalink( get_post_meta( get_post_meta( $post->ID, '_quiz_lesson', true ), '_lesson_course', true ) ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
670
-                    $this->permissions_message['message'] = sprintf( __('Please sign up for the %1$s before taking this Quiz.', 'woothemes-sensei' ), $course_link );
671
-                } // End If Statement
672
-                break;
673
-            default:
674
-                $user_allowed = true;
675
-                break;
676
-
677
-        } // End Switch Statement
678
-
679
-        /**
680
-         * filter the permissions message shown on sensei post types.
681
-         *
682
-         * @since 1.8.7
683
-         *
684
-         * @param array $permissions_message{
685
-         *
686
-         *   @type string $title
687
-         *   @type string $message
688
-         *
689
-         * }
690
-         * @param string $post_id
691
-         */
692
-        $this->permissions_message = apply_filters( 'sensei_permissions_message', $this->permissions_message, $post->ID );
693
-
694
-
695
-        if( sensei_all_access() || Sensei_Utils::is_preview_lesson( $post->ID ) ) {
696
-            $user_allowed = true;
697
-        }
698
-
699
-        /**
700
-         * Filter the permissions check final result. Which determines if the user has
701
-         * access to the given page.
702
-         *
703
-         * @since 1.0
704
-         *
705
-         * @param boolean $user_allowed
706
-         * @param integer $user_id
707
-         *
708
-         */
709
-        return apply_filters( 'sensei_access_permissions', $user_allowed, $current_user->ID );
710
-
711
-    } // End get_placeholder_image()
712
-
713
-
714
-    /**
715
-     * Check if visitors have access permission. If the "access_permission" setting is active, do a log in check.
716
-     * @since  1.0.0
717
-     * @access public
718
-     * @return bool
719
-     */
720
-    public function access_settings () {
721
-
722
-        if( sensei_all_access() ) return true;
723
-
724
-        if ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) {
725
-            if ( is_user_logged_in() ) {
726
-                return true;
727
-            } else {
728
-                return false;
729
-            } // End If Statement
730
-        } else {
731
-            return true;
732
-        } // End If Statement
733
-    } // End access_settings()
734
-
735
-    /**
736
-     * load_class loads in class files
737
-     * @since   1.2.0
738
-     * @access  public
739
-     * @return  void
740
-     */
741
-    public function load_class ( $class_name = '' ) {
742
-        if ( '' != $class_name && '' != $this->token ) {
743
-            require_once( 'class-' . esc_attr( $this->token ) . '-' . esc_attr( $class_name ) . '.php' );
744
-        } // End If Statement
745
-    } // End load_class()
746
-
747
-    /**
748
-     * Filtering wp_count_comments to ensure that Sensei comments are ignored
749
-     * @since   1.4.0
750
-     * @access  public
751
-     * @param  array   $comments
752
-     * @param  integer $post_id
753
-     * @return array
754
-     */
755
-    public function sensei_count_comments( $comments, $post_id ) {
756
-        global $wpdb;
757
-
758
-        $post_id = (int) $post_id;
759
-
760
-        $count = wp_cache_get("comments-{$post_id}", 'counts');
761
-
762
-        if ( false !== $count ) {
763
-            return $count;
764
-        }
765
-
766
-        $statuses = array( '' ); // Default to the WP normal comments
767
-        $stati = $wpdb->get_results( "SELECT comment_type FROM {$wpdb->comments} GROUP BY comment_type", ARRAY_A );
768
-        foreach ( (array) $stati AS $status ) {
769
-            if ( 'sensei_' != substr($status['comment_type'], 0, 7 ) ) {
770
-                $statuses[] = $status['comment_type'];
771
-            }
772
-        }
773
-        $where = "WHERE comment_type IN ('" . join("', '", array_unique( $statuses ) ) . "')";
774
-
775
-        if ( $post_id > 0 )
776
-            $where .= $wpdb->prepare( " AND comment_post_ID = %d", $post_id );
777
-
778
-        $count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} {$where} GROUP BY comment_approved", ARRAY_A );
779
-
780
-        $total = 0;
781
-        $approved = array('0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
782
-        foreach ( (array) $count as $row ) {
783
-            // Don't count post-trashed toward totals
784
-            if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] )
785
-                $total += $row['num_comments'];
786
-            if ( isset( $approved[$row['comment_approved']] ) )
787
-                $stats[$approved[$row['comment_approved']]] = $row['num_comments'];
788
-        }
789
-
790
-        $stats['total_comments'] = $total;
791
-        foreach ( $approved as $key ) {
792
-            if ( empty($stats[$key]) )
793
-                $stats[$key] = 0;
794
-        }
795
-
796
-        $stats = (object) $stats;
797
-        wp_cache_set("comments-{$post_id}", $stats, 'counts');
798
-
799
-        return $stats;
800
-    }
801
-
802
-    /**
803
-     * Init images.
804
-     *
805
-     * @since 1.4.5
806
-     * @access public
807
-     * @return void
808
-     */
809
-    public function init_image_sizes() {
810
-        $course_archive_thumbnail 	= $this->get_image_size( 'course_archive_image' );
811
-        $course_single_thumbnail	= $this->get_image_size( 'course_single_image' );
812
-        $lesson_archive_thumbnail 	= $this->get_image_size( 'lesson_archive_image' );
813
-        $lesson_single_thumbnail	= $this->get_image_size( 'lesson_single_image' );
814
-
815
-        add_image_size( 'course_archive_thumbnail', $course_archive_thumbnail['width'], $course_archive_thumbnail['height'], $course_archive_thumbnail['crop'] );
816
-        add_image_size( 'course_single_thumbnail', $course_single_thumbnail['width'], $course_single_thumbnail['height'], $course_single_thumbnail['crop'] );
817
-        add_image_size( 'lesson_archive_thumbnail', $lesson_archive_thumbnail['width'], $lesson_archive_thumbnail['height'], $lesson_archive_thumbnail['crop'] );
818
-        add_image_size( 'lesson_single_thumbnail', $lesson_single_thumbnail['width'], $lesson_single_thumbnail['height'], $lesson_single_thumbnail['crop'] );
819
-    }
820
-
821
-    /**
822
-     * Get an image size.
823
-     *
824
-     * Variable is filtered by sensei_get_image_size_{image_size}
825
-     *
826
-     * @since 1.4.5
827
-     * @access public
828
-     * @param mixed $image_size
829
-     * @return string
830
-     */
831
-    public function get_image_size( $image_size ) {
832
-
833
-        // Only return sizes we define in settings
834
-        if ( ! in_array( $image_size, array( 'course_archive_image', 'course_single_image', 'lesson_archive_image', 'lesson_single_image' ) ) )
835
-            return apply_filters( 'sensei_get_image_size_' . $image_size, '' );
836
-
837
-        if( ! isset( $this->settings->settings[ $image_size . '_width' ] ) ) {
838
-            $this->settings->settings[ $image_size . '_width' ] = false;
839
-        }
840
-        if( ! isset( $this->settings->settings[ $image_size . '_height' ] ) ) {
841
-            $this->settings->settings[ $image_size . '_height' ] = false;
842
-        }
843
-        if( ! isset( $this->settings->settings[ $image_size . '_hard_crop' ] ) ) {
844
-            $this->settings->settings[ $image_size . '_hard_crop' ] = false;
845
-        }
846
-
847
-        $size = array_filter( array(
848
-            'width' => $this->settings->settings[ $image_size . '_width' ],
849
-            'height' => $this->settings->settings[ $image_size . '_height' ],
850
-            'crop' => $this->settings->settings[ $image_size . '_hard_crop' ]
851
-        ) );
852
-
853
-        $size['width'] 	= isset( $size['width'] ) ? $size['width'] : '100';
854
-        $size['height'] = isset( $size['height'] ) ? $size['height'] : '100';
855
-        $size['crop'] 	= isset( $size['crop'] ) ? $size['crop'] : 0;
856
-
857
-        return apply_filters( 'sensei_get_image_size_' . $image_size, $size );
858
-    }
859
-
860
-    public function body_class( $classes ) {
861
-        if( is_sensei() ) {
862
-            $classes[] = 'sensei';
863
-        }
864
-        return $classes;
865
-    }
866
-
867
-    /**
868
-     * Checks that the Jetpack Beautiful Maths module has been activated to support LaTeX within question titles and answers
869
-     *
870
-     * @return null
871
-     * @since 1.7.0
872
-     */
873
-    public function jetpack_latex_support() {
874
-        if ( function_exists( 'latex_markup') ) {
875
-            add_filter( 'sensei_question_title', 'latex_markup' );
876
-            add_filter( 'sensei_answer_text', 'latex_markup' );
877
-        }
878
-    }
879
-
880
-    /**
881
-     * Load the module functionality.
882
-     *
883
-     * This function is hooked into plugins_loaded to avoid conflicts with
884
-     * the retired modules extension.
885
-     *
886
-     * @since 1.8.0
887
-     */
888
-    public function load_modules_class(){
889
-        global $sensei_modules;
890
-
891
-        if( !class_exists( 'Sensei_Modules' )
892
-            &&  'Sensei_Modules' != get_class( $sensei_modules ) ) {
893
-
894
-            //Load the modules class
895
-            require_once( 'class-sensei-modules.php');
896
-            Sensei()->modules = new Sensei_Core_Modules( $this->file );
897
-
898
-        }else{
899
-            // fallback for people still using the modules extension.
900
-            global $sensei_modules;
901
-            Sensei()->modules = $sensei_modules;
902
-            add_action( 'admin_notices', array( $this, 'disable_sensei_modules_extension'), 30 );
903
-        }
904
-    }
905
-
906
-    /**
907
-     * Tell the user to that the modules extension is no longer needed.
908
-     *
909
-     * @since 1.8.0
910
-     */
911
-    public function disable_sensei_modules_extension(){ ?>
564
+					$prerequisite_complete = Sensei_Utils::user_completed_course( $course_prerequisite_id, $current_user->ID );
565
+
566
+				} else {
567
+					$prerequisite_complete = true;
568
+				} // End If Statement
569
+
570
+				// Handles restrictions on the course
571
+				if ( ( ! $prerequisite_complete && 0 < absint( $course_prerequisite_id ) ) ) {
572
+
573
+					$user_allowed                         = false;
574
+					$course_link                          = '<a href="' . esc_url( get_permalink( $course_prerequisite_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
575
+					$this->permissions_message['message'] = sprintf( __( 'Please complete the previous %1$s before taking this course.', 'woothemes-sensei' ), $course_link );
576
+
577
+				} elseif ( ! Sensei_Utils::user_started_course( $post->ID, $current_user->ID ) ) {
578
+
579
+					$user_allowed                         = false;
580
+
581
+				} else  {
582
+
583
+					$user_allowed = true;
584
+
585
+				} // End If Statement
586
+				break;
587
+			case 'lesson-single':
588
+				// Check for WC purchase
589
+				$lesson_course_id = get_post_meta( $post->ID, '_lesson_course',true );
590
+
591
+				$update_course = Sensei_WC::course_update( $lesson_course_id );
592
+				$is_preview = Sensei_Utils::is_preview_lesson( $post->ID );
593
+
594
+				if ( $this->access_settings() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) {
595
+					$user_allowed = true;
596
+				} elseif( $this->access_settings() && false == $is_preview ) {
597
+
598
+					$user_allowed = true;
599
+
600
+				} else {
601
+					$this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
602
+					$course_link = '<a href="' . esc_url( get_permalink( $lesson_course_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
603
+					$wc_post_id = get_post_meta( $lesson_course_id, '_course_woocommerce_product',true );
604
+					if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
605
+						if ( $is_preview ) {
606
+							$this->permissions_message['message'] = sprintf( __('This is a preview lesson. Please purchase the %1$s to access all lessons.', 'woothemes-sensei' ), $course_link );
607
+						} else {
608
+							$this->permissions_message['message'] =  sprintf( __('Please purchase the %1$s before starting this Lesson.', 'woothemes-sensei' ), $course_link );
609
+						}
610
+					} else {
611
+						if ( $is_preview ) {
612
+							$this->permissions_message['message'] = sprintf( __('This is a preview lesson. Please sign up for the %1$s to access all lessons.', 'woothemes-sensei' ), $course_link );
613
+						} else {
614
+							/** This filter is documented in class-woothemes-sensei-frontend.php */
615
+							$this->permissions_message['message'] =  sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
616
+						}
617
+					} // End If Statement
618
+				} // End If Statement
619
+				break;
620
+			case 'quiz-single':
621
+				$lesson_id = get_post_meta( $post->ID, '_quiz_lesson',true );
622
+				$lesson_course_id = get_post_meta( $lesson_id, '_lesson_course',true );
623
+
624
+				$update_course = Sensei_WC::course_update( $lesson_course_id );
625
+				if ( ( $this->access_settings() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) || sensei_all_access() ) {
626
+
627
+					// Check for prerequisite lesson for this quiz
628
+					$lesson_prerequisite_id = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true);
629
+					$user_lesson_prerequisite_complete = Sensei_Utils::user_completed_lesson( $lesson_prerequisite_id, $current_user->ID);
630
+
631
+					// Handle restrictions
632
+					if( sensei_all_access() ) {
633
+
634
+						$user_allowed = true;
635
+
636
+					} else {
637
+
638
+						if ( 0 < absint( $lesson_prerequisite_id ) && ( !$user_lesson_prerequisite_complete ) ) {
639
+
640
+							$this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
641
+							$lesson_link = '<a href="' . esc_url( get_permalink( $lesson_prerequisite_id ) ) . '">' . __( 'lesson', 'woothemes-sensei' ) . '</a>';
642
+							$this->permissions_message['message'] = sprintf( __('Please complete the previous %1$s before taking this Quiz.', 'woothemes-sensei' ), $lesson_link );
643
+
644
+						} else {
645
+
646
+							$user_allowed = true;
647
+
648
+						} // End If Statement
649
+					} // End If Statement
650
+				} elseif( $this->access_settings() ) {
651
+					// Check if the user has started the course
652
+
653
+					if ( is_user_logged_in() && ! Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) && ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) ) {
654
+
655
+						$user_allowed = false;
656
+						$this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
657
+						$course_link = '<a href="' . esc_url( get_permalink( $lesson_course_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
658
+						$wc_post_id = get_post_meta( $lesson_course_id, '_course_woocommerce_product',true );
659
+						if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
660
+							$this->permissions_message['message'] = sprintf( __('Please purchase the %1$s before starting this Quiz.', 'woothemes-sensei' ), $course_link );
661
+						} else {
662
+							$this->permissions_message['message'] = sprintf( __('Please sign up for the %1$s before starting this Quiz.', 'woothemes-sensei' ), $course_link );
663
+						} // End If Statement
664
+					} else {
665
+						$user_allowed = true;
666
+					} // End If Statement
667
+				} else {
668
+					$this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
669
+					$course_link = '<a href="' . esc_url( get_permalink( get_post_meta( get_post_meta( $post->ID, '_quiz_lesson', true ), '_lesson_course', true ) ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
670
+					$this->permissions_message['message'] = sprintf( __('Please sign up for the %1$s before taking this Quiz.', 'woothemes-sensei' ), $course_link );
671
+				} // End If Statement
672
+				break;
673
+			default:
674
+				$user_allowed = true;
675
+				break;
676
+
677
+		} // End Switch Statement
678
+
679
+		/**
680
+		 * filter the permissions message shown on sensei post types.
681
+		 *
682
+		 * @since 1.8.7
683
+		 *
684
+		 * @param array $permissions_message{
685
+		 *
686
+		 *   @type string $title
687
+		 *   @type string $message
688
+		 *
689
+		 * }
690
+		 * @param string $post_id
691
+		 */
692
+		$this->permissions_message = apply_filters( 'sensei_permissions_message', $this->permissions_message, $post->ID );
693
+
694
+
695
+		if( sensei_all_access() || Sensei_Utils::is_preview_lesson( $post->ID ) ) {
696
+			$user_allowed = true;
697
+		}
698
+
699
+		/**
700
+		 * Filter the permissions check final result. Which determines if the user has
701
+		 * access to the given page.
702
+		 *
703
+		 * @since 1.0
704
+		 *
705
+		 * @param boolean $user_allowed
706
+		 * @param integer $user_id
707
+		 *
708
+		 */
709
+		return apply_filters( 'sensei_access_permissions', $user_allowed, $current_user->ID );
710
+
711
+	} // End get_placeholder_image()
712
+
713
+
714
+	/**
715
+	 * Check if visitors have access permission. If the "access_permission" setting is active, do a log in check.
716
+	 * @since  1.0.0
717
+	 * @access public
718
+	 * @return bool
719
+	 */
720
+	public function access_settings () {
721
+
722
+		if( sensei_all_access() ) return true;
723
+
724
+		if ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) {
725
+			if ( is_user_logged_in() ) {
726
+				return true;
727
+			} else {
728
+				return false;
729
+			} // End If Statement
730
+		} else {
731
+			return true;
732
+		} // End If Statement
733
+	} // End access_settings()
734
+
735
+	/**
736
+	 * load_class loads in class files
737
+	 * @since   1.2.0
738
+	 * @access  public
739
+	 * @return  void
740
+	 */
741
+	public function load_class ( $class_name = '' ) {
742
+		if ( '' != $class_name && '' != $this->token ) {
743
+			require_once( 'class-' . esc_attr( $this->token ) . '-' . esc_attr( $class_name ) . '.php' );
744
+		} // End If Statement
745
+	} // End load_class()
746
+
747
+	/**
748
+	 * Filtering wp_count_comments to ensure that Sensei comments are ignored
749
+	 * @since   1.4.0
750
+	 * @access  public
751
+	 * @param  array   $comments
752
+	 * @param  integer $post_id
753
+	 * @return array
754
+	 */
755
+	public function sensei_count_comments( $comments, $post_id ) {
756
+		global $wpdb;
757
+
758
+		$post_id = (int) $post_id;
759
+
760
+		$count = wp_cache_get("comments-{$post_id}", 'counts');
761
+
762
+		if ( false !== $count ) {
763
+			return $count;
764
+		}
765
+
766
+		$statuses = array( '' ); // Default to the WP normal comments
767
+		$stati = $wpdb->get_results( "SELECT comment_type FROM {$wpdb->comments} GROUP BY comment_type", ARRAY_A );
768
+		foreach ( (array) $stati AS $status ) {
769
+			if ( 'sensei_' != substr($status['comment_type'], 0, 7 ) ) {
770
+				$statuses[] = $status['comment_type'];
771
+			}
772
+		}
773
+		$where = "WHERE comment_type IN ('" . join("', '", array_unique( $statuses ) ) . "')";
774
+
775
+		if ( $post_id > 0 )
776
+			$where .= $wpdb->prepare( " AND comment_post_ID = %d", $post_id );
777
+
778
+		$count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} {$where} GROUP BY comment_approved", ARRAY_A );
779
+
780
+		$total = 0;
781
+		$approved = array('0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
782
+		foreach ( (array) $count as $row ) {
783
+			// Don't count post-trashed toward totals
784
+			if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] )
785
+				$total += $row['num_comments'];
786
+			if ( isset( $approved[$row['comment_approved']] ) )
787
+				$stats[$approved[$row['comment_approved']]] = $row['num_comments'];
788
+		}
789
+
790
+		$stats['total_comments'] = $total;
791
+		foreach ( $approved as $key ) {
792
+			if ( empty($stats[$key]) )
793
+				$stats[$key] = 0;
794
+		}
795
+
796
+		$stats = (object) $stats;
797
+		wp_cache_set("comments-{$post_id}", $stats, 'counts');
798
+
799
+		return $stats;
800
+	}
801
+
802
+	/**
803
+	 * Init images.
804
+	 *
805
+	 * @since 1.4.5
806
+	 * @access public
807
+	 * @return void
808
+	 */
809
+	public function init_image_sizes() {
810
+		$course_archive_thumbnail 	= $this->get_image_size( 'course_archive_image' );
811
+		$course_single_thumbnail	= $this->get_image_size( 'course_single_image' );
812
+		$lesson_archive_thumbnail 	= $this->get_image_size( 'lesson_archive_image' );
813
+		$lesson_single_thumbnail	= $this->get_image_size( 'lesson_single_image' );
814
+
815
+		add_image_size( 'course_archive_thumbnail', $course_archive_thumbnail['width'], $course_archive_thumbnail['height'], $course_archive_thumbnail['crop'] );
816
+		add_image_size( 'course_single_thumbnail', $course_single_thumbnail['width'], $course_single_thumbnail['height'], $course_single_thumbnail['crop'] );
817
+		add_image_size( 'lesson_archive_thumbnail', $lesson_archive_thumbnail['width'], $lesson_archive_thumbnail['height'], $lesson_archive_thumbnail['crop'] );
818
+		add_image_size( 'lesson_single_thumbnail', $lesson_single_thumbnail['width'], $lesson_single_thumbnail['height'], $lesson_single_thumbnail['crop'] );
819
+	}
820
+
821
+	/**
822
+	 * Get an image size.
823
+	 *
824
+	 * Variable is filtered by sensei_get_image_size_{image_size}
825
+	 *
826
+	 * @since 1.4.5
827
+	 * @access public
828
+	 * @param mixed $image_size
829
+	 * @return string
830
+	 */
831
+	public function get_image_size( $image_size ) {
832
+
833
+		// Only return sizes we define in settings
834
+		if ( ! in_array( $image_size, array( 'course_archive_image', 'course_single_image', 'lesson_archive_image', 'lesson_single_image' ) ) )
835
+			return apply_filters( 'sensei_get_image_size_' . $image_size, '' );
836
+
837
+		if( ! isset( $this->settings->settings[ $image_size . '_width' ] ) ) {
838
+			$this->settings->settings[ $image_size . '_width' ] = false;
839
+		}
840
+		if( ! isset( $this->settings->settings[ $image_size . '_height' ] ) ) {
841
+			$this->settings->settings[ $image_size . '_height' ] = false;
842
+		}
843
+		if( ! isset( $this->settings->settings[ $image_size . '_hard_crop' ] ) ) {
844
+			$this->settings->settings[ $image_size . '_hard_crop' ] = false;
845
+		}
846
+
847
+		$size = array_filter( array(
848
+			'width' => $this->settings->settings[ $image_size . '_width' ],
849
+			'height' => $this->settings->settings[ $image_size . '_height' ],
850
+			'crop' => $this->settings->settings[ $image_size . '_hard_crop' ]
851
+		) );
852
+
853
+		$size['width'] 	= isset( $size['width'] ) ? $size['width'] : '100';
854
+		$size['height'] = isset( $size['height'] ) ? $size['height'] : '100';
855
+		$size['crop'] 	= isset( $size['crop'] ) ? $size['crop'] : 0;
856
+
857
+		return apply_filters( 'sensei_get_image_size_' . $image_size, $size );
858
+	}
859
+
860
+	public function body_class( $classes ) {
861
+		if( is_sensei() ) {
862
+			$classes[] = 'sensei';
863
+		}
864
+		return $classes;
865
+	}
866
+
867
+	/**
868
+	 * Checks that the Jetpack Beautiful Maths module has been activated to support LaTeX within question titles and answers
869
+	 *
870
+	 * @return null
871
+	 * @since 1.7.0
872
+	 */
873
+	public function jetpack_latex_support() {
874
+		if ( function_exists( 'latex_markup') ) {
875
+			add_filter( 'sensei_question_title', 'latex_markup' );
876
+			add_filter( 'sensei_answer_text', 'latex_markup' );
877
+		}
878
+	}
879
+
880
+	/**
881
+	 * Load the module functionality.
882
+	 *
883
+	 * This function is hooked into plugins_loaded to avoid conflicts with
884
+	 * the retired modules extension.
885
+	 *
886
+	 * @since 1.8.0
887
+	 */
888
+	public function load_modules_class(){
889
+		global $sensei_modules;
890
+
891
+		if( !class_exists( 'Sensei_Modules' )
892
+			&&  'Sensei_Modules' != get_class( $sensei_modules ) ) {
893
+
894
+			//Load the modules class
895
+			require_once( 'class-sensei-modules.php');
896
+			Sensei()->modules = new Sensei_Core_Modules( $this->file );
897
+
898
+		}else{
899
+			// fallback for people still using the modules extension.
900
+			global $sensei_modules;
901
+			Sensei()->modules = $sensei_modules;
902
+			add_action( 'admin_notices', array( $this, 'disable_sensei_modules_extension'), 30 );
903
+		}
904
+	}
905
+
906
+	/**
907
+	 * Tell the user to that the modules extension is no longer needed.
908
+	 *
909
+	 * @since 1.8.0
910
+	 */
911
+	public function disable_sensei_modules_extension(){ ?>
912 912
         <div class="notice updated fade">
913 913
             <p>
914 914
                 <?php
915
-                $plugin_manage_url = admin_url().'plugins.php#sensei-modules';
916
-                $plugin_link_element = '<a href="' . $plugin_manage_url . '" >plugins page</a> ';
917
-                ?>
915
+				$plugin_manage_url = admin_url().'plugins.php#sensei-modules';
916
+				$plugin_link_element = '<a href="' . $plugin_manage_url . '" >plugins page</a> ';
917
+				?>
918 918
                 <strong> Modules are now included in Sensei,</strong> so you no longer need the Sensei Modules extension.
919 919
                 Please deactivate and delete it from your <?php echo $plugin_link_element; ?>. (This will not affect your existing modules).
920 920
             </p>
@@ -922,200 +922,200 @@  discard block
 block discarded – undo
922 922
 
923 923
     <?php }// end function
924 924
 
925
-    /**
926
-     * Sensei wide rewrite flush call.
927
-     *
928
-     * To use this simply update the option 'sensei_flush_rewrite_rules' to 1
929
-     *
930
-     * After the option is one the Rules will be flushed.
931
-     *
932
-     * @since 1.9.0
933
-     */
934
-    public function flush_rewrite_rules(){
935
-
936
-        // ensures that the rewrite rules are flushed on the second
937
-        // attempt. This ensure that the settings for any other process
938
-        // have been completed and saved to the database before we refresh the
939
-        // rewrite rules.
940
-        $option =  get_option('sensei_flush_rewrite_rules');
941
-        if( '1' == $option ) {
942
-
943
-            update_option('sensei_flush_rewrite_rules', '2');
944
-
945
-        }elseif( '2' == $option ) {
946
-
947
-            flush_rewrite_rules();
948
-            update_option('sensei_flush_rewrite_rules', '0');
949
-
950
-        }
951
-
952
-    } // end flush_rewrite_rules
953
-
954
-    /**
955
-     * Calling this function will tell Sensei to flush rewrite
956
-     * rules on the next load.
957
-     *
958
-     * @since 1.9.0
959
-     */
960
-    public function initiate_rewrite_rules_flush(){
961
-
962
-        update_option('sensei_flush_rewrite_rules', '1');
963
-
964
-    }
965
-
966
-    /**
967
-     * sensei_woocommerce_email_course_details adds detail to email
968
-     *
969
-     * @deprecated since 1.9.0 use Sensei_WC::email_course_details
970
-     *
971
-     * @since   1.4.5
972
-     * @access  public
973
-     * @param   WC_Order $order
974
-     *
975
-     * @return  void
976
-     */
977
-    public function sensei_woocommerce_email_course_details( $order ) {
978
-
979
-        Sensei_WC::email_course_details( $order );
980
-
981
-    } // end func email course details
982
-
983
-    /**
984
-     * @deprecated since 1.9.0, movde to the Sensei_WC class
985
-     * @param $user_id
986
-     * @param $subscription_key
987
-     */
988
-    public function sensei_woocommerce_reactivate_subscription( $user_id, $subscription_key ){
989
-
990
-        Sensei_WC::reactivate_subscription( $user_id, $subscription_key );
991
-    }
992
-
993
-    /**
994
-     * @deprecated since 1.9.0, movde to the Sensei_WC class
995
-     * @param $user_id
996
-     * @param $subscription_key
997
-     */
998
-    public function sensei_woocommerce_subscription_ended( $user_id, $subscription_key ){
999
-
1000
-        Sensei_WC::end_subscription( $user_id, $subscription_key );
1001
-    }
1002
-
1003
-    /**
1004
-     * sensei_woocommerce_complete_order description
1005
-     *
1006
-     * @deprecated since 1.9.0 use Sensei_WC::complete_order( $order_id );
1007
-     * @since   1.0.3
1008
-     * @access  public
1009
-     * @param   int $order_id WC order ID
1010
-     *
1011
-     * @return  void
1012
-     */
1013
-    public function sensei_woocommerce_complete_order ( $order_id = 0 ) {
1014
-
1015
-        Sensei_WC::complete_order( $order_id );
1016
-
1017
-    } // End sensei_woocommerce_complete_order()
1018
-
1019
-    /**
1020
-     * Runs when an order is cancelled.
1021
-     *
1022
-     * @deprecated since 1.9.0
1023
-     *
1024
-     * @since   1.2.0
1025
-     * @param   integer $order_id order ID
1026
-     * @return  void
1027
-     */
1028
-    public function sensei_woocommerce_cancel_order ( $order_id ) {
1029
-
1030
-        Sensei_WC::cancel_order( $order_id );
1031
-
1032
-    } // End sensei_woocommerce_cancel_order()
1033
-
1034
-    /**
1035
-     * sensei_activate_subscription runs when a subscription product is purchased
1036
-     * @deprecated since 1.9.0
1037
-     * @since   1.2.0
1038
-     * @access  public
1039
-     * @param   integer $order_id order ID
1040
-     * @return  void
1041
-     */
1042
-    public function sensei_activate_subscription(  $order_id = 0 ) {
1043
-
1044
-        Sensei_WC::activate_subscription( $order_id );
1045
-
1046
-    } // End sensei_activate_subscription()
1047
-
1048
-    /**
1049
-     * If WooCommerce is activated and the customer has purchased the course, update Sensei to indicate that they are taking the course.
1050
-     * @deprecated since 1.9.0
1051
-     * @since  1.0.0
1052
-     * @param  int 			$course_id  (default: 0)
1053
-     * @param  array/Object $order_user (default: array()) Specific user's data.
1054
-     * @return bool|int
1055
-     */
1056
-    public function woocommerce_course_update ( $course_id = 0, $order_user = array()  ) {
1057
-
1058
-        return Sensei_WC::course_update( $course_id, $order_user );
1059
-
1060
-    } // End woocommerce_course_update()
1061
-
1062
-    /**
1063
-     * Returns the WooCommerce Product Object
1064
-     *
1065
-     * The code caters for pre and post WooCommerce 2.2 installations.
1066
-     *
1067
-     * @deprecated since 1.9.0
1068
-     * @since   1.1.1
1069
-     *
1070
-     * @param   integer $wc_product_id Product ID or Variation ID
1071
-     * @param   string  $product_type  '' or 'variation'
1072
-     *
1073
-     * @return   WC_Product $wc_product_object
1074
-     */
1075
-    public function sensei_get_woocommerce_product_object ( $wc_product_id = 0, $product_type = '' ) {
1076
-
1077
-        return Sensei_WC::get_product_object( $wc_product_id, $product_type );
1078
-
1079
-    } // End sensei_get_woocommerce_product_object()
1080
-
1081
-    /**
1082
-     * Setup required WooCommerce settings.
1083
-     * @access  public
1084
-     * @since   1.1.0
1085
-     * @return  void
1086
-     */
1087
-    public function set_woocommerce_functionality() {
1088
-
1089
-        _deprecated_function('Sensei()->set_woocommerce_functionality', 'Sensei 1.9.0');
1090
-
1091
-    } // End set_woocommerce_functionality()
1092
-
1093
-    /**
1094
-     * Disable guest checkout if a course product is in the cart
1095
-     * @deprecated since 1.9.0
1096
-     * @param  boolean $guest_checkout Current guest checkout setting
1097
-     * @return boolean                 Modified guest checkout setting
1098
-     */
1099
-    public function disable_guest_checkout( $guest_checkout ) {
1100
-
1101
-        return Sensei_WC::disable_guest_checkout( $guest_checkout );
1102
-
1103
-    }// end disable_guest_checkout
1104
-
1105
-    /**
1106
-     * Change order status with virtual products to completed
1107
-     *
1108
-     * @deprecated since 1.9.0 use Sensei_WC::virtual_order_payment_complete( $order_status, $order_id )
1109
-     *
1110
-     * @since  1.1.0
1111
-     * @param string $order_status
1112
-     * @param int $order_id
1113
-     * @return string
1114
-     **/
1115
-    public function virtual_order_payment_complete( $order_status, $order_id ) {
1116
-
1117
-        return  Sensei_WC::virtual_order_payment_complete( $order_status, $order_id );
1118
-    }
925
+	/**
926
+	 * Sensei wide rewrite flush call.
927
+	 *
928
+	 * To use this simply update the option 'sensei_flush_rewrite_rules' to 1
929
+	 *
930
+	 * After the option is one the Rules will be flushed.
931
+	 *
932
+	 * @since 1.9.0
933
+	 */
934
+	public function flush_rewrite_rules(){
935
+
936
+		// ensures that the rewrite rules are flushed on the second
937
+		// attempt. This ensure that the settings for any other process
938
+		// have been completed and saved to the database before we refresh the
939
+		// rewrite rules.
940
+		$option =  get_option('sensei_flush_rewrite_rules');
941
+		if( '1' == $option ) {
942
+
943
+			update_option('sensei_flush_rewrite_rules', '2');
944
+
945
+		}elseif( '2' == $option ) {
946
+
947
+			flush_rewrite_rules();
948
+			update_option('sensei_flush_rewrite_rules', '0');
949
+
950
+		}
951
+
952
+	} // end flush_rewrite_rules
953
+
954
+	/**
955
+	 * Calling this function will tell Sensei to flush rewrite
956
+	 * rules on the next load.
957
+	 *
958
+	 * @since 1.9.0
959
+	 */
960
+	public function initiate_rewrite_rules_flush(){
961
+
962
+		update_option('sensei_flush_rewrite_rules', '1');
963
+
964
+	}
965
+
966
+	/**
967
+	 * sensei_woocommerce_email_course_details adds detail to email
968
+	 *
969
+	 * @deprecated since 1.9.0 use Sensei_WC::email_course_details
970
+	 *
971
+	 * @since   1.4.5
972
+	 * @access  public
973
+	 * @param   WC_Order $order
974
+	 *
975
+	 * @return  void
976
+	 */
977
+	public function sensei_woocommerce_email_course_details( $order ) {
978
+
979
+		Sensei_WC::email_course_details( $order );
980
+
981
+	} // end func email course details
982
+
983
+	/**
984
+	 * @deprecated since 1.9.0, movde to the Sensei_WC class
985
+	 * @param $user_id
986
+	 * @param $subscription_key
987
+	 */
988
+	public function sensei_woocommerce_reactivate_subscription( $user_id, $subscription_key ){
989
+
990
+		Sensei_WC::reactivate_subscription( $user_id, $subscription_key );
991
+	}
992
+
993
+	/**
994
+	 * @deprecated since 1.9.0, movde to the Sensei_WC class
995
+	 * @param $user_id
996
+	 * @param $subscription_key
997
+	 */
998
+	public function sensei_woocommerce_subscription_ended( $user_id, $subscription_key ){
999
+
1000
+		Sensei_WC::end_subscription( $user_id, $subscription_key );
1001
+	}
1002
+
1003
+	/**
1004
+	 * sensei_woocommerce_complete_order description
1005
+	 *
1006
+	 * @deprecated since 1.9.0 use Sensei_WC::complete_order( $order_id );
1007
+	 * @since   1.0.3
1008
+	 * @access  public
1009
+	 * @param   int $order_id WC order ID
1010
+	 *
1011
+	 * @return  void
1012
+	 */
1013
+	public function sensei_woocommerce_complete_order ( $order_id = 0 ) {
1014
+
1015
+		Sensei_WC::complete_order( $order_id );
1016
+
1017
+	} // End sensei_woocommerce_complete_order()
1018
+
1019
+	/**
1020
+	 * Runs when an order is cancelled.
1021
+	 *
1022
+	 * @deprecated since 1.9.0
1023
+	 *
1024
+	 * @since   1.2.0
1025
+	 * @param   integer $order_id order ID
1026
+	 * @return  void
1027
+	 */
1028
+	public function sensei_woocommerce_cancel_order ( $order_id ) {
1029
+
1030
+		Sensei_WC::cancel_order( $order_id );
1031
+
1032
+	} // End sensei_woocommerce_cancel_order()
1033
+
1034
+	/**
1035
+	 * sensei_activate_subscription runs when a subscription product is purchased
1036
+	 * @deprecated since 1.9.0
1037
+	 * @since   1.2.0
1038
+	 * @access  public
1039
+	 * @param   integer $order_id order ID
1040
+	 * @return  void
1041
+	 */
1042
+	public function sensei_activate_subscription(  $order_id = 0 ) {
1043
+
1044
+		Sensei_WC::activate_subscription( $order_id );
1045
+
1046
+	} // End sensei_activate_subscription()
1047
+
1048
+	/**
1049
+	 * If WooCommerce is activated and the customer has purchased the course, update Sensei to indicate that they are taking the course.
1050
+	 * @deprecated since 1.9.0
1051
+	 * @since  1.0.0
1052
+	 * @param  int 			$course_id  (default: 0)
1053
+	 * @param  array/Object $order_user (default: array()) Specific user's data.
1054
+	 * @return bool|int
1055
+	 */
1056
+	public function woocommerce_course_update ( $course_id = 0, $order_user = array()  ) {
1057
+
1058
+		return Sensei_WC::course_update( $course_id, $order_user );
1059
+
1060
+	} // End woocommerce_course_update()
1061
+
1062
+	/**
1063
+	 * Returns the WooCommerce Product Object
1064
+	 *
1065
+	 * The code caters for pre and post WooCommerce 2.2 installations.
1066
+	 *
1067
+	 * @deprecated since 1.9.0
1068
+	 * @since   1.1.1
1069
+	 *
1070
+	 * @param   integer $wc_product_id Product ID or Variation ID
1071
+	 * @param   string  $product_type  '' or 'variation'
1072
+	 *
1073
+	 * @return   WC_Product $wc_product_object
1074
+	 */
1075
+	public function sensei_get_woocommerce_product_object ( $wc_product_id = 0, $product_type = '' ) {
1076
+
1077
+		return Sensei_WC::get_product_object( $wc_product_id, $product_type );
1078
+
1079
+	} // End sensei_get_woocommerce_product_object()
1080
+
1081
+	/**
1082
+	 * Setup required WooCommerce settings.
1083
+	 * @access  public
1084
+	 * @since   1.1.0
1085
+	 * @return  void
1086
+	 */
1087
+	public function set_woocommerce_functionality() {
1088
+
1089
+		_deprecated_function('Sensei()->set_woocommerce_functionality', 'Sensei 1.9.0');
1090
+
1091
+	} // End set_woocommerce_functionality()
1092
+
1093
+	/**
1094
+	 * Disable guest checkout if a course product is in the cart
1095
+	 * @deprecated since 1.9.0
1096
+	 * @param  boolean $guest_checkout Current guest checkout setting
1097
+	 * @return boolean                 Modified guest checkout setting
1098
+	 */
1099
+	public function disable_guest_checkout( $guest_checkout ) {
1100
+
1101
+		return Sensei_WC::disable_guest_checkout( $guest_checkout );
1102
+
1103
+	}// end disable_guest_checkout
1104
+
1105
+	/**
1106
+	 * Change order status with virtual products to completed
1107
+	 *
1108
+	 * @deprecated since 1.9.0 use Sensei_WC::virtual_order_payment_complete( $order_status, $order_id )
1109
+	 *
1110
+	 * @since  1.1.0
1111
+	 * @param string $order_status
1112
+	 * @param int $order_id
1113
+	 * @return string
1114
+	 **/
1115
+	public function virtual_order_payment_complete( $order_status, $order_id ) {
1116
+
1117
+		return  Sensei_WC::virtual_order_payment_complete( $order_status, $order_id );
1118
+	}
1119 1119
 
1120 1120
 } // End Class
1121 1121
 
Please login to merge, or discard this patch.
Spacing   +215 added lines, -215 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
  * Responsible for loading Sensei and setting up the Main WordPress hooks.
@@ -142,23 +142,23 @@  discard block
 block discarded – undo
142 142
      * @param  string $file The base file of the plugin.
143 143
      * @since  1.0.0
144 144
      */
145
-    public function __construct ( $file ) {
145
+    public function __construct($file) {
146 146
 
147 147
         // Setup object data
148 148
         $this->file = $file;
149
-        $this->plugin_url = trailingslashit( plugins_url( '', $plugin = $file ) );
150
-        $this->plugin_path = trailingslashit( dirname( $file ) );
151
-        $this->template_url	= apply_filters( 'sensei_template_url', 'sensei/' );
152
-        $this->permissions_message = array( 'title' => __( 'Permission Denied', 'woothemes-sensei' ), 'message' => __( 'Unfortunately you do not have permissions to access this page.', 'woothemes-sensei' ) );
149
+        $this->plugin_url = trailingslashit(plugins_url('', $plugin = $file));
150
+        $this->plugin_path = trailingslashit(dirname($file));
151
+        $this->template_url = apply_filters('sensei_template_url', 'sensei/');
152
+        $this->permissions_message = array('title' => __('Permission Denied', 'woothemes-sensei'), 'message' => __('Unfortunately you do not have permissions to access this page.', 'woothemes-sensei'));
153 153
 
154 154
         // Initialize the core Sensei functionality
155 155
         $this->init();
156 156
 
157 157
         // Installation
158
-        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) $this->install();
158
+        if (is_admin() && ! defined('DOING_AJAX')) $this->install();
159 159
 
160 160
         // Run this on activation.
161
-        register_activation_hook( $this->file, array( $this, 'activation' ) );
161
+        register_activation_hook($this->file, array($this, 'activation'));
162 162
 
163 163
         // Image Sizes
164 164
         $this->init_image_sizes();
@@ -172,11 +172,11 @@  discard block
 block discarded – undo
172 172
      * Load the foundations of Sensei.
173 173
      * @since 1.9.0
174 174
      */
175
-    protected function init(){
175
+    protected function init() {
176 176
 
177 177
         // Localisation
178 178
         $this->load_plugin_textdomain();
179
-        add_action( 'init', array( $this, 'load_localisation' ), 0 );
179
+        add_action('init', array($this, 'load_localisation'), 0);
180 180
 
181 181
         // Setup settings
182 182
         $this->settings = new Sensei_Settings();
@@ -199,12 +199,12 @@  discard block
 block discarded – undo
199 199
      */
200 200
     public static function instance() {
201 201
 
202
-        if ( is_null( self::$_instance ) ) {
202
+        if (is_null(self::$_instance)) {
203 203
 
204 204
             //Sensei requires a reference to the main Sensei plugin file
205
-            $sensei_main_plugin_file = dirname ( dirname( __FILE__ ) ) . '/woothemes-sensei.php';
205
+            $sensei_main_plugin_file = dirname(dirname(__FILE__)).'/woothemes-sensei.php';
206 206
 
207
-            self::$_instance = new self( $sensei_main_plugin_file  );
207
+            self::$_instance = new self($sensei_main_plugin_file);
208 208
 
209 209
             // load the global class objects needed throughout Sensei
210 210
             self::$_instance->initialize_global_objects();
@@ -223,9 +223,9 @@  discard block
 block discarded – undo
223 223
      *
224 224
      * @param $plugin
225 225
      */
226
-    public static function activation_flush_rules( $plugin ){
226
+    public static function activation_flush_rules($plugin) {
227 227
 
228
-        if( strpos( $plugin, '/woothemes-sensei.php' ) > 0  ){
228
+        if (strpos($plugin, '/woothemes-sensei.php') > 0) {
229 229
 
230 230
             flush_rewrite_rules(true);
231 231
 
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
      * @since 1.8.0
239 239
      */
240 240
     public function __clone() {
241
-        _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woothemes-sensei' ), '1.8' );
241
+        _doing_it_wrong(__FUNCTION__, __('Cheatin&#8217; huh?', 'woothemes-sensei'), '1.8');
242 242
     }
243 243
 
244 244
     /**
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
      * @since 1.8.0
247 247
      */
248 248
     public function __wakeup() {
249
-        _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'woothemes-sensei' ), '1.8' );
249
+        _doing_it_wrong(__FUNCTION__, __('Cheatin&#8217; huh?', 'woothemes-sensei'), '1.8');
250 250
     }
251 251
 
252 252
     /**
@@ -254,13 +254,13 @@  discard block
 block discarded – undo
254 254
      *
255 255
      * @since 1.9.0
256 256
      */
257
-    public function initialize_global_objects(){
257
+    public function initialize_global_objects() {
258 258
 
259 259
         // Setup post types.
260 260
         $this->post_types = new Sensei_PostTypes();
261 261
 
262 262
         // Lad the updates class
263
-        $this->updates = new Sensei_Updates( $this );
263
+        $this->updates = new Sensei_Updates($this);
264 264
 
265 265
         // Load Course Results Class
266 266
         $this->course_results = new Sensei_Course_Results();
@@ -284,19 +284,19 @@  discard block
 block discarded – undo
284 284
 	    $this->load_modules_class();
285 285
 
286 286
         // Load Learner Management Functionality
287
-        $this->learners = new Sensei_Learner_Management( $this->file );
287
+        $this->learners = new Sensei_Learner_Management($this->file);
288 288
 
289 289
         // Differentiate between administration and frontend logic.
290
-        if ( is_admin() ) {
290
+        if (is_admin()) {
291 291
 
292 292
             // Load Admin Welcome class
293 293
             new Sensei_Welcome();
294 294
 
295 295
             // Load Admin Class
296
-            $this->admin = new Sensei_Admin( $this->file );
296
+            $this->admin = new Sensei_Admin($this->file);
297 297
 
298 298
             // Load Analysis Reports
299
-            $this->analysis = new Sensei_Analysis( $this->file );
299
+            $this->analysis = new Sensei_Analysis($this->file);
300 300
 
301 301
         } else {
302 302
 
@@ -313,10 +313,10 @@  discard block
 block discarded – undo
313 313
         }
314 314
 
315 315
         // Load Grading Functionality
316
-        $this->grading = new Sensei_Grading( $this->file );
316
+        $this->grading = new Sensei_Grading($this->file);
317 317
 
318 318
         // Load Email Class
319
-        $this->emails = new Sensei_Emails( $this->file );
319
+        $this->emails = new Sensei_Emails($this->file);
320 320
 
321 321
         // Load Learner Profiles Class
322 322
         $this->learner_profiles = new Sensei_Learner_Profiles();
@@ -328,21 +328,21 @@  discard block
 block discarded – undo
328 328
      *
329 329
      * @since 1.9.0
330 330
      */
331
-    public function load_hooks(){
331
+    public function load_hooks() {
332 332
 
333
-        add_action( 'widgets_init', array( $this, 'register_widgets' ) );
334
-        add_action( 'after_setup_theme', array( $this, 'ensure_post_thumbnails_support' ) );
333
+        add_action('widgets_init', array($this, 'register_widgets'));
334
+        add_action('after_setup_theme', array($this, 'ensure_post_thumbnails_support'));
335 335
 
336 336
         // Filter comment counts
337
-        add_filter( 'wp_count_comments', array( $this, 'sensei_count_comments' ), 10, 2 );
337
+        add_filter('wp_count_comments', array($this, 'sensei_count_comments'), 10, 2);
338 338
 
339
-        add_action( 'body_class', array( $this, 'body_class' ) );
339
+        add_action('body_class', array($this, 'body_class'));
340 340
 
341 341
         // Check for and activate JetPack LaTeX support
342
-        add_action( 'plugins_loaded', array( $this, 'jetpack_latex_support'), 200 ); // Runs after Jetpack has loaded it's modules
342
+        add_action('plugins_loaded', array($this, 'jetpack_latex_support'), 200); // Runs after Jetpack has loaded it's modules
343 343
 
344 344
         // check flush the rewrite rules if the option sensei_flush_rewrite_rules option is 1
345
-        add_action( 'init', array( $this, 'flush_rewrite_rules'), 101 );
345
+        add_action('init', array($this, 'flush_rewrite_rules'), 101);
346 346
 
347 347
     }
348 348
 
@@ -354,7 +354,7 @@  discard block
 block discarded – undo
354 354
      */
355 355
     public function run_updates() {
356 356
         // Run updates if administrator
357
-        if ( current_user_can( 'manage_options' ) || current_user_can( 'manage_sensei' ) ) {
357
+        if (current_user_can('manage_options') || current_user_can('manage_sensei')) {
358 358
 
359 359
             $this->updates->update();
360 360
 
@@ -367,21 +367,21 @@  discard block
 block discarded – undo
367 367
      * @since  1.0.0
368 368
      * @return void
369 369
      */
370
-    public function register_widgets () {
370
+    public function register_widgets() {
371 371
         // Widget List (key => value is filename => widget class).
372
-        $widget_list = apply_filters( 'sensei_registered_widgets_list', array( 	'course-component' 	=> 'Course_Component',
372
+        $widget_list = apply_filters('sensei_registered_widgets_list', array('course-component' 	=> 'Course_Component',
373 373
                 'lesson-component' 	=> 'Lesson_Component',
374 374
                 'course-categories' => 'Course_Categories',
375
-                'category-courses' 	=> 'Category_Courses' )
375
+                'category-courses' 	=> 'Category_Courses')
376 376
         );
377
-        foreach ( $widget_list as $key => $value ) {
378
-            if ( file_exists( $this->plugin_path . 'widgets/widget-woothemes-sensei-' . $key  . '.php' ) ) {
379
-                require_once( $this->plugin_path . 'widgets/widget-woothemes-sensei-' . $key  . '.php' );
380
-                register_widget( 'WooThemes_Sensei_' . $value . '_Widget' );
377
+        foreach ($widget_list as $key => $value) {
378
+            if (file_exists($this->plugin_path.'widgets/widget-woothemes-sensei-'.$key.'.php')) {
379
+                require_once($this->plugin_path.'widgets/widget-woothemes-sensei-'.$key.'.php');
380
+                register_widget('WooThemes_Sensei_'.$value.'_Widget');
381 381
             }
382 382
         } // End For Loop
383 383
 
384
-        do_action( 'sensei_register_widgets' );
384
+        do_action('sensei_register_widgets');
385 385
 
386 386
     } // End register_widgets()
387 387
 
@@ -391,9 +391,9 @@  discard block
 block discarded – undo
391 391
      * @since  1.0.0
392 392
      * @return void
393 393
      */
394
-    public function load_localisation () {
394
+    public function load_localisation() {
395 395
 
396
-        load_plugin_textdomain( 'woothemes-sensei', false, dirname( plugin_basename( $this->file ) ) . '/lang/' );
396
+        load_plugin_textdomain('woothemes-sensei', false, dirname(plugin_basename($this->file)).'/lang/');
397 397
 
398 398
     } // End load_localisation()
399 399
 
@@ -403,13 +403,13 @@  discard block
 block discarded – undo
403 403
      * @since   1.0.0
404 404
      * @return  void
405 405
      */
406
-    public function load_plugin_textdomain () {
406
+    public function load_plugin_textdomain() {
407 407
 
408 408
         $domain = 'woothemes-sensei';
409 409
         // The "plugin_locale" filter is also used in load_plugin_textdomain()
410
-        $locale = apply_filters( 'plugin_locale', get_locale(), $domain );
411
-        load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' );
412
-        load_plugin_textdomain( $domain, FALSE, dirname( plugin_basename( $this->file ) ) . '/lang/' );
410
+        $locale = apply_filters('plugin_locale', get_locale(), $domain);
411
+        load_textdomain($domain, WP_LANG_DIR.'/'.$domain.'/'.$domain.'-'.$locale.'.mo');
412
+        load_plugin_textdomain($domain, FALSE, dirname(plugin_basename($this->file)).'/lang/');
413 413
 
414 414
     } // End load_plugin_textdomain()
415 415
 
@@ -419,7 +419,7 @@  discard block
 block discarded – undo
419 419
      * @since  1.0.0
420 420
      * @return void
421 421
      */
422
-    public function activation () {
422
+    public function activation() {
423 423
 
424 424
         $this->register_plugin_version();
425 425
 
@@ -432,10 +432,10 @@  discard block
 block discarded – undo
432 432
      * @since  1.0.0
433 433
      * @return void
434 434
      */
435
-    public function install () {
435
+    public function install() {
436 436
 
437
-        register_activation_hook( $this->file, array( $this, 'activate_sensei' ) );
438
-        register_activation_hook( $this->file, 'flush_rewrite_rules' );
437
+        register_activation_hook($this->file, array($this, 'activate_sensei'));
438
+        register_activation_hook($this->file, 'flush_rewrite_rules');
439 439
 
440 440
     } // End install()
441 441
 
@@ -446,10 +446,10 @@  discard block
 block discarded – undo
446 446
      * @since  1.0.0
447 447
      * @return void
448 448
      */
449
-    public function activate_sensei () {
449
+    public function activate_sensei() {
450 450
 
451
-        update_option( 'skip_install_sensei_pages', 0 );
452
-        update_option( 'sensei_installed', 1 );
451
+        update_option('skip_install_sensei_pages', 0);
452
+        update_option('sensei_installed', 1);
453 453
 
454 454
     } // End activate_sensei()
455 455
 
@@ -459,10 +459,10 @@  discard block
 block discarded – undo
459 459
      * @since  1.0.0
460 460
      * @return void
461 461
      */
462
-    private function register_plugin_version () {
463
-        if ( $this->version != '' ) {
462
+    private function register_plugin_version() {
463
+        if ($this->version != '') {
464 464
 
465
-            update_option( 'woothemes-sensei-version', $this->version );
465
+            update_option('woothemes-sensei-version', $this->version);
466 466
 
467 467
         }
468 468
     } // End register_plugin_version()
@@ -473,9 +473,9 @@  discard block
 block discarded – undo
473 473
      * @since   1.0.1
474 474
      * @return  void
475 475
      */
476
-    public function ensure_post_thumbnails_support () {
476
+    public function ensure_post_thumbnails_support() {
477 477
 
478
-        if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); }
478
+        if ( ! current_theme_supports('post-thumbnails')) { add_theme_support('post-thumbnails'); }
479 479
 
480 480
     } // End ensure_post_thumbnails_support()
481 481
 
@@ -487,10 +487,10 @@  discard block
 block discarded – undo
487 487
      * @return void
488 488
      * @deprecated
489 489
      */
490
-    public function template_loader ( $template = '' ) {
490
+    public function template_loader($template = '') {
491 491
 
492
-        _deprecated_function( 'Sensei()->template_loader', '1.9.0', 'Use Sensei_Templates::template_loader( $template ) instead' );
493
-        Sensei_Templates::template_loader( $template );
492
+        _deprecated_function('Sensei()->template_loader', '1.9.0', 'Use Sensei_Templates::template_loader( $template ) instead');
493
+        Sensei_Templates::template_loader($template);
494 494
 
495 495
     } // End template_loader()
496 496
 
@@ -500,15 +500,15 @@  discard block
 block discarded – undo
500 500
      * @since  1.0.0
501 501
      * @return string $sensei_plugin_path
502 502
      */
503
-    public function plugin_path () {
503
+    public function plugin_path() {
504 504
 
505
-        if ( $this->plugin_path ) {
505
+        if ($this->plugin_path) {
506 506
 
507
-            $sensei_plugin_path =  $this->plugin_path;
507
+            $sensei_plugin_path = $this->plugin_path;
508 508
 
509
-        }else{
509
+        } else {
510 510
 
511
-            $sensei_plugin_path = plugin_dir_path( __FILE__ );
511
+            $sensei_plugin_path = plugin_dir_path(__FILE__);
512 512
 
513 513
         }
514 514
 
@@ -523,9 +523,9 @@  discard block
 block discarded – undo
523 523
      * @param  string $page
524 524
      * @return int
525 525
      */
526
-    public function get_page_id ( $page ) {
527
-        $page = apply_filters( 'sensei_get_' . esc_attr( $page ) . '_page_id', get_option( 'sensei_' . esc_attr( $page ) . '_page_id' ) );
528
-        return ( $page ) ? $page : -1;
526
+    public function get_page_id($page) {
527
+        $page = apply_filters('sensei_get_'.esc_attr($page).'_page_id', get_option('sensei_'.esc_attr($page).'_page_id'));
528
+        return ($page) ? $page : -1;
529 529
     } // End get_page_id()
530 530
 
531 531
     /**
@@ -536,49 +536,49 @@  discard block
 block discarded – undo
536 536
      *
537 537
      * @return bool
538 538
      */
539
-    public function check_user_permissions ( $page = '' ) {
539
+    public function check_user_permissions($page = '') {
540 540
 
541 541
         global $current_user, $post;
542 542
 
543 543
         // if user is not logged in skipped for single lesson
544
-        if ( empty( $current_user->caps ) && Sensei()->settings->get('access_permission')
545
-            && 'lesson-single' !=  $page ){
544
+        if (empty($current_user->caps) && Sensei()->settings->get('access_permission')
545
+            && 'lesson-single' != $page) {
546 546
 
547
-            $this->permissions_message['title'] = __('Restricted Access:', 'woothemes-sensei' );
548
-            $this->permissions_message['message'] = sprintf( __('You must be logged in to view this %s'), get_post_type() );
547
+            $this->permissions_message['title'] = __('Restricted Access:', 'woothemes-sensei');
548
+            $this->permissions_message['message'] = sprintf(__('You must be logged in to view this %s'), get_post_type());
549 549
 
550 550
             return false;
551 551
         }
552 552
 
553 553
         $user_allowed = false;
554 554
 
555
-        switch ( $page ) {
555
+        switch ($page) {
556 556
 	        case 'course-single':
557 557
 		        // check for prerequisite course or lesson,
558
-		        $course_prerequisite_id = (int) get_post_meta( $post->ID, '_course_prerequisite', true );
559
-		        $update_course          = Sensei_WC::course_update( $post->ID );
558
+		        $course_prerequisite_id = (int) get_post_meta($post->ID, '_course_prerequisite', true);
559
+		        $update_course          = Sensei_WC::course_update($post->ID);
560 560
 
561 561
 		        // Count completed lessons
562
-		        if ( 0 < absint( $course_prerequisite_id ) ) {
562
+		        if (0 < absint($course_prerequisite_id)) {
563 563
 
564
-			        $prerequisite_complete = Sensei_Utils::user_completed_course( $course_prerequisite_id, $current_user->ID );
564
+			        $prerequisite_complete = Sensei_Utils::user_completed_course($course_prerequisite_id, $current_user->ID);
565 565
 
566 566
 		        } else {
567 567
 			        $prerequisite_complete = true;
568 568
 		        } // End If Statement
569 569
 
570 570
 		        // Handles restrictions on the course
571
-		        if ( ( ! $prerequisite_complete && 0 < absint( $course_prerequisite_id ) ) ) {
571
+		        if (( ! $prerequisite_complete && 0 < absint($course_prerequisite_id))) {
572 572
 
573 573
 			        $user_allowed                         = false;
574
-			        $course_link                          = '<a href="' . esc_url( get_permalink( $course_prerequisite_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
575
-			        $this->permissions_message['message'] = sprintf( __( 'Please complete the previous %1$s before taking this course.', 'woothemes-sensei' ), $course_link );
574
+			        $course_link                          = '<a href="'.esc_url(get_permalink($course_prerequisite_id)).'">'.__('course', 'woothemes-sensei').'</a>';
575
+			        $this->permissions_message['message'] = sprintf(__('Please complete the previous %1$s before taking this course.', 'woothemes-sensei'), $course_link);
576 576
 
577
-		        } elseif ( ! Sensei_Utils::user_started_course( $post->ID, $current_user->ID ) ) {
577
+		        } elseif ( ! Sensei_Utils::user_started_course($post->ID, $current_user->ID)) {
578 578
 
579
-			        $user_allowed                         = false;
579
+			        $user_allowed = false;
580 580
 
581
-		        } else  {
581
+		        } else {
582 582
 
583 583
                     $user_allowed = true;
584 584
 
@@ -586,60 +586,60 @@  discard block
 block discarded – undo
586 586
                 break;
587 587
             case 'lesson-single':
588 588
                 // Check for WC purchase
589
-                $lesson_course_id = get_post_meta( $post->ID, '_lesson_course',true );
589
+                $lesson_course_id = get_post_meta($post->ID, '_lesson_course', true);
590 590
 
591
-                $update_course = Sensei_WC::course_update( $lesson_course_id );
592
-                $is_preview = Sensei_Utils::is_preview_lesson( $post->ID );
591
+                $update_course = Sensei_WC::course_update($lesson_course_id);
592
+                $is_preview = Sensei_Utils::is_preview_lesson($post->ID);
593 593
 
594
-                if ( $this->access_settings() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) {
594
+                if ($this->access_settings() && Sensei_Utils::user_started_course($lesson_course_id, $current_user->ID)) {
595 595
                     $user_allowed = true;
596
-                } elseif( $this->access_settings() && false == $is_preview ) {
596
+                } elseif ($this->access_settings() && false == $is_preview) {
597 597
 
598 598
                     $user_allowed = true;
599 599
 
600 600
                 } else {
601
-                    $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
602
-                    $course_link = '<a href="' . esc_url( get_permalink( $lesson_course_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
603
-                    $wc_post_id = get_post_meta( $lesson_course_id, '_course_woocommerce_product',true );
604
-                    if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
605
-                        if ( $is_preview ) {
606
-                            $this->permissions_message['message'] = sprintf( __('This is a preview lesson. Please purchase the %1$s to access all lessons.', 'woothemes-sensei' ), $course_link );
601
+                    $this->permissions_message['title'] = get_the_title($post->ID).': '.__('Restricted Access', 'woothemes-sensei');
602
+                    $course_link = '<a href="'.esc_url(get_permalink($lesson_course_id)).'">'.__('course', 'woothemes-sensei').'</a>';
603
+                    $wc_post_id = get_post_meta($lesson_course_id, '_course_woocommerce_product', true);
604
+                    if (Sensei_WC::is_woocommerce_active() && (0 < $wc_post_id)) {
605
+                        if ($is_preview) {
606
+                            $this->permissions_message['message'] = sprintf(__('This is a preview lesson. Please purchase the %1$s to access all lessons.', 'woothemes-sensei'), $course_link);
607 607
                         } else {
608
-                            $this->permissions_message['message'] =  sprintf( __('Please purchase the %1$s before starting this Lesson.', 'woothemes-sensei' ), $course_link );
608
+                            $this->permissions_message['message'] = sprintf(__('Please purchase the %1$s before starting this Lesson.', 'woothemes-sensei'), $course_link);
609 609
                         }
610 610
                     } else {
611
-                        if ( $is_preview ) {
612
-                            $this->permissions_message['message'] = sprintf( __('This is a preview lesson. Please sign up for the %1$s to access all lessons.', 'woothemes-sensei' ), $course_link );
611
+                        if ($is_preview) {
612
+                            $this->permissions_message['message'] = sprintf(__('This is a preview lesson. Please sign up for the %1$s to access all lessons.', 'woothemes-sensei'), $course_link);
613 613
                         } else {
614 614
                             /** This filter is documented in class-woothemes-sensei-frontend.php */
615
-                            $this->permissions_message['message'] =  sprintf( __( 'Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei' ), $course_link );
615
+                            $this->permissions_message['message'] = sprintf(__('Please sign up for the %1$s before starting the lesson.', 'woothemes-sensei'), $course_link);
616 616
                         }
617 617
                     } // End If Statement
618 618
                 } // End If Statement
619 619
                 break;
620 620
             case 'quiz-single':
621
-                $lesson_id = get_post_meta( $post->ID, '_quiz_lesson',true );
622
-                $lesson_course_id = get_post_meta( $lesson_id, '_lesson_course',true );
621
+                $lesson_id = get_post_meta($post->ID, '_quiz_lesson', true);
622
+                $lesson_course_id = get_post_meta($lesson_id, '_lesson_course', true);
623 623
 
624
-                $update_course = Sensei_WC::course_update( $lesson_course_id );
625
-                if ( ( $this->access_settings() && Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) ) || sensei_all_access() ) {
624
+                $update_course = Sensei_WC::course_update($lesson_course_id);
625
+                if (($this->access_settings() && Sensei_Utils::user_started_course($lesson_course_id, $current_user->ID)) || sensei_all_access()) {
626 626
 
627 627
                     // Check for prerequisite lesson for this quiz
628
-                    $lesson_prerequisite_id = (int) get_post_meta( $lesson_id, '_lesson_prerequisite', true);
629
-                    $user_lesson_prerequisite_complete = Sensei_Utils::user_completed_lesson( $lesson_prerequisite_id, $current_user->ID);
628
+                    $lesson_prerequisite_id = (int) get_post_meta($lesson_id, '_lesson_prerequisite', true);
629
+                    $user_lesson_prerequisite_complete = Sensei_Utils::user_completed_lesson($lesson_prerequisite_id, $current_user->ID);
630 630
 
631 631
                     // Handle restrictions
632
-                    if( sensei_all_access() ) {
632
+                    if (sensei_all_access()) {
633 633
 
634 634
                         $user_allowed = true;
635 635
 
636 636
                     } else {
637 637
 
638
-                        if ( 0 < absint( $lesson_prerequisite_id ) && ( !$user_lesson_prerequisite_complete ) ) {
638
+                        if (0 < absint($lesson_prerequisite_id) && ( ! $user_lesson_prerequisite_complete)) {
639 639
 
640
-                            $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
641
-                            $lesson_link = '<a href="' . esc_url( get_permalink( $lesson_prerequisite_id ) ) . '">' . __( 'lesson', 'woothemes-sensei' ) . '</a>';
642
-                            $this->permissions_message['message'] = sprintf( __('Please complete the previous %1$s before taking this Quiz.', 'woothemes-sensei' ), $lesson_link );
640
+                            $this->permissions_message['title'] = get_the_title($post->ID).': '.__('Restricted Access', 'woothemes-sensei');
641
+                            $lesson_link = '<a href="'.esc_url(get_permalink($lesson_prerequisite_id)).'">'.__('lesson', 'woothemes-sensei').'</a>';
642
+                            $this->permissions_message['message'] = sprintf(__('Please complete the previous %1$s before taking this Quiz.', 'woothemes-sensei'), $lesson_link);
643 643
 
644 644
                         } else {
645 645
 
@@ -647,27 +647,27 @@  discard block
 block discarded – undo
647 647
 
648 648
                         } // End If Statement
649 649
                     } // End If Statement
650
-                } elseif( $this->access_settings() ) {
650
+                } elseif ($this->access_settings()) {
651 651
                     // Check if the user has started the course
652 652
 
653
-                    if ( is_user_logged_in() && ! Sensei_Utils::user_started_course( $lesson_course_id, $current_user->ID ) && ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) ) {
653
+                    if (is_user_logged_in() && ! Sensei_Utils::user_started_course($lesson_course_id, $current_user->ID) && (isset($this->settings->settings['access_permission']) && (true == $this->settings->settings['access_permission']))) {
654 654
 
655 655
                         $user_allowed = false;
656
-                        $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
657
-                        $course_link = '<a href="' . esc_url( get_permalink( $lesson_course_id ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
658
-                        $wc_post_id = get_post_meta( $lesson_course_id, '_course_woocommerce_product',true );
659
-                        if ( Sensei_WC::is_woocommerce_active() && ( 0 < $wc_post_id ) ) {
660
-                            $this->permissions_message['message'] = sprintf( __('Please purchase the %1$s before starting this Quiz.', 'woothemes-sensei' ), $course_link );
656
+                        $this->permissions_message['title'] = get_the_title($post->ID).': '.__('Restricted Access', 'woothemes-sensei');
657
+                        $course_link = '<a href="'.esc_url(get_permalink($lesson_course_id)).'">'.__('course', 'woothemes-sensei').'</a>';
658
+                        $wc_post_id = get_post_meta($lesson_course_id, '_course_woocommerce_product', true);
659
+                        if (Sensei_WC::is_woocommerce_active() && (0 < $wc_post_id)) {
660
+                            $this->permissions_message['message'] = sprintf(__('Please purchase the %1$s before starting this Quiz.', 'woothemes-sensei'), $course_link);
661 661
                         } else {
662
-                            $this->permissions_message['message'] = sprintf( __('Please sign up for the %1$s before starting this Quiz.', 'woothemes-sensei' ), $course_link );
662
+                            $this->permissions_message['message'] = sprintf(__('Please sign up for the %1$s before starting this Quiz.', 'woothemes-sensei'), $course_link);
663 663
                         } // End If Statement
664 664
                     } else {
665 665
                         $user_allowed = true;
666 666
                     } // End If Statement
667 667
                 } else {
668
-                    $this->permissions_message['title'] = get_the_title( $post->ID ) . ': ' . __('Restricted Access', 'woothemes-sensei' );
669
-                    $course_link = '<a href="' . esc_url( get_permalink( get_post_meta( get_post_meta( $post->ID, '_quiz_lesson', true ), '_lesson_course', true ) ) ) . '">' . __( 'course', 'woothemes-sensei' ) . '</a>';
670
-                    $this->permissions_message['message'] = sprintf( __('Please sign up for the %1$s before taking this Quiz.', 'woothemes-sensei' ), $course_link );
668
+                    $this->permissions_message['title'] = get_the_title($post->ID).': '.__('Restricted Access', 'woothemes-sensei');
669
+                    $course_link = '<a href="'.esc_url(get_permalink(get_post_meta(get_post_meta($post->ID, '_quiz_lesson', true), '_lesson_course', true))).'">'.__('course', 'woothemes-sensei').'</a>';
670
+                    $this->permissions_message['message'] = sprintf(__('Please sign up for the %1$s before taking this Quiz.', 'woothemes-sensei'), $course_link);
671 671
                 } // End If Statement
672 672
                 break;
673 673
             default:
@@ -689,10 +689,10 @@  discard block
 block discarded – undo
689 689
          * }
690 690
          * @param string $post_id
691 691
          */
692
-        $this->permissions_message = apply_filters( 'sensei_permissions_message', $this->permissions_message, $post->ID );
692
+        $this->permissions_message = apply_filters('sensei_permissions_message', $this->permissions_message, $post->ID);
693 693
 
694 694
 
695
-        if( sensei_all_access() || Sensei_Utils::is_preview_lesson( $post->ID ) ) {
695
+        if (sensei_all_access() || Sensei_Utils::is_preview_lesson($post->ID)) {
696 696
             $user_allowed = true;
697 697
         }
698 698
 
@@ -706,7 +706,7 @@  discard block
 block discarded – undo
706 706
          * @param integer $user_id
707 707
          *
708 708
          */
709
-        return apply_filters( 'sensei_access_permissions', $user_allowed, $current_user->ID );
709
+        return apply_filters('sensei_access_permissions', $user_allowed, $current_user->ID);
710 710
 
711 711
     } // End get_placeholder_image()
712 712
 
@@ -717,12 +717,12 @@  discard block
 block discarded – undo
717 717
      * @access public
718 718
      * @return bool
719 719
      */
720
-    public function access_settings () {
720
+    public function access_settings() {
721 721
 
722
-        if( sensei_all_access() ) return true;
722
+        if (sensei_all_access()) return true;
723 723
 
724
-        if ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) {
725
-            if ( is_user_logged_in() ) {
724
+        if (isset($this->settings->settings['access_permission']) && (true == $this->settings->settings['access_permission'])) {
725
+            if (is_user_logged_in()) {
726 726
                 return true;
727 727
             } else {
728 728
                 return false;
@@ -738,9 +738,9 @@  discard block
 block discarded – undo
738 738
      * @access  public
739 739
      * @return  void
740 740
      */
741
-    public function load_class ( $class_name = '' ) {
742
-        if ( '' != $class_name && '' != $this->token ) {
743
-            require_once( 'class-' . esc_attr( $this->token ) . '-' . esc_attr( $class_name ) . '.php' );
741
+    public function load_class($class_name = '') {
742
+        if ('' != $class_name && '' != $this->token) {
743
+            require_once('class-'.esc_attr($this->token).'-'.esc_attr($class_name).'.php');
744 744
         } // End If Statement
745 745
     } // End load_class()
746 746
 
@@ -752,44 +752,44 @@  discard block
 block discarded – undo
752 752
      * @param  integer $post_id
753 753
      * @return array
754 754
      */
755
-    public function sensei_count_comments( $comments, $post_id ) {
755
+    public function sensei_count_comments($comments, $post_id) {
756 756
         global $wpdb;
757 757
 
758 758
         $post_id = (int) $post_id;
759 759
 
760 760
         $count = wp_cache_get("comments-{$post_id}", 'counts');
761 761
 
762
-        if ( false !== $count ) {
762
+        if (false !== $count) {
763 763
             return $count;
764 764
         }
765 765
 
766
-        $statuses = array( '' ); // Default to the WP normal comments
767
-        $stati = $wpdb->get_results( "SELECT comment_type FROM {$wpdb->comments} GROUP BY comment_type", ARRAY_A );
768
-        foreach ( (array) $stati AS $status ) {
769
-            if ( 'sensei_' != substr($status['comment_type'], 0, 7 ) ) {
766
+        $statuses = array(''); // Default to the WP normal comments
767
+        $stati = $wpdb->get_results("SELECT comment_type FROM {$wpdb->comments} GROUP BY comment_type", ARRAY_A);
768
+        foreach ((array) $stati AS $status) {
769
+            if ('sensei_' != substr($status['comment_type'], 0, 7)) {
770 770
                 $statuses[] = $status['comment_type'];
771 771
             }
772 772
         }
773
-        $where = "WHERE comment_type IN ('" . join("', '", array_unique( $statuses ) ) . "')";
773
+        $where = "WHERE comment_type IN ('".join("', '", array_unique($statuses))."')";
774 774
 
775
-        if ( $post_id > 0 )
776
-            $where .= $wpdb->prepare( " AND comment_post_ID = %d", $post_id );
775
+        if ($post_id > 0)
776
+            $where .= $wpdb->prepare(" AND comment_post_ID = %d", $post_id);
777 777
 
778
-        $count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} {$where} GROUP BY comment_approved", ARRAY_A );
778
+        $count = $wpdb->get_results("SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} {$where} GROUP BY comment_approved", ARRAY_A);
779 779
 
780 780
         $total = 0;
781 781
         $approved = array('0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
782
-        foreach ( (array) $count as $row ) {
782
+        foreach ((array) $count as $row) {
783 783
             // Don't count post-trashed toward totals
784
-            if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] )
784
+            if ('post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'])
785 785
                 $total += $row['num_comments'];
786
-            if ( isset( $approved[$row['comment_approved']] ) )
786
+            if (isset($approved[$row['comment_approved']]))
787 787
                 $stats[$approved[$row['comment_approved']]] = $row['num_comments'];
788 788
         }
789 789
 
790 790
         $stats['total_comments'] = $total;
791
-        foreach ( $approved as $key ) {
792
-            if ( empty($stats[$key]) )
791
+        foreach ($approved as $key) {
792
+            if (empty($stats[$key]))
793 793
                 $stats[$key] = 0;
794 794
         }
795 795
 
@@ -807,15 +807,15 @@  discard block
 block discarded – undo
807 807
      * @return void
808 808
      */
809 809
     public function init_image_sizes() {
810
-        $course_archive_thumbnail 	= $this->get_image_size( 'course_archive_image' );
811
-        $course_single_thumbnail	= $this->get_image_size( 'course_single_image' );
812
-        $lesson_archive_thumbnail 	= $this->get_image_size( 'lesson_archive_image' );
813
-        $lesson_single_thumbnail	= $this->get_image_size( 'lesson_single_image' );
814
-
815
-        add_image_size( 'course_archive_thumbnail', $course_archive_thumbnail['width'], $course_archive_thumbnail['height'], $course_archive_thumbnail['crop'] );
816
-        add_image_size( 'course_single_thumbnail', $course_single_thumbnail['width'], $course_single_thumbnail['height'], $course_single_thumbnail['crop'] );
817
-        add_image_size( 'lesson_archive_thumbnail', $lesson_archive_thumbnail['width'], $lesson_archive_thumbnail['height'], $lesson_archive_thumbnail['crop'] );
818
-        add_image_size( 'lesson_single_thumbnail', $lesson_single_thumbnail['width'], $lesson_single_thumbnail['height'], $lesson_single_thumbnail['crop'] );
810
+        $course_archive_thumbnail 	= $this->get_image_size('course_archive_image');
811
+        $course_single_thumbnail	= $this->get_image_size('course_single_image');
812
+        $lesson_archive_thumbnail 	= $this->get_image_size('lesson_archive_image');
813
+        $lesson_single_thumbnail	= $this->get_image_size('lesson_single_image');
814
+
815
+        add_image_size('course_archive_thumbnail', $course_archive_thumbnail['width'], $course_archive_thumbnail['height'], $course_archive_thumbnail['crop']);
816
+        add_image_size('course_single_thumbnail', $course_single_thumbnail['width'], $course_single_thumbnail['height'], $course_single_thumbnail['crop']);
817
+        add_image_size('lesson_archive_thumbnail', $lesson_archive_thumbnail['width'], $lesson_archive_thumbnail['height'], $lesson_archive_thumbnail['crop']);
818
+        add_image_size('lesson_single_thumbnail', $lesson_single_thumbnail['width'], $lesson_single_thumbnail['height'], $lesson_single_thumbnail['crop']);
819 819
     }
820 820
 
821 821
     /**
@@ -828,37 +828,37 @@  discard block
 block discarded – undo
828 828
      * @param mixed $image_size
829 829
      * @return string
830 830
      */
831
-    public function get_image_size( $image_size ) {
831
+    public function get_image_size($image_size) {
832 832
 
833 833
         // Only return sizes we define in settings
834
-        if ( ! in_array( $image_size, array( 'course_archive_image', 'course_single_image', 'lesson_archive_image', 'lesson_single_image' ) ) )
835
-            return apply_filters( 'sensei_get_image_size_' . $image_size, '' );
834
+        if ( ! in_array($image_size, array('course_archive_image', 'course_single_image', 'lesson_archive_image', 'lesson_single_image')))
835
+            return apply_filters('sensei_get_image_size_'.$image_size, '');
836 836
 
837
-        if( ! isset( $this->settings->settings[ $image_size . '_width' ] ) ) {
838
-            $this->settings->settings[ $image_size . '_width' ] = false;
837
+        if ( ! isset($this->settings->settings[$image_size.'_width'])) {
838
+            $this->settings->settings[$image_size.'_width'] = false;
839 839
         }
840
-        if( ! isset( $this->settings->settings[ $image_size . '_height' ] ) ) {
841
-            $this->settings->settings[ $image_size . '_height' ] = false;
840
+        if ( ! isset($this->settings->settings[$image_size.'_height'])) {
841
+            $this->settings->settings[$image_size.'_height'] = false;
842 842
         }
843
-        if( ! isset( $this->settings->settings[ $image_size . '_hard_crop' ] ) ) {
844
-            $this->settings->settings[ $image_size . '_hard_crop' ] = false;
843
+        if ( ! isset($this->settings->settings[$image_size.'_hard_crop'])) {
844
+            $this->settings->settings[$image_size.'_hard_crop'] = false;
845 845
         }
846 846
 
847
-        $size = array_filter( array(
848
-            'width' => $this->settings->settings[ $image_size . '_width' ],
849
-            'height' => $this->settings->settings[ $image_size . '_height' ],
850
-            'crop' => $this->settings->settings[ $image_size . '_hard_crop' ]
851
-        ) );
847
+        $size = array_filter(array(
848
+            'width' => $this->settings->settings[$image_size.'_width'],
849
+            'height' => $this->settings->settings[$image_size.'_height'],
850
+            'crop' => $this->settings->settings[$image_size.'_hard_crop']
851
+        ));
852 852
 
853
-        $size['width'] 	= isset( $size['width'] ) ? $size['width'] : '100';
854
-        $size['height'] = isset( $size['height'] ) ? $size['height'] : '100';
855
-        $size['crop'] 	= isset( $size['crop'] ) ? $size['crop'] : 0;
853
+        $size['width'] 	= isset($size['width']) ? $size['width'] : '100';
854
+        $size['height'] = isset($size['height']) ? $size['height'] : '100';
855
+        $size['crop'] = isset($size['crop']) ? $size['crop'] : 0;
856 856
 
857
-        return apply_filters( 'sensei_get_image_size_' . $image_size, $size );
857
+        return apply_filters('sensei_get_image_size_'.$image_size, $size);
858 858
     }
859 859
 
860
-    public function body_class( $classes ) {
861
-        if( is_sensei() ) {
860
+    public function body_class($classes) {
861
+        if (is_sensei()) {
862 862
             $classes[] = 'sensei';
863 863
         }
864 864
         return $classes;
@@ -871,9 +871,9 @@  discard block
 block discarded – undo
871 871
      * @since 1.7.0
872 872
      */
873 873
     public function jetpack_latex_support() {
874
-        if ( function_exists( 'latex_markup') ) {
875
-            add_filter( 'sensei_question_title', 'latex_markup' );
876
-            add_filter( 'sensei_answer_text', 'latex_markup' );
874
+        if (function_exists('latex_markup')) {
875
+            add_filter('sensei_question_title', 'latex_markup');
876
+            add_filter('sensei_answer_text', 'latex_markup');
877 877
         }
878 878
     }
879 879
 
@@ -885,21 +885,21 @@  discard block
 block discarded – undo
885 885
      *
886 886
      * @since 1.8.0
887 887
      */
888
-    public function load_modules_class(){
888
+    public function load_modules_class() {
889 889
         global $sensei_modules;
890 890
 
891
-        if( !class_exists( 'Sensei_Modules' )
892
-            &&  'Sensei_Modules' != get_class( $sensei_modules ) ) {
891
+        if ( ! class_exists('Sensei_Modules')
892
+            &&  'Sensei_Modules' != get_class($sensei_modules)) {
893 893
 
894 894
             //Load the modules class
895
-            require_once( 'class-sensei-modules.php');
896
-            Sensei()->modules = new Sensei_Core_Modules( $this->file );
895
+            require_once('class-sensei-modules.php');
896
+            Sensei()->modules = new Sensei_Core_Modules($this->file);
897 897
 
898
-        }else{
898
+        } else {
899 899
             // fallback for people still using the modules extension.
900 900
             global $sensei_modules;
901 901
             Sensei()->modules = $sensei_modules;
902
-            add_action( 'admin_notices', array( $this, 'disable_sensei_modules_extension'), 30 );
902
+            add_action('admin_notices', array($this, 'disable_sensei_modules_extension'), 30);
903 903
         }
904 904
     }
905 905
 
@@ -908,12 +908,12 @@  discard block
 block discarded – undo
908 908
      *
909 909
      * @since 1.8.0
910 910
      */
911
-    public function disable_sensei_modules_extension(){ ?>
911
+    public function disable_sensei_modules_extension() { ?>
912 912
         <div class="notice updated fade">
913 913
             <p>
914 914
                 <?php
915 915
                 $plugin_manage_url = admin_url().'plugins.php#sensei-modules';
916
-                $plugin_link_element = '<a href="' . $plugin_manage_url . '" >plugins page</a> ';
916
+                $plugin_link_element = '<a href="'.$plugin_manage_url.'" >plugins page</a> ';
917 917
                 ?>
918 918
                 <strong> Modules are now included in Sensei,</strong> so you no longer need the Sensei Modules extension.
919 919
                 Please deactivate and delete it from your <?php echo $plugin_link_element; ?>. (This will not affect your existing modules).
@@ -931,18 +931,18 @@  discard block
 block discarded – undo
931 931
      *
932 932
      * @since 1.9.0
933 933
      */
934
-    public function flush_rewrite_rules(){
934
+    public function flush_rewrite_rules() {
935 935
 
936 936
         // ensures that the rewrite rules are flushed on the second
937 937
         // attempt. This ensure that the settings for any other process
938 938
         // have been completed and saved to the database before we refresh the
939 939
         // rewrite rules.
940
-        $option =  get_option('sensei_flush_rewrite_rules');
941
-        if( '1' == $option ) {
940
+        $option = get_option('sensei_flush_rewrite_rules');
941
+        if ('1' == $option) {
942 942
 
943 943
             update_option('sensei_flush_rewrite_rules', '2');
944 944
 
945
-        }elseif( '2' == $option ) {
945
+        }elseif ('2' == $option) {
946 946
 
947 947
             flush_rewrite_rules();
948 948
             update_option('sensei_flush_rewrite_rules', '0');
@@ -957,7 +957,7 @@  discard block
 block discarded – undo
957 957
      *
958 958
      * @since 1.9.0
959 959
      */
960
-    public function initiate_rewrite_rules_flush(){
960
+    public function initiate_rewrite_rules_flush() {
961 961
 
962 962
         update_option('sensei_flush_rewrite_rules', '1');
963 963
 
@@ -974,9 +974,9 @@  discard block
 block discarded – undo
974 974
      *
975 975
      * @return  void
976 976
      */
977
-    public function sensei_woocommerce_email_course_details( $order ) {
977
+    public function sensei_woocommerce_email_course_details($order) {
978 978
 
979
-        Sensei_WC::email_course_details( $order );
979
+        Sensei_WC::email_course_details($order);
980 980
 
981 981
     } // end func email course details
982 982
 
@@ -985,9 +985,9 @@  discard block
 block discarded – undo
985 985
      * @param $user_id
986 986
      * @param $subscription_key
987 987
      */
988
-    public function sensei_woocommerce_reactivate_subscription( $user_id, $subscription_key ){
988
+    public function sensei_woocommerce_reactivate_subscription($user_id, $subscription_key) {
989 989
 
990
-        Sensei_WC::reactivate_subscription( $user_id, $subscription_key );
990
+        Sensei_WC::reactivate_subscription($user_id, $subscription_key);
991 991
     }
992 992
 
993 993
     /**
@@ -995,9 +995,9 @@  discard block
 block discarded – undo
995 995
      * @param $user_id
996 996
      * @param $subscription_key
997 997
      */
998
-    public function sensei_woocommerce_subscription_ended( $user_id, $subscription_key ){
998
+    public function sensei_woocommerce_subscription_ended($user_id, $subscription_key) {
999 999
 
1000
-        Sensei_WC::end_subscription( $user_id, $subscription_key );
1000
+        Sensei_WC::end_subscription($user_id, $subscription_key);
1001 1001
     }
1002 1002
 
1003 1003
     /**
@@ -1010,9 +1010,9 @@  discard block
 block discarded – undo
1010 1010
      *
1011 1011
      * @return  void
1012 1012
      */
1013
-    public function sensei_woocommerce_complete_order ( $order_id = 0 ) {
1013
+    public function sensei_woocommerce_complete_order($order_id = 0) {
1014 1014
 
1015
-        Sensei_WC::complete_order( $order_id );
1015
+        Sensei_WC::complete_order($order_id);
1016 1016
 
1017 1017
     } // End sensei_woocommerce_complete_order()
1018 1018
 
@@ -1025,9 +1025,9 @@  discard block
 block discarded – undo
1025 1025
      * @param   integer $order_id order ID
1026 1026
      * @return  void
1027 1027
      */
1028
-    public function sensei_woocommerce_cancel_order ( $order_id ) {
1028
+    public function sensei_woocommerce_cancel_order($order_id) {
1029 1029
 
1030
-        Sensei_WC::cancel_order( $order_id );
1030
+        Sensei_WC::cancel_order($order_id);
1031 1031
 
1032 1032
     } // End sensei_woocommerce_cancel_order()
1033 1033
 
@@ -1039,9 +1039,9 @@  discard block
 block discarded – undo
1039 1039
      * @param   integer $order_id order ID
1040 1040
      * @return  void
1041 1041
      */
1042
-    public function sensei_activate_subscription(  $order_id = 0 ) {
1042
+    public function sensei_activate_subscription($order_id = 0) {
1043 1043
 
1044
-        Sensei_WC::activate_subscription( $order_id );
1044
+        Sensei_WC::activate_subscription($order_id);
1045 1045
 
1046 1046
     } // End sensei_activate_subscription()
1047 1047
 
@@ -1053,9 +1053,9 @@  discard block
 block discarded – undo
1053 1053
      * @param  array/Object $order_user (default: array()) Specific user's data.
1054 1054
      * @return bool|int
1055 1055
      */
1056
-    public function woocommerce_course_update ( $course_id = 0, $order_user = array()  ) {
1056
+    public function woocommerce_course_update($course_id = 0, $order_user = array()) {
1057 1057
 
1058
-        return Sensei_WC::course_update( $course_id, $order_user );
1058
+        return Sensei_WC::course_update($course_id, $order_user);
1059 1059
 
1060 1060
     } // End woocommerce_course_update()
1061 1061
 
@@ -1072,9 +1072,9 @@  discard block
 block discarded – undo
1072 1072
      *
1073 1073
      * @return   WC_Product $wc_product_object
1074 1074
      */
1075
-    public function sensei_get_woocommerce_product_object ( $wc_product_id = 0, $product_type = '' ) {
1075
+    public function sensei_get_woocommerce_product_object($wc_product_id = 0, $product_type = '') {
1076 1076
 
1077
-        return Sensei_WC::get_product_object( $wc_product_id, $product_type );
1077
+        return Sensei_WC::get_product_object($wc_product_id, $product_type);
1078 1078
 
1079 1079
     } // End sensei_get_woocommerce_product_object()
1080 1080
 
@@ -1096,9 +1096,9 @@  discard block
 block discarded – undo
1096 1096
      * @param  boolean $guest_checkout Current guest checkout setting
1097 1097
      * @return boolean                 Modified guest checkout setting
1098 1098
      */
1099
-    public function disable_guest_checkout( $guest_checkout ) {
1099
+    public function disable_guest_checkout($guest_checkout) {
1100 1100
 
1101
-        return Sensei_WC::disable_guest_checkout( $guest_checkout );
1101
+        return Sensei_WC::disable_guest_checkout($guest_checkout);
1102 1102
 
1103 1103
     }// end disable_guest_checkout
1104 1104
 
@@ -1112,9 +1112,9 @@  discard block
 block discarded – undo
1112 1112
      * @param int $order_id
1113 1113
      * @return string
1114 1114
      **/
1115
-    public function virtual_order_payment_complete( $order_status, $order_id ) {
1115
+    public function virtual_order_payment_complete($order_status, $order_id) {
1116 1116
 
1117
-        return  Sensei_WC::virtual_order_payment_complete( $order_status, $order_id );
1117
+        return  Sensei_WC::virtual_order_payment_complete($order_status, $order_id);
1118 1118
     }
1119 1119
 
1120 1120
 } // End Class
@@ -1124,4 +1124,4 @@  discard block
 block discarded – undo
1124 1124
  * @ignore only for backward compatibility
1125 1125
  * @since 1.9.0
1126 1126
  */
1127
-class Woothemes_Sensei extends Sensei_Main{ }
1127
+class Woothemes_Sensei extends Sensei_Main { }
Please login to merge, or discard this patch.
Braces   +28 added lines, -16 removed lines patch added patch discarded remove patch
@@ -1,5 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
2
+if ( ! defined( 'ABSPATH' ) ) {
3
+	exit;
4
+}
5
+// Exit if accessed directly
3 6
 
4 7
 /**
5 8
  * Responsible for loading Sensei and setting up the Main WordPress hooks.
@@ -155,7 +158,9 @@  discard block
 block discarded – undo
155 158
         $this->init();
156 159
 
157 160
         // Installation
158
-        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) $this->install();
161
+        if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
162
+        	$this->install();
163
+        }
159 164
 
160 165
         // Run this on activation.
161 166
         register_activation_hook( $this->file, array( $this, 'activation' ) );
@@ -506,7 +511,7 @@  discard block
 block discarded – undo
506 511
 
507 512
             $sensei_plugin_path =  $this->plugin_path;
508 513
 
509
-        }else{
514
+        } else{
510 515
 
511 516
             $sensei_plugin_path = plugin_dir_path( __FILE__ );
512 517
 
@@ -719,7 +724,9 @@  discard block
 block discarded – undo
719 724
      */
720 725
     public function access_settings () {
721 726
 
722
-        if( sensei_all_access() ) return true;
727
+        if( sensei_all_access() ) {
728
+        	return true;
729
+        }
723 730
 
724 731
         if ( isset( $this->settings->settings['access_permission'] ) && ( true == $this->settings->settings['access_permission'] ) ) {
725 732
             if ( is_user_logged_in() ) {
@@ -772,8 +779,9 @@  discard block
 block discarded – undo
772 779
         }
773 780
         $where = "WHERE comment_type IN ('" . join("', '", array_unique( $statuses ) ) . "')";
774 781
 
775
-        if ( $post_id > 0 )
776
-            $where .= $wpdb->prepare( " AND comment_post_ID = %d", $post_id );
782
+        if ( $post_id > 0 ) {
783
+                    $where .= $wpdb->prepare( " AND comment_post_ID = %d", $post_id );
784
+        }
777 785
 
778 786
         $count = $wpdb->get_results( "SELECT comment_approved, COUNT( * ) AS num_comments FROM {$wpdb->comments} {$where} GROUP BY comment_approved", ARRAY_A );
779 787
 
@@ -781,16 +789,19 @@  discard block
 block discarded – undo
781 789
         $approved = array('0' => 'moderated', '1' => 'approved', 'spam' => 'spam', 'trash' => 'trash', 'post-trashed' => 'post-trashed');
782 790
         foreach ( (array) $count as $row ) {
783 791
             // Don't count post-trashed toward totals
784
-            if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] )
785
-                $total += $row['num_comments'];
786
-            if ( isset( $approved[$row['comment_approved']] ) )
787
-                $stats[$approved[$row['comment_approved']]] = $row['num_comments'];
792
+            if ( 'post-trashed' != $row['comment_approved'] && 'trash' != $row['comment_approved'] ) {
793
+                            $total += $row['num_comments'];
794
+            }
795
+            if ( isset( $approved[$row['comment_approved']] ) ) {
796
+                            $stats[$approved[$row['comment_approved']]] = $row['num_comments'];
797
+            }
788 798
         }
789 799
 
790 800
         $stats['total_comments'] = $total;
791 801
         foreach ( $approved as $key ) {
792
-            if ( empty($stats[$key]) )
793
-                $stats[$key] = 0;
802
+            if ( empty($stats[$key]) ) {
803
+                            $stats[$key] = 0;
804
+            }
794 805
         }
795 806
 
796 807
         $stats = (object) $stats;
@@ -831,8 +842,9 @@  discard block
 block discarded – undo
831 842
     public function get_image_size( $image_size ) {
832 843
 
833 844
         // Only return sizes we define in settings
834
-        if ( ! in_array( $image_size, array( 'course_archive_image', 'course_single_image', 'lesson_archive_image', 'lesson_single_image' ) ) )
835
-            return apply_filters( 'sensei_get_image_size_' . $image_size, '' );
845
+        if ( ! in_array( $image_size, array( 'course_archive_image', 'course_single_image', 'lesson_archive_image', 'lesson_single_image' ) ) ) {
846
+                    return apply_filters( 'sensei_get_image_size_' . $image_size, '' );
847
+        }
836 848
 
837 849
         if( ! isset( $this->settings->settings[ $image_size . '_width' ] ) ) {
838 850
             $this->settings->settings[ $image_size . '_width' ] = false;
@@ -895,7 +907,7 @@  discard block
 block discarded – undo
895 907
             require_once( 'class-sensei-modules.php');
896 908
             Sensei()->modules = new Sensei_Core_Modules( $this->file );
897 909
 
898
-        }else{
910
+        } else{
899 911
             // fallback for people still using the modules extension.
900 912
             global $sensei_modules;
901 913
             Sensei()->modules = $sensei_modules;
@@ -942,7 +954,7 @@  discard block
 block discarded – undo
942 954
 
943 955
             update_option('sensei_flush_rewrite_rules', '2');
944 956
 
945
-        }elseif( '2' == $option ) {
957
+        } elseif( '2' == $option ) {
946 958
 
947 959
             flush_rewrite_rules();
948 960
             update_option('sensei_flush_rewrite_rules', '0');
Please login to merge, or discard this patch.
includes/hooks/woocommerce.php 1 patch
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -7,20 +7,20 @@  discard block
 block discarded – undo
7 7
  * show the WooCommerce course filter links above the courses
8 8
  * @since 1.9.0
9 9
  */
10
-add_filter( 'sensei_archive_course_filter_by_options', array( 'Sensei_WC', 'add_course_archive_wc_filter_links' ) );
10
+add_filter('sensei_archive_course_filter_by_options', array('Sensei_WC', 'add_course_archive_wc_filter_links'));
11 11
 
12 12
 /**
13 13
  * filter the queries for paid and free course based on the users selection.
14 14
  * @since 1.9.0
15 15
  */
16
-add_filter('pre_get_posts', array( 'Sensei_WC', 'course_archive_wc_filter_free'));
17
-add_filter('pre_get_posts', array( 'Sensei_WC', 'course_archive_wc_filter_paid'));
16
+add_filter('pre_get_posts', array('Sensei_WC', 'course_archive_wc_filter_free'));
17
+add_filter('pre_get_posts', array('Sensei_WC', 'course_archive_wc_filter_paid'));
18 18
 
19 19
 /**
20 20
  * Add woocommerce action above single course the action
21 21
  * @since 1.9.0
22 22
  */
23
-add_action('sensei_before_main_content', array('Sensei_WC', 'do_single_course_wc_single_product_action') ,50) ;
23
+add_action('sensei_before_main_content', array('Sensei_WC', 'do_single_course_wc_single_product_action'), 50);
24 24
 
25 25
 
26 26
 /******************************
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
  * Single Lesson Hooks
29 29
  *
30 30
  ******************************/
31
-add_filter( 'sensei_can_user_view_lesson', array( 'Sensei_WC','alter_can_user_view_lesson' ), 20, 3 );
31
+add_filter('sensei_can_user_view_lesson', array('Sensei_WC', 'alter_can_user_view_lesson'), 20, 3);
32 32
 
33 33
 /******************************
34 34
  *
@@ -36,7 +36,7 @@  discard block
 block discarded – undo
36 36
  *
37 37
  ******************************/
38 38
 // add a notice on the checkout page to tell users about the course they've purchase
39
-add_action( 'template_redirect', array( 'Sensei_WC','course_link_from_order' ) );
39
+add_action('template_redirect', array('Sensei_WC', 'course_link_from_order'));
40 40
 
41 41
 /******************************
42 42
  *
@@ -45,7 +45,7 @@  discard block
 block discarded – undo
45 45
  ******************************/
46 46
 //@since 1.9.0
47 47
 //show a notice if the user has already added the current course to their cart
48
-add_action( 'sensei_single_course_content_inside_before', array( 'Sensei_WC', 'course_in_cart_message' ), 20 );
48
+add_action('sensei_single_course_content_inside_before', array('Sensei_WC', 'course_in_cart_message'), 20);
49 49
 
50 50
 /******************************
51 51
  *
@@ -54,15 +54,15 @@  discard block
 block discarded – undo
54 54
  ******************************/
55 55
 //@since 1.9.0
56 56
 // alter the no permissions message to show the woocommerce message instead
57
-add_filter( 'sensei_the_no_permissions_message', array( 'Sensei_WC', 'alter_no_permissions_message' ), 20, 2 );
57
+add_filter('sensei_the_no_permissions_message', array('Sensei_WC', 'alter_no_permissions_message'), 20, 2);
58 58
 
59 59
 //@since 1.9.0
60 60
 // add the add to cart button for a valid purchasable course
61
-add_action( 'sensei_no_permissions_inside_before_content', array( 'Sensei_WC', 'the_add_to_cart_button_html' ), 20, 1);
61
+add_action('sensei_no_permissions_inside_before_content', array('Sensei_WC', 'the_add_to_cart_button_html'), 20, 1);
62 62
 
63 63
 // @since 1.9.0
64 64
 // add  woocommerce class to the the no permission body class to ensure WooCommerce elements are styled
65
-add_filter( 'body_class', array( 'Sensei_WC', 'add_woocommerce_body_class' ), 20, 1);
65
+add_filter('body_class', array('Sensei_WC', 'add_woocommerce_body_class'), 20, 1);
66 66
 
67 67
 
68 68
 /************************************
@@ -71,7 +71,7 @@  discard block
 block discarded – undo
71 71
  *
72 72
  ************************************/
73 73
 // Add Email link to course orders
74
-add_action( 'woocommerce_email_after_order_table', array( 'Sensei_WC', 'email_course_details' ), 10, 1 );
74
+add_action('woocommerce_email_after_order_table', array('Sensei_WC', 'email_course_details'), 10, 1);
75 75
 
76 76
 /************************************
77 77
  *
@@ -80,18 +80,18 @@  discard block
 block discarded – undo
80 80
  ************************************/
81 81
 //add_action( 'woocommerce_payment_complete',                 array( 'Sensei_WC', 'complete_order' ) );
82 82
 //add_action( 'woocommerce_thankyou' ,                        array( 'Sensei_WC', 'complete_order' ) );
83
-add_action( 'woocommerce_delete_shop_order_transients',           array( 'Sensei_WC', 'complete_order' ) );
84
-add_action( 'woocommerce_delete_shop_order_transients',            array( 'Sensei_WC', 'cancel_order' ) );
83
+add_action('woocommerce_delete_shop_order_transients', array('Sensei_WC', 'complete_order'));
84
+add_action('woocommerce_delete_shop_order_transients', array('Sensei_WC', 'cancel_order'));
85 85
 // Disable guest checkout if a course is in the cart as we need a valid user to store data for
86
-add_filter( 'pre_option_woocommerce_enable_guest_checkout', array( 'Sensei_WC', 'disable_guest_checkout' ) );
86
+add_filter('pre_option_woocommerce_enable_guest_checkout', array('Sensei_WC', 'disable_guest_checkout'));
87 87
 // Mark orders with virtual products as complete rather then stay processing
88
-add_filter( 'woocommerce_payment_complete_order_status',    array( 'Sensei_WC', 'virtual_order_payment_complete' ), 10, 2 );
88
+add_filter('woocommerce_payment_complete_order_status', array('Sensei_WC', 'virtual_order_payment_complete'), 10, 2);
89 89
 
90 90
 /************************************
91 91
  *
92 92
  * WooCommerce Subscriptions
93 93
  *
94 94
  ************************************/
95
-add_action( 'woocommerce_subscription_status_pending_to_active', array( 'Sensei_WC', 'activate_subscription' ), 50, 3 );
95
+add_action('woocommerce_subscription_status_pending_to_active', array('Sensei_WC', 'activate_subscription'), 50, 3);
96 96
 // filter the user permission of the subscription is not valid
97
-add_filter( 'sensei_access_permissions',               array( 'Sensei_WC', 'get_subscription_permission' ), 10, 2 );
97
+add_filter('sensei_access_permissions', array('Sensei_WC', 'get_subscription_permission'), 10, 2);
Please login to merge, or discard this patch.