コード例 #1
0
    /**
     * Load the desired component, if a method is available for it.
     * @param  string $component The component to potentially be loaded.
     *
     * @since  1.0.0
     * @return void
     */
    protected function load_component($instance)
    {
        global $current_user;
        $course_ids = array();
        if ('activecourses' == esc_attr($instance['component'])) {
            $courses = Sensei_Utils::sensei_check_for_activity(array('user_id' => $current_user->ID, 'type' => 'sensei_course_status', 'status' => 'in-progress'), true);
            // Need to always return an array, even with only 1 item
            if (!is_array($courses)) {
                $courses = array($courses);
            }
            foreach ($courses as $course) {
                $course_ids[] = $course->comment_post_ID;
            }
        } elseif ('completedcourses' == esc_attr($instance['component'])) {
            $courses = Sensei_Utils::sensei_check_for_activity(array('user_id' => $current_user->ID, 'type' => 'sensei_course_status', 'status' => 'complete'), true);
            // Need to always return an array, even with only 1 item
            if (!is_array($courses)) {
                $courses = array($courses);
            }
            foreach ($courses as $course) {
                $course_ids[] = $course->comment_post_ID;
            }
        }
        // End If Statement
        $posts_array = array();
        // course_query() is buggy, it doesn't honour the 1st arg if includes are provided, so instead slice the includes
        if (!empty($instance['limit']) && intval($instance['limit']) >= 1 && intval($instance['limit']) < count($course_ids)) {
            $course_ids = array_slice($course_ids, 0, intval($instance['limit']));
            // This does mean the order by is effectively ignored
        }
        if (!empty($course_ids)) {
            $posts_array = Sensei()->course->course_query(intval($instance['limit']), esc_attr($instance['component']), $course_ids);
        } else {
            if ('activecourses' == esc_attr($instance['component']) || 'completedcourses' == esc_attr($instance['component'])) {
                $posts_array = array();
            } else {
                $course_args = array('post_type' => 'course', 'orderby' => 'date', 'order' => 'DESC', 'post_status' => 'publish', 'posts_per_page' => $instance['limit']);
                $posts_array = get_posts($course_args);
            }
        }
        // End If Statement
        if (count($posts_array) > 0) {
            ?>
			<ul>
			<?php 
            foreach ($posts_array as $post_item) {
                $post_id = absint($post_item->ID);
                $post_title = $post_item->post_title;
                $user_info = get_userdata(absint($post_item->post_author));
                $author_link = get_author_posts_url(absint($post_item->post_author));
                $author_display_name = $user_info->display_name;
                $author_id = $post_item->post_author;
                ?>
		    	<li class="fix">
		    		<?php 
                do_action('sensei_course_image', $post_id);
                ?>
		    		<a href="<?php 
                echo esc_url(get_permalink($post_id));
                ?>
" title="<?php 
                echo esc_attr($post_title);
                ?>
"><?php 
                echo $post_title;
                ?>
</a>
		    		<br />
		    		<?php 
                if (isset(Sensei()->settings->settings['course_author']) && Sensei()->settings->settings['course_author']) {
                    ?>
    					<span class="course-author"><?php 
                    _e('by ', 'woothemes-sensei');
                    ?>
<a href="<?php 
                    echo esc_url($author_link);
                    ?>
" title="<?php 
                    echo esc_attr($author_display_name);
                    ?>
"><?php 
                    echo esc_html($author_display_name);
                    ?>
</a></span>
    					<br />
    				<?php 
                }
                // End If Statement
                ?>
    				<span class="course-lesson-count"><?php 
                echo Sensei()->course->course_lesson_count($post_id) . '&nbsp;' . __('Lessons', 'woothemes-sensei');
                ?>
</span>
    				<br />
    				<?php 
                sensei_simple_course_price($post_id);
                ?>
		    	</li>
		    <?php 
            }
            // End For Loop
            ?>
		    <?php 
            if ('activecourses' == esc_attr($instance['component']) || 'completedcourses' == esc_attr($instance['component'])) {
                $my_account_page_id = intval(Sensei()->settings->settings['my_course_page']);
                echo '<li class="my-account fix"><a href="' . esc_url(get_permalink($my_account_page_id)) . '">' . __('My Courses', 'woothemes-sensei') . ' <span class="meta-nav"></span></a></li>';
            }
            // End If Statement
            ?>
		</ul>
		<?php 
        } else {
            // No posts returned. This means the user either has no active or no completed courses.
            if (isset($instance['component'])) {
                if ('featuredcourses' == $instance['component']) {
                    _e('You have no featured courses.', 'woothemes-sensei');
                } elseif ('activecourses' == $instance['component']) {
                    _e('You have no active courses.', 'woothemes-sensei');
                } elseif ('completedcourses' == $instance['component']) {
                    _e('You have no completed courses.', 'woothemes-sensei');
                } else {
                    _e('You have no courses.', 'woothemes-sensei');
                }
            }
            // end if compoenetn status instance
        }
        // End If Statement
    }
コード例 #2
0
    /**
     * Load the output.
     * @param  array $instance.
     * @since  1.1.0
     * @return void
     */
    protected function load_component($instance)
    {
        global $woothemes_sensei;
        $posts_array = array();
        $post_args = array('post_type' => 'course', 'numberposts' => intval($instance['limit']), 'orderby' => 'menu_order date', 'order' => 'ASC', 'post_status' => 'publish', 'suppress_filters' => 0);
        $post_args['tax_query'] = array(array('taxonomy' => 'course-category', 'field' => 'id', 'terms' => intval($instance['course_category'])));
        $posts_array = get_posts($post_args);
        if (count($posts_array) > 0) {
            ?>
			<ul>
			<?php 
            foreach ($posts_array as $post_item) {
                $post_id = absint($post_item->ID);
                $post_title = $post_item->post_title;
                $user_info = get_userdata(absint($post_item->post_author));
                $author_link = get_author_posts_url(absint($post_item->post_author));
                $author_display_name = $user_info->display_name;
                $author_id = $post_item->post_author;
                ?>
		    	<li class="fix">
		    		<?php 
                do_action('sensei_course_image', $post_id);
                ?>
		    		<a href="<?php 
                echo esc_url(get_permalink($post_id));
                ?>
" title="<?php 
                echo esc_attr($post_title);
                ?>
"><?php 
                echo $post_title;
                ?>
</a>
		    		<br />
		    		<?php 
                if (isset($woothemes_sensei->settings->settings['course_author']) && $woothemes_sensei->settings->settings['course_author']) {
                    ?>
    					<span class="course-author"><?php 
                    _e('by ', 'woothemes-sensei');
                    ?>
<a href="<?php 
                    echo esc_url($author_link);
                    ?>
" title="<?php 
                    echo esc_attr($author_display_name);
                    ?>
"><?php 
                    echo esc_html($author_display_name);
                    ?>
</a></span>
    					<br />
    				<?php 
                }
                // End If Statement
                ?>
    				<span class="course-lesson-count"><?php 
                echo $woothemes_sensei->post_types->course->course_lesson_count($post_id) . '&nbsp;' . apply_filters('sensei_lessons_text', __('Lessons', 'woothemes-sensei'));
                ?>
</span>
    				<br />
    				<?php 
                sensei_simple_course_price($post_id);
                ?>
		    	</li>
		    <?php 
            }
            // End For Loop
            ?>
			</ul>
		<?php 
        }
        // End If Statement
    }
    public function sensei_course_archive_meta()
    {
        global $woothemes_sensei, $post;
        // Meta data
        $post_id = get_the_ID();
        $post_title = get_the_title();
        $author_display_name = get_the_author();
        $author_id = get_the_author_meta('ID');
        $category_output = get_the_term_list($post_id, 'course-category', '', ', ', '');
        $free_lesson_count = intval($woothemes_sensei->post_types->course->course_lesson_preview_count($post_id));
        ?>
<section class="entry">
        	<p class="sensei-course-meta">
           	<?php 
        if (isset($woothemes_sensei->settings->settings['course_author']) && $woothemes_sensei->settings->settings['course_author']) {
            ?>
		   	<span class="course-author"><?php 
            _e('by ', 'woothemes-sensei');
            the_author_link();
            ?>
</span>
		   	<?php 
        }
        // End If Statement
        ?>
		   	<span class="course-lesson-count"><?php 
        echo $woothemes_sensei->post_types->course->course_lesson_count($post_id) . '&nbsp;' . apply_filters('sensei_lessons_text', __('Lessons', 'woothemes-sensei'));
        ?>
</span>
		   	<?php 
        if ('' != $category_output) {
            ?>
		   	<span class="course-category"><?php 
            echo sprintf(__('in %s', 'woothemes-sensei'), $category_output);
            ?>
</span>
		   	<?php 
        }
        // End If Statement
        ?>
		   	<?php 
        sensei_simple_course_price($post_id);
        ?>
        	</p>
        	<p class="course-excerpt"><?php 
        echo apply_filters('get_the_excerpt', $post->post_excerpt);
        ?>
</p>
        	<?php 
        if (0 < $free_lesson_count) {
            $free_lessons = sprintf(__('You can access %d of this course\'s lessons for free', 'woothemes-sensei'), $free_lesson_count);
            ?>
                <p class="sensei-free-lessons"><a href="<?php 
            echo get_permalink($post_id);
            ?>
"><?php 
            _e('Preview this course', 'woothemes-sensei');
            ?>
</a> - <?php 
            echo $free_lessons;
            ?>
</p>
            <?php 
        }
        ?>
		</section><?php 
    }
コード例 #4
0
    /**
     * Print a single course markup
     *
     * @param $course_id
     */
    public static function the_course($course_id)
    {
        // Get meta data
        $course = get_post($course_id);
        $user_info = get_userdata(absint($course->post_author));
        $author_link = get_author_posts_url(absint($course->post_author));
        $author_display_name = $user_info->display_name;
        $author_id = $course->post_author;
        $category_output = get_the_term_list($course_id, 'course-category', '', ', ', '');
        $preview_lesson_count = intval(Sensei()->course->course_lesson_preview_count($course_id));
        $is_user_taking_course = Sensei_Utils::user_started_course($course_id, get_current_user_id());
        ?>

        <article class="<?php 
        echo esc_attr(join(' ', get_post_class(array('course', 'post'), $course_id)));
        ?>
">
            <?php 
        // so that legacy shortcodes work with the party plugins that wants to hook in
        do_action('sensei_course_content_before', $course->ID);
        ?>
            <div class="course-content">

                <?php 
        Sensei()->course->course_image($course_id);
        ?>

                <header>

                    <h2><a href="<?php 
        echo get_permalink($course_id);
        ?>
" title="<?php 
        echo $course->post_title;
        ?>
"><?php 
        echo $course->post_title;
        ?>
</a></h2>

                </header>

                <section class="entry">

                    <p class="sensei-course-meta">

                        <?php 
        if (isset(Sensei()->settings->settings['course_author']) && Sensei()->settings->settings['course_author']) {
            ?>
                            <span class="course-author"><?php 
            _e('by ', 'woothemes-sensei');
            ?>
<a href="<?php 
            echo $author_link;
            ?>
" title="<?php 
            echo esc_attr($author_display_name);
            ?>
"><?php 
            echo esc_html($author_display_name);
            ?>
</a></span>
                        <?php 
        }
        // End If Statement
        ?>

                        <span class="course-lesson-count">
                                    <?php 
        echo Sensei()->course->course_lesson_count($course_id) . '&nbsp;' . __('Lessons', 'woothemes-sensei');
        ?>
                                </span>

                        <?php 
        if ('' != $category_output) {
            ?>
                            <span class="course-category"><?php 
            echo sprintf(__('in %s', 'woothemes-sensei'), $category_output);
            ?>
</span>
                        <?php 
        }
        // End If Statement
        ?>

                        <?php 
        sensei_simple_course_price($course_id);
        ?>

                    </p>

                    <p class="course-excerpt"><?php 
        echo $course->post_excerpt;
        ?>

                    </p>

                    <?php 
        if (0 < $preview_lesson_count && !$is_user_taking_course) {
            $preview_lessons = sprintf(__('(%d preview lessons)', 'woothemes-sensei'), $preview_lesson_count);
            ?>
                        <p class="sensei-free-lessons">
                            <a href="<?php 
            echo get_permalink($course_id);
            ?>
"><?php 
            _e('Preview this course', 'woothemes-sensei');
            ?>
                            </a> - <?php 
            echo $preview_lessons;
            ?>
                        </p>
                    <?php 
        }
        ?>

                </section>

            </div>
            <?php 
        // so that legacy shortcodes work with thir party plugins that wants to hook in
        do_action('sensei_course_content_after', $course->ID);
        ?>

        </article>

        <?php 
    }
コード例 #5
0
    /**
     * Add course mata to the course meta hook
     *
     * @since 1.9.0
     * @param WP_Post $course
     */
    public function the_course_meta($course)
    {
        echo '<p class="sensei-course-meta">';
        $category_output = get_the_term_list($course->ID, 'course-category', '', ', ', '');
        $author_display_name = get_the_author_meta('display_name', $course->post_author);
        if (isset(Sensei()->settings->settings['course_author']) && Sensei()->settings->settings['course_author']) {
            ?>

            <span class="course-author"><?php 
            _e('by ', 'woothemes-sensei');
            ?>

                <a href="<?php 
            esc_attr_e(get_author_posts_url($course->post_author));
            ?>
" title="<?php 
            esc_attr_e($author_display_name);
            ?>
"><?php 
            esc_attr_e($author_display_name);
            ?>
</a>

            </span>

        <?php 
        }
        // End If Statement
        ?>

        <span class="course-lesson-count"><?php 
        echo Sensei()->course->course_lesson_count($course->ID) . '&nbsp;' . apply_filters('sensei_lessons_text', __('Lessons', 'woothemes-sensei'));
        ?>
</span>

       <?php 
        if ('' != $category_output) {
            ?>

            <span class="course-category"><?php 
            echo sprintf(__('in %s', 'woothemes-sensei'), $category_output);
            ?>
</span>

        <?php 
        }
        // End If Statement
        // number of completed lessons
        if (is_user_logged_in()) {
            $completed = count($this->get_completed_lesson_ids($course->ID, get_current_user_id()));
            $lesson_count = count($this->course_lessons($course->ID));
            echo '<span class="course-lesson-progress">' . sprintf(__('%1$d of %2$d lessons completed', 'woothemes-sensei'), $completed, $lesson_count) . '</span>';
        }
        sensei_simple_course_price($course->ID);
        echo '</p>';
    }
コード例 #6
0
ファイル: loop-course.php プロジェクト: RiaanKnoetze/sensei
            echo $woothemes_sensei->post_types->course->course_lesson_count($post_id) . '&nbsp;' . apply_filters('sensei_lessons_text', __('Lessons', 'woothemes-sensei'));
            ?>
</span>
    				    <?php 
            if ('' != $category_output) {
                ?>
                        <span class="course-category"><?php 
                echo sprintf(__('in %s', 'woothemes-sensei'), $category_output);
                ?>
</span>
                        <?php 
            }
            // End If Statement
            ?>
                        <?php 
            sensei_simple_course_price($post_id);
            ?>
                    </p>

                    <p class="course-excerpt"><?php 
            echo sensei_get_excerpt($post);
            ?>
</p>
                    <?php 
            if (0 < $preview_lesson_count && !$is_user_taking_course) {
                $preview_lessons = sprintf(__('(%d preview lessons)', 'woothemes-sensei'), $preview_lesson_count);
                ?>
                            <p class="sensei-free-lessons"><a href="<?php 
                echo get_permalink($post_id);
                ?>
"><?php