Exemplo n.º 1
0
 static function my_courses($simplified = false)
 {
     global $wpdb, $user_ID, $user_email;
     $currency = get_option('namaste_currency');
     $is_manager = current_user_can('namaste_manage');
     $_course = new NamasteLMSCourseModel();
     // stripe integration goes right on this page
     $accept_stripe = get_option('namaste_accept_stripe');
     $accept_paypal = get_option('namaste_accept_paypal');
     $accept_other_payment_methods = get_option('namaste_accept_other_payment_methods');
     if ($accept_stripe) {
         $stripe = NamasteStripe::load();
     }
     if (!empty($_POST['stripe_pay'])) {
         NamasteStripe::pay($currency);
         namaste_redirect('admin.php?page=namaste_my_courses');
     }
     if (!empty($_POST['enroll'])) {
         $mesage = self::enroll($is_manager);
     }
     // unenroll?
     if (!empty($_GET['unenroll'])) {
         NamasteLMSStudentModel::cleanup($_GET['unenroll'], $user_ID);
         namaste_redirect("admin.php?page=namaste_my_courses");
     }
     // filters from other plugins like Namaste! PRO
     $filter_sql = '';
     $filter_sql = apply_filters('namaste-course-select-sql', $filter_sql, $user_ID);
     // select all courses join to student courses so we can have status.
     $courses = $wpdb->get_results($wpdb->prepare("SELECT tSC.*, \n\t\t\ttC.post_title as post_title, tC.ID as post_id, tC.post_excerpt as post_excerpt\n\t\t\t FROM {$wpdb->posts} tC LEFT JOIN " . NAMASTE_STUDENT_COURSES . " tSC ON tC.ID = tSC.course_id\n\t\t\t AND tSC.user_id = %d WHERE tC.post_status = 'publish'\n\t\t\t AND tC.post_type='namaste_course' {$filter_sql} ORDER BY tC.post_title", $user_ID));
     // external reorder?
     $courses = apply_filters('namaste-reorder-courses', $courses);
     if (!empty($currency) and !$is_manager) {
         foreach ($courses as $cnt => $course) {
             $courses[$cnt]->fee = get_post_meta($course->post_id, 'namaste_fee', true);
         }
     }
     $_course->currency = $currency;
     $_course->accept_other_payment_methods = $accept_other_payment_methods;
     $_course->accept_paypal = $accept_paypal;
     $_course->accept_stripe = $accept_stripe;
     $_course->stripe = @$stripe;
     wp_enqueue_script('thickbox', null, array('jquery'));
     wp_enqueue_style('thickbox.css', '/' . WPINC . '/js/thickbox/thickbox.css', null, '1.0');
     if (@file_exists(get_stylesheet_directory() . '/namaste/my_courses.php')) {
         require get_stylesheet_directory() . '/namaste/my_courses.php';
     } else {
         require NAMASTE_PATH . "/views/my_courses.php";
     }
 }
Exemplo n.º 2
0
 static function enroll($atts)
 {
     global $wpdb, $user_ID, $user_email, $post;
     if (!is_user_logged_in()) {
         return sprintf(__('You need to be <a href="%s">logged in</a> to enroll in this course', 'namaste'), wp_login_url(get_permalink($post->ID)));
     }
     // passed course id?
     if (!empty($atts['course_id'])) {
         $post = get_post($atts['course_id']);
     }
     $enrolled = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NAMASTE_STUDENT_COURSES . " WHERE user_id = %d AND course_id = %d", $user_ID, $post->ID));
     if (empty($enrolled->id)) {
         $currency = get_option('namaste_currency');
         $is_manager = current_user_can('namaste_manage');
         $_course = new NamasteLMSCourseModel();
         // stripe integration goes right on this page
         $accept_stripe = get_option('namaste_accept_stripe');
         $accept_paypal = get_option('namaste_accept_paypal');
         $accept_other_payment_methods = get_option('namaste_accept_other_payment_methods');
         if ($accept_stripe) {
             $stripe = NamasteStripe::load();
         } else {
             $stripe = '';
         }
         if (!empty($_POST['stripe_pay'])) {
             NamasteStripe::pay($currency);
             namaste_redirect(get_permalink($post->ID));
         }
         if (!empty($_POST['enroll'])) {
             // in case we use several shortcodes on the page make sure only the right course action is executed
             if (empty($atts['course_id']) or $atts['course_id'] == $_POST['course_id']) {
                 $mesage = NamasteLMSCoursesController::enroll($is_manager);
                 namaste_redirect(get_permalink($post->ID));
             }
         }
         $_course->currency = $currency;
         $_course->accept_other_payment_methods = $accept_other_payment_methods;
         $_course->accept_paypal = $accept_paypal;
         $_course->accept_stripe = $accept_stripe;
         $_course->stripe = $stripe;
         wp_enqueue_script('thickbox', null, array('jquery'));
         wp_enqueue_style('thickbox.css', '/' . WPINC . '/js/thickbox/thickbox.css', null, '1.0');
         $post->post_id = $post->ID;
         $post->fee = get_post_meta($post->ID, 'namaste_fee', true);
         return $_course->enroll_buttons($post, $is_manager);
     } else {
         switch ($enrolled->status) {
             case 'enrolled':
                 return __('You are enrolled in this course.', 'namaste');
                 break;
             case 'pending':
                 return __('Your enroll request is received. Waiting for manager approval.', 'namaste');
                 break;
             case 'completed':
                 return __('You have completed this course.', 'namaste');
                 break;
             case 'rejected':
                 return __('Your enrollment request is rejected.', 'namaste');
                 break;
         }
     }
 }
Exemplo n.º 3
0
function namaste_enroll()
{
    global $wpdb, $user_ID, $user_email, $post;
    if (!is_user_logged_in()) {
        $content = '';
        $required_lessons_ids = get_post_meta($post->ID, 'namaste_required_lessons', true);
        if (!is_array($required_lessons_ids)) {
            $required_lessons_ids = array();
        }
        if (!empty($required_lessons_ids)) {
            sort($required_lessons_ids);
            $content .= "<ul class='not-auth-todo-list'>\n";
            foreach ($required_lessons_ids as $lesson) {
                $content .= "<li>" . get_the_title($lesson);
                $content .= "</li>\n";
            }
            $content .= "</ul>";
        }
        return $content;
    }
    $enrolled = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NAMASTE_STUDENT_COURSES . " WHERE user_id = %d AND course_id = %d", $user_ID, $post->ID));
    if (empty($enrolled->id)) {
        $currency = get_option('namaste_currency');
        $is_manager = current_user_can('namaste_manage');
        $_course = new NamasteLMSCourseModel();
        // stripe integration goes right on this page
        $accept_stripe = get_option('namaste_accept_stripe');
        $accept_paypal = get_option('namaste_accept_paypal');
        $accept_other_payment_methods = get_option('namaste_accept_other_payment_methods');
        if ($accept_stripe) {
            $stripe = NamasteStripe::load();
        }
        if (!empty($_POST['stripe_pay'])) {
            NamasteStripe::pay($currency);
            namaste_redirect($_SERVER['REQUEST_URI']);
        }
        if (!empty($_POST['enroll'])) {
            echo " <script type='text/javascript'> location.reload(true); </script>";
            $mesage = NamasteLMSCoursesController::enroll($is_manager);
            namaste_redirect($_SERVER['REQUEST_URI']);
        }
        $_course->currency = $currency;
        $_course->accept_other_payment_methods = $accept_other_payment_methods;
        $_course->accept_paypal = $accept_paypal;
        $_course->accept_stripe = $accept_stripe;
        $_course->stripe = $stripe;
        wp_enqueue_script('thickbox', null, array('jquery'));
        wp_enqueue_style('thickbox.css', '/' . WPINC . '/js/thickbox/thickbox.css', null, '1.0');
        $post->post_id = $post->ID;
        $post->fee = get_post_meta($post->ID, 'namaste_fee', true);
        $content = $_course->enroll_buttons($post, $is_manager);
        $content = str_replace('<form method="post">', '<form method="post" id="namaste-enroll-form">', $content);
        $content = str_replace('</form>', '</form><a id="enroll-not-auth" class="upperCase" href="#">' . __('Enroll', 'qode') . '<span>»</span></a><script>(function($){
    $("#share-social-buttons").addClass("not-logged");

    $("#enroll-not-auth").on("click", function(e){
        e.preventDefault();
        $("#namaste-enroll-form").submit();
    });
})(jQuery);</script>', $content);
        return $content;
    } else {
        switch ($enrolled->status) {
            case 'enrolled':
                return __('You are enrolled in this course.', 'namaste');
                break;
            case 'pending':
                return __('Your enroll request is received. Waiting for manager approval.', 'namaste');
                break;
            case 'completed':
                return __('You have completed this course.', 'namaste');
                break;
            case 'rejected':
                return __('Your enrollment request is rejected.', 'namaste');
                break;
        }
    }
}