/** * Rendering the shortcode this class is responsible for. * * @return string $content */ public function render() { global $wp_query; if (!is_user_logged_in()) { $anchor_before = '<a href="' . esc_url(sensei_user_login_url()) . '" >'; $anchor_after = '</a>'; $notice = sprintf(__('You must be logged in to view the non-purchased courses. Click here to %slogin%s.'), $anchor_before, $anchor_after); Sensei()->notices->add_notice($notice, 'info'); Sensei()->notices->print_notices(); return ''; } // keep a reference to old query $current_global_query = $wp_query; // assign the query setup in $this-> setup_course_query $wp_query = $this->query; ob_start(); Sensei()->notices->print_notices(); Sensei_Templates::get_template('loop-course.php'); $shortcode_output = ob_get_clean(); //restore old query $wp_query = $current_global_query; return $shortcode_output; }
/** * Output the course actions like start taking course, register, add to cart etc. * * @since 1.9.0 */ public static function the_course_enrolment_actions() { global $post; if ('course' != $post->post_type) { return; } ?> <section class="course-meta course-enrolment"> <?php global $post, $current_user; $is_user_taking_course = Sensei_Utils::user_started_course($post->ID, $current_user->ID); if (is_user_logged_in() && !$is_user_taking_course) { // Get the product ID $wc_product = wc_get_product(get_post_meta($post->ID, '_course_woocommerce_product', true)); // Check for woocommerce if (Sensei_WC::is_woocommerce_active() && isset($wc_product->price)) { Sensei_WC::the_add_to_cart_button_html($post->ID); } else { sensei_start_course_form($post->ID); } // End If Statement } elseif (is_user_logged_in()) { // Check if course is completed $user_course_status = Sensei_Utils::user_course_status($post->ID, $current_user->ID); $completed_course = Sensei_Utils::user_completed_course($user_course_status); // Success message if ($completed_course) { ?> <div class="status completed"><?php _e('Completed', 'woothemes-sensei'); ?> </div> <?php $has_quizzes = Sensei()->course->course_quizzes($post->ID, true); if (has_filter('sensei_results_links') || $has_quizzes) { ?> <p class="sensei-results-links"> <?php $results_link = ''; if ($has_quizzes) { $results_link = '<a class="view-results" href="' . Sensei()->course_results->get_permalink($post->ID) . '">' . __('View results', 'woothemes-sensei') . '</a>'; } /** * Filter documented in Sensei_Course::the_course_action_buttons */ $results_link = apply_filters('sensei_results_links', $results_link, $post->ID); echo $results_link; ?> </p> <?php } ?> <?php } else { ?> <div class="status in-progress"><?php echo __('In Progress', 'woothemes-sensei'); ?> </div> <?php } } else { // Get the product ID $wc_product = wc_get_product(get_post_meta($post->ID, '_course_woocommerce_product', true)); // Check for woocommerce if (Sensei_WC::is_woocommerce_active() && isset($wc_product->price)) { Sensei_WC::the_add_to_cart_button_html($post->ID); } else { if (get_option('users_can_register')) { // set the permissions message $anchor_before = '<a href="' . esc_url(sensei_user_login_url()) . '" >'; $anchor_after = '</a>'; $notice = sprintf(__('or log in to view this courses. Click here to %slogin%s.'), $anchor_before, $anchor_after); Sensei()->permissions_message['message'] = $notice; $my_courses_page_id = ''; /** * Filter to force Sensei to output the default WordPress user * registration link. * * @since 1.9.0 * @param bool $wp_register_link default false */ $wp_register_link = apply_filters('sensei_use_wp_register_link', false); $settings = Sensei()->settings->get_settings(); if (isset($settings['my_course_page']) && 0 < intval($settings['my_course_page'])) { $my_courses_page_id = $settings['my_course_page']; } // If a My Courses page was set in Settings, and 'sensei_use_wp_register_link' // is false, link to My Courses. If not, link to default WordPress registration page. if (!empty($my_courses_page_id) && $my_courses_page_id && !$wp_register_link) { $my_courses_url = get_permalink($my_courses_page_id); $register_link = '<a href="' . $my_courses_url . '">' . __('Register', 'woothemes-sensei') . '</a>'; echo '<div class="status register">' . $register_link . '</div>'; } else { wp_register('<div class="status register">', '</div>'); } } // end if user can register } // End If Statement } // End If Statement ?> </section><?php }