// Get entry data for the current student. Entry status must be "inprogress". $entry = $api->get_entry(array('user_id' => get_current_user_id(), 'course_id' => ib_edu_get_course_id(get_the_ID()), 'entry_status' => 'inprogress')); if (!$entry) { return; } $lesson_id = get_the_ID(); $questions = $api->get_questions(array('lesson_id' => $lesson_id)); ?> <?php if ($questions) { ?> <?php $message = get_query_var('edu-message'); if (!$message) { $message = ib_edu_message('quiz'); } if ($message) { switch ($message) { case 'empty-answers': echo '<div class="ib-edu-message error">' . __('Please answer all questions before submitting the quiz.', 'ibeducator') . '</div>'; break; case 'quiz-submitted': echo '<div class="ib-edu-message success">' . __('Thank you. The quiz has been accepted.', 'ibeducator') . '</div>'; break; } } $quiz_submitted = $api->is_quiz_submitted($lesson_id, $entry->ID); ?> <section id="ib-edu-quiz" class="<?php
} switch ($access_status) { case 'inprogress': echo '<div class="ib-edu-message info">' . __('You are registered for this course.', 'ibeducator') . '</div>'; break; case 'pending_entry': echo '<div class="ib-edu-message info">' . __('Your registration for this course is pending.', 'ibeducator') . '</div>'; break; case 'pending_payment': echo '<div class="ib-edu-message info">' . __('Your payment for this course is pending.', 'ibeducator') . '</div>'; break; default: echo ib_edu_get_price_widget($course_id, $user_id); } // Output error messages. $errors = ib_edu_message('course_join_errors'); if ($errors) { $messages = $errors->get_error_messages(); foreach ($messages as $message) { echo '<div class="ib-edu-message error">' . $message . '</div>'; } } do_action('ib_educator_before_course_content'); the_content(); ?> </div> <?php /** * Fires to add various elements to the course footer. *
if (!$user_membership) { $user_membership = array('ID' => 0, 'user_id' => 0, 'membership_id' => 0, 'status' => '', 'expiration' => 0, 'paused' => 0); } ?> <div class="wrap"> <h2><?php if ($member_id) { _e('Edit Member', 'ibeducator'); } else { _e('Add Member', 'ibeducator'); } ?> </h2> <?php $errors = ib_edu_message('edit_member_errors'); if ($errors) { echo '<div class="error below-h2"><ul>'; foreach ($errors as $error) { switch ($error) { case 'member_exists': echo '<li>' . __('The membership for this student already exists.', 'ibeducator') . '</li>'; break; } } echo '</ul></div>'; } ?> <?php if (isset($_GET['edu-message']) && 'saved' == $_GET['edu-message']) {
} $edu_countries = Edr_Countries::get_instance(); $lines = $payment->get_lines(); ?> <div class="wrap"> <h2><?php if ($payment->ID) { _e('Edit Payment', 'ibeducator'); } else { _e('Add Payment', 'ibeducator'); } ?> </h2> <?php $errors = ib_edu_message('edit_payment_errors'); if ($errors) { echo '<div class="error below-h2"><ul>'; foreach ($errors as $error) { switch ($error) { case 'empty_student_id': echo '<li>' . __('Please select a student', 'ibeducator') . '</li>'; break; case 'empty_course_id': echo '<li>' . __('Please select a course', 'ibeducator') . '</li>'; break; } } echo '</ul></div>'; } ?>
} } // Show a login link to non-authenticated users. if (!$user_id) { $login_url = apply_filters('ib_educator_login_url', ''); if (empty($login_url)) { if ('ib_educator_course' == $post->post_type) { $login_url = wp_login_url(ib_edu_get_endpoint_url('edu-course', $post->ID, get_permalink())); } elseif ('ib_edu_membership' == $post->post_type) { $login_url = wp_login_url(ib_edu_get_endpoint_url('edu-membership', $post->ID, get_permalink())); } } echo '<p>' . esc_html__('Already have an account?', 'training') . ' <a href="' . esc_url($login_url) . '">' . esc_html__('Log in', 'training') . '</a></p>'; } // Output error messages. $errors = ib_edu_message('payment_errors'); $error_codes = $errors ? $errors->get_error_codes() : array(); if (!empty($error_codes)) { $messages = $errors->get_error_messages(); foreach ($messages as $message) { echo '<div class="ib-edu-message error">' . $message . '</div>'; } } $form_action = ib_edu_get_endpoint_url('edu-action', 'payment', get_permalink()); ?> <form id="ib-edu-payment-form" class="ib-edu-form" action="<?php echo esc_url($form_action); ?> " method="post"> <?php wp_nonce_field('ibedu_submit_payment');
/** * Edit member action. */ public static function edit_member() { if (count($_POST)) { // Verify nonce. check_admin_referer('ib_educator_edit_member'); // Capability check. if (!current_user_can('manage_educator')) { return; } $ms = Edr_Memberships::get_instance(); $member_id = isset($_GET['id']) ? intval($_GET['id']) : 0; $data = array(); $errors = array(); if (isset($_POST['user_id'])) { $data['user_id'] = intval($_POST['user_id']); } if (isset($_POST['membership_id'])) { $data['membership_id'] = intval($_POST['membership_id']); } if (isset($_POST['membership_status'])) { $data['status'] = sanitize_text_field($_POST['membership_status']); } $date_regex = '/^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$/'; if (isset($_POST['expiration'])) { if (preg_match($date_regex, $_POST['expiration'])) { $data['expiration'] = $_POST['expiration']; } else { $data['expiration'] = '0000-00-00 00:00:00'; } } if (isset($_POST['paused'])) { if (preg_match($date_regex, $_POST['paused'])) { $data['paused'] = $_POST['paused']; } else { $data['paused'] = '0000-00-00 00:00:00'; } } // UNIQUE memberships only. if (!$member_id && !empty($data['user_id'])) { $user_membership = $ms->get_user_membership($data['user_id']); if (!empty($user_membership)) { $errors[] = 'member_exists'; } } if (!empty($errors)) { ib_edu_message('edit_member_errors', $errors); return; } $user_membership = $member_id ? $ms->get_user_membership($member_id) : null; $data['ID'] = $user_membership ? $user_membership['ID'] : 0; $data['ID'] = $ms->update_user_membership($data); if ('expired' == $data['status']) { $ms->pause_membership_entries($data['user_id']); } wp_redirect(admin_url('admin.php?page=ib_educator_members&edu-action=edit-member&id=' . intval($data['user_id']) . '&edu-message=saved')); exit; } }
<?php if (isset($_GET['edu-message']) && 'saved' == $_GET['edu-message']) { ?> <div id="message" class="updated below-h2"> <p><?php _e('Entry saved.', 'ibeducator'); ?> </p> </div> <?php } ?> <?php // Output error messages. $errors = ib_edu_message('edit_entry_errors'); if ($errors) { $messages = $errors->get_error_messages(); foreach ($messages as $message) { echo '<div class="error"><p>' . $message . '</p></div>'; } } ?> <form id="edu_edit_entry_form" class="ib-edu-admin-form" action="<?php echo esc_url(admin_url('admin.php?page=ib_educator_entries&edu-action=edit-entry&entry_id=' . $entry_id)); ?> " method="post"> <?php wp_nonce_field('ib_educator_edit_entry_' . $entry->ID); ?>
/** * Join the course if membership allows. */ public static function join() { if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'ib_educator_join')) { return; } // Get the current user id. $user_id = get_current_user_id(); if (!$user_id) { return; } // Get course id. $course_id = get_the_ID(); if (!$course_id) { return; } // Registration allowed? if ('closed' == ib_edu_registration($course_id)) { return; } // Get course. $course = get_post($course_id); if (!$course || 'ib_educator_course' != $course->post_type) { return; } $api = IB_Educator::get_instance(); $errors = new WP_Error(); // Check the course prerequisites. if (!$api->check_prerequisites($course_id, $user_id)) { $prerequisites_html = ''; $prerequisites = $api->get_prerequisites($course_id); $courses = get_posts(array('post_type' => 'ib_educator_course', 'post_status' => 'publish', 'include' => $prerequisites)); if (!empty($courses)) { foreach ($courses as $course) { $prerequisites_html .= '<br><a href="' . esc_url(get_permalink($course->ID)) . '">' . esc_html($course->post_title) . '</a>'; } } $errors->add('prerequisites', sprintf(__('You have to complete the prerequisites for this course: %s', 'ibeducator'), $prerequisites_html)); ib_edu_message('course_join_errors', $errors); return; } // Make sure the user can join this course. $ms = IB_Educator_Memberships::get_instance(); if (!$ms->membership_can_access($course_id, $user_id)) { return; } // Check if the user already has an inprogress entry for this course. $entries = $api->get_entries(array('course_id' => $course_id, 'user_id' => $user_id, 'entry_status' => 'inprogress')); if (!empty($entries)) { return; } $user_membership = $ms->get_user_membership($user_id); $entry = IB_Educator_Entry::get_instance(); $entry->course_id = $course_id; $entry->object_id = $user_membership['membership_id']; $entry->user_id = $user_id; $entry->entry_origin = 'membership'; $entry->entry_status = 'inprogress'; $entry->entry_date = date('Y-m-d H:i:s'); $entry->save(); }