コード例 #1
0
ファイル: quiz.php プロジェクト: kptac/ibeducator
// 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 
コード例 #2
0
}
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.
 *
コード例 #3
0
ファイル: edit-member.php プロジェクト: zaro/ibeducator
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']) {
コード例 #4
0
ファイル: edit-payment.php プロジェクト: zaro/ibeducator
}
$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>';
}
?>
コード例 #5
0
            }
        }
        // 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');
コード例 #6
0
ファイル: Actions.php プロジェクト: zaro/ibeducator
 /**
  * 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;
     }
 }
コード例 #7
0
ファイル: edit-entry.php プロジェクト: zaro/ibeducator
	<?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);
?>
コード例 #8
0
 /**
  * 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();
 }