function the_course_button($id = NULL)
{
    global $post;
    if (isset($id) && $id) {
        $course_id = $id;
    } else {
        $course_id = get_the_ID();
    }
    // Free Course
    $free_course = get_post_meta($course_id, 'vibe_course_free', true);
    if (!is_user_logged_in() && vibe_validate($free_course)) {
        echo apply_filters('wplms_course_non_loggedin_user', '<a href="' . get_permalink($course_id) . '?error=login" class="course_button button full">' . __('TAKE THIS COURSE', 'vibe') . '</a>');
        return;
    }
    $take_course_page_id = vibe_get_option('take_course_page');
    if (function_exists('icl_object_id')) {
        $take_course_page_id = icl_object_id($take_course_page_id, 'page', true);
    }
    $take_course_page = get_permalink($take_course_page_id);
    $user_id = get_current_user_id();
    do_action('wplms_the_course_button', $course_id, $user_id);
    $coursetaken = get_user_meta($user_id, $course_id, true);
    $auto_subscribe = 0;
    if (isset($free_course) && $free_course && $free_course != 'H' && is_user_logged_in() && (!isset($coursetaken) || !is_numeric($coursetaken))) {
        $auto_subscribe = 1;
    }
    $auto_subscribe = apply_filters('wplms_auto_subscribe', $auto_subscribe, $course_id);
    if ($auto_subscribe) {
        $duration = get_post_meta($course_id, 'vibe_duration', true);
        $course_duration_parameter = apply_filters('vibe_course_duration_parameter', 86400);
        $new_duration = time() + $course_duration_parameter * $duration;
        //parameter 86400
        $new_duration = apply_filters('wplms_free_course_check', $new_duration);
        update_user_meta($user_id, $course_id, $new_duration);
        bp_course_update_user_course_status($user_id, $course_id, 0);
        $group_id = get_post_meta($course_id, 'vibe_group', true);
        if (isset($group_id) && $group_id != '') {
            groups_join_group($group_id, $user_id);
        }
        $coursetaken = $new_duration;
    }
    if (isset($coursetaken) && $coursetaken && is_user_logged_in()) {
        // COURSE IS TAKEN & USER IS LOGGED IN
        if ($coursetaken > time()) {
            // COURSE ACTIVE
            $course_user = bp_course_get_user_course_status($user_id, $course_id);
            // Validates that a user has taken this course
            $new_course_user = get_user_meta($user_id, 'course_status' . $course_id, true);
            // Remove this line in 1.8.5
            if (isset($course_user) && is_numeric($course_user) || isset($free_course) && $free_course && $free_course != 'H' && is_user_logged_in()) {
                // COURSE PURCHASED SECONDARY VALIDATION
                echo '<form action="' . apply_filters('wplms_take_course_page', $take_course_page, $course_id) . '" method="post">';
                if (isset($new_course_user) && is_numeric($new_course_user) && $new_course_user) {
                    // For Older versions
                    switch ($course_user) {
                        case 1:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('START COURSE', 'vibe') . '">';
                            wp_nonce_field('start_course' . $user_id, 'start_course');
                            break;
                        case 2:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('CONTINUE COURSE', 'vibe') . '">';
                            wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            break;
                        case 3:
                            echo '<a href="#" class="full button">' . __('COURSE UNDER EVALUATION', 'vibe') . '</a>';
                            break;
                        case 4:
                            $finished_course_access = vibe_get_option('finished_course_access');
                            if (isset($finished_course_access) && $finished_course_access) {
                                echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('FINISHED COURSE', 'vibe') . '">';
                                wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            } else {
                                echo '<a href="#" class="full button">' . __('COURSE FINISHED', 'vibe') . '</a>';
                            }
                            break;
                        default:
                            $course_button_html = '<a class="course_button button">' . __('COURSE ENABLED', 'vibe') . '<span>' . __('CONTACT ADMIN TO ENABLE', 'vibe') . '</span></a>';
                            echo apply_filters('wplms_default_course_button', $course_button_html, $user_id, $course_id, $course_user);
                            break;
                    }
                } else {
                    switch ($course_user) {
                        case 0:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('START COURSE', 'vibe') . '">';
                            wp_nonce_field('start_course' . $user_id, 'start_course');
                            break;
                        case 1:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('CONTINUE COURSE', 'vibe') . '">';
                            wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            break;
                        case 2:
                            echo '<a href="#" class="full button">' . __('COURSE UNDER EVALUATION', 'vibe') . '</a>';
                            break;
                        default:
                            $finished_course_access = vibe_get_option('finished_course_access');
                            if (isset($finished_course_access) && $finished_course_access) {
                                echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('FINISHED COURSE', 'vibe') . '">';
                                wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            } else {
                                echo '<a href="#" class="full button">' . __('COURSE FINISHED', 'vibe') . '</a>';
                            }
                            break;
                    }
                }
                echo '<input type="hidden" name="course_id" value="' . $course_id . '" />';
                echo '</form>';
            } else {
                $pid = get_post_meta($course_id, 'vibe_product', true);
                // SOME ISSUE IN PROCESS BUT STILL DISPLAYING THIS FOR NO REASON.
                echo '<a href="' . get_permalink($pid) . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('COURSE ENABLED', 'vibe') . '<span>' . __('CONTACT ADMIN TO ENABLE', 'vibe') . '</span></a>';
            }
        } else {
            $pid = get_post_meta($course_id, 'vibe_product', true);
            $pid = apply_filters('wplms_course_product_id', $pid, $course_id, -1);
            // $id checks for Single Course page or Course page in the my courses section
            if (is_numeric($pid)) {
                $pid = get_permalink($pid);
            }
            echo '<a href="' . $pid . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('Course Expired', 'vibe') . '&nbsp;<span>' . __('Click to renew', 'vibe') . '</span></a>';
        }
    } else {
        $pid = get_post_meta($course_id, 'vibe_product', true);
        $pid = apply_filters('wplms_course_product_id', $pid, $course_id, 0);
        if (is_numeric($pid)) {
            $pid = get_permalink($pid);
            $check = vibe_get_option('direct_checkout');
            $check = intval($check);
            if (isset($check) && $check) {
                $pid .= '?redirect';
            }
        }
        $extra = '';
        if (isset($pid) && $pid) {
            echo '<a href="' . $pid . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('TAKE THIS COURSE', 'vibe') . apply_filters('wplms_course_button_extra', $extra, $course_id) . '</a>';
        } else {
            echo '<a href="' . apply_filters('wplms_private_course_button', '#', $course_id) . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . apply_filters('wplms_private_course_button_label', __('PRIVATE COURSE', 'vibe'), $course_id) . '</a>';
        }
    }
}
function bp_get_course_check_course_complete($args = NULL)
{
    // AUTO EVALUATION FOR COURSE
    global $post;
    $defaults = array('id' => $post->ID, 'user_id' => get_current_user_id());
    $r = wp_parse_args($args, $defaults);
    extract($r, EXTR_SKIP);
    $return = '<div class="course_finish">';
    $course_curriculum = bp_course_get_curriculum_units($id);
    //vibe_sanitize(get_post_meta($id,'vibe_course_curriculum',false));
    if (isset($course_curriculum) && count($course_curriculum)) {
        $flag = 0;
        foreach ($course_curriculum as $unit_id) {
            //if(is_numeric($unit_id)){
            $unittaken = get_user_meta($user_id, $unit_id, true);
            if (!isset($unittaken) || !$unittaken) {
                $flag = $unit_id;
                break;
            }
            //}
        }
        $flag = apply_filters('wplms_finish_course_check', $flag, $course_curriculum);
        if (!$flag) {
            $course_id = $id;
            $auto_eval = get_post_meta($id, 'vibe_course_auto_eval', true);
            if (vibe_validate($auto_eval)) {
                // AUTO EVALUATION
                $curriculum = bp_course_get_curriculum_units($id);
                //vibe_sanitize(get_post_meta($id,'vibe_course_curriculum',false));
                $total_marks = $student_marks = 0;
                foreach ($curriculum as $c) {
                    if (is_numeric($c)) {
                        if (get_post_type($c) == 'quiz') {
                            $k = get_post_meta($c, $user_id, true);
                            $student_marks += $k;
                            //Current user is the Student here
                            $questions = vibe_sanitize(get_post_meta($c, 'quiz_questions' . $user_id, false));
                            if (!isset($questions) || !is_array($questions)) {
                                $questions = vibe_sanitize(get_post_meta($c, 'vibe_quiz_questions', false));
                            }
                            $total_marks += array_sum($questions['marks']);
                        }
                    }
                }
                do_action('wplms_submit_course', $post->ID, $user_id);
                // Apply Filters on Auto Evaluation
                $student_marks = apply_filters('wplms_course_student_marks', $student_marks, $id, $user_id);
                $total_marks = apply_filters('wplms_course_maximum_marks', $total_marks, $id, $user_id);
                if (!$total_marks) {
                    $total_marks = $student_marks = 1;
                }
                // Avoid the Division by Zero Error
                $marks = round($student_marks * 100 / $total_marks);
                $return .= '<div class="message" class="updated"><p>' . __('COURSE EVALUATED ', 'vibe') . '</p></div>';
                $badge_per = get_post_meta($id, 'vibe_course_badge_percentage', true);
                $passing_cert = get_post_meta($id, 'vibe_course_certificate', true);
                // Certificate Enable
                $passing_per = get_post_meta($id, 'vibe_course_passing_percentage', true);
                // Certificate Passing Percentage
                //finish bit for student 1.8.4
                update_user_meta($user_id, 'course_status' . $id, 3);
                //end finish bit
                do_action('wplms_evaluate_course', $id, $marks, $user_id, 1);
                $badge_filter = 0;
                if (isset($badge_per) && $badge_per && $marks >= $badge_per) {
                    $badge_filter = 1;
                }
                $badge_filter = apply_filters('wplms_course_student_badge_check', $badge_filter, $course_id, $user_id, $marks, $badge_per);
                if ($badge_filter) {
                    $badges = array();
                    $badges = vibe_sanitize(get_user_meta($user_id, 'badges', false));
                    if (isset($badges) && is_array($badges)) {
                        $badges[] = $id;
                    } else {
                        $badges = array($id);
                    }
                    update_user_meta($user_id, 'badges', $badges);
                    $b = bp_get_course_badge($id);
                    $badge = wp_get_attachment_info($b);
                    $badge_url = wp_get_attachment_image_src($b);
                    if (isset($badge) && is_numeric($b)) {
                        $return .= '<div class="congrats_badge">' . __('Congratulations ! You\'ve earned the ', 'vibe') . ' <strong>' . get_post_meta($id, 'vibe_course_badge_title', true) . '</strong> ' . __('Badge', 'vibe') . '<a class="tip ajax-badge" data-course="' . get_the_title($id) . '" title="' . get_post_meta($id, 'vibe_course_badge_title', true) . '"><img src="' . $badge_url[0] . '" title="' . $badge['title'] . '"/></a></div>';
                    }
                    do_action('wplms_badge_earned', $id, $badges, $user_id, $badge_filter);
                }
                $passing_filter = 0;
                if (vibe_validate($passing_cert) && isset($passing_per) && $passing_per && $marks >= $passing_per) {
                    $passing_filter = 1;
                }
                $passing_filter = apply_filters('wplms_course_student_certificate_check', $passing_filter, $course_id, $user_id, $marks, $passing_per);
                if ($passing_filter) {
                    $pass = array();
                    $pass = vibe_sanitize(get_user_meta($user_id, 'certificates', false));
                    if (isset($pass) && is_array($pass)) {
                        $pass[] = $id;
                    } else {
                        $pass = array($id);
                    }
                    update_user_meta($user_id, 'certificates', $pass);
                    $return .= '<div class="congrats_certificate">' . __('Congratulations ! You\'ve successfully passed the course and earned the Course Completion Certificate !', 'vibe') . '<a href="' . bp_get_course_certificate('user_id=' . $user_id . '&course_id=' . $id) . '" class="ajax-certificate right"><span>' . __('View Certificate', 'vibe') . '</span></a></div>';
                    do_action('wplms_certificate_earned', $id, $pass, $user_id, $passing_filter);
                }
                update_post_meta($id, $user_id, $marks);
                $course_end_status = apply_filters('wplms_course_status', 4);
                update_user_meta($user_id, 'course_status' . $id, $course_end_status);
                //EXCEPTION
                $message = sprintf(__('You\'ve obtained %s in course %s ', 'vibe'), apply_filters('wplms_course_marks', $marks . '/100'), ' <a href="' . get_permalink($id) . '">' . get_the_title($id) . '</a>');
                $return .= '<div class="congrats_message">' . $message . '</div>';
            } else {
                $return .= '<div class="message" class="updated"><p>' . __('COURSE SUBMITTED FOR EVALUATION', 'vibe') . '</p></div>';
                bp_course_update_user_course_status($user_id, $id, 2);
                // 2 determines Course is Complete
                do_action('wplms_submit_course', $post->ID, $user_id);
            }
            // Show the Generic Course Submission
            $content = get_post_meta($id, 'vibe_course_message', true);
            $return .= apply_filters('the_content', $content);
            $return = apply_filters('wplms_course_finished', $return);
        } else {
            $type = get_post_type($flag);
            switch ($type) {
                case 'unit':
                    $type = __('UNIT', 'vibe');
                    break;
                case 'assignment':
                    $type = __('ASSIGNMENT', 'vibe');
                    break;
                case 'quiz':
                    $type = __('QUIZ', 'vibe');
                    break;
            }
            //Default for other customized options
            $message = __('PLEASE COMPLETE THE ', 'vibe') . $type . ' : ' . get_the_title($flag);
            $return .= '<div class="message"><p>' . apply_filters('wplms_unfinished_unit_quiz_message', $message, $flag) . '</p></div>';
        }
    } else {
        $retun .= __('COURSE CURRICULUM NOT SET', 'vibe');
    }
    $return .= '</div>';
    return $return;
}
Пример #3
0
function wplms_check_course_retake()
{
    if (!isset($_POST['security'])) {
        return;
    }
    $user_id = get_current_user_id();
    if (!wp_verify_nonce($_POST['security'], 'retake' . $user_id)) {
        echo '<p class="error">' . __('Security check failed !', 'vibe') . '</p>';
        return;
    }
    $course_id = get_the_ID();
    $status = bp_course_get_user_course_status($user_id, $course_id);
    if (isset($status) && is_numeric($status)) {
        // Necessary for continue course
        do_action('wplms_student_course_reset', $course_id, $user_id);
        bp_course_update_user_course_status($user_id, $course_id, 0);
        // New function
        $course_curriculum = vibe_sanitize(get_post_meta($course_id, 'vibe_course_curriculum', false));
        foreach ($course_curriculum as $c) {
            if (is_numeric($c)) {
                delete_user_meta($user_id, $c);
                delete_post_meta($c, $user_id);
                if (get_post_type($c) == 'quiz') {
                    $questions = vibe_sanitize(get_post_meta($c, 'quiz_questions' . $user_id, false));
                    if (!isset($questions) || !is_array($questions)) {
                        // Fallback for Older versions
                        $questions = vibe_sanitize(get_post_meta($c, 'vibe_quiz_questions', false));
                    } else {
                        delete_post_meta($c, 'quiz_questions' . $user_id);
                    }
                    // Re-capture new questions in quiz begining
                    if (isset($questions) && is_array($questions) && is_Array($questions['ques'])) {
                        foreach ($questions['ques'] as $question) {
                            global $wpdb;
                            if (isset($question) && $question != '' && is_numeric($question)) {
                                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->comments} SET comment_approved='trash' WHERE comment_post_ID=%d AND user_id=%d", $question, $user_id));
                            }
                        }
                    }
                }
            }
        }
        $user_badges = vibe_sanitize(get_user_meta($user_id, 'badges', false));
        $user_certifications = vibe_sanitize(get_user_meta($user_id, 'certificates', false));
        if (isset($user_badges) && is_Array($user_badges) && in_array($course_id, $user_badges)) {
            $key = array_search($course_id, $user_badges);
            unset($user_badges[$key]);
            $user_badges = array_values($user_badges);
            update_user_meta($user_id, 'badges', $user_badges);
        }
        if (isset($user_certifications) && is_Array($user_certifications) && in_array($course_id, $user_certifications)) {
            $key = array_search($course_id, $user_certifications);
            unset($user_certifications[$key]);
            $user_certifications = array_values($user_certifications);
            update_user_meta($user_id, 'certificates', $user_certifications);
        }
        /*==== End Fix ======*/
        bp_course_record_activity(array('action' => __('Student retake Course ', 'vibe'), 'content' => __('Course ', 'vibe') . get_the_title($course_id) . __(' retake by student ', 'vibe') . bp_core_get_userlink($user_id), 'type' => 'retake_course', 'primary_link' => get_permalink($course_id), 'item_id' => $course_id, 'secondary_item_id' => $user_id));
        echo "<script>jQuery(document).ready(function(\$){ \$.removeCookie('course_progress{$course_id}', { path: '/' });</script>";
    } else {
        echo '<p class="error">' . __('There was issue in retaking this course for the user. Please contact admin.', 'vibe') . '</p>';
    }
}
Пример #4
0
function nuthanhtoan()
{
    global $post;
    if (isset($id) && $id) {
        $course_id = $id;
    } else {
        $course_id = get_the_ID();
    }
    // Free Course
    $free_course = get_post_meta($course_id, 'vibe_course_free', true);
    if (!is_user_logged_in() && vibe_validate($free_course)) {
        echo apply_filters('wplms_course_non_loggedin_user', '<a href="#" class="unlogin course_button button full">' . __('TAKE THIS COURSE', 'vibe') . '</a>');
        return;
    }
    $take_course_page_id = vibe_get_option('take_course_page');
    if (function_exists('icl_object_id')) {
        $take_course_page_id = icl_object_id($take_course_page_id, 'page', true);
    }
    $take_course_page = get_permalink($take_course_page_id);
    $user_id = get_current_user_id();
    do_action('wplms_the_course_button', $course_id, $user_id);
    $coursetaken = get_user_meta($user_id, $course_id, true);
    if (isset($free_course) && $free_course && $free_course != 'H' && is_user_logged_in() && (!isset($coursetaken) || !is_numeric($coursetaken))) {
        $duration = get_post_meta($course_id, 'vibe_duration', true);
        $course_duration_parameter = apply_filters('vibe_course_duration_parameter', 86400);
        $new_duration = time() + $course_duration_parameter * $duration;
        //parameter 86400
        $new_duration = apply_filters('wplms_free_course_check', $new_duration);
        update_user_meta($user_id, $course_id, $new_duration);
        bp_course_update_user_course_status($user_id, $course_id, 0);
        $group_id = get_post_meta($course_id, 'vibe_group', true);
        if (isset($group_id) && $group_id != '') {
            groups_join_group($group_id, $user_id);
        }
        $coursetaken = $new_duration;
    }
    if (isset($coursetaken) && $coursetaken && is_user_logged_in()) {
        // COURSE IS TAKEN & USER IS LOGGED IN
        if ($coursetaken) {
            // COURSE ACTIVE
            $course_user = bp_course_get_user_course_status($user_id, $course_id);
            // Validates that a user has taken this course
            $new_course_user = get_user_meta($user_id, 'course_status' . $course_id, true);
            // Remove this line in 1.8.5
            if (isset($course_user) && is_numeric($course_user) || isset($free_course) && $free_course && $free_course != 'H' && is_user_logged_in()) {
                // COURSE PURCHASED SECONDARY VALIDATION
                echo '<form action="' . apply_filters('wplms_take_course_page', $take_course_page, $course_id) . '" method="post">';
                if (isset($new_course_user) && is_numeric($new_course_user) && $new_course_user) {
                    // For Older versions
                    switch ($course_user) {
                        case 1:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('START COURSE', 'vibe') . '">';
                            wp_nonce_field('start_course' . $user_id, 'start_course');
                            break;
                        case 2:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('HỌC TIẾP', 'vibe') . '">';
                            wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            break;
                        case 3:
                            echo '<a href="#" class="full button">' . __('COURSE UNDER EVALUATION', 'vibe') . '</a>';
                            break;
                        case 4:
                            $finished_course_access = vibe_get_option('finished_course_access');
                            if (isset($finished_course_access) && $finished_course_access) {
                                echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('HOÀN THÀNH', 'vibe') . '">';
                                wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            } else {
                                echo '<a href="#" class="full button">' . __('HOÀN THÀNH', 'vibe') . '</a>';
                            }
                            break;
                        default:
                            $course_button_html = '<a class="course_button button">' . __('COURSE ENABLED', 'vibe') . '<span>' . __('CONTACT ADMIN TO ENABLE', 'vibe') . '</span></a>';
                            echo apply_filters('wplms_default_course_button', $course_button_html, $user_id, $course_id, $course_user);
                            break;
                    }
                } else {
                    switch ($course_user) {
                        case 0:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('START COURSE', 'vibe') . '">';
                            wp_nonce_field('start_course' . $user_id, 'start_course');
                            break;
                        case 1:
                            echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('HỌC TIẾP', 'vibe') . '">';
                            wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            break;
                        case 2:
                            echo '<a href="#" class="full button">' . __('COURSE UNDER EVALUATION', 'vibe') . '</a>';
                            break;
                        default:
                            $finished_course_access = vibe_get_option('finished_course_access');
                            if (isset($finished_course_access) && $finished_course_access) {
                                echo '<input type="submit" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button" value="' . __('HOÀN THÀNH', 'vibe') . '">';
                                wp_nonce_field('continue_course' . $user_id, 'continue_course');
                            } else {
                                echo '<a href="#" class="full button">' . __('COURSE FINISHED', 'vibe') . '</a>';
                            }
                            break;
                    }
                }
                echo '<input type="hidden" name="course_id" value="' . $course_id . '" />';
                echo '</form>';
            } else {
                $pid = get_post_meta($course_id, 'vibe_product', true);
                // SOME ISSUE IN PROCESS BUT STILL DISPLAYING THIS FOR NO REASON.
                echo '<a href="' . get_permalink($pid) . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('COURSE ENABLED', 'vibe') . '<span>' . __('CONTACT ADMIN TO ENABLE', 'vibe') . '</span></a>';
            }
        } else {
            $pid = get_post_meta($course_id, 'vibe_product', true);
            $pid = apply_filters('wplms_course_product_id', $pid, $course_id, -1);
            // $id checks for Single Course page or Course page in the my courses section
            if (is_numeric($pid)) {
                $pid = get_permalink($pid);
            }
            echo '<a href="' . $pid . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('Course Expired', 'vibe') . '&nbsp;<span>' . __('Click to renew', 'vibe') . '</span></a>';
        }
    } else {
        $pid = get_post_meta($course_id, 'vibe_product', true);
        $pid = apply_filters('wplms_course_product_id', $pid, $course_id, 0);
        if (is_numeric($pid)) {
            $pid = get_permalink($pid);
            $check = vibe_get_option('direct_checkout');
            $check = intval($check);
            if (isset($check) && $check) {
                $pid .= '?redirect';
            }
        }
        $extra = '';
        if (isset($pid) && $pid) {
            if (is_user_logged_in()) {
                if (get_post_meta($course_id, 'vibe_coming_soon', true) == 'S') {
                    echo '<a href="#" class="full button hienthikhoahoccomingsoon">' . __('COMING SOON', 'vibe') . '</a></br>';
                    echo '<div class="khoahoccomingsoon anpopupthongtinkhoahoc">';
                    echo '<span>Khóa học đang trong thời gian hoàn thiện, mong các bạn thông cảm</span>';
                    echo '</br>';
                    echo '<span  class="button dongkhoahoccomingsoon">' . __('ĐÓNG', 'vibe') . '</span>';
                    echo '</div>';
                } else {
                    echo '<a href="#" class="full button hienxacnhandangkykhoahoc">' . __('TAKE THIS COURSE', 'vibe') . '</a></br>';
                }
                //echo '<a href="#" class="full button hienxacnhandangkykhoahoc">'.__('TAKE THIS COURSE','vibe').'</a></br>';
                echo '<div class="xacnhandangkykhoahoc anpopupthongtinkhoahoc">';
                echo '<span>Nhấn vào nút "đồng ý" để ghi danh khóa học : ' . get_the_title($course_id) . '</span>';
                echo '</br>';
                echo '<span>Giá tiền khóa học là: ' . bp_course_get_course_credits('course_id=' . $course_id) . '</span></br>';
                echo '<div class="sapxepnutdangkykhoahoc">';
                echo '<a href="' . get_home_url() . '/thanh-toan-khoa-hoc/?course_id=' . $course_id . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('Đồng ý', 'vibe') . apply_filters('wplms_course_button_extra', $extra, $course_id) . '</a>';
                echo '<span  class="full button huydangkykhoahoc">' . __('Hủy bỏ', 'vibe') . '</span>';
                echo '</div>';
                echo '<form action="' . apply_filters('wplms_take_course_page', $take_course_page, $course_id) . '" method="post" style="display: none" id="vaotranghockhoahoc">';
                wp_nonce_field('start_course' . $user_id, 'start_course');
                echo '<input type="hidden" name="course_id" value="' . $course_id . '" />';
                echo '</form>';
                echo '</div>';
            } else {
                //echo '<a href="#" class="unlogin '.((isset($id) && $id )?'':'course_button full ').'button">'.__('TAKE THIS COURSE','vibe').'</a>';
                if (get_post_meta($course_id, 'vibe_coming_soon', true) == 'S') {
                    echo '<a href="#" class="full button hienthikhoahoccomingsoon">' . __('COMING SOON', 'vibe') . '</a></br>';
                    echo '<div class="khoahoccomingsoon anpopupthongtinkhoahoc">';
                    echo '<span>Khóa học đang trong thời gian hoàn thiện, mong các bạn thông cảm</span>';
                    echo '</br>';
                    echo '<span  class="button dongkhoahoccomingsoon">' . __('ĐÓNG', 'vibe') . '</span>';
                    echo '</div>';
                } else {
                    echo '<a href="#" class="unlogin ' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . __('TAKE THIS COURSE', 'vibe') . '</a>';
                }
            }
        } else {
            echo '<a href="' . apply_filters('wplms_private_course_button', '#') . '" class="' . (isset($id) && $id ? '' : 'course_button full ') . 'button">' . apply_filters('wplms_private_course_button_label', __('PRIVATE COURSE', 'vibe')) . '</a>';
        }
    }
}
Пример #5
0
 function wplms_change_course_status()
 {
     $course_id = $_POST['course'];
     if (!isset($_POST['security']) || !wp_verify_nonce($_POST['security'], 'security' . $course_id)) {
         echo 'Security check failed !';
         die;
     }
     $members = json_decode(stripslashes($_POST['members']));
     $status_action = $_POST['status_action'];
     if (!isset($status_action) && !$status_action) {
         _e('Select Course Status', 'vibe');
         die;
     }
     $assigned = 0;
     if (count($members) > 0) {
         foreach ($members as $mkey => $member) {
             if (is_numeric($member) && get_post_type($course_id) == 'course') {
                 switch ($status_action) {
                     case 'start_course':
                         $status = 0;
                         break;
                     case 'continue_course':
                         $status = 1;
                         break;
                     case 'under_evaluation':
                         $status = 2;
                         break;
                     case 'finish_course':
                         $status = 3;
                         break;
                 }
                 $status = apply_filters('wplms_course_status', $status, $status_action);
                 if (is_numeric($status)) {
                     bp_course_update_user_course_status($member, $course_id, $status);
                     if ($status == 3 && isset($_POST['data']) && is_numeric($_POST['data'])) {
                         update_post_meta($course_id, $member, $_POST['data']);
                     }
                 }
                 $flag = 1;
                 $assigned++;
             } else {
                 $flag = 0;
                 break;
             }
         }
         if ($flag) {
             echo __('Course status changed for ', 'vibe') . $assigned . __(' members', 'vibe');
             do_action('wplms_bulk_action', 'change_course_status', $course_id, $members);
         } else {
             echo __('Could not assign action to members', 'vibe');
         }
     } else {
         echo __('Please select members', 'vibe');
     }
     die;
 }
Пример #6
0
 function wplms_before_start_course_status()
 {
     $user_id = get_current_user_id();
     if (isset($_POST['start_course']) && wp_verify_nonce($_POST['start_course'], 'start_course' . $user_id)) {
         $course_id = $_POST['course_id'];
         $coursetaken = 1;
         $cflag = 0;
         $precourse = get_post_meta($course_id, 'vibe_pre_course', true);
         if (!empty($precourse)) {
             if (is_numeric($precourse)) {
                 $preid = bp_course_get_user_course_status($user_id, $precourse);
                 if (!empty($preid) && $preid > 2) {
                     // COURSE STATUSES : Since version 1.8.4
                     // 1 : START COURSE
                     // 2 : CONTINUE COURSE
                     // 3 : FINISH COURSE : COURSE UNDER EVALUATION
                     // 4 : COURSE EVALUATED
                     $cflag = 1;
                 }
             } else {
                 if (is_array($precourse)) {
                     foreach ($precourse as $pc) {
                         $preid = bp_course_get_user_course_status($user_id, $pc);
                         if (!empty($preid) && $preid > 2) {
                             $cflag = 1;
                         } else {
                             //Break from loop
                             break;
                         }
                     }
                 }
             }
         } else {
             $cflag = 1;
         }
         if ($cflag) {
             $course_duration_parameter = apply_filters('vibe_course_duration_parameter', 86400, $course_id);
             $expire = time() + $course_duration_parameter;
             // One Unit logged in Limit for the course
             setcookie('course', $course_id, $expire, '/');
             bp_course_update_user_course_status($user_id, $course_id, 1);
             //Since version 1.8.4
             do_action('wplms_start_course', $course_id, $user_id);
         } else {
             header('Location: ' . get_permalink($course_id) . '?error=precourse');
         }
     } else {
         if (isset($_POST['continue_course']) && wp_verify_nonce($_POST['continue_course'], 'continue_course' . $user_id)) {
             $course_id = $_POST['course_id'];
             $coursetaken = get_user_meta($user_id, $course_id, true);
             setcookie('course', $course_id, $expire, '/');
         } else {
             if (isset($_COOKIE['course'])) {
                 $course_id = $_COOKIE['course'];
                 $coursetaken = 1;
             } else {
                 wp_die(__('This Course can not be taken. Contact Administrator.', 'vibe'), 'Contact Admin', array(500, true));
             }
         }
     }
 }