Example #1
0
}
if (!empty($account_page)) {
    $page_ids[] = $account_page;
}
$pages = get_pages(array('include' => $page_ids, 'post_status' => 'publish', 'sort_order' => 'ASC', 'sort_column' => 'menu_order'));
$tabs = array();
if ($pages) {
    foreach ($pages as $page) {
        $tabs[] = array('page_id' => $page->ID, 'url' => get_permalink($page->ID), 'label' => $page->post_title);
    }
}
/**
 * @deprecated 1.2.0
 */
if (empty($page_ids['student_courses_page'])) {
    $tabs[] = array('page_id' => 0, 'action' => 'courses', 'url' => ib_edu_get_endpoint_url('action', 'courses', get_permalink($page_ids['profile_page'])), 'label' => __('Courses', 'ib-educator'));
}
?>

<section class="section-content">
	<div class="container clearfix">
		<div class="short-fw-container">
			<div id="post-<?php 
the_ID();
?>
" <?php 
post_class();
?>
>
				<?php 
educator_page_title('page');
Example #2
0
</a></h2>
	</header>

	<section class="price">
		<?php 
echo $ms->format_price($membership_meta['price'], $membership_meta['duration'], $membership_meta['period']);
?>
	</section>

	<section class="membership-summary">
		<?php 
$continue_reading = get_theme_mod('continue_reading') ? sprintf(__('Continue reading %s', 'ib-educator'), the_title('<span class="screen-reader-text">', '</span>', false)) : '';
the_content($continue_reading);
?>
	</section>

	<footer class="membership-options post-meta">
		<?php 
if (function_exists('ib_edu_purchase_link')) {
    echo ib_edu_purchase_link(array('object_id' => $membership_id, 'type' => 'membership'));
} else {
    $purchase_url = ib_edu_get_endpoint_url('edu-membership', $membership_id, get_permalink(ib_edu_page_id('payment')));
    echo '<a href="' . esc_url($purchase_url) . '">' . __('Purchase', 'ibeducator') . '</a>';
}
?>

		<?php 
echo educator_share('menu');
?>
	</footer>
</article>
				<?php 
        $invoice_url = ib_edu_get_endpoint_url('edu-thankyou', $payment->ID, get_permalink(ib_edu_page_id('payment')));
        ?>
				<a href="<?php 
        echo esc_url($invoice_url);
        ?>
"><?php 
        _e('Details', 'ibeducator');
        ?>
</a>

				<?php 
        if ('pending' == $payment->payment_status) {
            ?>
				<form action="<?php 
            echo esc_url(ib_edu_get_endpoint_url('edu-action', 'cancel-payment', get_permalink()));
            ?>
" method="post">
					<?php 
            wp_nonce_field('ibedu_cancel_payment');
            ?>
					<input type="hidden" name="payment_id" value="<?php 
            echo absint($payment->ID);
            ?>
">
					<button type="submit" class="ib-edu-button"><?php 
            _e('Cancel', 'ibeducator');
            ?>
</button>
				</form>
			<?php 
						<?php 
        $statuses = $ms->get_statuses();
        if (!empty($user_membership['status']) && array_key_exists($user_membership['status'], $statuses)) {
            echo esc_html($statuses[$user_membership['status']]);
        }
        ?>

						<div>
						<?php 
        if (1 == ib_edu_get_option('pause_memberships', 'memberships')) {
            if ('active' == $user_membership['status']) {
                $pause_url = ib_edu_get_endpoint_url('edu-action', 'pause-membership', get_permalink());
                $pause_url = add_query_arg('_wpnonce', wp_create_nonce('ib_educator_pause_membership'), $pause_url);
                echo ' <span class="pause-membership"><a class="ib-edu-button" href="' . esc_url($pause_url) . '">' . __('Pause', 'ibeducator') . '</a></span>';
            } elseif ('paused' == $user_membership['status']) {
                $resume_url = ib_edu_get_endpoint_url('edu-action', 'resume-membership', get_permalink());
                $resume_url = add_query_arg('_wpnonce', wp_create_nonce('ib_educator_resume_membership'), $resume_url);
                echo ' <span class="pause-membership"><a class="ib-edu-button" href="' . esc_url($resume_url) . '">' . __('Resume', 'ibeducator') . '</a></span>';
            }
        }
        ?>
						</div>
					</td>
				</tr>

				<tr>
					<th><?php 
        _e('Expiration Date', 'ibeducator');
        ?>
</th>
					<td>
                } 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');
        /**
         * Hook into payment form output.
         *
         * @param null|WP_Error $errors
         * @param mixed $post
         */
        do_action('ib_educator_register_form', $errors, $post);
        ?>
Example #6
0
 /**
  * Submit quiz.
  */
 public static function submit_quiz()
 {
     if (empty($_POST)) {
         return;
     }
     $lesson_id = get_the_ID();
     check_admin_referer('edr_submit_quiz_' . $lesson_id);
     $user_id = get_current_user_id();
     if (!$user_id) {
         return;
     }
     $quizzes = Edr_Manager::get('edr_quizzes');
     $questions = $quizzes->get_questions($lesson_id);
     if (empty($questions)) {
         return;
     }
     if (!isset($_POST['answers']) || !is_array($_POST['answers'])) {
         // No answers.
         ib_edu_message('quiz', 'empty-answers');
         return;
     } else {
         foreach ($questions as $question) {
             if (empty($_POST['answers'][$question->ID])) {
                 // Not all questions were answered.
                 ib_edu_message('quiz', 'empty-answers');
                 return;
             }
         }
     }
     $entry = IB_Educator::get_instance()->get_entry(array('user_id' => $user_id, 'course_id' => ib_edu_get_course_id($lesson_id), 'entry_status' => 'inprogress'));
     $entry_id = $entry ? $entry->ID : 0;
     if (!$entry_id && 'ib_educator_lesson' == get_post_type()) {
         return;
     }
     $max_attempts_number = $quizzes->get_max_attempts_number($lesson_id);
     if (!is_numeric($max_attempts_number)) {
         $max_attempts_number = 1;
     }
     $attempts_number = $quizzes->get_attempts_number($lesson_id, $entry_id);
     // Check if the student exceeded the number of allowed attempts.
     if ($attempts_number >= $max_attempts_number) {
         return;
     }
     // Add initial grade data to the database.
     $grade_id = $quizzes->add_grade(array('lesson_id' => $lesson_id, 'entry_id' => $entry_id, 'user_id' => $user_id, 'grade' => 0, 'status' => 'pending'));
     if (!$grade_id) {
         return;
     }
     $user_answer = '';
     $correct = 0;
     $automatic_grade = true;
     $choices = $quizzes->get_choices($lesson_id, true);
     // Check answers to the quiz questions.
     foreach ($questions as $question) {
         // Every question type needs a specific way to check for the valid answer.
         switch ($question->question_type) {
             // Multiple Choice Question.
             case 'multiplechoice':
                 $user_answer = absint($_POST['answers'][$question->ID]);
                 if (isset($choices[$question->ID]) && isset($choices[$question->ID][$user_answer])) {
                     $choice = $choices[$question->ID][$user_answer];
                     $answer_data = apply_filters('edr_submit_answer_pre', array('question_id' => $question->ID, 'grade_id' => $grade_id, 'entry_id' => $entry_id, 'correct' => $choice->correct, 'choice_id' => $choice->ID), $question);
                     $added = $quizzes->add_answer($answer_data);
                     if (1 == $choice->correct) {
                         ++$correct;
                     }
                 }
                 break;
                 // Written Answer Question.
             // Written Answer Question.
             case 'writtenanswer':
                 // We cannot check written answers automatically.
                 if ($automatic_grade) {
                     $automatic_grade = false;
                 }
                 $user_answer = stripslashes($_POST['answers'][$question->ID]);
                 if (empty($user_answer)) {
                     continue;
                 }
                 $answer_data = apply_filters('edr_submit_answer_pre', array('question_id' => $question->ID, 'grade_id' => $grade_id, 'entry_id' => $entry_id, 'correct' => -1, 'answer_text' => $user_answer), $question);
                 $added = $quizzes->add_answer($answer_data);
                 break;
         }
     }
     if ($automatic_grade) {
         $quizzes->update_grade($grade_id, array('grade' => round($correct / count($questions) * 100), 'status' => 'approved'));
     }
     wp_redirect(ib_edu_get_endpoint_url('edu-message', 'quiz-submitted', get_permalink()));
     exit;
 }
Example #7
0
        echo '<div class="ib-edu-message success">' . __('Registration complete.', 'ib-educator') . '</div>';
    }
    ?>

						<div class="login-form clearfix">
							<?php 
    $redirect_to = get_query_var('redirect_to');
    if (empty($redirect_to)) {
        // Determine default redirect URL.
        $student_courses_page_id = ib_edu_page_id('student_courses');
        if ($student_courses_page_id) {
            $redirect_to = get_permalink($student_courses_page_id);
        } else {
            $user_page_id = get_theme_mod('user_page');
            if ($user_page_id) {
                $redirect_to = ib_edu_get_endpoint_url('action', 'courses', get_permalink($user_page_id));
            }
        }
    }
    remove_filter('login_url', 'educator_login_url_filter', 10, 2);
    wp_login_form(array('id_submit' => 'submit-login-form', 'redirect' => $redirect_to));
    add_filter('login_url', 'educator_login_url_filter', 10, 2);
    ?>

							<p class="lost-password-link">
								<a href="<?php 
    echo esc_url(wp_lostpassword_url(get_permalink()));
    ?>
"><?php 
    _e('Lost your password?', 'ib-educator');
    ?>
Example #8
0
            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;
        }
    }
    $max_attempts_number = $quizzes->get_max_attempts_number($lesson_id);
    if (!is_numeric($max_attempts_number)) {
        $max_attempts_number = 1;
    }
    $grade = $quizzes->get_grade($lesson_id, $entry_id);
    $attempts_number = $quizzes->get_attempts_number($lesson_id, $entry_id);
    $do_quiz = $attempts_number < $max_attempts_number;
    $form_action = ib_edu_get_endpoint_url('edu-action', 'submit-quiz', get_permalink());
    if ($grade && $do_quiz) {
        $do_quiz = isset($_GET['try_again']) && 'true' == $_GET['try_again'];
        if ($do_quiz) {
            $form_action = add_query_arg('try_again', 'true', $form_action);
        }
    }
    $form_action .= '#ib-edu-quiz';
    ?>

	<section id="ib-edu-quiz" class="<?php 
    echo $grade ? 'ib-edu-quiz-complete' : 'ib-edu-quiz-inprogress';
    ?>
">
		<?php 
    if (!$do_quiz && $grade) {
Example #9
0
 /**
  * Get the membership price widget.
  *
  * @param int $membership_id
  * @return string
  */
 public function get_price_widget($membership_id = null)
 {
     if (is_null($membership_id)) {
         $membership_id = get_the_ID();
     }
     $output = apply_filters('ib_educator_membership_price_widget', null, $membership_id);
     if (!is_null($output)) {
         return $output;
     }
     $price = $this->get_price($membership_id);
     $payment_url = ib_edu_get_endpoint_url('edu-membership', $membership_id, get_permalink(ib_edu_page_id('payment')));
     $output = '<div class="ib-edu-price-widget">';
     $output .= '<span class="price">' . ib_edu_format_price($price) . '</span>';
     $output .= '<a href="' . esc_url($payment_url) . '" class="ib-edu-button">' . __('Purchase', 'ibeducator') . '</a>';
     $output .= '</div>';
     return $output;
 }
Example #10
0
 /**
  * Submit quiz.
  */
 public static function submit_quiz()
 {
     if (empty($_POST)) {
         return;
     }
     $lesson_id = get_the_ID();
     $user_id = get_current_user_id();
     $api = IB_Educator::get_instance();
     // Verify nonce.
     check_admin_referer('ibedu_submit_quiz_' . $lesson_id);
     // Get questions.
     $questions = $api->get_questions(array('lesson_id' => $lesson_id));
     if (!$questions) {
         return;
     }
     $num_questions = count($questions);
     $num_answers = 0;
     if (!isset($_POST['answers'])) {
         // The student has to submit the answers to all questions.
         ib_edu_message('quiz', 'empty-answers');
         return;
     } elseif (is_array($_POST['answers'])) {
         // Count answers.
         foreach ($_POST['answers'] as $answer) {
             if (!empty($answer)) {
                 ++$num_answers;
             }
         }
         if ($num_answers != $num_questions) {
             // Not all questions were answered.
             ib_edu_message('quiz', 'empty-answers');
             return;
         }
     }
     // Get entry.
     $entry = $api->get_entry(array('user_id' => $user_id, 'course_id' => ib_edu_get_course_id($lesson_id), 'entry_status' => 'inprogress'));
     if (!$entry) {
         return;
     }
     if ($api->is_quiz_submitted($lesson_id, $entry->ID)) {
         // Quiz has been submitted already.
         return;
     }
     $user_answer = '';
     $answered = 0;
     $correct = 0;
     $automatic_grade = true;
     $choices = $api->get_choices($lesson_id, true);
     // Check answers to the quiz questions.
     foreach ($questions as $question) {
         if (!isset($_POST['answers'][$question->ID])) {
             // Student has to submit an answer.
             continue;
         }
         // Every question type needs a specific way to check for the valid answer.
         switch ($question->question_type) {
             // Multiple Choice Question.
             case 'multiplechoice':
                 $user_answer = absint($_POST['answers'][$question->ID]);
                 if (isset($choices[$question->ID]) && isset($choices[$question->ID][$user_answer])) {
                     $choice = $choices[$question->ID][$user_answer];
                     // Add answer to database.
                     $added = $api->add_student_answer(array('question_id' => $question->ID, 'entry_id' => $entry->ID, 'correct' => $choice->correct, 'choice_id' => $choice->ID));
                     if (1 == $added) {
                         ++$answered;
                     }
                     if (1 == $choice->correct) {
                         ++$correct;
                     }
                 }
                 break;
                 // Written Answer Question.
             // Written Answer Question.
             case 'writtenanswer':
                 // We cannot check written answers automatically.
                 if ($automatic_grade) {
                     $automatic_grade = false;
                 }
                 $user_answer = stripslashes($_POST['answers'][$question->ID]);
                 if (empty($user_answer)) {
                     continue;
                 }
                 // Add answer to database.
                 $added = $api->add_student_answer(array('question_id' => $question->ID, 'entry_id' => $entry->ID, 'correct' => -1, 'answer_text' => $user_answer));
                 if (1 == $added) {
                     ++$answered;
                 }
                 break;
         }
     }
     if ($answered == $num_questions) {
         $grade_data = array('lesson_id' => $lesson_id, 'entry_id' => $entry->ID);
         if ($automatic_grade) {
             $grade_data['grade'] = round($correct / $answered * 100);
             $grade_data['status'] = 'approved';
         } else {
             $grade_data['grade'] = 0;
             $grade_data['status'] = 'pending';
         }
         $api->add_quiz_grade($grade_data);
         wp_redirect(ib_edu_get_endpoint_url('edu-message', 'quiz-submitted', get_permalink()));
         exit;
     }
 }
                    ?>
					<tr>
						<td><?php 
                    echo intval($entry->ID);
                    ?>
</td>
						<td><a class="title" href="<?php 
                    echo esc_url(get_permalink($course->ID));
                    ?>
"><?php 
                    echo esc_html($course->post_title);
                    ?>
</a></td>
						<td>
							<form action="<?php 
                    echo esc_url(ib_edu_get_endpoint_url('edu-action', 'resume-entry', get_permalink()));
                    ?>
" method="post">
								<?php 
                    wp_nonce_field('ib_educator_resume_entry');
                    ?>
								<input type="hidden" name="entry_id" value="<?php 
                    echo absint($entry->ID);
                    ?>
">
								<button type="submit" class="ib-edu-button" <?php 
                    if (!$ms->membership_can_access($course->ID, $user_id)) {
                        echo ' disabled="disabled"';
                    }
                    ?>
><?php 
    /**
     * Send the membership expiration emails to users.
     */
    public static function send_expiration_notifications()
    {
        global $wpdb;
        $days_notify = ib_edu_get_option('days_notify', 'memberships');
        if (null === $days_notify) {
            $days_notify = 5;
        } else {
            $days_notify = absint($days_notify);
        }
        $expires_date = date('Y-m-d', strtotime('+ ' . $days_notify . ' days'));
        $tables = ib_edu_table_names();
        $users = $wpdb->get_results($wpdb->prepare('SELECT u.ID, u.user_email, u.display_name, m.expiration, m.membership_id
			FROM ' . $tables['members'] . ' m
			INNER JOIN ' . $wpdb->users . ' u ON u.ID = m.user_id
			WHERE m.`expiration` LIKE %s AND m.`status` = %s', $expires_date . '%', 'active'));
        if (empty($users)) {
            return;
        }
        // Get memberships.
        $membership_ids = array();
        foreach ($users as $user) {
            if (!in_array($user->membership_id, $membership_ids)) {
                $membership_ids[] = $user->membership_id;
            }
        }
        $memberships = get_posts(array('post_type' => 'ib_edu_membership', 'include' => $membership_ids, 'post_status' => 'publish', 'posts_per_page' => -1));
        if ($memberships) {
            foreach ($memberships as $key => $membership) {
                $memberships[$membership->ID] = $membership;
                unset($memberships[$key]);
            }
            foreach ($users as $user) {
                ib_edu_send_notification($user->user_email, 'membership_renew', array(), array('student_name' => $user->display_name, 'membership' => isset($memberships[$user->membership_id]) ? $memberships[$user->membership_id]->post_title : '', 'expiration' => date_i18n(get_option('date_format'), strtotime($user->expiration)), 'membership_payment_url' => ib_edu_get_endpoint_url('edu-membership', $user->membership_id, get_permalink(ib_edu_page_id('payment')))));
            }
        }
    }
Example #13
0
    /**
     * Output the form to the step 2 (pay page) of the payment page.
     */
    public function pay_page()
    {
        $action_url = $this->get_option('test') ? $this->test_url : $this->live_url;
        $payment_id = absint(get_query_var('edu-pay'));
        if (!$payment_id) {
            return;
        }
        $user_id = get_current_user_id();
        if (!$user_id) {
            return;
        }
        $payment = edr_get_payment($payment_id);
        // The payment must exist in the database
        // and it must belong to the current user.
        if (!$payment->ID || $user_id != $payment->user_id) {
            return;
        }
        if ('course' == $payment->payment_type) {
            $post = get_post($payment->course_id);
        } elseif ('membership' == $payment->payment_type) {
            $post = get_post($payment->object_id);
        }
        if (!$post) {
            return;
        }
        $amount = $payment->amount - $payment->tax;
        $return_url = '';
        $payment_page_id = ib_edu_page_id('payment');
        if ($payment_page_id) {
            $return_url = ib_edu_get_endpoint_url('edu-thankyou', $payment->ID ? $payment->ID : '', get_permalink($payment_page_id));
        }
        echo '<form id="ib-edu-paypal-form" action="' . esc_url($action_url) . '" method="post">';
        echo '<input type="hidden" name="cmd" value="_xclick">';
        echo '<input type="hidden" name="charset" value="utf-8">';
        echo '<input type="hidden" name="business" value="' . esc_attr($this->get_option('business_email')) . '">';
        echo '<input type="hidden" name="return" value="' . esc_url($return_url) . '">';
        echo '<input type="hidden" name="notify_url" value="' . esc_url(ib_edu_request_url('paypalipn')) . '">';
        echo '<input type="hidden" name="currency_code" value="' . esc_attr(ib_edu_get_currency()) . '">';
        echo '<input type="hidden" name="item_name" value="' . esc_attr($post->post_title) . '">';
        echo '<input type="hidden" name="item_number" value="' . absint($payment->ID) . '">';
        if ($payment->tax) {
            echo '<input type="hidden" name="tax" value="' . (double) $payment->tax . '">';
        }
        echo '<input type="hidden" name="amount" value="' . (double) $amount . '">';
        echo '<div id="paypal-form-buttons"><button type="submit">' . __('Continue', 'ibeducator') . '</button></div>';
        echo '</form>';
        echo '<div id="paypal-redirect-notice" style="display: none;">' . __('Redirecting to PayPal...', 'ibeducator') . '</div>';
        echo '<script>(function() {
			function goToPayPal() {
				document.getElementById("paypal-form-buttons").style.display = "none";
				document.getElementById("paypal-redirect-notice").style.display = "block";
				document.getElementById("ib-edu-paypal-form").submit();
			}

			if ( typeof jQuery === "undefined" ) {
				setTimeout(goToPayPal, 500);
			} else {
				jQuery(document).on("ready", function() {
					goToPayPal();
				});
			}
		})();</script>';
    }
 /**
  * Get the url to the "thank you" page.
  *
  * @param array $args
  * @return string
  */
 public function get_redirect_url($args)
 {
     $redirect = '';
     if (isset($args['value'])) {
         $redirect = ib_edu_get_endpoint_url('edu-thankyou', $args['value'], get_permalink(ib_edu_page_id('payment')));
     } else {
         $redirect = ib_edu_get_endpoint_url('edu-thankyou', '', get_permalink(ib_edu_page_id('payment')));
     }
     return $redirect;
 }
Example #15
0
    /**
     * Output the Stripe's payment dialog.
     * Step 2 in the payment process.
     */
    public function pay_page()
    {
        $payment_id = absint(get_query_var('edu-pay'));
        if (!$payment_id) {
            return;
        }
        $user = wp_get_current_user();
        if (0 == $user->ID) {
            return;
        }
        $payment = edr_get_payment($payment_id);
        if (!$payment->ID || $user->ID != $payment->user_id) {
            // The payment must exist and it must be associated with the current user.
            return;
        }
        if ('course' == $payment->payment_type) {
            $post = get_post($payment->course_id);
        } elseif ('membership' == $payment->payment_type) {
            $post = get_post($payment->object_id);
        }
        if (!$post) {
            return;
        }
        ?>
		<p id="ib-edu-payment-processing-msg">
			<?php 
        _e('The payment is getting processed...', 'ibeducator');
        ?>
		</p>
		<script src="https://checkout.stripe.com/checkout.js"></script>
		<script>
		(function($) {
			var handler = StripeCheckout.configure({
				key: <?php 
        echo json_encode($this->get_option('publishable_key'));
        ?>
,
				image: '',
				email: <?php 
        echo json_encode($user->user_email);
        ?>
,
				token: function(token) {
					$.ajax({
						type: 'POST',
						cache: false,
						url: <?php 
        echo json_encode(ib_edu_request_url('stripe_token'));
        ?>
,
						data: {
							payment_id: <?php 
        echo intval($payment->ID);
        ?>
,
							token: token.id,
							_wpnonce: <?php 
        echo json_encode(wp_create_nonce('ib_educator_stripe_token'));
        ?>
						},
						success: function(response) {
							if (response === '1') {
								$('#ib-edu-payment-processing-msg').text(<?php 
        echo json_encode(__('Redirecting to the payment summary page...', 'ibeducator'));
        ?>
);
								var redirectTo = <?php 
        echo json_encode(ib_edu_get_endpoint_url('edu-thankyou', $payment->ID, get_permalink(ib_edu_page_id('payment'))));
        ?>
;
								document.location = redirectTo;
							}
						}
					});
				}
			});

			handler.open({
				name: <?php 
        echo json_encode(esc_html($post->post_title));
        ?>
,
				description: <?php 
        echo json_encode(ib_edu_format_price($payment->amount, false, false));
        ?>
,
				currency: <?php 
        echo json_encode(ib_edu_get_currency());
        ?>
,
				amount: <?php 
        echo absint($payment->amount * 100);
        ?>
			});

			$(window).on('popstate', function() {
				handler.close();
			});
		})(jQuery);
		</script>
		<?php 
    }
Example #16
0
function ib_edu_purchase_link($atts)
{
    $atts = wp_parse_args($atts, array('object_id' => null, 'type' => null, 'text' => __('Purchase', 'ib-educator'), 'class' => array()));
    // Add default class.
    array_push($atts['class'], 'edu-purchase-link');
    $html = apply_filters('ib_edu_pre_purchase_link', null, $atts);
    if (!is_null($html)) {
        return $html;
    }
    if ('membership' == $atts['type']) {
        $html = sprintf('<a href="%s" class="%s">%s</a>', esc_url(ib_edu_get_endpoint_url('edu-membership', $atts['object_id'], get_permalink(ib_edu_page_id('payment')))), esc_attr(implode(' ', $atts['class'])), $atts['text']);
    }
    return $html;
}
Example #17
0
    if (!$quiz_submitted) {
        $answers = isset($_POST['answers']) && is_array($_POST['answers']) ? $_POST['answers'] : array();
    } else {
        $answers = $api->get_student_answers($lesson_id, $entry->ID);
        if (!$answers) {
            $answers = array();
        }
    }
    ?>
		<h3 class="ib-edu-quiz-title"><?php 
    _e('Quiz', 'ibeducator');
    ?>
</h3>

		<form id="ib-edu-quiz-form" class="ib-edu-form" method="post" action="<?php 
    echo esc_url(ib_edu_get_endpoint_url('edu-action', 'submit-quiz', get_permalink()));
    ?>
">
			<?php 
    wp_nonce_field('ibedu_submit_quiz_' . $lesson_id);
    ?>
			<input type="hidden" name="submit_quiz" value="1">

			<div class="ib-edu-questions">
				<?php 
    $choices = $api->get_choices($lesson_id, true);
    foreach ($questions as $question) {
        if ('multiplechoice' == $question->question_type) {
            // Multiple Choice Question.
            // Check if this question has the answer choices.
            if (!$choices || !isset($choices[$question->ID])) {
        echo '<div class="ib-edu-message info">' . esc_html__('Your registration for this course is pending.', 'training') . '</div>';
        break;
    case 'pending_payment':
        echo '<div class="ib-edu-message info">' . esc_html__('Your payment for this course is pending.', 'training') . '</div>';
        break;
    default:
        //---------------
        if ('closed' == ib_edu_registration($course_id)) {
            break;
        }
        $output = apply_filters('ib_educator_course_price_widget', null, $membership_access, $course_id, $user_id);
        if (null !== $output) {
            return $output;
        }
        if ($membership_access) {
            $register_url = ib_edu_get_endpoint_url('edu-action', 'join', get_permalink($course_id));
            $output .= '<form class="space-20" action="' . esc_url($register_url) . '" method="post">';
            $output .= '<input type="hidden" name="_wpnonce" value="' . wp_create_nonce('ib_educator_join') . '">';
            $output .= '<input type="submit" class="ib-edu-button" value="' . esc_html__('Join', 'training') . '">';
            $output .= '</form>';
        } else {
            $output .= '<p class="space-top-30 text-center"><a href="' . esc_url($register_url) . '" class="ib-edu-button btn btn btn-success">' . esc_html__('join class now', 'training') . '</a></p>';
        }
        echo trim($output);
        break;
}
?>
						</div>

					</div>
					<?php