Completed
Push — master ( 80c0ca...82d23b )
by Dwain
04:32
created
templates/content-course.php 1 patch
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -1,51 +1,51 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) exit;
3 3
 /**
4
- * Content-course.php template file
5
- *
6
- * responsible for content on archive like pages. Only shows the course excerpt.
7
- *
8
- * For single course content please see single-course.php
9
- *
10
- * @author 		Automattic
11
- * @package 	Sensei
12
- * @category    Templates
13
- * @version     1.9.0
14
- */
4
+	 * Content-course.php template file
5
+	 *
6
+	 * responsible for content on archive like pages. Only shows the course excerpt.
7
+	 *
8
+	 * For single course content please see single-course.php
9
+	 *
10
+	 * @author 		Automattic
11
+	 * @package 	Sensei
12
+	 * @category    Templates
13
+	 * @version     1.9.0
14
+	 */
15 15
 ?>
16 16
 
17 17
 <li <?php post_class(  WooThemes_Sensei_Course::get_course_loop_content_class() ); ?> >
18 18
 
19 19
     <?php
20
-    /**
21
-     * This action runs before the sensei course content. It runs inside the sensei
22
-     * content-course.php template.
23
-     *
24
-     * @since 1.9
25
-     *
26
-     * @param $post
27
-     */
28
-    do_action( 'sensei_course_content_before', get_post() );
29
-    ?>
20
+	/**
21
+	 * This action runs before the sensei course content. It runs inside the sensei
22
+	 * content-course.php template.
23
+	 *
24
+	 * @since 1.9
25
+	 *
26
+	 * @param $post
27
+	 */
28
+	do_action( 'sensei_course_content_before', get_post() );
29
+	?>
30 30
 
31 31
     <section class="course-content">
32 32
 
33 33
         <section class="entry">
34 34
 
35 35
             <?php
36
-            /**
37
-             * Fires just before the course content in the content-course.php file.
38
-             *
39
-             * @since 1.9
40
-             *
41
-             * @param WP_Post $post
42
-             *
43
-             * @hooked Sensei_Templates::the_title          - 5
44
-             * @hooked Sensei()->course->course_image       - 10
45
-             * @hooked  Sensei()->course->the_course_meta   - 20
46
-             */
47
-            do_action('sensei_course_content_inside_before', get_post());
48
-            ?>
36
+			/**
37
+			 * Fires just before the course content in the content-course.php file.
38
+			 *
39
+			 * @since 1.9
40
+			 *
41
+			 * @param WP_Post $post
42
+			 *
43
+			 * @hooked Sensei_Templates::the_title          - 5
44
+			 * @hooked Sensei()->course->course_image       - 10
45
+			 * @hooked  Sensei()->course->the_course_meta   - 20
46
+			 */
47
+			do_action('sensei_course_content_inside_before', get_post());
48
+			?>
49 49
 
50 50
             <p class="course-excerpt">
51 51
 
@@ -54,34 +54,34 @@  discard block
 block discarded – undo
54 54
             </p>
55 55
 
56 56
             <?php
57
-            /**
58
-             * Fires just after the course content in the content-course.php file.
59
-             *
60
-             * @since 1.9
61
-             *
62
-             * @param WP_Post $post
63
-             *
64
-             * @hooked  Sensei()->course->the_course_free_lesson_preview - 20
65
-             */
66
-            do_action('sensei_course_content_inside_after', get_post());
67
-            ?>
57
+			/**
58
+			 * Fires just after the course content in the content-course.php file.
59
+			 *
60
+			 * @since 1.9
61
+			 *
62
+			 * @param WP_Post $post
63
+			 *
64
+			 * @hooked  Sensei()->course->the_course_free_lesson_preview - 20
65
+			 */
66
+			do_action('sensei_course_content_inside_after', get_post());
67
+			?>
68 68
 
69 69
         </section> <!-- section .entry -->
70 70
 
71 71
     </section> <!-- section .course-content -->
72 72
 
73 73
     <?php
74
-    /**
75
-     * Fires after the course block in the content-course.php file.
76
-     *
77
-     * @since 1.9
78
-     *
79
-     * @param WP_Post $post
80
-     *
81
-     * @hooked  Sensei()->course->the_course_free_lesson_preview - 20
82
-     */
83
-    do_action('sensei_course_content_after', get_post());
84
-    ?>
74
+	/**
75
+	 * Fires after the course block in the content-course.php file.
76
+	 *
77
+	 * @since 1.9
78
+	 *
79
+	 * @param WP_Post $post
80
+	 *
81
+	 * @hooked  Sensei()->course->the_course_free_lesson_preview - 20
82
+	 */
83
+	do_action('sensei_course_content_after', get_post());
84
+	?>
85 85
 
86 86
 
87 87
 </li> <!-- article .(<?php esc_attr_e( join( ' ', get_post_class( array( 'course', 'post' ) ) ) ); ?>  -->
88 88
\ No newline at end of file
Please login to merge, or discard this patch.
templates/user/login-form.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -27,13 +27,13 @@  discard block
 block discarded – undo
27 27
 <form method="post" name="sensi-login-form" id="loginform" class="login sensei">
28 28
 
29 29
     <?php
30
-    /**
31
-     *  Executes inside the sensei login form before all the default fields.
32
-     *
33
-     * @since 1.6.2
34
-     */
35
-        do_action( 'sensei_login_form_inside_before' );
36
-    ?>
30
+	/**
31
+	 *  Executes inside the sensei login form before all the default fields.
32
+	 *
33
+	 * @since 1.6.2
34
+	 */
35
+		do_action( 'sensei_login_form_inside_before' );
36
+	?>
37 37
 
38 38
 	<p class="sensei-login-username form-row form-row-wide">
39 39
 
@@ -52,15 +52,15 @@  discard block
 block discarded – undo
52 52
 	</p>
53 53
 
54 54
     <?php
55
-    /**
56
-     *  Executes inside the sensei login form after the password field.
57
-     *
58
-     *  You can use the action to add extra form login fields.
59
-     *
60
-     * @since 1.6.2
61
-     */
62
-        do_action( 'sensei_login_form_inside_after_password_field' );
63
-    ?>
55
+	/**
56
+	 *  Executes inside the sensei login form after the password field.
57
+	 *
58
+	 *  You can use the action to add extra form login fields.
59
+	 *
60
+	 * @since 1.6.2
61
+	 */
62
+		do_action( 'sensei_login_form_inside_after_password_field' );
63
+	?>
64 64
 
65 65
 	<p class='sensei-login-submit'>
66 66
 
@@ -81,13 +81,13 @@  discard block
 block discarded – undo
81 81
 	</p>
82 82
 
83 83
     <?php
84
-    /**
85
-     *  Executes inside the sensei login form after all the default fields.
86
-     *
87
-     * @since 1.6.2
88
-     */
89
-        do_action( 'sensei_login_form_inside_after' );
90
-    ?>
84
+	/**
85
+	 *  Executes inside the sensei login form after all the default fields.
86
+	 *
87
+	 * @since 1.6.2
88
+	 */
89
+		do_action( 'sensei_login_form_inside_after' );
90
+	?>
91 91
 
92 92
 	<?php wp_nonce_field( 'sensei-login' ); ?>
93 93
 
@@ -101,9 +101,9 @@  discard block
 block discarded – undo
101 101
 
102 102
 <?php
103 103
 /**
104
- *  Executes after the Login form markup closes.
105
- *
106
- *  @since 1.9.0
107
- */
104
+	 *  Executes after the Login form markup closes.
105
+	 *
106
+	 *  @since 1.9.0
107
+	 */
108 108
 do_action( 'sensei_login_form_after' );
109 109
 ?>
110 110
\ No newline at end of file
Please login to merge, or discard this patch.
templates/user/my-courses.php 1 patch
Indentation   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -1,61 +1,61 @@
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) exit;
3 3
 /**
4
- * The Template for displaying the my course page data.
5
- *
6
- * Override this template by copying it to yourtheme/sensei/user/my-courses.php
7
- *
8
- * @author 		Automattic
9
- * @package 	Sensei
10
- * @category    Templates
11
- * @version     1.9.0
12
- */
4
+	 * The Template for displaying the my course page data.
5
+	 *
6
+	 * Override this template by copying it to yourtheme/sensei/user/my-courses.php
7
+	 *
8
+	 * @author 		Automattic
9
+	 * @package 	Sensei
10
+	 * @category    Templates
11
+	 * @version     1.9.0
12
+	 */
13 13
 ?>
14 14
 
15 15
 <?php
16 16
 /**
17
- * Executes before the Sensei my courses markup begins. This hook
18
- * only fires whe a user is logged in. If you need to add
19
- * something here for when users are logged out use `sensei_login_form_before`.
20
- *
21
- * @since 1.9.0
22
- */
17
+	 * Executes before the Sensei my courses markup begins. This hook
18
+	 * only fires whe a user is logged in. If you need to add
19
+	 * something here for when users are logged out use `sensei_login_form_before`.
20
+	 *
21
+	 * @since 1.9.0
22
+	 */
23 23
 do_action( 'sensei_my_courses_before' );
24 24
 ?>
25 25
 
26 26
 <section id="main-course" class="course-container">
27 27
 
28 28
     <?php
29
-    /**
30
-     * Executes inside just before the Sensei my courses content. This hook
31
-     * only fires whe a user is logged in.
32
-     *
33
-     * @since 1.9.0
34
-     */
35
-    do_action( 'sensei_my_courses_content_inside_before' );
36
-    ?>
29
+	/**
30
+	 * Executes inside just before the Sensei my courses content. This hook
31
+	 * only fires whe a user is logged in.
32
+	 *
33
+	 * @since 1.9.0
34
+	 */
35
+	do_action( 'sensei_my_courses_content_inside_before' );
36
+	?>
37 37
 
38 38
     <?php sensei_the_my_courses_content(); ?>
39 39
 
40 40
     <?php
41
-    /**
42
-     * Executes inside just after the Sensei my courses content. This hook
43
-     * only fires whe a user is logged in.
44
-     *
45
-     * @since 1.9.0
46
-     */
47
-    do_action( 'sensei_my_courses_content_inside_after' );
48
-    ?>
41
+	/**
42
+	 * Executes inside just after the Sensei my courses content. This hook
43
+	 * only fires whe a user is logged in.
44
+	 *
45
+	 * @since 1.9.0
46
+	 */
47
+	do_action( 'sensei_my_courses_content_inside_after' );
48
+	?>
49 49
 
50 50
 </section>
51 51
 
52 52
 <?php
53 53
 /**
54
- * Executes after the Sensei my courses template markup ends. This hook
55
- * only fires whe a user is logged in. If you need to add
56
- * something here for when users are logged out use `sensei_login_form_after`.
57
- *
58
- * @since 1.9.0
59
- */
54
+	 * Executes after the Sensei my courses template markup ends. This hook
55
+	 * only fires whe a user is logged in. If you need to add
56
+	 * something here for when users are logged out use `sensei_login_form_after`.
57
+	 *
58
+	 * @since 1.9.0
59
+	 */
60 60
 do_action( 'sensei_my_courses_after' );
61 61
 ?>
Please login to merge, or discard this patch.
woothemes-sensei.php 1 patch
Indentation   +77 added lines, -77 removed lines patch added patch discarded remove patch
@@ -30,80 +30,80 @@
 block discarded – undo
30 30
 
31 31
 	if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
32 32
 
33
-    require_once( 'includes/class-sensei-autoloader.php' );
34
-    require_once( 'includes/lib/woo-functions.php' );
35
-    require_once( 'includes/sensei-functions.php' );
36
-
37
-    if ( ! is_admin() ) {
38
-        require_once( 'includes/template-functions.php' );
39
-    }
40
-
41
-    /**
42
-     * Returns the global Sensei Instance.
43
-     *
44
-     * @since 1.8.0
45
-     */
46
-    function Sensei(){
47
-
48
-        return Sensei_Main::instance();
49
-
50
-    }
51
-
52
-    // set the sensei version number
53
-    Sensei()->version = '1.9-beta';
54
-
55
-    //backwards compatibility
56
-    global $woothemes_sensei;
57
-    $woothemes_sensei = Sensei();
58
-
59
-    /**
60
-    * Hook in WooCommerce functionality
61
-    */
62
-    if( Sensei_WC::is_woocommerce_active() ){
63
-        add_action('init', array( 'Sensei_WC', 'load_woocommerce_integration_hooks' ) );
64
-    }
65
-
66
-    /**
67
-     * Load all Template hooks
68
-    */
69
-    if(! is_admin() ){
70
-
71
-        require_once( 'includes/hooks/template.php' );
72
-
73
-    }
74
-
75
-    /**
76
-     * Plugin updates
77
-     * @since  1.0.1
78
-     */
79
-    woothemes_queue_update( plugin_basename( __FILE__ ), 'bad2a02a063555b7e2bee59924690763', 152116 );
80
-
81
-    /**
82
-     * Sensei Activation Hook registration
83
-     * @since 1.8.0
84
-     */
85
-    register_activation_hook( __FILE__, 'activate_sensei' );
86
-
87
-    /**
88
-     * Activate_sensei
89
-     *
90
-     * All the activation checks needed to ensure Sensei is ready for use
91
-     * @since 1.8.0
92
-     */
93
-    function activate_sensei () {
94
-
95
-        // create the teacher role on activation and ensure that it has all the needed capabilities
96
-        Sensei()->teacher->create_role();
97
-
98
-        //Setup all the role capabilities needed
99
-        Sensei()->updates->add_sensei_caps();
100
-        Sensei()->updates->add_editor_caps();
101
-        Sensei()->updates->assign_role_caps();
102
-
103
-        //Flush rules
104
-        add_action( 'activated_plugin' , array( 'Sensei_Main','activation_flush_rules' ), 10 );
105
-
106
-        //Load the Welcome Screen
107
-        add_action( 'activated_plugin' , array( 'Sensei_Welcome','redirect' ), 20 );
108
-
109
-    }// end activate_sensei
33
+	require_once( 'includes/class-sensei-autoloader.php' );
34
+	require_once( 'includes/lib/woo-functions.php' );
35
+	require_once( 'includes/sensei-functions.php' );
36
+
37
+	if ( ! is_admin() ) {
38
+		require_once( 'includes/template-functions.php' );
39
+	}
40
+
41
+	/**
42
+	 * Returns the global Sensei Instance.
43
+	 *
44
+	 * @since 1.8.0
45
+	 */
46
+	function Sensei(){
47
+
48
+		return Sensei_Main::instance();
49
+
50
+	}
51
+
52
+	// set the sensei version number
53
+	Sensei()->version = '1.9-beta';
54
+
55
+	//backwards compatibility
56
+	global $woothemes_sensei;
57
+	$woothemes_sensei = Sensei();
58
+
59
+	/**
60
+	 * Hook in WooCommerce functionality
61
+	 */
62
+	if( Sensei_WC::is_woocommerce_active() ){
63
+		add_action('init', array( 'Sensei_WC', 'load_woocommerce_integration_hooks' ) );
64
+	}
65
+
66
+	/**
67
+	 * Load all Template hooks
68
+	 */
69
+	if(! is_admin() ){
70
+
71
+		require_once( 'includes/hooks/template.php' );
72
+
73
+	}
74
+
75
+	/**
76
+	 * Plugin updates
77
+	 * @since  1.0.1
78
+	 */
79
+	woothemes_queue_update( plugin_basename( __FILE__ ), 'bad2a02a063555b7e2bee59924690763', 152116 );
80
+
81
+	/**
82
+	 * Sensei Activation Hook registration
83
+	 * @since 1.8.0
84
+	 */
85
+	register_activation_hook( __FILE__, 'activate_sensei' );
86
+
87
+	/**
88
+	 * Activate_sensei
89
+	 *
90
+	 * All the activation checks needed to ensure Sensei is ready for use
91
+	 * @since 1.8.0
92
+	 */
93
+	function activate_sensei () {
94
+
95
+		// create the teacher role on activation and ensure that it has all the needed capabilities
96
+		Sensei()->teacher->create_role();
97
+
98
+		//Setup all the role capabilities needed
99
+		Sensei()->updates->add_sensei_caps();
100
+		Sensei()->updates->add_editor_caps();
101
+		Sensei()->updates->assign_role_caps();
102
+
103
+		//Flush rules
104
+		add_action( 'activated_plugin' , array( 'Sensei_Main','activation_flush_rules' ), 10 );
105
+
106
+		//Load the Welcome Screen
107
+		add_action( 'activated_plugin' , array( 'Sensei_Welcome','redirect' ), 20 );
108
+
109
+	}// end activate_sensei
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-courses.php 1 patch
Indentation   +146 added lines, -146 removed lines patch added patch discarded remove patch
@@ -14,205 +14,205 @@
 block discarded – undo
14 14
  */
15 15
 class Sensei_Shortcode_Courses implements Sensei_Shortcode_Interface {
16 16
 
17
-    /**
18
-     * @var WP_Query to help setup the query needed by the render method.
19
-     */
20
-    protected $query;
21
-
22
-    /**
23
-     * @var string number of items to show on the current page
24
-     * Default: -1.
25
-     */
26
-    protected $number;
27
-
28
-    /**
29
-     * @var string ordery by course field
30
-     * Default: date
31
-     */
32
-    protected $orderby;
33
-
34
-    /**
35
-     * @var string ASC or DESC
36
-     * Default: 'DESC'
37
-     */
38
-    protected  $order;
17
+	/**
18
+	 * @var WP_Query to help setup the query needed by the render method.
19
+	 */
20
+	protected $query;
21
+
22
+	/**
23
+	 * @var string number of items to show on the current page
24
+	 * Default: -1.
25
+	 */
26
+	protected $number;
27
+
28
+	/**
29
+	 * @var string ordery by course field
30
+	 * Default: date
31
+	 */
32
+	protected $orderby;
33
+
34
+	/**
35
+	 * @var string ASC or DESC
36
+	 * Default: 'DESC'
37
+	 */
38
+	protected  $order;
39 39
 
40
-    /**
41
-     * @var category can be completed or active or all
42
-     */
43
-    protected $category;
44
-
45
-    /**
46
-     * @var string teacher id to limit the courses to
47
-     */
48
-    protected $teacher;
40
+	/**
41
+	 * @var category can be completed or active or all
42
+	 */
43
+	protected $category;
44
+
45
+	/**
46
+	 * @var string teacher id to limit the courses to
47
+	 */
48
+	protected $teacher;
49 49
 
50
-    /**
51
-     * @var string csv of course ids to limit the search to
52
-     */
53
-    protected $ids;
50
+	/**
51
+	 * @var string csv of course ids to limit the search to
52
+	 */
53
+	protected $ids;
54 54
 
55
-    /**
56
-     * @var exclude courses by id
57
-     */
58
-    protected $exclude;
55
+	/**
56
+	 * @var exclude courses by id
57
+	 */
58
+	protected $exclude;
59 59
 
60
-    /**
61
-     * Setup the shortcode object
62
-     *
63
-     * @since 1.9.0
64
-     * @param array $attributes
65
-     * @param string $content
66
-     * @param string $shortcode the shortcode that was called for this instance
67
-     */
68
-    public function __construct( $attributes, $content, $shortcode ){
60
+	/**
61
+	 * Setup the shortcode object
62
+	 *
63
+	 * @since 1.9.0
64
+	 * @param array $attributes
65
+	 * @param string $content
66
+	 * @param string $shortcode the shortcode that was called for this instance
67
+	 */
68
+	public function __construct( $attributes, $content, $shortcode ){
69 69
 
70
-        // set up all argument need for constructing the course query
71
-        $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
72
-        $this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : '';
73
-        $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date';
70
+		// set up all argument need for constructing the course query
71
+		$this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
72
+		$this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : '';
73
+		$this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date';
74 74
 
75
-        // set the default for menu_order to be ASC
76
-        if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
75
+		// set the default for menu_order to be ASC
76
+		if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
77 77
 
78
-            $this->order =  'ASC';
78
+			$this->order =  'ASC';
79 79
 
80
-        }else{
80
+		}else{
81 81
 
82
-            // for everything else use the value passed or the default DESC
83
-            $this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'DESC';
82
+			// for everything else use the value passed or the default DESC
83
+			$this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'DESC';
84 84
 
85
-        }
85
+		}
86 86
 
87
-        $category = isset( $attributes['category'] ) ? $attributes['category'] : '';
88
-        $this->category = is_numeric( $category ) ? intval( $category ) : $category;
87
+		$category = isset( $attributes['category'] ) ? $attributes['category'] : '';
88
+		$this->category = is_numeric( $category ) ? intval( $category ) : $category;
89 89
 
90
-        $ids =  isset( $attributes['ids'] ) ? $attributes['ids'] : '';
91
-        $this->ids = empty( $ids ) ? '' : explode( ',', $ids );
90
+		$ids =  isset( $attributes['ids'] ) ? $attributes['ids'] : '';
91
+		$this->ids = empty( $ids ) ? '' : explode( ',', $ids );
92 92
 
93
-        $exclude =  isset( $attributes['exclude'] ) ? $attributes['exclude'] : '';
94
-        $this->exclude = empty( $exclude ) ? '' : explode( ',', $exclude );
93
+		$exclude =  isset( $attributes['exclude'] ) ? $attributes['exclude'] : '';
94
+		$this->exclude = empty( $exclude ) ? '' : explode( ',', $exclude );
95 95
 
96
-        // setup the course query that will be used when rendering
97
-        $this->setup_course_query();
98
-    }
96
+		// setup the course query that will be used when rendering
97
+		$this->setup_course_query();
98
+	}
99 99
 
100
-    /**
101
-     * Sets up the object course query
102
-     * that will be used int he render method.
103
-     *
104
-     * @since 1.9.0
105
-     */
106
-    protected function setup_course_query(){
100
+	/**
101
+	 * Sets up the object course query
102
+	 * that will be used int he render method.
103
+	 *
104
+	 * @since 1.9.0
105
+	 */
106
+	protected function setup_course_query(){
107 107
 
108
-        // query defaults
109
-        $query_args = array(
110
-            'post_type'        => 'course',
111
-            'post_status'      => 'publish',
112
-            'orderby'          => $this->orderby,
113
-            'order'            => $this->order,
114
-            'posts_per_page'   => $this->number,
108
+		// query defaults
109
+		$query_args = array(
110
+			'post_type'        => 'course',
111
+			'post_status'      => 'publish',
112
+			'orderby'          => $this->orderby,
113
+			'order'            => $this->order,
114
+			'posts_per_page'   => $this->number,
115 115
 
116
-        );
116
+		);
117 117
 
118
-        // setup the teacher query if any teacher was specified
119
-        if( !empty( $this->teacher )){
118
+		// setup the teacher query if any teacher was specified
119
+		if( !empty( $this->teacher )){
120 120
 
121
-            // when users passed in a csv
122
-            if( strpos( $this->teacher, ',' ) ){
121
+			// when users passed in a csv
122
+			if( strpos( $this->teacher, ',' ) ){
123 123
 
124
-                $teachers = explode( ',', $this->teacher );
124
+				$teachers = explode( ',', $this->teacher );
125 125
 
126
-                // for all user names given convert them to user ID's
127
-                foreach( $teachers as $index => $teacher  ){
126
+				// for all user names given convert them to user ID's
127
+				foreach( $teachers as $index => $teacher  ){
128 128
 
129
-                    //replace the teacher value with the teachers ID
130
-                    if( ! is_numeric( $teacher ) ){
129
+					//replace the teacher value with the teachers ID
130
+					if( ! is_numeric( $teacher ) ){
131 131
 
132
-                        $user = get_user_by('login', $teacher);
133
-                        $teachers[$index] = $user->ID;
132
+						$user = get_user_by('login', $teacher);
133
+						$teachers[$index] = $user->ID;
134 134
 
135
-                    }
135
+					}
136 136
 
137
-                } // end for each
137
+				} // end for each
138 138
 
139
-                $teacher_query_by = 'author__in';
140
-                $this->teacher = $teachers;
139
+				$teacher_query_by = 'author__in';
140
+				$this->teacher = $teachers;
141 141
 
142
-            }else{
143
-                // when users passed in a single teacher value
144
-                $teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name';
142
+			}else{
143
+				// when users passed in a single teacher value
144
+				$teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name';
145 145
 
146
-            }
146
+			}
147 147
 
148
-            // attach teacher query by and teacher query value to the course query
149
-            $query_args[ $teacher_query_by ] = $this->teacher;
148
+			// attach teacher query by and teacher query value to the course query
149
+			$query_args[ $teacher_query_by ] = $this->teacher;
150 150
 
151
-        }// end if empty teacher
151
+		}// end if empty teacher
152 152
 
153 153
 
154
-        // add the course category taxonomy query
155
-        if( ! empty( $this->category ) ) {
154
+		// add the course category taxonomy query
155
+		if( ! empty( $this->category ) ) {
156 156
 
157
-            $tax_query = array();
158
-            $term_id = intval( term_exists($this->category) );
157
+			$tax_query = array();
158
+			$term_id = intval( term_exists($this->category) );
159 159
 
160
-            if (! empty( $term_id) ) {
160
+			if (! empty( $term_id) ) {
161 161
 
162
-                $tax_query = array(
163
-                    'taxonomy' => 'course-category',
164
-                    'field' => 'id',
165
-                    'terms' => $term_id,
166
-                );
162
+				$tax_query = array(
163
+					'taxonomy' => 'course-category',
164
+					'field' => 'id',
165
+					'terms' => $term_id,
166
+				);
167 167
 
168
-            }
168
+			}
169 169
 
170
-            $query_args['tax_query'] = array($tax_query);
170
+			$query_args['tax_query'] = array($tax_query);
171 171
 
172
-        }
172
+		}
173 173
 
174
-        // limit the query if the user supplied ids
175
-        if( ! empty( $this->ids ) && is_array( $this->ids ) ) {
174
+		// limit the query if the user supplied ids
175
+		if( ! empty( $this->ids ) && is_array( $this->ids ) ) {
176 176
 
177
-            $query_args['post__in'] = $this->ids;
177
+			$query_args['post__in'] = $this->ids;
178 178
 
179
-        }
179
+		}
180 180
 
181
-        // exclude the course by id fromt he query
182
-        if( ! empty( $this->exclude ) && is_array( $this->exclude ) ) {
181
+		// exclude the course by id fromt he query
182
+		if( ! empty( $this->exclude ) && is_array( $this->exclude ) ) {
183 183
 
184
-            $query_args['post__not_in'] = $this->exclude;
184
+			$query_args['post__not_in'] = $this->exclude;
185 185
 
186
-        }
186
+		}
187 187
 
188
-        $this->query = new WP_Query( $query_args );
188
+		$this->query = new WP_Query( $query_args );
189 189
 
190
-    }// end setup _course_query
190
+	}// end setup _course_query
191 191
 
192
-    /**
193
-     * Rendering the shortcode this class is responsible for.
194
-     *
195
-     * @return string $content
196
-     */
197
-    public function render(){
192
+	/**
193
+	 * Rendering the shortcode this class is responsible for.
194
+	 *
195
+	 * @return string $content
196
+	 */
197
+	public function render(){
198 198
 
199
-        global $wp_query;
199
+		global $wp_query;
200 200
 
201
-        // keep a reference to old query
202
-        $current_global_query = $wp_query;
201
+		// keep a reference to old query
202
+		$current_global_query = $wp_query;
203 203
 
204
-        // assign the query setup in $this-> setup_course_query
205
-        $wp_query = $this->query;
204
+		// assign the query setup in $this-> setup_course_query
205
+		$wp_query = $this->query;
206 206
 
207
-        ob_start();
208
-        Sensei_Templates::get_template('loop-course.php');
209
-        $shortcode_output =  ob_get_clean();
207
+		ob_start();
208
+		Sensei_Templates::get_template('loop-course.php');
209
+		$shortcode_output =  ob_get_clean();
210 210
 
211
-        //restore old query
212
-        $wp_query = $current_global_query;
211
+		//restore old query
212
+		$wp_query = $current_global_query;
213 213
 
214
-        return $shortcode_output;
214
+		return $shortcode_output;
215 215
 
216
-    }// end render
216
+	}// end render
217 217
 
218 218
 }
219 219
\ No newline at end of file
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-lesson-page.php 1 patch
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -14,88 +14,88 @@
 block discarded – undo
14 14
  */
15 15
 class Sensei_Shortcode_Lesson_Page implements Sensei_Shortcode_Interface {
16 16
 
17
-    /**
18
-     * @var array $lesson_page_query {
19
-     *     @type WP_Post
20
-     * }
21
-     * The lessons query
22
-     */
23
-    protected $lesson_page_query;
17
+	/**
18
+	 * @var array $lesson_page_query {
19
+	 *     @type WP_Post
20
+	 * }
21
+	 * The lessons query
22
+	 */
23
+	protected $lesson_page_query;
24 24
 
25
-    /**
26
-     * Setup the shortcode object
27
-     *
28
-     * @since 1.9.0
29
-     * @param array $attributes
30
-     * @param string $content
31
-     * @param string $shortcode the shortcode that was called for this instance
32
-     */
33
-    public function __construct( $attributes, $content, $shortcode ){
25
+	/**
26
+	 * Setup the shortcode object
27
+	 *
28
+	 * @since 1.9.0
29
+	 * @param array $attributes
30
+	 * @param string $content
31
+	 * @param string $shortcode the shortcode that was called for this instance
32
+	 */
33
+	public function __construct( $attributes, $content, $shortcode ){
34 34
 
35
-        $this->id = isset( $attributes['id'] ) ? $attributes['id'] : '';
36
-        $this->setup_lesson_query();
35
+		$this->id = isset( $attributes['id'] ) ? $attributes['id'] : '';
36
+		$this->setup_lesson_query();
37 37
 
38
-    }
38
+	}
39 39
 
40
-    /**
41
-     * create the lessons query .
42
-     *
43
-     * @return mixed
44
-     */
45
-    public function setup_lesson_query(){
40
+	/**
41
+	 * create the lessons query .
42
+	 *
43
+	 * @return mixed
44
+	 */
45
+	public function setup_lesson_query(){
46 46
 
47
-        if( empty( $this->id ) ){
48
-            return;
49
-        }
47
+		if( empty( $this->id ) ){
48
+			return;
49
+		}
50 50
 
51
-        $args = array(
52
-            'post_type' => 'lesson',
53
-            'posts_per_page' => 1,
54
-            'post_status' => 'publish',
55
-            'post__in' => array( $this->id ),
56
-        );
51
+		$args = array(
52
+			'post_type' => 'lesson',
53
+			'posts_per_page' => 1,
54
+			'post_status' => 'publish',
55
+			'post__in' => array( $this->id ),
56
+		);
57 57
 
58
-        $this->lesson_page_query  = new WP_Query( $args );
58
+		$this->lesson_page_query  = new WP_Query( $args );
59 59
 
60
-    }
60
+	}
61 61
 
62
-    /**
63
-     * Rendering the shortcode this class is responsible for.
64
-     *
65
-     * @return string $content
66
-     */
67
-    public function render(){
62
+	/**
63
+	 * Rendering the shortcode this class is responsible for.
64
+	 *
65
+	 * @return string $content
66
+	 */
67
+	public function render(){
68 68
 
69
-        if( empty(  $this->id  ) ){
69
+		if( empty(  $this->id  ) ){
70 70
 
71
-            return __( 'Please supply a lesson ID for this shortcode.', 'woothemes-sensei' );
71
+			return __( 'Please supply a lesson ID for this shortcode.', 'woothemes-sensei' );
72 72
 
73
-        }
73
+		}
74 74
 
75
-        //set the wp_query to the current lessons query
76
-        global $wp_query;
77
-        $wp_query = $this->lesson_page_query;
75
+		//set the wp_query to the current lessons query
76
+		global $wp_query;
77
+		$wp_query = $this->lesson_page_query;
78 78
 
79
-        if( have_posts() ){
79
+		if( have_posts() ){
80 80
 
81
-            the_post();
81
+			the_post();
82 82
 
83
-        }else{
83
+		}else{
84 84
 
85
-            return __('No posts found.', 'woothemes-sensei');
85
+			return __('No posts found.', 'woothemes-sensei');
86 86
 
87
-        }
87
+		}
88 88
 
89
-        ob_start();
90
-        Sensei_Templates::get_template('content-single-lesson.php');
91
-        $shortcode_output = ob_get_clean();
89
+		ob_start();
90
+		Sensei_Templates::get_template('content-single-lesson.php');
91
+		$shortcode_output = ob_get_clean();
92 92
 
93
-        // set back the global query
94
-        wp_reset_query();
93
+		// set back the global query
94
+		wp_reset_query();
95 95
 
96
-        return $shortcode_output;
96
+		return $shortcode_output;
97 97
 
98
-    }// end render
98
+	}// end render
99 99
 
100 100
 }// end class
101 101
 
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-loader.php 1 patch
Indentation   +121 added lines, -121 removed lines patch added patch discarded remove patch
@@ -15,127 +15,127 @@
 block discarded – undo
15 15
  */
16 16
 class Sensei_Shortcode_Loader{
17 17
 
18
-    /**
19
-     * @var array {
20
-     *  type string $shortcode
21
-     *  type Sensei_Shortcode
22
-     * } all the shortcodes and which class to instantiate when they are called from
23
-     * WordPress's do_shortcode() function.
24
-     *
25
-     */
26
-    protected $shortcode_classes;
27
-
28
-    /**
29
-     * Run all the functions that needs to be hooked into WordPress
30
-     *
31
-     * @since 1.9.0
32
-     */
33
-    public function __construct(){
34
-
35
-        // create a list of shortcodes and the class that handles them
36
-        $this->setup_shortcode_class_map();
37
-
38
-        // setup all the shortcodes and load the listener into WP
39
-        $this->initialize_shortcodes();
40
-    }
41
-
42
-    /**
43
-     * Array of shortcode classes that should be instantiated when WordPress loads
44
-     * a Sensei specific shortcode.
45
-     * This list contains:
46
-     * $shortcode => $class_name
47
-     *
48
-     * $shortcode is the actual shortcode the user will add to the editor
49
-     * $class_name is the name of the class that will be instantiated to handle
50
-     * the rendering of the shortcode.
51
-     *
52
-     * NOTE: When adding a new shortcode here be sure to load your shortcodes class
53
-     * in class-sensei-autoloader class_file_map function
54
-     */
55
-    public function setup_shortcode_class_map(){
56
-
57
-        $this->shortcode_classes = array(
58
-            'sensei_featured_courses'    => 'Sensei_Shortcode_Featured_Courses',
59
-            'sensei_user_courses'        => 'Sensei_Shortcode_User_Courses',
60
-            'sensei_courses'             => 'Sensei_Shortcode_Courses',
61
-            'sensei_teachers'            => 'Sensei_Shortcode_Teachers',
62
-            'sensei_user_messages'       => 'Sensei_Shortcode_User_Messages',
63
-            'sensei_course_page'         => 'Sensei_Shortcode_Course_Page',
64
-            'sensei_lesson_page'         => 'Sensei_Shortcode_Lesson_Page',
65
-            'sensei_course_categories'   => 'Sensei_Shortcode_Course_Categories',
66
-            'sensei_unpurchased_courses' => 'Sensei_Shortcode_Unpurchased_Courses',
67
-        );
68
-
69
-        // legacy shortcode handling:
70
-        Sensei_Legacy_Shortcodes::init();
71
-
72
-    }
73
-
74
-    /**
75
-     * Add all shortcodes here
76
-     *
77
-     * This function adds shortcodes to WP that links to other functionality.
78
-     * @since 1.9.0
79
-     */
80
-    public function initialize_shortcodes(){
81
-
82
-        // shortcodes should only respond to front end calls
83
-        if( is_admin() || defined( 'DOING_AJAX' ) ){
84
-            return;
85
-        }
86
-
87
-        /**
88
-         * Tell WP to run this classes load_shortcode function for all the
89
-         * shortcodes registered here in.
90
-         *
91
-         * With this method we only load shortcode classes when we need them.
92
-         */
93
-        foreach( $this->shortcode_classes as $shortcode => $class ){
94
-
95
-            // all Sensei shortcodes are rendered by this loader class
96
-            // it acts as an interface between wp and the shortcodes registered
97
-            // above
98
-            add_shortcode( $shortcode, array( $this,'render_shortcode' ) );
99
-
100
-        }
101
-
102
-    }
103
-
104
-    /**
105
-     * Respond to WordPress do_shortcode calls
106
-     * for shortcodes registered in the initialize_shortcodes function.
107
-     *
108
-     * @since 1.8.0
109
-     *
110
-     * @param $attributes
111
-     * @param $content
112
-     * @param $code the shortcode that is being requested
113
-     *
114
-     * @return string
115
-     */
116
-    public function render_shortcode( $attributes='', $content='', $code ){
117
-
118
-        // only respond if the shortcode that we've added shortcode
119
-        // classes for.
120
-        if( ! isset( $this->shortcode_classes[ $code ] ) ){
121
-            return '';
122
-        }
123
-
124
-        // create an instances of the current requested shortcode
125
-        $shortcode_handling_class = $this->shortcode_classes[ $code ];
126
-        $shortcode = new $shortcode_handling_class( $attributes, $content, $code );
127
-
128
-        // we expect the sensei class instantiated to implement the Sensei_Shortcode interface
129
-        if( ! in_array( 'Sensei_Shortcode_Interface', class_implements( $shortcode) ) ){
130
-
131
-            $message = "The rendering class for your shortcode: $code, must implement the Sensei_Shortcode interface";
132
-            _doing_it_wrong('Sensei_Shortcode_Loader::render_shortcode',$message, '1.9.0' );
133
-
134
-        }
135
-
136
-        return $shortcode->render();
137
-
138
-    }
18
+	/**
19
+	 * @var array {
20
+	 *  type string $shortcode
21
+	 *  type Sensei_Shortcode
22
+	 * } all the shortcodes and which class to instantiate when they are called from
23
+	 * WordPress's do_shortcode() function.
24
+	 *
25
+	 */
26
+	protected $shortcode_classes;
27
+
28
+	/**
29
+	 * Run all the functions that needs to be hooked into WordPress
30
+	 *
31
+	 * @since 1.9.0
32
+	 */
33
+	public function __construct(){
34
+
35
+		// create a list of shortcodes and the class that handles them
36
+		$this->setup_shortcode_class_map();
37
+
38
+		// setup all the shortcodes and load the listener into WP
39
+		$this->initialize_shortcodes();
40
+	}
41
+
42
+	/**
43
+	 * Array of shortcode classes that should be instantiated when WordPress loads
44
+	 * a Sensei specific shortcode.
45
+	 * This list contains:
46
+	 * $shortcode => $class_name
47
+	 *
48
+	 * $shortcode is the actual shortcode the user will add to the editor
49
+	 * $class_name is the name of the class that will be instantiated to handle
50
+	 * the rendering of the shortcode.
51
+	 *
52
+	 * NOTE: When adding a new shortcode here be sure to load your shortcodes class
53
+	 * in class-sensei-autoloader class_file_map function
54
+	 */
55
+	public function setup_shortcode_class_map(){
56
+
57
+		$this->shortcode_classes = array(
58
+			'sensei_featured_courses'    => 'Sensei_Shortcode_Featured_Courses',
59
+			'sensei_user_courses'        => 'Sensei_Shortcode_User_Courses',
60
+			'sensei_courses'             => 'Sensei_Shortcode_Courses',
61
+			'sensei_teachers'            => 'Sensei_Shortcode_Teachers',
62
+			'sensei_user_messages'       => 'Sensei_Shortcode_User_Messages',
63
+			'sensei_course_page'         => 'Sensei_Shortcode_Course_Page',
64
+			'sensei_lesson_page'         => 'Sensei_Shortcode_Lesson_Page',
65
+			'sensei_course_categories'   => 'Sensei_Shortcode_Course_Categories',
66
+			'sensei_unpurchased_courses' => 'Sensei_Shortcode_Unpurchased_Courses',
67
+		);
68
+
69
+		// legacy shortcode handling:
70
+		Sensei_Legacy_Shortcodes::init();
71
+
72
+	}
73
+
74
+	/**
75
+	 * Add all shortcodes here
76
+	 *
77
+	 * This function adds shortcodes to WP that links to other functionality.
78
+	 * @since 1.9.0
79
+	 */
80
+	public function initialize_shortcodes(){
81
+
82
+		// shortcodes should only respond to front end calls
83
+		if( is_admin() || defined( 'DOING_AJAX' ) ){
84
+			return;
85
+		}
86
+
87
+		/**
88
+		 * Tell WP to run this classes load_shortcode function for all the
89
+		 * shortcodes registered here in.
90
+		 *
91
+		 * With this method we only load shortcode classes when we need them.
92
+		 */
93
+		foreach( $this->shortcode_classes as $shortcode => $class ){
94
+
95
+			// all Sensei shortcodes are rendered by this loader class
96
+			// it acts as an interface between wp and the shortcodes registered
97
+			// above
98
+			add_shortcode( $shortcode, array( $this,'render_shortcode' ) );
99
+
100
+		}
101
+
102
+	}
103
+
104
+	/**
105
+	 * Respond to WordPress do_shortcode calls
106
+	 * for shortcodes registered in the initialize_shortcodes function.
107
+	 *
108
+	 * @since 1.8.0
109
+	 *
110
+	 * @param $attributes
111
+	 * @param $content
112
+	 * @param $code the shortcode that is being requested
113
+	 *
114
+	 * @return string
115
+	 */
116
+	public function render_shortcode( $attributes='', $content='', $code ){
117
+
118
+		// only respond if the shortcode that we've added shortcode
119
+		// classes for.
120
+		if( ! isset( $this->shortcode_classes[ $code ] ) ){
121
+			return '';
122
+		}
123
+
124
+		// create an instances of the current requested shortcode
125
+		$shortcode_handling_class = $this->shortcode_classes[ $code ];
126
+		$shortcode = new $shortcode_handling_class( $attributes, $content, $code );
127
+
128
+		// we expect the sensei class instantiated to implement the Sensei_Shortcode interface
129
+		if( ! in_array( 'Sensei_Shortcode_Interface', class_implements( $shortcode) ) ){
130
+
131
+			$message = "The rendering class for your shortcode: $code, must implement the Sensei_Shortcode interface";
132
+			_doing_it_wrong('Sensei_Shortcode_Loader::render_shortcode',$message, '1.9.0' );
133
+
134
+		}
135
+
136
+		return $shortcode->render();
137
+
138
+	}
139 139
 
140 140
 } // end class Sensei_Shortcodes
141 141
 new Sensei_Shortcode_Loader();
142 142
\ No newline at end of file
Please login to merge, or discard this patch.
includes/shortcodes/class-sensei-shortcode-featured-courses.php 1 patch
Indentation   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -13,115 +13,115 @@
 block discarded – undo
13 13
  */
14 14
 class Sensei_Shortcode_Featured_Courses implements Sensei_Shortcode_Interface {
15 15
 
16
-    /**
17
-     * @var WP_Query to help setup the query needed by the render method.
18
-     */
19
-    protected $query;
20
-
21
-    /**
22
-     * @var string number of items to show on the current page
23
-     * Default: -1.
24
-     */
25
-    protected $number;
26
-
27
-    /**
28
-     * @var string ordery by course field
29
-     * Default: date
30
-     */
31
-    protected $orderby;
32
-
33
-    /**
34
-     * @var string ASC or DESC
35
-     * Default: 'DESC'
36
-     */
37
-    protected  $order;
38
-
39
-    /**
40
-     * @var string teacher id to limit the courses to
41
-     */
42
-    protected $teacher;
43
-
44
-    /**
45
-     * Setup the shortcode object
46
-     *
47
-     * @since 1.9.0
48
-     * @param array $attributes
49
-     * @param string $content
50
-     * @param string $shortcode the shortcode that was called for this instance
51
-     */
52
-    public function __construct( $attributes, $content, $shortcode ){
53
-
54
-        // set up all argument need for constructing the course query
55
-        $this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
56
-        $this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : '';
57
-        $this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date';
58
-
59
-        // set the default for menu_order to be ASC
60
-        if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
61
-
62
-            $this->order =  'ASC';
63
-
64
-        }else{
65
-
66
-            // for everything else use the value passed or the default DESC
67
-            $this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'DESC';
68
-
69
-        }
70
-
71
-        // setup the course query that will be used when rendering
72
-        $this->setup_course_query();
73
-    }
74
-
75
-    /**
76
-     * Sets up the object course query
77
-     * that will be used int he render method.
78
-     *
79
-     * @since 1.9.0
80
-     */
81
-    protected function setup_course_query(){
82
-
83
-        //for non numeric teacher arguments value query by author_name and not author
84
-        $teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name';
85
-
86
-        $query_args = array(
87
-            'post_type'        => 'course',
88
-            'post_status'      => 'publish',
89
-            'orderby'          => $this->orderby,
90
-            'order'            => $this->order,
91
-            'posts_per_page'   => $this->number,
92
-            $teacher_query_by  => $this->teacher,
93
-            'meta_value' 	   => 'featured',
94
-            'meta_key' 		   => '_course_featured',
95
-            'meta_compare' 	   => '=',
96
-            'suppress_filters' => 0,
97
-        );
98
-
99
-        $this->query = new WP_Query( $query_args );
100
-
101
-    }// end setup _course_query
102
-
103
-    /**
104
-     * Rendering the shortcode this class is responsible for.
105
-     */
106
-    public function render(){
107
-
108
-        global $wp_query;
109
-
110
-        // keep a reference to old query
111
-        $current_global_query = $wp_query;
112
-
113
-        // assign the query setup in $this-> setup_course_query
114
-        $wp_query = $this->query;
115
-
116
-        ob_start();
117
-        Sensei_Templates::get_template('loop-course.php');
118
-        $shortcode_output =  ob_get_clean();
119
-
120
-        //restore old query
121
-        $wp_query = $current_global_query;
122
-
123
-        return $shortcode_output;
124
-
125
-    }// end render
16
+	/**
17
+	 * @var WP_Query to help setup the query needed by the render method.
18
+	 */
19
+	protected $query;
20
+
21
+	/**
22
+	 * @var string number of items to show on the current page
23
+	 * Default: -1.
24
+	 */
25
+	protected $number;
26
+
27
+	/**
28
+	 * @var string ordery by course field
29
+	 * Default: date
30
+	 */
31
+	protected $orderby;
32
+
33
+	/**
34
+	 * @var string ASC or DESC
35
+	 * Default: 'DESC'
36
+	 */
37
+	protected  $order;
38
+
39
+	/**
40
+	 * @var string teacher id to limit the courses to
41
+	 */
42
+	protected $teacher;
43
+
44
+	/**
45
+	 * Setup the shortcode object
46
+	 *
47
+	 * @since 1.9.0
48
+	 * @param array $attributes
49
+	 * @param string $content
50
+	 * @param string $shortcode the shortcode that was called for this instance
51
+	 */
52
+	public function __construct( $attributes, $content, $shortcode ){
53
+
54
+		// set up all argument need for constructing the course query
55
+		$this->number = isset( $attributes['number'] ) ? $attributes['number'] : '10';
56
+		$this->teacher = isset( $attributes['teacher'] ) ? $attributes['teacher'] : '';
57
+		$this->orderby = isset( $attributes['orderby'] ) ? $attributes['orderby'] : 'date';
58
+
59
+		// set the default for menu_order to be ASC
60
+		if( 'menu_order' == $this->orderby && !isset( $attributes['order']  ) ){
61
+
62
+			$this->order =  'ASC';
63
+
64
+		}else{
65
+
66
+			// for everything else use the value passed or the default DESC
67
+			$this->order = isset( $attributes['order']  ) ? $attributes['order'] : 'DESC';
68
+
69
+		}
70
+
71
+		// setup the course query that will be used when rendering
72
+		$this->setup_course_query();
73
+	}
74
+
75
+	/**
76
+	 * Sets up the object course query
77
+	 * that will be used int he render method.
78
+	 *
79
+	 * @since 1.9.0
80
+	 */
81
+	protected function setup_course_query(){
82
+
83
+		//for non numeric teacher arguments value query by author_name and not author
84
+		$teacher_query_by = is_numeric( $this->teacher )? 'author':'author_name';
85
+
86
+		$query_args = array(
87
+			'post_type'        => 'course',
88
+			'post_status'      => 'publish',
89
+			'orderby'          => $this->orderby,
90
+			'order'            => $this->order,
91
+			'posts_per_page'   => $this->number,
92
+			$teacher_query_by  => $this->teacher,
93
+			'meta_value' 	   => 'featured',
94
+			'meta_key' 		   => '_course_featured',
95
+			'meta_compare' 	   => '=',
96
+			'suppress_filters' => 0,
97
+		);
98
+
99
+		$this->query = new WP_Query( $query_args );
100
+
101
+	}// end setup _course_query
102
+
103
+	/**
104
+	 * Rendering the shortcode this class is responsible for.
105
+	 */
106
+	public function render(){
107
+
108
+		global $wp_query;
109
+
110
+		// keep a reference to old query
111
+		$current_global_query = $wp_query;
112
+
113
+		// assign the query setup in $this-> setup_course_query
114
+		$wp_query = $this->query;
115
+
116
+		ob_start();
117
+		Sensei_Templates::get_template('loop-course.php');
118
+		$shortcode_output =  ob_get_clean();
119
+
120
+		//restore old query
121
+		$wp_query = $current_global_query;
122
+
123
+		return $shortcode_output;
124
+
125
+	}// end render
126 126
 
127 127
 }
128 128
\ No newline at end of file
Please login to merge, or discard this patch.
includes/shortcodes/interface-sensei-shortcode.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -12,19 +12,19 @@
 block discarded – undo
12 12
  */
13 13
 interface Sensei_Shortcode_Interface {
14 14
 
15
-    /**
16
-     * All constructors must implement and accept $attributes and $content as arguments
17
-     *
18
-     * @param array $attributes
19
-     * @param string $content
20
-     * @param string $shortcode
21
-     * @return mixed
22
-     */
23
-    public function __construct($attributes, $content, $shortcode);
15
+	/**
16
+	 * All constructors must implement and accept $attributes and $content as arguments
17
+	 *
18
+	 * @param array $attributes
19
+	 * @param string $content
20
+	 * @param string $shortcode
21
+	 * @return mixed
22
+	 */
23
+	public function __construct($attributes, $content, $shortcode);
24 24
 
25
-    /**
26
-     * @return string generated output
27
-     */
28
-    public function render();
25
+	/**
26
+	 * @return string generated output
27
+	 */
28
+	public function render();
29 29
 
30 30
 }// end interface
31 31
\ No newline at end of file
Please login to merge, or discard this patch.