Tutor LMS – eLearning and online course solution - Version 1.9.14

Version Description

  • January 20, 2022 =

New: Now you can add Videos using a Shortcode Fix: Issue of HTML codes disappearing after saving a Quiz Fix: Issue regarding video not working using Embedded code Fix: Presto Player Shortcode wasn't saving in the video source Update: Better user input field sanitization ensure SQL Injection Update: Better security of HTML output of user-provided input Update: XSS vulnerability protection is made stronger

Download this release

Release Info

Developer themeum
Plugin Icon wp plugin Tutor LMS – eLearning and online course solution
Version 1.9.14
Comparing to
See all releases

Code changes from version 1.9.13 to 1.9.14

Files changed (48) hide show
  1. assets/js/tutor-admin.js +1 -1
  2. assets/js/tutor-front.js +1 -1
  3. classes/Admin.php +1 -1
  4. classes/Ajax.php +8 -8
  5. classes/Course.php +18 -32
  6. classes/Course_Filter.php +4 -4
  7. classes/Dashboard.php +2 -8
  8. classes/FormHandler.php +1 -1
  9. classes/Instructor.php +1 -1
  10. classes/Instructors_List.php +2 -2
  11. classes/Lesson.php +9 -9
  12. classes/Options.php +2 -1
  13. classes/Q_and_A.php +1 -1
  14. classes/Quiz.php +16 -16
  15. classes/Quiz_Attempts_List.php +1 -1
  16. classes/Shortcode.php +2 -2
  17. classes/Tutor_List_Table.php +5 -5
  18. classes/Tutor_Setup.php +1 -1
  19. classes/Utils.php +4 -3
  20. classes/Video_Stream.php +1 -1
  21. classes/Withdraw_Requests_List.php +3 -3
  22. classes/WooCommerce.php +2 -2
  23. includes/tutor-general-functions.php +44 -4
  24. includes/tutor-template-functions.php +53 -72
  25. languages/tutor.pot +308 -300
  26. readme.txt +14 -2
  27. templates/dashboard.php +1 -1
  28. templates/dashboard/announcements/create.php +1 -1
  29. templates/dashboard/announcements/update.php +1 -1
  30. templates/dashboard/assignments/review.php +4 -4
  31. templates/dashboard/create-course.php +8 -8
  32. templates/dashboard/dashboard.php +7 -5
  33. templates/dashboard/my-profile.php +6 -6
  34. templates/dashboard/my-quiz-attempts/attempts-details.php +1 -1
  35. templates/dashboard/purchase_history.php +1 -1
  36. templates/dashboard/quiz-attempts/quiz-reviews.php +1 -1
  37. templates/shortcode/instructor-filter.php +1 -1
  38. templates/single-preview-lesson.php +12 -30
  39. templates/single/course/review-form.php +1 -1
  40. templates/single/next-previous-pagination.php +6 -2
  41. templates/single/video/shortcode.php +28 -0
  42. templates/student-public-profile.php +7 -7
  43. tutor.php +2 -2
  44. views/metabox/video-metabox.php +12 -8
  45. views/modal/question_answer_edit_form.php +17 -17
  46. views/modal/question_answer_form.php +21 -21
  47. views/modal/question_form.php +7 -7
  48. views/pages/view_attempt.php +26 -35
assets/js/tutor-admin.js CHANGED
@@ -1 +1 @@
1
- (()=>{var o={623:()=>{function g(t){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a,n,i=[],r=!0,s=!1;try{for(o=o.call(t);!(r=(a=o.next()).done)&&(i.push(a.value),!e||i.length!==e);r=!0);}catch(t){s=!0,n=t}finally{try{r||null==o.return||o.return()}finally{if(s)throw n}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return a(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(o="Object"===o&&t.constructor?t.constructor.name:o)||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?a(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,a=new Array(e);o<e;o++)a[o]=t[o];return a}window.tutor_get_nonce_data=function(t){var e=window._tutorobject||{},o=e.nonce_key||"",e=e[o]||"";return t?{key:o,value:e}:(t=e,(e=o)in(o={})?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o)},window.tutor_popup=function(r,o,a){var s,u=this;return this.popup_wrapper=function(t){var e=""===o?"":'<img class="tutor-pop-icon" src="'+window._tutorobject.tutor_url+"assets/images/"+o+'.svg"/>';return"<"+t+' class="tutor-component-popup-container"> <div class="tutor-component-popup-'+a+'"> <div class="tutor-component-content-container">'+e+'</div> <div class="tutor-component-button-container"></div> </div> </'+t+">"},this.popup=function(o){var t=o.title?"<h3>"+o.title+"</h3>":"",e=o.description?"<p>"+o.description+"</p>":"",a=Object.keys(o.buttons||{}).map(function(t){var e=o.buttons[t],t=e.id?"tutor-popup-"+e.id:"";return r('<button id="'+t+'" class="tutor-button tutor-button-'+e.class+'">'+e.title+"</button>").click(e.callback)}),n=(s=r(u.popup_wrapper(o.wrapper_tag||"div"))).find(".tutor-component-content-container");n.append(t),o.after_title&&n.append(o.after_title),n.append(e),o.after_description&&n.append(o.after_description),s.click(function(){r(this).remove()}).children().click(function(t){t.stopPropagation()});for(var i=0;i<a.length;i++)s.find(".tutor-component-button-container").append(a[i]);return r("body").append(s),s},{popup:this.popup}},window.tutorDotLoader=function(t){return' \n <div class="tutor-dot-loader '.concat(t||"",'">\n <span class="dot dot-1"></span>\n <span class="dot dot-2"></span>\n <span class="dot dot-3"></span>\n <span class="dot dot-4"></span>\n </div>')},window.tutor_date_picker=function(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",$(".tutor_date_picker").datepicker({dateFormat:t}))},jQuery(document).ready(function(d){"use strict";var t=wp.i18n,n=t.__;t._x,t._n,t._nx;function o(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",d(".tutor_date_picker").datepicker({dateFormat:t})),d(document).on("keydown",".hasDatepicker, .tutor_date_picker",function(t){8!==t.keyCode&&t.preventDefault()})}function s(){d(".tutor-field-slider").each(function(){var t=d(this),o=t.closest(".tutor-field-type-slider").find('input[type="hidden"]'),a=t.closest(".tutor-field-type-slider").find(".tutor-field-type-slider-value"),e=parseFloat(t.closest(".tutor-field-type-slider").attr("data-min")),n=parseFloat(t.closest(".tutor-field-type-slider").attr("data-max"));t.slider({range:"max",min:e,max:n,value:o.val(),slide:function(t,e){a.text(e.value),o.val(e.value)}})})}function e(t){var e=t.element;return d('<span><i class="tutor-icon-'+d(e).data("icon")+'"></i> '+t.text+"</span>")}function i(){jQuery().sortable&&(d(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){a()}}),d(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){a()}}))}function a(){var i={};d(".tutor-topics-wrap").each(function(t,e){var o=d(this),a=parseInt(o.attr("id").match(/\d+/)[0],10),n={};o.find(".course-content-item").each(function(t,e){var o=d(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);n[t]=o}),i[t]={topic_id:a,lesson_ids:n}}),d("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}function r(){return{init:function(){d(document).on("click",".tutor-select .tutor-select-option",function(t){t.preventDefault();var e=d(this);"true"!==e.attr("data-is-pro")?(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")).trigger("change"),e.closest(".tutor-select-options").hide(),disableAddoption()):alert("Tutor Pro version required")}),d(document).on("click",".tutor-select .select-header",function(t){t.preventDefault(),d(this).closest(".tutor-select").find(".tutor-select-options").slideToggle()}),this.setValue(),this.hideOnOutSideClick()},setValue:function(){d(".tutor-select").each(function(){var t=d(this).find(".tutor-select-option");t.length&&t.each(function(){var t,e=d(this);"selected"===e.attr("data-selected")&&(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")))})})},hideOnOutSideClick:function(){d(document).mouseup(function(t){var e=d(".tutor-select-options");d(t.target).closest(".select-header").length||e.is(t.target)||0!==e.has(t.target).length||e.hide()})},reInit:function(){this.setValue()}}}o(),s(),jQuery().select2&&d(".videosource_select2").select2({width:"100%",templateSelection:e,templateResult:e,allowHtml:!0}),d(document).on("change",".tutor_lesson_video_source",function(t){var e=d(this),o=d(this).val();o?d(".video-metabox-source-input-wrap").show():d(".video-metabox-source-input-wrap").hide(),e.closest(".tutor-option-field").find(".video-metabox-source-item").hide(),e.closest(".tutor-option-field").find(".video_source_wrap_"+o).show()}),d(document).on("click",".tutor-course-thumbnail-upload-btn",function(t){t.preventDefault();var e,o=d(this);e||(e=wp.media({title:n("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:n("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t.url),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),d(".tutor-course-thumbnail-delete-btn").show()}),e.open()}),d(document).on("click",".tutor-course-thumbnail-delete-btn",function(t){t.preventDefault();var e=d(this),t=e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("data-placeholder-src");e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t),e.closest(".tutor-thumbnail-wrap").find("input").val(""),d(".tutor-course-thumbnail-delete-btn").hide()}),d(document).on("click",".create_new_topic_btn",function(t){t.preventDefault(),d(".tutor-metabox-add-topics").slideToggle()}),d(document).on("click","#tutor-add-topic-btn",function(t){t.preventDefault();var e=d(this),t=e.closest(".tutor-metabox-add-topics").find("input, textarea").serializeObject();t.action="tutor_add_course_topic",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(d("#tutor-course-content-wrap").html(t.data.course_contents),e.closest(".tutor-metabox-add-topics").find('input[type!="hidden"], textarea').each(function(){d(this).val("")}),e.closest(".tutor-metabox-add-topics").slideUp(),i())},complete:function(){e.removeClass("tutor-updating-message")}})}),d(".tutor-zoom-meeting-modal-wrap").on("submit",".tutor-meeting-modal-form",function(t){t.preventDefault();var e=d(this),o=e.serializeObject(),t=Intl.DateTimeFormat().resolvedOptions().timeZone;o.timezone=t;var a=e.find('button[type="submit"]');d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){a.addClass("tutor-updating-message")},success:function(t){t.success?tutor_toast(n("Success","tutor"),a.data("toast_success_message"),"success"):tutor_toast(n("Update Error","tutor"),n("Meeting Update Failed","tutor"),"error"),t.course_contents?(d(t.selector).html(t.course_contents),"#tutor-course-content-wrap"==t.selector&&i(),d(".tutor-zoom-meeting-modal-wrap").removeClass("show")):location.reload()},complete:function(){a.removeClass("tutor-updating-message")}})}),d(document).on("change keyup",".course-edit-topic-title-input",function(t){t.preventDefault(),d(this).closest(".tutor-topics-top").find(".topic-inner-title").html(d(this).val())}),d(document).on("click",".topic-edit-icon",function(t){t.preventDefault(),d(this).closest(".tutor-topics-top").find(".tutor-topics-edit-form").slideToggle()}),d(document).on("click",".tutor-topics-edit-button",function(t){t.preventDefault();var e=d(this),o=e.closest(".tutor-topics-wrap"),t=parseInt(o.attr("id").match(/\d+/)[0],10),a=e.closest(".tutor-topics-wrap").find('[name="topic_title"]').val(),o=e.closest(".tutor-topics-wrap").find('[name="topic_summery"]').val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_title:a,topic_summery:o,topic_id:t,action:"tutor_update_topic"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".tutor-topics-wrap").find("span.topic-inner-title").text(a),e.closest(".tutor-topics-wrap").find(".tutor-topics-edit-form").slideUp())},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".open-tutor-lesson-modal",function(t){t.preventDefault();var e=d(this),o=e.attr("data-lesson-id"),a=e.attr("data-topic-id"),n=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:o,topic_id:a,course_id:n,action:"tutor_load_edit_lesson_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),d(".tutor-lesson-modal-wrap").attr({"data-lesson-id":o,"data-topic-id":a}).addClass("show");t=(t=tinyMCEPreInit.mceInit.tutor_editor_config)||tinyMCEPreInit.mceInit.course_description;tinymce.init(t),tinymce.execCommand("mceRemoveEditor",!1,"tutor_lesson_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_lesson_modal_editor"),d(document).trigger("lesson_modal_loaded",{lesson_id:o,topic_id:a,course_id:n})},complete:function(){quicktags({id:"tutor_lesson_modal_editor"}),e.removeClass("tutor-updating-message")}})}),d(document).on("click",".lesson_thumbnail_upload_btn",function(t){t.preventDefault();var e,o=d(this);e||(e=wp.media({title:n("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:n("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html('<img src="'+t.url+'" alt="" /><a href="javascript:;" class="tutor-lesson-thumbnail-delete-btn"><i class="tutor-icon-line-cross"></i></a>'),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),d(".tutor-lesson-thumbnail-delete-btn").show()}),e.open()}),d(document).on("click",".tutor-lesson-thumbnail-delete-btn",function(t){t.preventDefault();t=d(this);t.closest(".tutor-thumbnail-wrap").find("._lesson_thumbnail_id").val(""),t.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html(""),t.hide()}),d(document).on("click",".tutor-delete-lesson-btn",function(t){var e;t.preventDefault(),confirm(n("Are you sure?","tutor"))&&(t=(e=d(this)).attr("data-lesson-id"),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:t,action:"tutor_delete_lesson_by_id"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&e.closest(".course-content-item").remove()},complete:function(){e.removeClass("tutor-updating-message")}}))}),d(document).on("click",".topic-delete-btn a",function(t){d(this).attr("data-topic-id");confirm(n("Are you sure to delete?","tutor"))||t.preventDefault()}),d(document).on("click",".tutor-expand-all-topic",function(t){t.preventDefault(),d(".tutor-topics-body").slideDown(),d(".expand-collapse-wrap i").removeClass("tutor-icon-light-down").addClass("tutor-icon-light-up")}),d(document).on("click",".tutor-collapse-all-topic",function(t){t.preventDefault(),d(".tutor-topics-body").slideUp(),d(".expand-collapse-wrap i").removeClass("tutor-icon-light-up").addClass("tutor-icon-light-down")}),d(document).on("click",".topic-inner-title, .expand-collapse-wrap",function(t){t.preventDefault();t=d(this);t.closest(".tutor-topics-wrap").find(".tutor-topics-body").slideToggle(),t.closest(".tutor-topics-wrap").find(".expand-collapse-wrap i").toggleClass("tutor-icon-light-down tutor-icon-light-up")}),d(document).on("click",".quiz-modal-btn-first-step",function(t){t.preventDefault();var e,o,a,n=d(this),i=d('[name="quiz_title"]'),r=i.val(),t=d('[name="quiz_description"]').val();r?(i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html(""),e=d("#post_ID").val(),o=n.closest(".tutor-modal-wrap").attr("quiz-for-post-id"),d("#tutor_quiz_builder_quiz_id").length?(a=d("#tutor_quiz_builder_quiz_id").val(),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,quiz_id:a,topic_id:o,action:"tutor_quiz_builder_quiz_update"},beforeSend:function(){n.addClass("tutor-updating-message")},success:function(t){d("#tutor-quiz-"+a).html(t.data.output_quiz_row),d('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s()},complete:function(){n.removeClass("tutor-updating-message")}})):d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,course_id:e,topic_id:o,action:"tutor_create_quiz_and_load_modal"},beforeSend:function(){n.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),d("#tutor-topics-"+o+" .tutor-lessons").append(t.data.output_quiz_row),d('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s(),d(document).trigger("quiz_modal_loaded",{topic_id:o,course_id:e})},complete:function(){n.removeClass("tutor-updating-message")}})):i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html("Please enter quiz title")}),d(document).on("click",".open-tutor-quiz-modal",function(t){t.preventDefault();var e=d(this),o=e.attr("data-quiz-id"),a=e.attr("data-topic-id");null==a&&(a=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id"));var n=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:o,topic_id:a,course_id:n,action:"tutor_load_edit_quiz_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),d(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id",o).attr("quiz-for-post-id",a).addClass("show"),e.attr("data-back-to-tab")&&(t=e.attr("data-back-to-tab"),d('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")),d(document).trigger("quiz_modal_loaded",{quiz_id:o,topic_id:a,course_id:n}),s(),jQuery().sortable&&d(".quiz-builder-questions-wrap").sortable({handle:".question-sorting",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var a;a={},d(".quiz-builder-question-wrap").each(function(t,e){var o=d(this),o=parseInt(o.attr("data-question-id"),10);a[t]=o}),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_question_ids:a,action:"tutor_quiz_question_sorting"}})}})},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".quiz-modal-settings-save-btn",function(t){t.preventDefault();var e=d(this),o=d(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id"),a=d("#current_topic_id_for_quiz").val(),t=d("#quiz-builder-tab-settings :input, #quiz-builder-tab-advanced-options :input").serializeObject();t.topic_id=a,t.quiz_id=o,t.action="tutor_quiz_modal_update_settings",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&d("#tutor-course-content-wrap").html(t.data.course_contents),t.success?tutor_toast(n("Success","tutor"),e.data("toast_success_message"),"success"):tutor_toast(n("Update Error","tutor"),n("Quiz Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message"),"modal_close"===e.attr("data-action")&&d(".tutor-modal-wrap").removeClass("show")}})}),d(document).on("click",".quiz-modal-question-save-btn",function(t){t.preventDefault();var e=d(this),o=d(".quiz_question_form :input").serializeObject();o.action="tutor_quiz_modal_update_question";t=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id");o.topic_id=t,d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?e.closest(".tutor-quiz-builder-modal-contents").find(".open-tutor-quiz-modal").trigger("click"):void 0!==t.data&&d("#quiz_validation_msg_wrap").html(t.data.validation_msg)},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".modal-close-btn",function(t){t.preventDefault(),d(".tutor-modal-wrap").removeClass("show")}),d(document).on("keyup",function(t){27===t.keyCode&&d(".tutor-modal-wrap").removeClass("show")}),d(document).on("click",".tutor-add-quiz-btn",function(t){t.preventDefault();var e=d(this),o=d(this).closest(".tutor_add_quiz_wrap").attr("data-add-quiz-under"),t=d(this).data("topic-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_for_post_id:o,current_topic_id:t,action:"tutor_load_quiz_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),d(".tutor-quiz-builder-modal-wrap").attr("quiz-for-post-id",o).addClass("show")},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-modal-tab-item",function(t){t.preventDefault();var e=d(this),o=d('[name="quiz_title"]');o.val()?(o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html(""),t=e.attr("href"),d(".quiz-builder-tab-container").hide(),d(t).show(),d("a.tutor-quiz-modal-tab-item").removeClass("active"),e.addClass("active")):o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html('<p class="quiz-form-warning">Please save the quiz first</p>')}),d(document).on("click",".quiz-modal-btn-next, .quiz-modal-btn-back",function(t){t.preventDefault();t=d(this).attr("href");d('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")}),d(document).on("click",".quiz-modal-tab-navigation-btn.quiz-modal-btn-cancel",function(t){t.preventDefault(),d(".tutor-modal-wrap").removeClass("show")}),d(document).on("click",".tutor-quiz-open-question-form",function(t){t.preventDefault();var e=d(this),o=d("#tutor_quiz_builder_quiz_id").val(),a=d("#post_ID").val(),t=e.attr("data-question-id"),a={quiz_id:o,course_id:a,action:"tutor_quiz_builder_get_question_form"};t&&(a.question_id=t),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-contents").html(t.data.output),r().reInit(),jQuery().sortable&&d("#tutor_quiz_question_answers").sortable({handle:".tutor-quiz-answer-sort-icon",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var a;a={},d(".tutor-quiz-answer-wrap").each(function(t,e){var o=d(this),o=parseInt(o.attr("data-answer-id"),10);a[t]=o}),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_answer_ids:a,action:"tutor_quiz_answer_sorting"}})}}),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-question-trash",function(t){t.preventDefault();var e=d(this),t=e.attr("data-question-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:t,action:"tutor_quiz_builder_question_delete"},beforeSend:function(){e.closest(".quiz-builder-question-wrap").remove()}})}),d(document).on("click",".add_question_answers_option:not(.disabled)",function(t){t.preventDefault();var e=d(this),o=e.attr("data-question-id"),t=d(".quiz_question_form :input").serializeObject();t.question_id=o,t.action="tutor_quiz_add_question_answers",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answer_form").html(t.data.output),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-answer-edit a",function(t){t.preventDefault();var e=d(this),t=e.closest(".tutor-quiz-answer-wrap").attr("data-answer-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_edit_question_answer"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answer_form").html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click","#quiz-answer-save-btn",function(t){t.preventDefault();var e=d(this),t=d(".quiz_question_form :input").serializeObject();t.action="tutor_save_quiz_answer_options",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){d("#quiz_validation_msg_wrap").html(""),e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click","#quiz-answer-edit-btn",function(t){t.preventDefault();var e=d(this),t=d(".quiz_question_form :input").serializeObject();t.action="tutor_update_quiz_answer_options",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("change",".tutor-quiz-answers-mark-correct-wrap input",function(t){t.preventDefault();var e=d(this),o=e.val(),t=1;e.prop("checked")||(t=0),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:o,inputValue:t,action:"tutor_mark_answer_as_correct"}})}),d(document).on("refresh","#tutor_quiz_question_answers",function(t){t.preventDefault();var e=d(this),o=e.attr("data-question-id"),t=d(".tutor_select_value_holder").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:o,question_type:t,action:"tutor_quiz_builder_get_answers_by_question"},beforeSend:function(){e.addClass("tutor-updating-message"),d("#tutor_quiz_question_answer_form").html("")},success:function(t){t.success&&e.html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-answer-trash-wrap a.answer-trash-btn",function(t){t.preventDefault();var e=d(this),t=e.attr("data-answer-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_builder_delete_answer"},beforeSend:function(){e.closest(".tutor-quiz-answer-wrap").remove()}})}),d(document).on("click",".tutor-delete-quiz-btn",function(t){var e;t.preventDefault(),confirm(n("Are you sure?","tutor"))&&(t=(e=d(this)).attr("data-quiz-id"),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:t,action:"tutor_delete_quiz_by_id"},beforeSend:function(){e.closest(".course-content-item").remove()}}))}),r().init(),d(document).on("change","input.tutor_select_value_holder",function(t){d(this);d(".add_question_answers_option").trigger("click"),d("#tutor_quiz_question_answers").trigger("refresh")}),d(document).on("click",".tutor-media-upload-btn",function(t){t.preventDefault();var e,o=d(this);e||(e=wp.media({title:n("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:n("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.html('<img src="'+t.url+'" alt="" />'),o.closest(".tutor-media-upload-wrap").find("input").val(t.id)}),e.open()}),d(document).on("click",".tutor-media-upload-trash",function(t){t.preventDefault();t=d(this);t.closest(".tutor-media-upload-wrap").find(".tutor-media-upload-btn").html('<i class="tutor-icon-image1"></i>'),t.closest(".tutor-media-upload-wrap").find("input").val("")});var u,c=(u=0,function(t,e){clearTimeout(u),u=setTimeout(t,e)});d(document).on("click",".tutor-add-instructor-btn",function(t){t.preventDefault();var e=d(this),t=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:t,action:"tutor_load_instructors_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(d(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),d(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("change keyup",".tutor-instructors-modal-wrap .tutor-modal-search-input",function(t){t.preventDefault();var o=d(this),a=d(".tutor-modal-wrap");c(function(){var t=o.val(),e=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:e,search_terms:t,action:"tutor_load_instructors_modal"},beforeSend:function(){a.addClass("loading")},success:function(t){t.success&&(d(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),d(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){a.removeClass("loading")}})},1e3)}),d(document).on("click",".add_instructor_to_course_btn",function(t){t.preventDefault();var e=d(this),o=d(".tutor-modal-wrap"),t=d("#post_ID").val(),o=o.find("input").serializeObject();o.course_id=t,o.action="tutor_add_instructors_to_course",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(d(".tutor-course-available-instructors").html(t.data.output),d(".tutor-modal-wrap").removeClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-instructor-delete-btn",function(t){t.preventDefault();var e=d(this),o=d("#post_ID").val(),t=e.closest(".added-instructor-item").attr("data-instructor-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:o,instructor_id:t,action:"detach_instructor_from_course"},success:function(t){t.success&&e.closest(".added-instructor-item").remove()}})}),d(document).on("click",".settings-tabs-navs li",function(t){t.preventDefault();var e=d(this),o=e.find("a").attr("data-target"),t=e.find("a").attr("href");e.addClass("active").siblings("li.active").removeClass("active"),d(".settings-tab-wrap").removeClass("active").hide(),d(o).addClass("active").show(),window.history.pushState({},"",t)}),d(document).on("lesson_modal_loaded quiz_modal_loaded assignment_modal_loaded",function(t,e){jQuery().select2&&d(".select2_multiselect").select2({dropdownCssClass:"increasezindex"}),o()}),d(document).on("lesson_modal_loaded",function(t,e){d(".tutor-lesson-modal-wrap .modal-title h1").html(n("Lesson","tutor"))}),d(document).on("assignment_modal_loaded",function(t,e){d(".tutor-lesson-modal-wrap .modal-title h1").html(n("Assignment","tutor"))}),d(document).on("keyup change",".tutor-number-validation",function(t){var e=d(this),o=parseInt(e.val()),a=parseInt(e.attr("data-min")),n=parseInt(e.attr("data-max"));o<a?e.val(a):n<o&&e.val(n)}),d(document).on("click",".tutor-instructor-feedback",function(t){t.preventDefault();var e=d(this);d.ajax({url:window.ajaxurl||_tutorobject.ajaxurl,type:"POST",data:{attempts_id:e.data("attemptid"),feedback:d(".tutor-instructor-feedback-content").val(),action:"tutor_instructor_feedback"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".course-content-item").remove(),tutor_toast(n("Success","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})});var l=d(".tutor-announcement-add-new"),m=d(".tutor-announcement-edit"),p=d(".tutor-announcement-delete"),_=d(".tutor-announcement-details"),t=d(".tutor-announcement-close-btn"),f=d(".tutor-accouncement-create-modal"),h=d(".tutor-accouncement-update-modal"),v=d(".tutor-accouncement-details-modal");function w(t,e){var o=new URL(window.location.href),a=o.searchParams;return a.set(t,e),o.search=a.toString(),_tutorobject.is_admin?a.set("paged",1):a.set("current_page",1),o.search=a.toString(),o.toString()}d(l).click(function(){f.addClass("show"),d("#tutor-annoucement-backend-create-modal").addClass("show")}),d(_).click(function(){var t=d(this).attr("announcement-date"),e=d(this).attr("announcement-id"),o=d(this).attr("course-id"),a=d(this).attr("course-name"),n=d(this).attr("announcement-title"),i=d(this).attr("announcement-summary");d(".tutor-announcement-detail-content").html("<h3>".concat(n,"</h3><p>").concat(i,"</p>")),d(".tutor-announcement-detail-course-info p").html("".concat(a)),d(".tutor-announcement-detail-date-info p").html("".concat(t)),d("#tutor-announcement-edit-from-detail").attr("announcement-id",e),d("#tutor-announcement-edit-from-detail").attr("course-id",o),d("#tutor-announcement-edit-from-detail").attr("announcement-title",n),d("#tutor-announcement-edit-from-detail").attr("announcement-summary",i),d("#tutor-announcement-delete-from-detail").attr("announcement-id",e),v.addClass("show")}),d(m).click(function(){v&&v.removeClass("show");var t=d(this).attr("announcement-id"),e=d(this).attr("course-id"),o=d(this).attr("announcement-title"),a=d(this).attr("announcement-summary");d("#tutor-announcement-course-id").val(e),d("#announcement_id").val(t),d("#tutor-announcement-title").val(o),d("#tutor-announcement-summary").val(a),h.addClass("show")}),d(t).click(function(){f.removeClass("show"),h.removeClass("show"),v.removeClass("show"),d("#tutor-annoucement-backend-create-modal").removeClass("show")}),d(".tutor-announcements-form").on("submit",function(t){t.preventDefault();var e=d(this).find('button[type="submit"]'),t=d(".tutor-announcements-form").serialize()+"&action=tutor_announcement_create&action_type=create";d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(d(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){d(".tutor-announcements-create-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var a=y(o[e],2),a=(a[0],a[1]);d(".tutor-announcements-create-alert .tutor-alert").append("<li>".concat(a,"</li>"))}}"fail"==t.status&&d(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(t){console.log(t)}})}),d(".tutor-announcements-update-form").on("submit",function(t){t.preventDefault();var e=d(this).find('button[type="submit"]'),t=d(".tutor-announcements-update-form").serialize()+"&action=tutor_announcement_create&action_type=update";d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(d(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){d(".tutor-announcements-update-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var a=y(o[e],2),a=(a[0],a[1]);d(".tutor-announcements-update-alert > .tutor-alert").append("<li>".concat(a,"</li>"))}}"fail"==t.status&&d(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(){}})}),d(p).click(function(){var t=d(this).attr("announcement-id"),e=d("#tutor-announcement-tr-"+t);confirm("Do you want to delete?")&&d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_announcement_delete",announcement_id:t},beforeSend:function(){},success:function(t){e.remove(),v.length&&v.removeClass("show"),"fail"==t.status&&console.log(t.message)},error:function(){}})}),d(".tutor-announcement-course-sorting").on("change",function(t){window.location=w("course-id",d(this).val())}),d(".tutor-announcement-order-sorting").on("change",function(t){window.location=w("order",d(this).val())}),d(".tutor-announcement-date-sorting").on("change",function(t){window.location=w("date",d(this).val())}),d(".tutor-announcement-search-sorting").on("click",function(t){window.location=w("search",d(".tutor-announcement-search-field").val())}),d(document).click(function(){d(".tutor-dropdown").removeClass("show")}),d(".tutor-dropdown").click(function(t){t.stopPropagation(),d(".tutor-dropdown").hasClass("show")&&d(".tutor-dropdown").removeClass("show"),d(this).addClass("show")});var b,p=".video_source_wrap_external_url input, .video_source_wrap_vimeo input, .video_source_wrap_youtube input, .video_source_wrap_html5, .video_source_upload_wrap_html5";d("body").on("paste",p,function(t){t.stopImmediatePropagation();var r=d(this).closest(".lesson-modal-form-wrap").find(".tutor-option-field-video-duration"),e=r.find("label"),o=d(this).hasClass("video_source_wrap_html5")||d(this).hasClass("video_source_upload_wrap_html5"),a=d(this).data("autofill_url");d(this).data("autofill_url",null);function n(t){t?0==e.find("img").length&&e.append(' <img src="'+window._tutorobject.loading_icon_url+'" style="display:inline-block"/>'):e.find("img").remove()}function i(t){for(var e=Math.floor(t/3600),o=Math.floor((t-3600*e)/60),t=Math.round(t-3600*e-60*o),a=[e=e<10?"0"+e:e,o=o<10?"0"+o:o,t=t<10?"0"+t:t],n=r.find("input"),i=0;i<3;i++)n.eq(i).val(a[i])}var s,u,c,t=o?d(this).find("span").data("video_url"):a||t.originalEvent.clipboardData.getData("text");o||d(this).parent().hasClass("video_source_wrap_external_url")?((s=document.createElement("video")).addEventListener("loadedmetadata",function(){i(s.duration),n(!1)}),n(!0),s.src=t):d(this).parent().hasClass("video_source_wrap_vimeo")?(u=(c=t.match(/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/))?c[5]:null)&&(n(!0),d.getJSON("http://vimeo.com/api/v2/video/"+u+"/json",function(t){Array.isArray(t)&&t[0]&&void 0!==t[0].duration&&i(t[0].duration),n(!1)})):d(this).parent().hasClass("video_source_wrap_youtube")&&(u=!(!(c=t.match(/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/))||11!=c[7].length)&&c[7],c=d(this).data("youtube_api_key"),u&&c&&(c="https://www.googleapis.com/youtube/v3/videos?id="+u+"&key="+c+"&part=contentDetails",n(!0),d.getJSON(c,function(t){"object"==g(t)&&t.items&&t.items[0]&&t.items[0].contentDetails&&t.items[0].contentDetails.duration&&i(function(t){t=(t=t.match(/PT(\d+H)?(\d+M)?(\d+S)?/)).slice(1).map(function(t){if(null!=t)return t.replace(/\D/,"")});return 3600*(parseInt(t[0])||0)+60*(parseInt(t[1])||0)+(parseInt(t[2])||0)}(t.items[0].contentDetails.duration)),n(!1)})))}).on("input",p,function(){b&&clearTimeout(b);var e=d(this);b=setTimeout(function(){var t=(t=e.val())?t.trim():"";console.log("Trigger",t),t&&e.data("autofill_url",t).trigger("paste")},700)}),d(".tutor-form-submit-through-ajax").submit(function(t){t.preventDefault();var e=d(this),o=d(this).attr("action")||window.location.href,a=d(this).attr("method")||"GET",t=d(this).serializeObject();e.find("button").addClass("tutor-updating-message"),d.ajax({url:o,type:a,data:t,success:function(){tutor_toast(n("Success","tutor"),e.data("toast_success_message"),"success")},complete:function(){e.find("button").removeClass("tutor-updating-message")}})}),d.ajaxSetup({data:tutor_get_nonce_data()})}),jQuery.fn.serializeObject=function(){var t={},e=this.serializeArray();return jQuery.each(e,function(){t[this.name]?(t[this.name].push||(t[this.name]=[t[this.name]]),t[this.name].push(this.value||"")):t[this.name]=this.value||""}),t},window.tutor_toast=function(t,e,o){var a=((window._tutorobject||{}).tutor_url||"")+"assets/images/";jQuery(".tutor-toast-parent").length||jQuery("body").append('<div class="tutor-toast-parent"></div>');var n=jQuery(' <div> <div> <img src="'+{success:a+"icon-check.svg",error:a+"icon-cross.svg"}[o]+'"/> </div> <div> <div> <b>'+t+"</b> <span>"+e+'</span> </div> </div> <div> <i class="tutor-toast-close tutor-icon-line-cross"></i> </div> </div>');n.find(".tutor-toast-close").click(function(){n.remove()}),jQuery(".tutor-toast-parent").append(n),setTimeout(function(){n&&n.fadeOut("fast",function(){jQuery(this).remove()})},5e3)},window.disableAddoption=function(){function t(t){t.classList.contains("disabled")||t.classList.add("disabled")}function e(t){t.classList.contains("disabled")&&t.classList.remove("disabled")}var o=document.querySelector(".tutor_select_value_holder").value,a=document.getElementById("tutor_quiz_question_answers"),n=document.getElementById("tutor_quiz_question_answer_form"),i=document.querySelector(".add_question_answers_option");("open_ended"===o||"short_answer"===o||("true_false"===o||"fill_in_the_blank"===o)&&(n.hasChildNodes()||a.hasChildNodes())?t:e)(i)}},896:()=>{window.jQuery(document).ready(function(o){var a=wp.i18n.__;o(document).on("click",".tutor-copy-text",function(t){t.stopImmediatePropagation(),t.preventDefault();var e=o(this).data("text"),t=o("<input>");o("body").append(t),t.val(e).select(),document.execCommand("copy"),t.remove(),tutor_toast(a("Copied!","tutor"),e,"success")})})}},a={};function i(t){var e=a[t];if(void 0!==e)return e.exports;e=a[t]={exports:{}};return o[t](e,e.exports,i),e.exports}(()=>{"use strict";i(896),i(623);function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}jQuery(document).ready(function(r){var t=wp.i18n,i=t.__,e=(t._x,t._n,t._nx,i("Search students","tutor"));function a(){jQuery().sortable&&(r(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){o()}}),r(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){o()}}))}function o(){var i={};r(".tutor-topics-wrap").each(function(t,e){var o=r(this),a=parseInt(o.attr("id").match(/\d+/)[0],10),n={};o.find(".course-content-item").each(function(t,e){var o=r(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);n[t]=o}),i[t]={topic_id:a,lesson_ids:n}}),r("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}jQuery().wpColorPicker&&r(".tutor_colorpicker").wpColorPicker(),jQuery().select2&&r(".tutor_select2").select2(),r(".tutor-option-nav-tabs li a").click(function(t){t.preventDefault();t=r(this).attr("data-tab");r(".option-nav-item").removeClass("current"),r(this).closest("li").addClass("current"),r(".tutor-option-nav-page").hide(),r(t).addClass("current-page").show(),window.history.pushState("obj","",r(this).attr("href"))}),r("#save_tutor_option").click(function(t){t.preventDefault(),r(this).closest("form").submit()}),r("#tutor-option-form").submit(function(t){t.preventDefault();var e=r(this),t=e.serializeObject();r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".button").addClass("tutor-updating-message")},success:function(t){t.success?tutor_toast(i("Saved","tutor"),e.data("toast_success_message"),"success"):tutor_toast(i("Request Error","tutor"),i("Could not save","tutor"),"error")},complete:function(){e.find(".button").removeClass("tutor-updating-message")}})}),r(document).on("click",".withdraw-method-nav li a",function(t){t.preventDefault();t=r(this).attr("data-target-id");r(".withdraw-method-form-wrap").hide(),r("#"+t).show()}),a(),r(document).on("click",".update_lesson_modal_btn",function(t){t.preventDefault();var e=r(this),o="tutor_lesson_modal_editor",t=tinyMCE.get(o),t=t?t.getContent():r("#"+o).val(),o=r(this).closest("form").serializeObject();o.lesson_content=t,r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(r("#tutor-course-content-wrap").html(t.data.course_contents),a(),r(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(i("Lesson Updated","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})}),r(document).on("change",".tutor_lesson_video_source",function(t){var e=r(this).val();r('[class^="video_source_wrap"]').hide(),r(".video_source_wrap_"+e).show(),"html5"===e?r(".tutor-video-poster-field").show():r(".tutor-video-poster-field").hide()}),r(document).on("click",".video_source_wrap_html5 .video_upload_btn",function(t){t.preventDefault();var e,o=r(this);e||(e=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},library:{type:"video"},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".video_source_wrap_html5").find("span.video_media_id").data("video_url",t.url).text(t.id).trigger("paste").closest("p").show(),o.closest(".video_source_wrap_html5").find("input.input_source_video_id").val(t.id)}),e.open()}),r(document).on("click","a.tutor-delete-attachment",function(t){t.preventDefault(),r(this).closest(".tutor-added-attachment").remove()}),r(document).on("click",".tutorUploadAttachmentBtn",function(t){t.preventDefault();var a,n=r(this);a||(a=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!0})).on("select",function(){var t=a.state().get("selection").toJSON();if(t.length)for(var e=0;e<t.length;e++){var o=t[e],o='<div class="tutor-added-attachment"><i class="tutor-icon-archive"></i> <a href="javascript:;" class="tutor-delete-attachment tutor-icon-line-cross"></a> <span> <a href="'+o.url+'">'+o.filename+'</a> </span><input type="hidden" name="tutor_attachments[]" value="'+o.id+'"></div>';n.closest(".tutor-lesson-attachments-metabox").find(".tutor-added-attachments-wrap").append(o)}}),a.open()}),_tutorobject.open_tutor_admin_menu&&((t=r("#adminmenu")).find('[href="admin.php?page=tutor"]').closest("li.wp-has-submenu").addClass("wp-has-current-submenu"),t.find('[href="admin.php?page=tutor"]').closest("li.wp-has-submenu").find("a.wp-has-submenu").removeClass("wp-has-current-submenu").addClass("wp-has-current-submenu")),r(document).on("click",".tutor-option-media-upload-btn",function(t){t.preventDefault();var e,o=r(this);e||(e=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".option-media-wrap").find(".option-media-preview").html('<img src="'+t.url+'" alt="" />'),o.closest(".option-media-wrap").find("input").val(t.id),o.closest(".option-media-wrap").find(".tutor-media-option-trash-btn").show()}),e.open()}),r(document).on("click",".tutor-media-option-trash-btn",function(t){t.preventDefault();t=r(this);t.closest(".option-media-wrap").find("img").remove(),t.closest(".option-media-wrap").find("input").val(""),t.closest(".option-media-wrap").find(".tutor-media-option-trash-btn").hide()}),r(document).on("change",".tutor_addons_list_item",function(t){var e=r(this),o=e.prop("checked")?1:0,e=e.attr("name");r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{isEnable:o,addonFieldName:e,action:"addon_enable_disable"},success:function(t){t.success}})}),r(document).on("submit","#new-instructor-form",function(t){t.preventDefault();var o=r(this),t=o.serializeObject();t.action="tutor_add_instructor",r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,success:function(t){var a,e;t.success?(o.trigger("reset"),r("#form-response").html('<p class="tutor-status-approved-context">'+t.data.msg+"</p>")):(a="",(e=t.data.errors)&&Object.keys(e).length&&(r.each(t.data.errors,function(t,e){var o;(o=e)&&"object"===n(o)&&o.constructor===Object?r.each(e,function(t,e){a+='<p class="tutor-required-fields">'+e[0]+"</p>"}):a+='<p class="tutor-required-fields">'+e+"</p>"}),r("#form-response").html(a)))}})}),r(document).on("click","a.instructor-action",function(t){t.preventDefault();var e=r(this),o=e.attr("data-action"),a=e.attr("data-instructor-id"),t=e.attr("data-prompt-message");t&&!confirm(t)||((a={instructor_id:a,action_name:o,action:"instructor_approval_action"})[o=_tutorobject.nonce_key]=_tutorobject[o],r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){location.reload(!0)},complete:function(){e.removeClass("tutor-updating-message")}}))}),r(document).on("click",".tutor-create-assignments-btn",function(t){t.preventDefault();var e=r(this),o=r(this).attr("data-topic-id"),a=r("#post_ID").val();r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_id:o,course_id:a,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){r(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),r(".tutor-lesson-modal-wrap").attr("data-topic-id",o).addClass("show"),r(document).trigger("assignment_modal_loaded",{topic_id:o,course_id:a}),tinymce.init(tinyMCEPreInit.mceInit.tutor_editor_config),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),r(document).on("click",".open-tutor-assignment-modal",function(t){t.preventDefault();var e=r(this),o=e.attr("data-assignment-id"),a=e.attr("data-topic-id"),n=r("#post_ID").val();r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{assignment_id:o,topic_id:a,course_id:n,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){r(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),r(".tutor-lesson-modal-wrap").attr({"data-assignment-id":o,"data-topic-id":a}).addClass("show"),r(document).trigger("assignment_modal_loaded",{assignment_id:o,topic_id:a,course_id:n}),tinymce.init(tinyMCEPreInit.mceInit.tutor_editor_config),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),r(document).on("click",".update_assignment_modal_btn",function(t){t.preventDefault();var e=r(this),o="tutor_assignments_modal_editor",t=tinyMCE.get(o),t=t?t.getContent():r("#"+o).val(),o=r(this).closest("form").serializeObject();o.assignment_content=t,r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(r("#tutor-course-content-wrap").html(t.data.course_contents),a(),r(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(i("Assignment Updated","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})}),r(document).on("click",".add-assignment-attachments",function(t){t.preventDefault();var o,a=r(this);o||(o=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!1})).on("select",function(){var t=o.state().get("selection").first().toJSON(),e='<div class="tutor-individual-attachment-file"><p class="attachment-file-name">'+t.filename+'</p><input type="hidden" name="tutor_assignment_attachments[]" value="'+t.id+'"><a href="javascript:;" class="remove-assignment-attachment-a text-muted"> &times; Remove</a></div>';r("#assignment-attached-file").append(e),a.closest(".video_source_wrap_html5").find("input").val(t.id)}),o.open()}),r(document).on("click",".remove-assignment-attachment-a",function(t){t.preventDefault(),r(this).closest(".tutor-individual-attachment-file").remove()}),r(document).on("click",".tutor_video_poster_upload_btn",function(t){t.preventDefault();var e,o=r(this);e||(e=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-video-poster-wrap").find(".video-poster-img").html('<img src="'+t.sizes.thumbnail.url+'" alt="" />'),o.closest(".tutor-video-poster-wrap").find("input").val(t.id)}),e.open()}),r(document).on("change","#tutor_pmpro_membership_model_select",function(t){t.preventDefault(),"category_wise_membership"===r(this).val()?r(".membership_course_categories").show():r(".membership_course_categories").hide()}),r(document).on("change","#tutor_pmpro_membership_model_select",function(t){t.preventDefault(),"category_wise_membership"===r(this).val()?r(".membership_course_categories").show():r(".membership_course_categories").hide()}),r(document).on("submit",".pmpro_admin form",function(t){var e=r(this);e.find('input[name="tutor_action"]').length&&("category_wise_membership"!=e.find('[name="tutor_pmpro_membership_model"]').val()||e.find(".membership_course_categories input:checked").length||confirm(i("Do you want to save without any category?","tutor"))||t.preventDefault())}),r("#select2_search_user_ajax").select2({allowClear:!0,minimumInputLength:1,placeholder:e,language:{inputTooShort:function(){return i("Please add 1 or more character","tutor")}},escapeMarkup:function(t){return t},ajax:{url:window._tutorobject.ajaxurl,type:"POST",dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"tutor_json_search_students"}},processResults:function(t){var o=[];return t&&r.each(t,function(t,e){o.push({id:t,text:e})}),{results:o}},cache:!0}}),r(document).on("click","table.enrolments .delete a",function(t){t.preventDefault();var e=r(this).attr("href"),t={title:i("Delete this enrolment","tutor"),description:i("All of the course data like quiz attempts, assignment, lesson <br/>progress will be deleted if you delete this student's enrollment.","tutor"),buttons:{reset:{title:i("Cancel","tutor"),class:"secondary",callback:function(){o.remove()}},keep:{title:i("Yes, Delete This","tutor"),class:"primary",callback:function(){window.location.replace(e)}}}},o=new window.tutor_popup(r,"icon-trash",40).popup(t)});e=r('#tutor-attach-product [name="tutor_course_price_type"]');0==e.length?r("#_tutor_is_course_public_meta_checkbox").show():e.change(function(){var t;r(this).prop("checked")&&(t="paid"==r(this).val()?"hide":"show",r("#_tutor_is_course_public_meta_checkbox")[t]())}).trigger("change"),r(document).on("click",".instructor-layout-template",function(){r(".instructor-layout-template").removeClass("selected-template"),r(this).addClass("selected-template")}),r("#preview-action a.preview").click(function(t){var e=r(this).attr("href");e&&(t.preventDefault(),window.open(e,"_blank"))})})})()})();
1
+ (()=>{var o={623:()=>{function g(t){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var a,n,i=[],r=!0,s=!1;try{for(o=o.call(t);!(r=(a=o.next()).done)&&(i.push(a.value),!e||i.length!==e);r=!0);}catch(t){s=!0,n=t}finally{try{r||null==o.return||o.return()}finally{if(s)throw n}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return a(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(o="Object"===o&&t.constructor?t.constructor.name:o)||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?a(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,a=new Array(e);o<e;o++)a[o]=t[o];return a}window.tutor_get_nonce_data=function(t){var e=window._tutorobject||{},o=e.nonce_key||"",e=e[o]||"";return t?{key:o,value:e}:(t=e,(e=o)in(o={})?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o)},window.tutor_popup=function(r,o,a){var s,u=this;return this.popup_wrapper=function(t){var e=""===o?"":'<img class="tutor-pop-icon" src="'+window._tutorobject.tutor_url+"assets/images/"+o+'.svg"/>';return"<"+t+' class="tutor-component-popup-container"> <div class="tutor-component-popup-'+a+'"> <div class="tutor-component-content-container">'+e+'</div> <div class="tutor-component-button-container"></div> </div> </'+t+">"},this.popup=function(o){var t=o.title?"<h3>"+o.title+"</h3>":"",e=o.description?"<p>"+o.description+"</p>":"",a=Object.keys(o.buttons||{}).map(function(t){var e=o.buttons[t],t=e.id?"tutor-popup-"+e.id:"";return r('<button id="'+t+'" class="tutor-button tutor-button-'+e.class+'">'+e.title+"</button>").click(e.callback)}),n=(s=r(u.popup_wrapper(o.wrapper_tag||"div"))).find(".tutor-component-content-container");n.append(t),o.after_title&&n.append(o.after_title),n.append(e),o.after_description&&n.append(o.after_description),s.click(function(){r(this).remove()}).children().click(function(t){t.stopPropagation()});for(var i=0;i<a.length;i++)s.find(".tutor-component-button-container").append(a[i]);return r("body").append(s),s},{popup:this.popup}},window.tutorDotLoader=function(t){return' \n <div class="tutor-dot-loader '.concat(t||"",'">\n <span class="dot dot-1"></span>\n <span class="dot dot-2"></span>\n <span class="dot dot-3"></span>\n <span class="dot dot-4"></span>\n </div>')},window.tutor_date_picker=function(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",$(".tutor_date_picker").datepicker({dateFormat:t}))},jQuery(document).ready(function(d){"use strict";var t=wp.i18n,n=t.__;t._x,t._n,t._nx;function o(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",d(".tutor_date_picker").datepicker({dateFormat:t})),d(document).on("keydown",".hasDatepicker, .tutor_date_picker",function(t){8!==t.keyCode&&t.preventDefault()})}function s(){d(".tutor-field-slider").each(function(){var t=d(this),o=t.closest(".tutor-field-type-slider").find('input[type="hidden"]'),a=t.closest(".tutor-field-type-slider").find(".tutor-field-type-slider-value"),e=parseFloat(t.closest(".tutor-field-type-slider").attr("data-min")),n=parseFloat(t.closest(".tutor-field-type-slider").attr("data-max"));t.slider({range:"max",min:e,max:n,value:o.val(),slide:function(t,e){a.text(e.value),o.val(e.value)}})})}function e(t){var e=t.element;return d('<span><i class="tutor-icon-'+d(e).data("icon")+'"></i> '+t.text+"</span>")}function i(){jQuery().sortable&&(d(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){a()}}),d(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){a()}}))}function a(){var i={};d(".tutor-topics-wrap").each(function(t,e){var o=d(this),a=parseInt(o.attr("id").match(/\d+/)[0],10),n={};o.find(".course-content-item").each(function(t,e){var o=d(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);n[t]=o}),i[t]={topic_id:a,lesson_ids:n}}),d("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}function r(){return{init:function(){d(document).on("click",".tutor-select .tutor-select-option",function(t){t.preventDefault();var e=d(this);"true"!==e.attr("data-is-pro")?(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")).trigger("change"),e.closest(".tutor-select-options").hide(),disableAddoption()):alert("Tutor Pro version required")}),d(document).on("click",".tutor-select .select-header",function(t){t.preventDefault(),d(this).closest(".tutor-select").find(".tutor-select-options").slideToggle()}),this.setValue(),this.hideOnOutSideClick()},setValue:function(){d(".tutor-select").each(function(){var t=d(this).find(".tutor-select-option");t.length&&t.each(function(){var t,e=d(this);"selected"===e.attr("data-selected")&&(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")))})})},hideOnOutSideClick:function(){d(document).mouseup(function(t){var e=d(".tutor-select-options");d(t.target).closest(".select-header").length||e.is(t.target)||0!==e.has(t.target).length||e.hide()})},reInit:function(){this.setValue()}}}o(),s(),jQuery().select2&&d(".videosource_select2").select2({width:"100%",templateSelection:e,templateResult:e,allowHtml:!0}),d(document).on("change",".tutor_lesson_video_source",function(t){var e=d(this),o=d(this).val();o?d(".video-metabox-source-input-wrap").show():d(".video-metabox-source-input-wrap").hide(),e.closest(".tutor-option-field").find(".video-metabox-source-item").hide(),e.closest(".tutor-option-field").find(".video_source_wrap_"+o).show()}),d(document).on("click",".tutor-course-thumbnail-upload-btn",function(t){t.preventDefault();var e,o=d(this);e||(e=wp.media({title:n("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:n("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t.url),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),d(".tutor-course-thumbnail-delete-btn").show()}),e.open()}),d(document).on("click",".tutor-course-thumbnail-delete-btn",function(t){t.preventDefault();var e=d(this),t=e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("data-placeholder-src");e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t),e.closest(".tutor-thumbnail-wrap").find("input").val(""),d(".tutor-course-thumbnail-delete-btn").hide()}),d(document).on("click",".create_new_topic_btn",function(t){t.preventDefault(),d(".tutor-metabox-add-topics").slideToggle()}),d(document).on("click","#tutor-add-topic-btn",function(t){t.preventDefault();var e=d(this),t=e.closest(".tutor-metabox-add-topics").find("input, textarea").serializeObject();t.action="tutor_add_course_topic",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(d("#tutor-course-content-wrap").html(t.data.course_contents),e.closest(".tutor-metabox-add-topics").find('input[type!="hidden"], textarea').each(function(){d(this).val("")}),e.closest(".tutor-metabox-add-topics").slideUp(),i())},complete:function(){e.removeClass("tutor-updating-message")}})}),d(".tutor-zoom-meeting-modal-wrap").on("submit",".tutor-meeting-modal-form",function(t){t.preventDefault();var e=d(this),o=e.serializeObject(),t=Intl.DateTimeFormat().resolvedOptions().timeZone;o.timezone=t;var a=e.find('button[type="submit"]');d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){a.addClass("tutor-updating-message")},success:function(t){t.success?tutor_toast(n("Success","tutor"),a.data("toast_success_message"),"success"):tutor_toast(n("Update Error","tutor"),n("Meeting Update Failed","tutor"),"error"),t.course_contents?(d(t.selector).html(t.course_contents),"#tutor-course-content-wrap"==t.selector&&i(),d(".tutor-zoom-meeting-modal-wrap").removeClass("show")):location.reload()},complete:function(){a.removeClass("tutor-updating-message")}})}),d(document).on("change keyup",".course-edit-topic-title-input",function(t){t.preventDefault(),d(this).closest(".tutor-topics-top").find(".topic-inner-title").html(d(this).val())}),d(document).on("click",".topic-edit-icon",function(t){t.preventDefault(),d(this).closest(".tutor-topics-top").find(".tutor-topics-edit-form").slideToggle()}),d(document).on("click",".tutor-topics-edit-button",function(t){t.preventDefault();var e=d(this),o=e.closest(".tutor-topics-wrap"),t=parseInt(o.attr("id").match(/\d+/)[0],10),a=e.closest(".tutor-topics-wrap").find('[name="topic_title"]').val(),o=e.closest(".tutor-topics-wrap").find('[name="topic_summery"]').val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_title:a,topic_summery:o,topic_id:t,action:"tutor_update_topic"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".tutor-topics-wrap").find("span.topic-inner-title").text(a),e.closest(".tutor-topics-wrap").find(".tutor-topics-edit-form").slideUp())},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".open-tutor-lesson-modal",function(t){t.preventDefault();var e=d(this),o=e.attr("data-lesson-id"),a=e.attr("data-topic-id"),n=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:o,topic_id:a,course_id:n,action:"tutor_load_edit_lesson_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),d(".tutor-lesson-modal-wrap").attr({"data-lesson-id":o,"data-topic-id":a}).addClass("show");t=(t=tinyMCEPreInit.mceInit.tutor_editor_config)||tinyMCEPreInit.mceInit.course_description;tinymce.init(t),tinymce.execCommand("mceRemoveEditor",!1,"tutor_lesson_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_lesson_modal_editor"),d(document).trigger("lesson_modal_loaded",{lesson_id:o,topic_id:a,course_id:n})},complete:function(){quicktags({id:"tutor_lesson_modal_editor"}),e.removeClass("tutor-updating-message")}})}),d(document).on("click",".lesson_thumbnail_upload_btn",function(t){t.preventDefault();var e,o=d(this);e||(e=wp.media({title:n("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:n("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html('<img src="'+t.url+'" alt="" /><a href="javascript:;" class="tutor-lesson-thumbnail-delete-btn"><i class="tutor-icon-line-cross"></i></a>'),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),d(".tutor-lesson-thumbnail-delete-btn").show()}),e.open()}),d(document).on("click",".tutor-lesson-thumbnail-delete-btn",function(t){t.preventDefault();t=d(this);t.closest(".tutor-thumbnail-wrap").find("._lesson_thumbnail_id").val(""),t.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html(""),t.hide()}),d(document).on("click",".tutor-delete-lesson-btn",function(t){var e;t.preventDefault(),confirm(n("Are you sure?","tutor"))&&(t=(e=d(this)).attr("data-lesson-id"),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:t,action:"tutor_delete_lesson_by_id"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&e.closest(".course-content-item").remove()},complete:function(){e.removeClass("tutor-updating-message")}}))}),d(document).on("click",".topic-delete-btn a",function(t){d(this).attr("data-topic-id");confirm(n("Are you sure to delete?","tutor"))||t.preventDefault()}),d(document).on("click",".tutor-expand-all-topic",function(t){t.preventDefault(),d(".tutor-topics-body").slideDown(),d(".expand-collapse-wrap i").removeClass("tutor-icon-light-down").addClass("tutor-icon-light-up")}),d(document).on("click",".tutor-collapse-all-topic",function(t){t.preventDefault(),d(".tutor-topics-body").slideUp(),d(".expand-collapse-wrap i").removeClass("tutor-icon-light-up").addClass("tutor-icon-light-down")}),d(document).on("click",".topic-inner-title, .expand-collapse-wrap",function(t){t.preventDefault();t=d(this);t.closest(".tutor-topics-wrap").find(".tutor-topics-body").slideToggle(),t.closest(".tutor-topics-wrap").find(".expand-collapse-wrap i").toggleClass("tutor-icon-light-down tutor-icon-light-up")}),d(document).on("click",".quiz-modal-btn-first-step",function(t){t.preventDefault();var e,o,a,n=d(this),i=d('[name="quiz_title"]'),r=i.val(),t=d('[name="quiz_description"]').val();r?(i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html(""),e=d("#post_ID").val(),o=n.closest(".tutor-modal-wrap").attr("quiz-for-post-id"),d("#tutor_quiz_builder_quiz_id").length?(a=d("#tutor_quiz_builder_quiz_id").val(),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,quiz_id:a,topic_id:o,action:"tutor_quiz_builder_quiz_update"},beforeSend:function(){n.addClass("tutor-updating-message")},success:function(t){d("#tutor-quiz-"+a).html(t.data.output_quiz_row),d('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s()},complete:function(){n.removeClass("tutor-updating-message")}})):d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,course_id:e,topic_id:o,action:"tutor_create_quiz_and_load_modal"},beforeSend:function(){n.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),d("#tutor-topics-"+o+" .tutor-lessons").append(t.data.output_quiz_row),d('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s(),d(document).trigger("quiz_modal_loaded",{topic_id:o,course_id:e})},complete:function(){n.removeClass("tutor-updating-message")}})):i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html("Please enter quiz title")}),d(document).on("click",".open-tutor-quiz-modal",function(t){t.preventDefault();var e=d(this),o=e.attr("data-quiz-id"),a=e.attr("data-topic-id");null==a&&(a=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id"));var n=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:o,topic_id:a,course_id:n,action:"tutor_load_edit_quiz_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),d(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id",o).attr("quiz-for-post-id",a).addClass("show"),e.attr("data-back-to-tab")&&(t=e.attr("data-back-to-tab"),d('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")),d(document).trigger("quiz_modal_loaded",{quiz_id:o,topic_id:a,course_id:n}),s(),jQuery().sortable&&d(".quiz-builder-questions-wrap").sortable({handle:".question-sorting",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var a;a={},d(".quiz-builder-question-wrap").each(function(t,e){var o=d(this),o=parseInt(o.attr("data-question-id"),10);a[t]=o}),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_question_ids:a,action:"tutor_quiz_question_sorting"}})}})},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".quiz-modal-settings-save-btn",function(t){t.preventDefault();var e=d(this),o=d(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id"),a=d("#current_topic_id_for_quiz").val(),t=d("#quiz-builder-tab-settings :input, #quiz-builder-tab-advanced-options :input").serializeObject();t.topic_id=a,t.quiz_id=o,t.action="tutor_quiz_modal_update_settings",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&d("#tutor-course-content-wrap").html(t.data.course_contents),t.success?tutor_toast(n("Success","tutor"),e.data("toast_success_message"),"success"):tutor_toast(n("Update Error","tutor"),n("Quiz Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message"),"modal_close"===e.attr("data-action")&&d(".tutor-modal-wrap").removeClass("show")}})}),d(document).on("click",".quiz-modal-question-save-btn",function(t){t.preventDefault();var e=d(this),o=d(".quiz_question_form :input").serializeObject();o.action="tutor_quiz_modal_update_question";t=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id");o.topic_id=t,d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?e.closest(".tutor-quiz-builder-modal-contents").find(".open-tutor-quiz-modal").trigger("click"):void 0!==t.data&&d("#quiz_validation_msg_wrap").html(t.data.validation_msg)},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".modal-close-btn",function(t){t.preventDefault(),d(".tutor-modal-wrap").removeClass("show")}),d(document).on("keyup",function(t){27===t.keyCode&&d(".tutor-modal-wrap").removeClass("show")}),d(document).on("click",".tutor-add-quiz-btn",function(t){t.preventDefault();var e=d(this),o=d(this).closest(".tutor_add_quiz_wrap").attr("data-add-quiz-under"),t=d(this).data("topic-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_for_post_id:o,current_topic_id:t,action:"tutor_load_quiz_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),d(".tutor-quiz-builder-modal-wrap").attr("quiz-for-post-id",o).addClass("show")},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-modal-tab-item",function(t){t.preventDefault();var e=d(this),o=d('[name="quiz_title"]');o.val()?(o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html(""),t=e.attr("href"),d(".quiz-builder-tab-container").hide(),d(t).show(),d("a.tutor-quiz-modal-tab-item").removeClass("active"),e.addClass("active")):o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html('<p class="quiz-form-warning">Please save the quiz first</p>')}),d(document).on("click",".quiz-modal-btn-next, .quiz-modal-btn-back",function(t){t.preventDefault();t=d(this).attr("href");d('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")}),d(document).on("click",".quiz-modal-tab-navigation-btn.quiz-modal-btn-cancel",function(t){t.preventDefault(),d(".tutor-modal-wrap").removeClass("show")}),d(document).on("click",".tutor-quiz-open-question-form",function(t){t.preventDefault();var e=d(this),o=d("#tutor_quiz_builder_quiz_id").val(),a=d("#post_ID").val(),t=e.attr("data-question-id"),a={quiz_id:o,course_id:a,action:"tutor_quiz_builder_get_question_form"};t&&(a.question_id=t),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d(".tutor-quiz-builder-modal-contents").html(t.data.output),r().reInit(),jQuery().sortable&&d("#tutor_quiz_question_answers").sortable({handle:".tutor-quiz-answer-sort-icon",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var a;a={},d(".tutor-quiz-answer-wrap").each(function(t,e){var o=d(this),o=parseInt(o.attr("data-answer-id"),10);a[t]=o}),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_answer_ids:a,action:"tutor_quiz_answer_sorting"}})}}),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-question-trash",function(t){t.preventDefault();var e=d(this),t=e.attr("data-question-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:t,action:"tutor_quiz_builder_question_delete"},beforeSend:function(){e.closest(".quiz-builder-question-wrap").remove()}})}),d(document).on("click",".add_question_answers_option:not(.disabled)",function(t){t.preventDefault();var e=d(this),o=e.attr("data-question-id"),t=d(".quiz_question_form :input").serializeObject();t.question_id=o,t.action="tutor_quiz_add_question_answers",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answer_form").html(t.data.output),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-answer-edit a",function(t){t.preventDefault();var e=d(this),t=e.closest(".tutor-quiz-answer-wrap").attr("data-answer-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_edit_question_answer"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answer_form").html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click","#quiz-answer-save-btn",function(t){t.preventDefault();var e=d(this),t=d(".quiz_question_form :input").serializeObject();t.action="tutor_save_quiz_answer_options",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){d("#quiz_validation_msg_wrap").html(""),e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click","#quiz-answer-edit-btn",function(t){t.preventDefault();var e=d(this),t=d(".quiz_question_form :input").serializeObject();t.action="tutor_update_quiz_answer_options",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){d("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("change",".tutor-quiz-answers-mark-correct-wrap input",function(t){t.preventDefault();var e=d(this),o=e.val(),t=1;e.prop("checked")||(t=0),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:o,inputValue:t,action:"tutor_mark_answer_as_correct"}})}),d(document).on("refresh","#tutor_quiz_question_answers",function(t){t.preventDefault();var e=d(this),o=e.attr("data-question-id"),t=d(".tutor_select_value_holder").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:o,question_type:t,action:"tutor_quiz_builder_get_answers_by_question"},beforeSend:function(){e.addClass("tutor-updating-message"),d("#tutor_quiz_question_answer_form").html("")},success:function(t){t.success&&e.html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-quiz-answer-trash-wrap a.answer-trash-btn",function(t){t.preventDefault();var e=d(this),t=e.attr("data-answer-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_builder_delete_answer"},beforeSend:function(){e.closest(".tutor-quiz-answer-wrap").remove()}})}),d(document).on("click",".tutor-delete-quiz-btn",function(t){var e;t.preventDefault(),confirm(n("Are you sure?","tutor"))&&(t=(e=d(this)).attr("data-quiz-id"),d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:t,action:"tutor_delete_quiz_by_id"},beforeSend:function(){e.closest(".course-content-item").remove()}}))}),r().init(),d(document).on("change","input.tutor_select_value_holder",function(t){d(this);d(".add_question_answers_option").trigger("click"),d("#tutor_quiz_question_answers").trigger("refresh")}),d(document).on("click",".tutor-media-upload-btn",function(t){t.preventDefault();var e,o=d(this);e||(e=wp.media({title:n("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:n("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.html('<img src="'+t.url+'" alt="" />'),o.closest(".tutor-media-upload-wrap").find("input").val(t.id)}),e.open()}),d(document).on("click",".tutor-media-upload-trash",function(t){t.preventDefault();t=d(this);t.closest(".tutor-media-upload-wrap").find(".tutor-media-upload-btn").html('<i class="tutor-icon-image1"></i>'),t.closest(".tutor-media-upload-wrap").find("input").val("")});var u,c=(u=0,function(t,e){clearTimeout(u),u=setTimeout(t,e)});d(document).on("click",".tutor-add-instructor-btn",function(t){t.preventDefault();var e=d(this),t=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:t,action:"tutor_load_instructors_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(d(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),d(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("change keyup",".tutor-instructors-modal-wrap .tutor-modal-search-input",function(t){t.preventDefault();var o=d(this),a=d(".tutor-modal-wrap");c(function(){var t=o.val(),e=d("#post_ID").val();d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:e,search_terms:t,action:"tutor_load_instructors_modal"},beforeSend:function(){a.addClass("loading")},success:function(t){t.success&&(d(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),d(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){a.removeClass("loading")}})},1e3)}),d(document).on("click",".add_instructor_to_course_btn",function(t){t.preventDefault();var e=d(this),o=d(".tutor-modal-wrap"),t=d("#post_ID").val(),o=o.find("input").serializeObject();o.course_id=t,o.action="tutor_add_instructors_to_course",d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(d(".tutor-course-available-instructors").html(t.data.output),d(".tutor-modal-wrap").removeClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),d(document).on("click",".tutor-instructor-delete-btn",function(t){t.preventDefault();var e=d(this),o=d("#post_ID").val(),t=e.closest(".added-instructor-item").attr("data-instructor-id");d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:o,instructor_id:t,action:"detach_instructor_from_course"},success:function(t){t.success&&e.closest(".added-instructor-item").remove()}})}),d(document).on("click",".settings-tabs-navs li",function(t){t.preventDefault();var e=d(this),o=e.find("a").attr("data-target"),t=e.find("a").attr("href");e.addClass("active").siblings("li.active").removeClass("active"),d(".settings-tab-wrap").removeClass("active").hide(),d(o).addClass("active").show(),window.history.pushState({},"",t)}),d(document).on("lesson_modal_loaded quiz_modal_loaded assignment_modal_loaded",function(t,e){jQuery().select2&&d(".select2_multiselect").select2({dropdownCssClass:"increasezindex"}),o()}),d(document).on("lesson_modal_loaded",function(t,e){d(".tutor-lesson-modal-wrap .modal-title h1").html(n("Lesson","tutor"))}),d(document).on("assignment_modal_loaded",function(t,e){d(".tutor-lesson-modal-wrap .modal-title h1").html(n("Assignment","tutor"))}),d(document).on("keyup change",".tutor-number-validation",function(t){var e=d(this),o=parseInt(e.val()),a=parseInt(e.attr("data-min")),n=parseInt(e.attr("data-max"));o<a?e.val(a):n<o&&e.val(n)}),d(document).on("click",".tutor-instructor-feedback",function(t){t.preventDefault();var e=d(this);d.ajax({url:window.ajaxurl||_tutorobject.ajaxurl,type:"POST",data:{attempts_id:e.data("attemptid"),feedback:d(".tutor-instructor-feedback-content").val(),action:"tutor_instructor_feedback"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".course-content-item").remove(),tutor_toast(n("Success","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})});var l=d(".tutor-announcement-add-new"),m=d(".tutor-announcement-edit"),p=d(".tutor-announcement-delete"),_=d(".tutor-announcement-details"),t=d(".tutor-announcement-close-btn"),f=d(".tutor-accouncement-create-modal"),h=d(".tutor-accouncement-update-modal"),v=d(".tutor-accouncement-details-modal");function w(t,e){var o=new URL(window.location.href),a=o.searchParams;return a.set(t,e),o.search=a.toString(),_tutorobject.is_admin?a.set("paged",1):a.set("current_page",1),o.search=a.toString(),o.toString()}d(l).click(function(){f.addClass("show"),d("#tutor-annoucement-backend-create-modal").addClass("show")}),d(_).click(function(){var t=d(this).attr("announcement-date"),e=d(this).attr("announcement-id"),o=d(this).attr("course-id"),a=d(this).attr("course-name"),n=d(this).attr("announcement-title"),i=d(this).attr("announcement-summary");d(".tutor-announcement-detail-content").html("<h3>".concat(n,"</h3><p>").concat(i,"</p>")),d(".tutor-announcement-detail-course-info p").html("".concat(a)),d(".tutor-announcement-detail-date-info p").html("".concat(t)),d("#tutor-announcement-edit-from-detail").attr("announcement-id",e),d("#tutor-announcement-edit-from-detail").attr("course-id",o),d("#tutor-announcement-edit-from-detail").attr("announcement-title",n),d("#tutor-announcement-edit-from-detail").attr("announcement-summary",i),d("#tutor-announcement-delete-from-detail").attr("announcement-id",e),v.addClass("show")}),d(m).click(function(){v&&v.removeClass("show");var t=d(this).attr("announcement-id"),e=d(this).attr("course-id"),o=d(this).attr("announcement-title"),a=d(this).attr("announcement-summary");d("#tutor-announcement-course-id").val(e),d("#announcement_id").val(t),d("#tutor-announcement-title").val(o),d("#tutor-announcement-summary").val(a),h.addClass("show")}),d(t).click(function(){f.removeClass("show"),h.removeClass("show"),v.removeClass("show"),d("#tutor-annoucement-backend-create-modal").removeClass("show")}),d(".tutor-announcements-form").on("submit",function(t){t.preventDefault();var e=d(this).find('button[type="submit"]'),t=d(".tutor-announcements-form").serialize()+"&action=tutor_announcement_create&action_type=create";d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(d(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){d(".tutor-announcements-create-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var a=y(o[e],2),a=(a[0],a[1]);d(".tutor-announcements-create-alert .tutor-alert").append("<li>".concat(a,"</li>"))}}"fail"==t.status&&d(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(t){console.log(t)}})}),d(".tutor-announcements-update-form").on("submit",function(t){t.preventDefault();var e=d(this).find('button[type="submit"]'),t=d(".tutor-announcements-update-form").serialize()+"&action=tutor_announcement_create&action_type=update";d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(d(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){d(".tutor-announcements-update-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var a=y(o[e],2),a=(a[0],a[1]);d(".tutor-announcements-update-alert > .tutor-alert").append("<li>".concat(a,"</li>"))}}"fail"==t.status&&d(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(){}})}),d(p).click(function(){var t=d(this).attr("announcement-id"),e=d("#tutor-announcement-tr-"+t);confirm("Do you want to delete?")&&d.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_announcement_delete",announcement_id:t},beforeSend:function(){},success:function(t){e.remove(),v.length&&v.removeClass("show"),"fail"==t.status&&console.log(t.message)},error:function(){}})}),d(".tutor-announcement-course-sorting").on("change",function(t){window.location=w("course-id",d(this).val())}),d(".tutor-announcement-order-sorting").on("change",function(t){window.location=w("order",d(this).val())}),d(".tutor-announcement-date-sorting").on("change",function(t){window.location=w("date",d(this).val())}),d(".tutor-announcement-search-sorting").on("click",function(t){window.location=w("search",d(".tutor-announcement-search-field").val())}),d(document).click(function(){d(".tutor-dropdown").removeClass("show")}),d(".tutor-dropdown").click(function(t){t.stopPropagation(),d(".tutor-dropdown").hasClass("show")&&d(".tutor-dropdown").removeClass("show"),d(this).addClass("show")});var b,p=".video_source_wrap_external_url input, .video_source_wrap_vimeo input, .video_source_wrap_youtube input, .video_source_wrap_html5, .video_source_upload_wrap_html5";d("body").on("paste",p,function(t){t.stopImmediatePropagation();var r=d(this).closest(".lesson-modal-form-wrap").find(".tutor-option-field-video-duration"),e=r.find("label"),o=d(this).hasClass("video_source_wrap_html5")||d(this).hasClass("video_source_upload_wrap_html5"),a=d(this).data("autofill_url");d(this).data("autofill_url",null);function n(t){t?0==e.find("img").length&&e.append(' <img src="'+window._tutorobject.loading_icon_url+'" style="display:inline-block"/>'):e.find("img").remove()}function i(t){for(var e=Math.floor(t/3600),o=Math.floor((t-3600*e)/60),t=Math.round(t-3600*e-60*o),a=[e=e<10?"0"+e:e,o=o<10?"0"+o:o,t=t<10?"0"+t:t],n=r.find("input"),i=0;i<3;i++)n.eq(i).val(a[i])}var s,u,c,t=o?d(this).find("span").data("video_url"):a||t.originalEvent.clipboardData.getData("text");o||d(this).parent().hasClass("video_source_wrap_external_url")?((s=document.createElement("video")).addEventListener("loadedmetadata",function(){i(s.duration),n(!1)}),n(!0),s.src=t):d(this).parent().hasClass("video_source_wrap_vimeo")?(u=(c=t.match(/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/))?c[5]:null)&&(n(!0),d.getJSON("http://vimeo.com/api/v2/video/"+u+"/json",function(t){Array.isArray(t)&&t[0]&&void 0!==t[0].duration&&i(t[0].duration),n(!1)})):d(this).parent().hasClass("video_source_wrap_youtube")&&(u=!(!(c=t.match(/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/))||11!=c[7].length)&&c[7],c=d(this).data("youtube_api_key"),u&&c&&(c="https://www.googleapis.com/youtube/v3/videos?id="+u+"&key="+c+"&part=contentDetails",n(!0),d.getJSON(c,function(t){"object"==g(t)&&t.items&&t.items[0]&&t.items[0].contentDetails&&t.items[0].contentDetails.duration&&i(function(t){t=(t=t.match(/PT(\d+H)?(\d+M)?(\d+S)?/)).slice(1).map(function(t){if(null!=t)return t.replace(/\D/,"")});return 3600*(parseInt(t[0])||0)+60*(parseInt(t[1])||0)+(parseInt(t[2])||0)}(t.items[0].contentDetails.duration)),n(!1)})))}).on("input",p,function(){b&&clearTimeout(b);var e=d(this);b=setTimeout(function(){var t=(t=e.val())?t.trim():"";console.log("Trigger",t),t&&e.data("autofill_url",t).trigger("paste")},700)}),d(".tutor-form-submit-through-ajax").submit(function(t){t.preventDefault();var e=d(this),o=d(this).attr("action")||window.location.href,a=d(this).attr("method")||"GET",t=d(this).serializeObject();e.find("button").addClass("tutor-updating-message"),d.ajax({url:o,type:a,data:t,success:function(){tutor_toast(n("Success","tutor"),e.data("toast_success_message"),"success")},complete:function(){e.find("button").removeClass("tutor-updating-message")}})}),d.ajaxSetup({data:tutor_get_nonce_data()})}),jQuery.fn.serializeObject=function(){var t={},e=this.serializeArray();return jQuery.each(e,function(){t[this.name]?(t[this.name].push||(t[this.name]=[t[this.name]]),t[this.name].push(this.value||"")):t[this.name]=this.value||""}),t},window.tutor_toast=function(t,e,o){var a=((window._tutorobject||{}).tutor_url||"")+"assets/images/";jQuery(".tutor-toast-parent").length||jQuery("body").append('<div class="tutor-toast-parent"></div>');var n=jQuery(' <div> <div> <img src="'+{success:a+"icon-check.svg",error:a+"icon-cross.svg"}[o]+'"/> </div> <div> <div> <b>'+t+"</b> <span>"+e+'</span> </div> </div> <div> <i class="tutor-toast-close tutor-icon-line-cross"></i> </div> </div>');n.find(".tutor-toast-close").click(function(){n.remove()}),jQuery(".tutor-toast-parent").append(n),setTimeout(function(){n&&n.fadeOut("fast",function(){jQuery(this).remove()})},5e3)},window.disableAddoption=function(){function t(t){t.classList.contains("disabled")||t.classList.add("disabled")}function e(t){t.classList.contains("disabled")&&t.classList.remove("disabled")}var o=document.querySelector(".tutor_select_value_holder").value,a=document.getElementById("tutor_quiz_question_answers"),n=document.getElementById("tutor_quiz_question_answer_form"),i=document.querySelector(".add_question_answers_option");("open_ended"===o||"short_answer"===o||("true_false"===o||"fill_in_the_blank"===o)&&(n.hasChildNodes()||a.hasChildNodes())?t:e)(i)}},896:()=>{window.jQuery(document).ready(function(o){var a=wp.i18n.__;o(document).on("click",".tutor-copy-text",function(t){t.stopImmediatePropagation(),t.preventDefault();var e=o(this).data("text"),t=o("<input>");o("body").append(t),t.val(e).select(),document.execCommand("copy"),t.remove(),tutor_toast(a("Copied!","tutor"),e,"success")})})}},a={};function i(t){var e=a[t];if(void 0!==e)return e.exports;e=a[t]={exports:{}};return o[t](e,e.exports,i),e.exports}(()=>{"use strict";i(896),i(623);function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}jQuery(document).ready(function(r){var t=wp.i18n,i=t.__,e=(t._x,t._n,t._nx,i("Search students","tutor"));function a(){jQuery().sortable&&(r(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){o()}}),r(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){o()}}))}function o(){var i={};r(".tutor-topics-wrap").each(function(t,e){var o=r(this),a=parseInt(o.attr("id").match(/\d+/)[0],10),n={};o.find(".course-content-item").each(function(t,e){var o=r(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);n[t]=o}),i[t]={topic_id:a,lesson_ids:n}}),r("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}jQuery().wpColorPicker&&r(".tutor_colorpicker").wpColorPicker(),jQuery().select2&&r(".tutor_select2").select2(),r(".tutor-option-nav-tabs li a").click(function(t){t.preventDefault();t=r(this).attr("data-tab");r(".option-nav-item").removeClass("current"),r(this).closest("li").addClass("current"),r(".tutor-option-nav-page").hide(),r(t).addClass("current-page").show(),window.history.pushState("obj","",r(this).attr("href"))}),r("#save_tutor_option").click(function(t){t.preventDefault(),r(this).closest("form").submit()}),r("#tutor-option-form").submit(function(t){t.preventDefault();var e=r(this),t=e.serializeObject();r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".button").addClass("tutor-updating-message")},success:function(t){t.success?tutor_toast(i("Saved","tutor"),e.data("toast_success_message"),"success"):tutor_toast(i("Request Error","tutor"),i("Could not save","tutor"),"error")},complete:function(){e.find(".button").removeClass("tutor-updating-message")}})}),r(document).on("click",".withdraw-method-nav li a",function(t){t.preventDefault();t=r(this).attr("data-target-id");r(".withdraw-method-form-wrap").hide(),r("#"+t).show()}),a(),r(document).on("click",".update_lesson_modal_btn",function(t){t.preventDefault();var e=r(this),o="tutor_lesson_modal_editor",t=tinyMCE.get(o),t=t?t.getContent():r("#"+o).val();console.log(t);o=r(this).closest("form").serializeObject();o.lesson_content=t,r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(r("#tutor-course-content-wrap").html(t.data.course_contents),a(),r(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(i("Lesson Updated","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})}),r(document).on("change",".tutor_lesson_video_source",function(t){var e=r(this).val();r('[class^="video_source_wrap"]').hide(),r(".video_source_wrap_"+e).show(),"html5"===e?r(".tutor-video-poster-field").show():r(".tutor-video-poster-field").hide()}),r(document).on("click",".video_source_wrap_html5 .video_upload_btn",function(t){t.preventDefault();var e,o=r(this);e||(e=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},library:{type:"video"},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".video_source_wrap_html5").find("span.video_media_id").data("video_url",t.url).text(t.id).trigger("paste").closest("p").show(),o.closest(".video_source_wrap_html5").find("input.input_source_video_id").val(t.id)}),e.open()}),r(document).on("click","a.tutor-delete-attachment",function(t){t.preventDefault(),r(this).closest(".tutor-added-attachment").remove()}),r(document).on("click",".tutorUploadAttachmentBtn",function(t){t.preventDefault();var a,n=r(this);a||(a=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!0})).on("select",function(){var t=a.state().get("selection").toJSON();if(t.length)for(var e=0;e<t.length;e++){var o=t[e],o='<div class="tutor-added-attachment"><i class="tutor-icon-archive"></i> <a href="javascript:;" class="tutor-delete-attachment tutor-icon-line-cross"></a> <span> <a href="'+o.url+'">'+o.filename+'</a> </span><input type="hidden" name="tutor_attachments[]" value="'+o.id+'"></div>';n.closest(".tutor-lesson-attachments-metabox").find(".tutor-added-attachments-wrap").append(o)}}),a.open()}),_tutorobject.open_tutor_admin_menu&&((t=r("#adminmenu")).find('[href="admin.php?page=tutor"]').closest("li.wp-has-submenu").addClass("wp-has-current-submenu"),t.find('[href="admin.php?page=tutor"]').closest("li.wp-has-submenu").find("a.wp-has-submenu").removeClass("wp-has-current-submenu").addClass("wp-has-current-submenu")),r(document).on("click",".tutor-option-media-upload-btn",function(t){t.preventDefault();var e,o=r(this);e||(e=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".option-media-wrap").find(".option-media-preview").html('<img src="'+t.url+'" alt="" />'),o.closest(".option-media-wrap").find("input").val(t.id),o.closest(".option-media-wrap").find(".tutor-media-option-trash-btn").show()}),e.open()}),r(document).on("click",".tutor-media-option-trash-btn",function(t){t.preventDefault();t=r(this);t.closest(".option-media-wrap").find("img").remove(),t.closest(".option-media-wrap").find("input").val(""),t.closest(".option-media-wrap").find(".tutor-media-option-trash-btn").hide()}),r(document).on("change",".tutor_addons_list_item",function(t){var e=r(this),o=e.prop("checked")?1:0,e=e.attr("name");r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{isEnable:o,addonFieldName:e,action:"addon_enable_disable"},success:function(t){t.success}})}),r(document).on("submit","#new-instructor-form",function(t){t.preventDefault();var o=r(this),t=o.serializeObject();t.action="tutor_add_instructor",r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,success:function(t){var a,e;t.success?(o.trigger("reset"),r("#form-response").html('<p class="tutor-status-approved-context">'+t.data.msg+"</p>")):(a="",(e=t.data.errors)&&Object.keys(e).length&&(r.each(t.data.errors,function(t,e){var o;(o=e)&&"object"===n(o)&&o.constructor===Object?r.each(e,function(t,e){a+='<p class="tutor-required-fields">'+e[0]+"</p>"}):a+='<p class="tutor-required-fields">'+e+"</p>"}),r("#form-response").html(a)))}})}),r(document).on("click","a.instructor-action",function(t){t.preventDefault();var e=r(this),o=e.attr("data-action"),a=e.attr("data-instructor-id"),t=e.attr("data-prompt-message");t&&!confirm(t)||((a={instructor_id:a,action_name:o,action:"instructor_approval_action"})[o=_tutorobject.nonce_key]=_tutorobject[o],r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:a,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){location.reload(!0)},complete:function(){e.removeClass("tutor-updating-message")}}))}),r(document).on("click",".tutor-create-assignments-btn",function(t){t.preventDefault();var e=r(this),o=r(this).attr("data-topic-id"),a=r("#post_ID").val();r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_id:o,course_id:a,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){r(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),r(".tutor-lesson-modal-wrap").attr("data-topic-id",o).addClass("show"),r(document).trigger("assignment_modal_loaded",{topic_id:o,course_id:a}),tinymce.init(tinyMCEPreInit.mceInit.tutor_editor_config),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),r(document).on("click",".open-tutor-assignment-modal",function(t){t.preventDefault();var e=r(this),o=e.attr("data-assignment-id"),a=e.attr("data-topic-id"),n=r("#post_ID").val();r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{assignment_id:o,topic_id:a,course_id:n,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){r(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),r(".tutor-lesson-modal-wrap").attr({"data-assignment-id":o,"data-topic-id":a}).addClass("show"),r(document).trigger("assignment_modal_loaded",{assignment_id:o,topic_id:a,course_id:n}),tinymce.init(tinyMCEPreInit.mceInit.tutor_editor_config),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),r(document).on("click",".update_assignment_modal_btn",function(t){t.preventDefault();var e=r(this),o="tutor_assignments_modal_editor",t=tinyMCE.get(o),t=t?t.getContent():r("#"+o).val();console.log(t);o=r(this).closest("form").serializeObject();o.assignment_content=t,r.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(r("#tutor-course-content-wrap").html(t.data.course_contents),a(),r(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(i("Assignment Updated","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})}),r(document).on("click",".add-assignment-attachments",function(t){t.preventDefault();var o,a=r(this);o||(o=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!1})).on("select",function(){var t=o.state().get("selection").first().toJSON(),e='<div class="tutor-individual-attachment-file"><p class="attachment-file-name">'+t.filename+'</p><input type="hidden" name="tutor_assignment_attachments[]" value="'+t.id+'"><a href="javascript:;" class="remove-assignment-attachment-a text-muted"> &times; Remove</a></div>';r("#assignment-attached-file").append(e),a.closest(".video_source_wrap_html5").find("input").val(t.id)}),o.open()}),r(document).on("click",".remove-assignment-attachment-a",function(t){t.preventDefault(),r(this).closest(".tutor-individual-attachment-file").remove()}),r(document).on("click",".tutor_video_poster_upload_btn",function(t){t.preventDefault();var e,o=r(this);e||(e=wp.media({title:i("Select or Upload Media Of Your Choice","tutor"),button:{text:i("Upload media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-video-poster-wrap").find(".video-poster-img").html('<img src="'+t.sizes.thumbnail.url+'" alt="" />'),o.closest(".tutor-video-poster-wrap").find("input").val(t.id)}),e.open()}),r(document).on("change","#tutor_pmpro_membership_model_select",function(t){t.preventDefault(),"category_wise_membership"===r(this).val()?r(".membership_course_categories").show():r(".membership_course_categories").hide()}),r(document).on("change","#tutor_pmpro_membership_model_select",function(t){t.preventDefault(),"category_wise_membership"===r(this).val()?r(".membership_course_categories").show():r(".membership_course_categories").hide()}),r(document).on("submit",".pmpro_admin form",function(t){var e=r(this);e.find('input[name="tutor_action"]').length&&("category_wise_membership"!=e.find('[name="tutor_pmpro_membership_model"]').val()||e.find(".membership_course_categories input:checked").length||confirm(i("Do you want to save without any category?","tutor"))||t.preventDefault())}),r("#select2_search_user_ajax").select2({allowClear:!0,minimumInputLength:1,placeholder:e,language:{inputTooShort:function(){return i("Please add 1 or more character","tutor")}},escapeMarkup:function(t){return t},ajax:{url:window._tutorobject.ajaxurl,type:"POST",dataType:"json",delay:1e3,data:function(t){return{term:t.term,action:"tutor_json_search_students"}},processResults:function(t){var o=[];return t&&r.each(t,function(t,e){o.push({id:t,text:e})}),{results:o}},cache:!0}}),r(document).on("click","table.enrolments .delete a",function(t){t.preventDefault();var e=r(this).attr("href"),t={title:i("Delete this enrolment","tutor"),description:i("All of the course data like quiz attempts, assignment, lesson <br/>progress will be deleted if you delete this student's enrollment.","tutor"),buttons:{reset:{title:i("Cancel","tutor"),class:"secondary",callback:function(){o.remove()}},keep:{title:i("Yes, Delete This","tutor"),class:"primary",callback:function(){window.location.replace(e)}}}},o=new window.tutor_popup(r,"icon-trash",40).popup(t)});e=r('#tutor-attach-product [name="tutor_course_price_type"]');0==e.length?r("#_tutor_is_course_public_meta_checkbox").show():e.change(function(){var t;r(this).prop("checked")&&(t="paid"==r(this).val()?"hide":"show",r("#_tutor_is_course_public_meta_checkbox")[t]())}).trigger("change"),r(document).on("click",".instructor-layout-template",function(){r(".instructor-layout-template").removeClass("selected-template"),r(this).addClass("selected-template")}),r("#preview-action a.preview").click(function(t){var e=r(this).attr("href");e&&(t.preventDefault(),window.open(e,"_blank"))})})})()})();
assets/js/tutor-front.js CHANGED
@@ -1 +1 @@
1
- (()=>{var o={623:()=>{function b(t){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var n,a,i=[],r=!0,s=!1;try{for(o=o.call(t);!(r=(n=o.next()).done)&&(i.push(n.value),!e||i.length!==e);r=!0);}catch(t){s=!0,a=t}finally{try{r||null==o.return||o.return()}finally{if(s)throw a}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(o="Object"===o&&t.constructor?t.constructor.name:o)||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,n=new Array(e);o<e;o++)n[o]=t[o];return n}window.tutor_get_nonce_data=function(t){var e=window._tutorobject||{},o=e.nonce_key||"",e=e[o]||"";return t?{key:o,value:e}:(t=e,(e=o)in(o={})?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o)},window.tutor_popup=function(r,o,n){var s,u=this;return this.popup_wrapper=function(t){var e=""===o?"":'<img class="tutor-pop-icon" src="'+window._tutorobject.tutor_url+"assets/images/"+o+'.svg"/>';return"<"+t+' class="tutor-component-popup-container"> <div class="tutor-component-popup-'+n+'"> <div class="tutor-component-content-container">'+e+'</div> <div class="tutor-component-button-container"></div> </div> </'+t+">"},this.popup=function(o){var t=o.title?"<h3>"+o.title+"</h3>":"",e=o.description?"<p>"+o.description+"</p>":"",n=Object.keys(o.buttons||{}).map(function(t){var e=o.buttons[t],t=e.id?"tutor-popup-"+e.id:"";return r('<button id="'+t+'" class="tutor-button tutor-button-'+e.class+'">'+e.title+"</button>").click(e.callback)}),a=(s=r(u.popup_wrapper(o.wrapper_tag||"div"))).find(".tutor-component-content-container");a.append(t),o.after_title&&a.append(o.after_title),a.append(e),o.after_description&&a.append(o.after_description),s.click(function(){r(this).remove()}).children().click(function(t){t.stopPropagation()});for(var i=0;i<n.length;i++)s.find(".tutor-component-button-container").append(n[i]);return r("body").append(s),s},{popup:this.popup}},window.tutorDotLoader=function(t){return' \n <div class="tutor-dot-loader '.concat(t||"",'">\n <span class="dot dot-1"></span>\n <span class="dot dot-2"></span>\n <span class="dot dot-3"></span>\n <span class="dot dot-4"></span>\n </div>')},window.tutor_date_picker=function(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",$(".tutor_date_picker").datepicker({dateFormat:t}))},jQuery(document).ready(function(l){"use strict";var t=wp.i18n,a=t.__;t._x,t._n,t._nx;function o(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",l(".tutor_date_picker").datepicker({dateFormat:t})),l(document).on("keydown",".hasDatepicker, .tutor_date_picker",function(t){8!==t.keyCode&&t.preventDefault()})}function s(){l(".tutor-field-slider").each(function(){var t=l(this),o=t.closest(".tutor-field-type-slider").find('input[type="hidden"]'),n=t.closest(".tutor-field-type-slider").find(".tutor-field-type-slider-value"),e=parseFloat(t.closest(".tutor-field-type-slider").attr("data-min")),a=parseFloat(t.closest(".tutor-field-type-slider").attr("data-max"));t.slider({range:"max",min:e,max:a,value:o.val(),slide:function(t,e){n.text(e.value),o.val(e.value)}})})}function e(t){var e=t.element;return l('<span><i class="tutor-icon-'+l(e).data("icon")+'"></i> '+t.text+"</span>")}function i(){jQuery().sortable&&(l(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){n()}}),l(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){n()}}))}function n(){var i={};l(".tutor-topics-wrap").each(function(t,e){var o=l(this),n=parseInt(o.attr("id").match(/\d+/)[0],10),a={};o.find(".course-content-item").each(function(t,e){var o=l(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);a[t]=o}),i[t]={topic_id:n,lesson_ids:a}}),l("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}function r(){return{init:function(){l(document).on("click",".tutor-select .tutor-select-option",function(t){t.preventDefault();var e=l(this);"true"!==e.attr("data-is-pro")?(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")).trigger("change"),e.closest(".tutor-select-options").hide(),disableAddoption()):alert("Tutor Pro version required")}),l(document).on("click",".tutor-select .select-header",function(t){t.preventDefault(),l(this).closest(".tutor-select").find(".tutor-select-options").slideToggle()}),this.setValue(),this.hideOnOutSideClick()},setValue:function(){l(".tutor-select").each(function(){var t=l(this).find(".tutor-select-option");t.length&&t.each(function(){var t,e=l(this);"selected"===e.attr("data-selected")&&(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")))})})},hideOnOutSideClick:function(){l(document).mouseup(function(t){var e=l(".tutor-select-options");l(t.target).closest(".select-header").length||e.is(t.target)||0!==e.has(t.target).length||e.hide()})},reInit:function(){this.setValue()}}}o(),s(),jQuery().select2&&l(".videosource_select2").select2({width:"100%",templateSelection:e,templateResult:e,allowHtml:!0}),l(document).on("change",".tutor_lesson_video_source",function(t){var e=l(this),o=l(this).val();o?l(".video-metabox-source-input-wrap").show():l(".video-metabox-source-input-wrap").hide(),e.closest(".tutor-option-field").find(".video-metabox-source-item").hide(),e.closest(".tutor-option-field").find(".video_source_wrap_"+o).show()}),l(document).on("click",".tutor-course-thumbnail-upload-btn",function(t){t.preventDefault();var e,o=l(this);e||(e=wp.media({title:a("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:a("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t.url),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),l(".tutor-course-thumbnail-delete-btn").show()}),e.open()}),l(document).on("click",".tutor-course-thumbnail-delete-btn",function(t){t.preventDefault();var e=l(this),t=e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("data-placeholder-src");e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t),e.closest(".tutor-thumbnail-wrap").find("input").val(""),l(".tutor-course-thumbnail-delete-btn").hide()}),l(document).on("click",".create_new_topic_btn",function(t){t.preventDefault(),l(".tutor-metabox-add-topics").slideToggle()}),l(document).on("click","#tutor-add-topic-btn",function(t){t.preventDefault();var e=l(this),t=e.closest(".tutor-metabox-add-topics").find("input, textarea").serializeObject();t.action="tutor_add_course_topic",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(l("#tutor-course-content-wrap").html(t.data.course_contents),e.closest(".tutor-metabox-add-topics").find('input[type!="hidden"], textarea').each(function(){l(this).val("")}),e.closest(".tutor-metabox-add-topics").slideUp(),i())},complete:function(){e.removeClass("tutor-updating-message")}})}),l(".tutor-zoom-meeting-modal-wrap").on("submit",".tutor-meeting-modal-form",function(t){t.preventDefault();var e=l(this),o=e.serializeObject(),t=Intl.DateTimeFormat().resolvedOptions().timeZone;o.timezone=t;var n=e.find('button[type="submit"]');l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){n.addClass("tutor-updating-message")},success:function(t){t.success?tutor_toast(a("Success","tutor"),n.data("toast_success_message"),"success"):tutor_toast(a("Update Error","tutor"),a("Meeting Update Failed","tutor"),"error"),t.course_contents?(l(t.selector).html(t.course_contents),"#tutor-course-content-wrap"==t.selector&&i(),l(".tutor-zoom-meeting-modal-wrap").removeClass("show")):location.reload()},complete:function(){n.removeClass("tutor-updating-message")}})}),l(document).on("change keyup",".course-edit-topic-title-input",function(t){t.preventDefault(),l(this).closest(".tutor-topics-top").find(".topic-inner-title").html(l(this).val())}),l(document).on("click",".topic-edit-icon",function(t){t.preventDefault(),l(this).closest(".tutor-topics-top").find(".tutor-topics-edit-form").slideToggle()}),l(document).on("click",".tutor-topics-edit-button",function(t){t.preventDefault();var e=l(this),o=e.closest(".tutor-topics-wrap"),t=parseInt(o.attr("id").match(/\d+/)[0],10),n=e.closest(".tutor-topics-wrap").find('[name="topic_title"]').val(),o=e.closest(".tutor-topics-wrap").find('[name="topic_summery"]').val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_title:n,topic_summery:o,topic_id:t,action:"tutor_update_topic"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".tutor-topics-wrap").find("span.topic-inner-title").text(n),e.closest(".tutor-topics-wrap").find(".tutor-topics-edit-form").slideUp())},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".open-tutor-lesson-modal",function(t){t.preventDefault();var e=l(this),o=e.attr("data-lesson-id"),n=e.attr("data-topic-id"),a=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:o,topic_id:n,course_id:a,action:"tutor_load_edit_lesson_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),l(".tutor-lesson-modal-wrap").attr({"data-lesson-id":o,"data-topic-id":n}).addClass("show");t=(t=tinyMCEPreInit.mceInit.tutor_editor_config)||tinyMCEPreInit.mceInit.course_description;tinymce.init(t),tinymce.execCommand("mceRemoveEditor",!1,"tutor_lesson_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_lesson_modal_editor"),l(document).trigger("lesson_modal_loaded",{lesson_id:o,topic_id:n,course_id:a})},complete:function(){quicktags({id:"tutor_lesson_modal_editor"}),e.removeClass("tutor-updating-message")}})}),l(document).on("click",".lesson_thumbnail_upload_btn",function(t){t.preventDefault();var e,o=l(this);e||(e=wp.media({title:a("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:a("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html('<img src="'+t.url+'" alt="" /><a href="javascript:;" class="tutor-lesson-thumbnail-delete-btn"><i class="tutor-icon-line-cross"></i></a>'),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),l(".tutor-lesson-thumbnail-delete-btn").show()}),e.open()}),l(document).on("click",".tutor-lesson-thumbnail-delete-btn",function(t){t.preventDefault();t=l(this);t.closest(".tutor-thumbnail-wrap").find("._lesson_thumbnail_id").val(""),t.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html(""),t.hide()}),l(document).on("click",".tutor-delete-lesson-btn",function(t){var e;t.preventDefault(),confirm(a("Are you sure?","tutor"))&&(t=(e=l(this)).attr("data-lesson-id"),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:t,action:"tutor_delete_lesson_by_id"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&e.closest(".course-content-item").remove()},complete:function(){e.removeClass("tutor-updating-message")}}))}),l(document).on("click",".topic-delete-btn a",function(t){l(this).attr("data-topic-id");confirm(a("Are you sure to delete?","tutor"))||t.preventDefault()}),l(document).on("click",".tutor-expand-all-topic",function(t){t.preventDefault(),l(".tutor-topics-body").slideDown(),l(".expand-collapse-wrap i").removeClass("tutor-icon-light-down").addClass("tutor-icon-light-up")}),l(document).on("click",".tutor-collapse-all-topic",function(t){t.preventDefault(),l(".tutor-topics-body").slideUp(),l(".expand-collapse-wrap i").removeClass("tutor-icon-light-up").addClass("tutor-icon-light-down")}),l(document).on("click",".topic-inner-title, .expand-collapse-wrap",function(t){t.preventDefault();t=l(this);t.closest(".tutor-topics-wrap").find(".tutor-topics-body").slideToggle(),t.closest(".tutor-topics-wrap").find(".expand-collapse-wrap i").toggleClass("tutor-icon-light-down tutor-icon-light-up")}),l(document).on("click",".quiz-modal-btn-first-step",function(t){t.preventDefault();var e,o,n,a=l(this),i=l('[name="quiz_title"]'),r=i.val(),t=l('[name="quiz_description"]').val();r?(i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html(""),e=l("#post_ID").val(),o=a.closest(".tutor-modal-wrap").attr("quiz-for-post-id"),l("#tutor_quiz_builder_quiz_id").length?(n=l("#tutor_quiz_builder_quiz_id").val(),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,quiz_id:n,topic_id:o,action:"tutor_quiz_builder_quiz_update"},beforeSend:function(){a.addClass("tutor-updating-message")},success:function(t){l("#tutor-quiz-"+n).html(t.data.output_quiz_row),l('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s()},complete:function(){a.removeClass("tutor-updating-message")}})):l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,course_id:e,topic_id:o,action:"tutor_create_quiz_and_load_modal"},beforeSend:function(){a.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),l("#tutor-topics-"+o+" .tutor-lessons").append(t.data.output_quiz_row),l('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s(),l(document).trigger("quiz_modal_loaded",{topic_id:o,course_id:e})},complete:function(){a.removeClass("tutor-updating-message")}})):i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html("Please enter quiz title")}),l(document).on("click",".open-tutor-quiz-modal",function(t){t.preventDefault();var e=l(this),o=e.attr("data-quiz-id"),n=e.attr("data-topic-id");null==n&&(n=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id"));var a=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:o,topic_id:n,course_id:a,action:"tutor_load_edit_quiz_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),l(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id",o).attr("quiz-for-post-id",n).addClass("show"),e.attr("data-back-to-tab")&&(t=e.attr("data-back-to-tab"),l('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")),l(document).trigger("quiz_modal_loaded",{quiz_id:o,topic_id:n,course_id:a}),s(),jQuery().sortable&&l(".quiz-builder-questions-wrap").sortable({handle:".question-sorting",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var n;n={},l(".quiz-builder-question-wrap").each(function(t,e){var o=l(this),o=parseInt(o.attr("data-question-id"),10);n[t]=o}),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_question_ids:n,action:"tutor_quiz_question_sorting"}})}})},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".quiz-modal-settings-save-btn",function(t){t.preventDefault();var e=l(this),o=l(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id"),n=l("#current_topic_id_for_quiz").val(),t=l("#quiz-builder-tab-settings :input, #quiz-builder-tab-advanced-options :input").serializeObject();t.topic_id=n,t.quiz_id=o,t.action="tutor_quiz_modal_update_settings",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&l("#tutor-course-content-wrap").html(t.data.course_contents),t.success?tutor_toast(a("Success","tutor"),e.data("toast_success_message"),"success"):tutor_toast(a("Update Error","tutor"),a("Quiz Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message"),"modal_close"===e.attr("data-action")&&l(".tutor-modal-wrap").removeClass("show")}})}),l(document).on("click",".quiz-modal-question-save-btn",function(t){t.preventDefault();var e=l(this),o=l(".quiz_question_form :input").serializeObject();o.action="tutor_quiz_modal_update_question";t=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id");o.topic_id=t,l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?e.closest(".tutor-quiz-builder-modal-contents").find(".open-tutor-quiz-modal").trigger("click"):void 0!==t.data&&l("#quiz_validation_msg_wrap").html(t.data.validation_msg)},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".modal-close-btn",function(t){t.preventDefault(),l(".tutor-modal-wrap").removeClass("show")}),l(document).on("keyup",function(t){27===t.keyCode&&l(".tutor-modal-wrap").removeClass("show")}),l(document).on("click",".tutor-add-quiz-btn",function(t){t.preventDefault();var e=l(this),o=l(this).closest(".tutor_add_quiz_wrap").attr("data-add-quiz-under"),t=l(this).data("topic-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_for_post_id:o,current_topic_id:t,action:"tutor_load_quiz_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),l(".tutor-quiz-builder-modal-wrap").attr("quiz-for-post-id",o).addClass("show")},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-modal-tab-item",function(t){t.preventDefault();var e=l(this),o=l('[name="quiz_title"]');o.val()?(o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html(""),t=e.attr("href"),l(".quiz-builder-tab-container").hide(),l(t).show(),l("a.tutor-quiz-modal-tab-item").removeClass("active"),e.addClass("active")):o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html('<p class="quiz-form-warning">Please save the quiz first</p>')}),l(document).on("click",".quiz-modal-btn-next, .quiz-modal-btn-back",function(t){t.preventDefault();t=l(this).attr("href");l('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")}),l(document).on("click",".quiz-modal-tab-navigation-btn.quiz-modal-btn-cancel",function(t){t.preventDefault(),l(".tutor-modal-wrap").removeClass("show")}),l(document).on("click",".tutor-quiz-open-question-form",function(t){t.preventDefault();var e=l(this),o=l("#tutor_quiz_builder_quiz_id").val(),n=l("#post_ID").val(),t=e.attr("data-question-id"),n={quiz_id:o,course_id:n,action:"tutor_quiz_builder_get_question_form"};t&&(n.question_id=t),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:n,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-contents").html(t.data.output),r().reInit(),jQuery().sortable&&l("#tutor_quiz_question_answers").sortable({handle:".tutor-quiz-answer-sort-icon",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var n;n={},l(".tutor-quiz-answer-wrap").each(function(t,e){var o=l(this),o=parseInt(o.attr("data-answer-id"),10);n[t]=o}),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_answer_ids:n,action:"tutor_quiz_answer_sorting"}})}}),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-question-trash",function(t){t.preventDefault();var e=l(this),t=e.attr("data-question-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:t,action:"tutor_quiz_builder_question_delete"},beforeSend:function(){e.closest(".quiz-builder-question-wrap").remove()}})}),l(document).on("click",".add_question_answers_option:not(.disabled)",function(t){t.preventDefault();var e=l(this),o=e.attr("data-question-id"),t=l(".quiz_question_form :input").serializeObject();t.question_id=o,t.action="tutor_quiz_add_question_answers",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answer_form").html(t.data.output),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-answer-edit a",function(t){t.preventDefault();var e=l(this),t=e.closest(".tutor-quiz-answer-wrap").attr("data-answer-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_edit_question_answer"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answer_form").html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click","#quiz-answer-save-btn",function(t){t.preventDefault();var e=l(this),t=l(".quiz_question_form :input").serializeObject();t.action="tutor_save_quiz_answer_options",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){l("#quiz_validation_msg_wrap").html(""),e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click","#quiz-answer-edit-btn",function(t){t.preventDefault();var e=l(this),t=l(".quiz_question_form :input").serializeObject();t.action="tutor_update_quiz_answer_options",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("change",".tutor-quiz-answers-mark-correct-wrap input",function(t){t.preventDefault();var e=l(this),o=e.val(),t=1;e.prop("checked")||(t=0),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:o,inputValue:t,action:"tutor_mark_answer_as_correct"}})}),l(document).on("refresh","#tutor_quiz_question_answers",function(t){t.preventDefault();var e=l(this),o=e.attr("data-question-id"),t=l(".tutor_select_value_holder").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:o,question_type:t,action:"tutor_quiz_builder_get_answers_by_question"},beforeSend:function(){e.addClass("tutor-updating-message"),l("#tutor_quiz_question_answer_form").html("")},success:function(t){t.success&&e.html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-answer-trash-wrap a.answer-trash-btn",function(t){t.preventDefault();var e=l(this),t=e.attr("data-answer-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_builder_delete_answer"},beforeSend:function(){e.closest(".tutor-quiz-answer-wrap").remove()}})}),l(document).on("click",".tutor-delete-quiz-btn",function(t){var e;t.preventDefault(),confirm(a("Are you sure?","tutor"))&&(t=(e=l(this)).attr("data-quiz-id"),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:t,action:"tutor_delete_quiz_by_id"},beforeSend:function(){e.closest(".course-content-item").remove()}}))}),r().init(),l(document).on("change","input.tutor_select_value_holder",function(t){l(this);l(".add_question_answers_option").trigger("click"),l("#tutor_quiz_question_answers").trigger("refresh")}),l(document).on("click",".tutor-media-upload-btn",function(t){t.preventDefault();var e,o=l(this);e||(e=wp.media({title:a("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:a("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.html('<img src="'+t.url+'" alt="" />'),o.closest(".tutor-media-upload-wrap").find("input").val(t.id)}),e.open()}),l(document).on("click",".tutor-media-upload-trash",function(t){t.preventDefault();t=l(this);t.closest(".tutor-media-upload-wrap").find(".tutor-media-upload-btn").html('<i class="tutor-icon-image1"></i>'),t.closest(".tutor-media-upload-wrap").find("input").val("")});var u,c=(u=0,function(t,e){clearTimeout(u),u=setTimeout(t,e)});l(document).on("click",".tutor-add-instructor-btn",function(t){t.preventDefault();var e=l(this),t=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:t,action:"tutor_load_instructors_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(l(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),l(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("change keyup",".tutor-instructors-modal-wrap .tutor-modal-search-input",function(t){t.preventDefault();var o=l(this),n=l(".tutor-modal-wrap");c(function(){var t=o.val(),e=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:e,search_terms:t,action:"tutor_load_instructors_modal"},beforeSend:function(){n.addClass("loading")},success:function(t){t.success&&(l(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),l(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){n.removeClass("loading")}})},1e3)}),l(document).on("click",".add_instructor_to_course_btn",function(t){t.preventDefault();var e=l(this),o=l(".tutor-modal-wrap"),t=l("#post_ID").val(),o=o.find("input").serializeObject();o.course_id=t,o.action="tutor_add_instructors_to_course",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(l(".tutor-course-available-instructors").html(t.data.output),l(".tutor-modal-wrap").removeClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-instructor-delete-btn",function(t){t.preventDefault();var e=l(this),o=l("#post_ID").val(),t=e.closest(".added-instructor-item").attr("data-instructor-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:o,instructor_id:t,action:"detach_instructor_from_course"},success:function(t){t.success&&e.closest(".added-instructor-item").remove()}})}),l(document).on("click",".settings-tabs-navs li",function(t){t.preventDefault();var e=l(this),o=e.find("a").attr("data-target"),t=e.find("a").attr("href");e.addClass("active").siblings("li.active").removeClass("active"),l(".settings-tab-wrap").removeClass("active").hide(),l(o).addClass("active").show(),window.history.pushState({},"",t)}),l(document).on("lesson_modal_loaded quiz_modal_loaded assignment_modal_loaded",function(t,e){jQuery().select2&&l(".select2_multiselect").select2({dropdownCssClass:"increasezindex"}),o()}),l(document).on("lesson_modal_loaded",function(t,e){l(".tutor-lesson-modal-wrap .modal-title h1").html(a("Lesson","tutor"))}),l(document).on("assignment_modal_loaded",function(t,e){l(".tutor-lesson-modal-wrap .modal-title h1").html(a("Assignment","tutor"))}),l(document).on("keyup change",".tutor-number-validation",function(t){var e=l(this),o=parseInt(e.val()),n=parseInt(e.attr("data-min")),a=parseInt(e.attr("data-max"));o<n?e.val(n):a<o&&e.val(a)}),l(document).on("click",".tutor-instructor-feedback",function(t){t.preventDefault();var e=l(this);l.ajax({url:window.ajaxurl||_tutorobject.ajaxurl,type:"POST",data:{attempts_id:e.data("attemptid"),feedback:l(".tutor-instructor-feedback-content").val(),action:"tutor_instructor_feedback"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".course-content-item").remove(),tutor_toast(a("Success","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})});var d=l(".tutor-announcement-add-new"),p=l(".tutor-announcement-edit"),m=l(".tutor-announcement-delete"),_=l(".tutor-announcement-details"),t=l(".tutor-announcement-close-btn"),f=l(".tutor-accouncement-create-modal"),h=l(".tutor-accouncement-update-modal"),v=l(".tutor-accouncement-details-modal");function g(t,e){var o=new URL(window.location.href),n=o.searchParams;return n.set(t,e),o.search=n.toString(),_tutorobject.is_admin?n.set("paged",1):n.set("current_page",1),o.search=n.toString(),o.toString()}l(d).click(function(){f.addClass("show"),l("#tutor-annoucement-backend-create-modal").addClass("show")}),l(_).click(function(){var t=l(this).attr("announcement-date"),e=l(this).attr("announcement-id"),o=l(this).attr("course-id"),n=l(this).attr("course-name"),a=l(this).attr("announcement-title"),i=l(this).attr("announcement-summary");l(".tutor-announcement-detail-content").html("<h3>".concat(a,"</h3><p>").concat(i,"</p>")),l(".tutor-announcement-detail-course-info p").html("".concat(n)),l(".tutor-announcement-detail-date-info p").html("".concat(t)),l("#tutor-announcement-edit-from-detail").attr("announcement-id",e),l("#tutor-announcement-edit-from-detail").attr("course-id",o),l("#tutor-announcement-edit-from-detail").attr("announcement-title",a),l("#tutor-announcement-edit-from-detail").attr("announcement-summary",i),l("#tutor-announcement-delete-from-detail").attr("announcement-id",e),v.addClass("show")}),l(p).click(function(){v&&v.removeClass("show");var t=l(this).attr("announcement-id"),e=l(this).attr("course-id"),o=l(this).attr("announcement-title"),n=l(this).attr("announcement-summary");l("#tutor-announcement-course-id").val(e),l("#announcement_id").val(t),l("#tutor-announcement-title").val(o),l("#tutor-announcement-summary").val(n),h.addClass("show")}),l(t).click(function(){f.removeClass("show"),h.removeClass("show"),v.removeClass("show"),l("#tutor-annoucement-backend-create-modal").removeClass("show")}),l(".tutor-announcements-form").on("submit",function(t){t.preventDefault();var e=l(this).find('button[type="submit"]'),t=l(".tutor-announcements-form").serialize()+"&action=tutor_announcement_create&action_type=create";l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(l(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){l(".tutor-announcements-create-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var n=y(o[e],2),n=(n[0],n[1]);l(".tutor-announcements-create-alert .tutor-alert").append("<li>".concat(n,"</li>"))}}"fail"==t.status&&l(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(t){console.log(t)}})}),l(".tutor-announcements-update-form").on("submit",function(t){t.preventDefault();var e=l(this).find('button[type="submit"]'),t=l(".tutor-announcements-update-form").serialize()+"&action=tutor_announcement_create&action_type=update";l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(l(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){l(".tutor-announcements-update-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var n=y(o[e],2),n=(n[0],n[1]);l(".tutor-announcements-update-alert > .tutor-alert").append("<li>".concat(n,"</li>"))}}"fail"==t.status&&l(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(){}})}),l(m).click(function(){var t=l(this).attr("announcement-id"),e=l("#tutor-announcement-tr-"+t);confirm("Do you want to delete?")&&l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_announcement_delete",announcement_id:t},beforeSend:function(){},success:function(t){e.remove(),v.length&&v.removeClass("show"),"fail"==t.status&&console.log(t.message)},error:function(){}})}),l(".tutor-announcement-course-sorting").on("change",function(t){window.location=g("course-id",l(this).val())}),l(".tutor-announcement-order-sorting").on("change",function(t){window.location=g("order",l(this).val())}),l(".tutor-announcement-date-sorting").on("change",function(t){window.location=g("date",l(this).val())}),l(".tutor-announcement-search-sorting").on("click",function(t){window.location=g("search",l(".tutor-announcement-search-field").val())}),l(document).click(function(){l(".tutor-dropdown").removeClass("show")}),l(".tutor-dropdown").click(function(t){t.stopPropagation(),l(".tutor-dropdown").hasClass("show")&&l(".tutor-dropdown").removeClass("show"),l(this).addClass("show")});var w,m=".video_source_wrap_external_url input, .video_source_wrap_vimeo input, .video_source_wrap_youtube input, .video_source_wrap_html5, .video_source_upload_wrap_html5";l("body").on("paste",m,function(t){t.stopImmediatePropagation();var r=l(this).closest(".lesson-modal-form-wrap").find(".tutor-option-field-video-duration"),e=r.find("label"),o=l(this).hasClass("video_source_wrap_html5")||l(this).hasClass("video_source_upload_wrap_html5"),n=l(this).data("autofill_url");l(this).data("autofill_url",null);function a(t){t?0==e.find("img").length&&e.append(' <img src="'+window._tutorobject.loading_icon_url+'" style="display:inline-block"/>'):e.find("img").remove()}function i(t){for(var e=Math.floor(t/3600),o=Math.floor((t-3600*e)/60),t=Math.round(t-3600*e-60*o),n=[e=e<10?"0"+e:e,o=o<10?"0"+o:o,t=t<10?"0"+t:t],a=r.find("input"),i=0;i<3;i++)a.eq(i).val(n[i])}var s,u,c,t=o?l(this).find("span").data("video_url"):n||t.originalEvent.clipboardData.getData("text");o||l(this).parent().hasClass("video_source_wrap_external_url")?((s=document.createElement("video")).addEventListener("loadedmetadata",function(){i(s.duration),a(!1)}),a(!0),s.src=t):l(this).parent().hasClass("video_source_wrap_vimeo")?(u=(c=t.match(/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/))?c[5]:null)&&(a(!0),l.getJSON("http://vimeo.com/api/v2/video/"+u+"/json",function(t){Array.isArray(t)&&t[0]&&void 0!==t[0].duration&&i(t[0].duration),a(!1)})):l(this).parent().hasClass("video_source_wrap_youtube")&&(u=!(!(c=t.match(/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/))||11!=c[7].length)&&c[7],c=l(this).data("youtube_api_key"),u&&c&&(c="https://www.googleapis.com/youtube/v3/videos?id="+u+"&key="+c+"&part=contentDetails",a(!0),l.getJSON(c,function(t){"object"==b(t)&&t.items&&t.items[0]&&t.items[0].contentDetails&&t.items[0].contentDetails.duration&&i(function(t){t=(t=t.match(/PT(\d+H)?(\d+M)?(\d+S)?/)).slice(1).map(function(t){if(null!=t)return t.replace(/\D/,"")});return 3600*(parseInt(t[0])||0)+60*(parseInt(t[1])||0)+(parseInt(t[2])||0)}(t.items[0].contentDetails.duration)),a(!1)})))}).on("input",m,function(){w&&clearTimeout(w);var e=l(this);w=setTimeout(function(){var t=(t=e.val())?t.trim():"";console.log("Trigger",t),t&&e.data("autofill_url",t).trigger("paste")},700)}),l(".tutor-form-submit-through-ajax").submit(function(t){t.preventDefault();var e=l(this),o=l(this).attr("action")||window.location.href,n=l(this).attr("method")||"GET",t=l(this).serializeObject();e.find("button").addClass("tutor-updating-message"),l.ajax({url:o,type:n,data:t,success:function(){tutor_toast(a("Success","tutor"),e.data("toast_success_message"),"success")},complete:function(){e.find("button").removeClass("tutor-updating-message")}})}),l.ajaxSetup({data:tutor_get_nonce_data()})}),jQuery.fn.serializeObject=function(){var t={},e=this.serializeArray();return jQuery.each(e,function(){t[this.name]?(t[this.name].push||(t[this.name]=[t[this.name]]),t[this.name].push(this.value||"")):t[this.name]=this.value||""}),t},window.tutor_toast=function(t,e,o){var n=((window._tutorobject||{}).tutor_url||"")+"assets/images/";jQuery(".tutor-toast-parent").length||jQuery("body").append('<div class="tutor-toast-parent"></div>');var a=jQuery(' <div> <div> <img src="'+{success:n+"icon-check.svg",error:n+"icon-cross.svg"}[o]+'"/> </div> <div> <div> <b>'+t+"</b> <span>"+e+'</span> </div> </div> <div> <i class="tutor-toast-close tutor-icon-line-cross"></i> </div> </div>');a.find(".tutor-toast-close").click(function(){a.remove()}),jQuery(".tutor-toast-parent").append(a),setTimeout(function(){a&&a.fadeOut("fast",function(){jQuery(this).remove()})},5e3)},window.disableAddoption=function(){function t(t){t.classList.contains("disabled")||t.classList.add("disabled")}function e(t){t.classList.contains("disabled")&&t.classList.remove("disabled")}var o=document.querySelector(".tutor_select_value_holder").value,n=document.getElementById("tutor_quiz_question_answers"),a=document.getElementById("tutor_quiz_question_answer_form"),i=document.querySelector(".add_question_answers_option");("open_ended"===o||"short_answer"===o||("true_false"===o||"fill_in_the_blank"===o)&&(a.hasChildNodes()||n.hasChildNodes())?t:e)(i)}},896:()=>{window.jQuery(document).ready(function(o){var n=wp.i18n.__;o(document).on("click",".tutor-copy-text",function(t){t.stopImmediatePropagation(),t.preventDefault();var e=o(this).data("text"),t=o("<input>");o("body").append(t),t.val(e).select(),document.execCommand("copy"),t.remove(),tutor_toast(n("Copied!","tutor"),e,"success")})})}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;e=n[t]={exports:{}};return o[t](e,e.exports,a),e.exports}(()=>{"use strict";a(896),a(623);jQuery(document).ready(function(u){var e,o,n,a,t=wp.i18n,s=t.__;t._x,t._n,t._nx;function i(t,e){var o,n;1<t.originalEvent.touches.length||(t.preventDefault(),o=t.originalEvent.changedTouches[0],(n=document.createEvent("MouseEvents")).initMouseEvent(e,!0,!0,window,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(n))}jQuery().select2&&u(".tutor_select2").select2({escapeMarkup:function(t){return t}}),(e=jQuery).support.touch="ontouchend"in document,e.support.touch&&(_=e.ui.mouse.prototype,n=_._mouseInit,a=_._mouseDestroy,_._touchStart=function(t){!o&&this._mouseCapture(t.originalEvent.changedTouches[0])&&(o=!0,this._touchMoved=!1,i(t,"mouseover"),i(t,"mousemove"),i(t,"mousedown"))},_._touchMove=function(t){o&&(this._touchMoved=!0,i(t,"mousemove"))},_._touchEnd=function(t){o&&(i(t,"mouseup"),i(t,"mouseout"),this._touchMoved||i(t,"click"),o=!1)},_._mouseInit=function(){var t=this;t.element.bind({touchstart:e.proxy(t,"_touchStart"),touchmove:e.proxy(t,"_touchMove"),touchend:e.proxy(t,"_touchEnd")}),n.call(t)},_._mouseDestroy=function(){var t=this;t.element.unbind({touchstart:e.proxy(t,"_touchStart"),touchmove:e.proxy(t,"_touchMove"),touchend:e.proxy(t,"_touchEnd")}),a.call(t)});var r={ajaxurl:window._tutorobject.ajaxurl,nonce_key:window._tutorobject.nonce_key,video_data:function(){var t=u("#tutor_video_tracking_information").val();return t?JSON.parse(t):{}},track_player:function(){var t,o,e,n=this;"undefined"!=typeof Plyr&&(t=new Plyr("#tutorPlayer"),o=n.video_data(),t.on("ready",function(t){var e=t.detail.plyr,t=o.best_watch_time;0<t&&e.duration>Math.round(t)&&(e.media.currentTime=t),n.sync_time(e)}),e=0,t.on("timeupdate",function(t){t=t.detail.plyr;30<=e/4&&(n.sync_time(t),e=0),e++}),t.on("ended",function(t){var e=n.video_data(),t=t.detail.plyr;n.sync_time(t,{is_ended:!0}),e.autoload_next_course_content&&n.autoload_content()}))},sync_time:function(t,e){var o=this.video_data().post_id,t={action:"sync_video_playback",currentTime:t.currentTime,duration:t.duration,post_id:o};t[this.nonce_key]=_tutorobject[this.nonce_key];o=t;e&&(o=Object.assign(t,e)),u.post(this.ajaxurl,o)},autoload_content:function(){var t={action:"autoload_next_course_content",post_id:this.video_data().post_id};t[this.nonce_key]=_tutorobject[this.nonce_key],u.post(this.ajaxurl,t).done(function(t){t.success&&t.data.next_url&&(location.href=t.data.next_url)})},init:function(){this.track_player()}};function c(t){t.add(t.prevAll()).filter("i").addClass("tutor-icon-star-full").removeClass("tutor-icon-star-line"),t.nextAll().filter("i").removeClass("tutor-icon-star-full").addClass("tutor-icon-star-line")}u("#tutorPlayer").length&&r.init(),u(document).on("change keyup paste",".tutor_user_name",function(){u(this).val(u(this).val().toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,""))}),u(document).on("mouseover",".tutor-star-rating-container .tutor-star-rating-group i",function(){c(u(this))}),u(document).on("click",".tutor-star-rating-container .tutor-star-rating-group i",function(){var t=u(this).attr("data-rating-value");u(this).closest(".tutor-star-rating-group").find('input[name="tutor_rating_gen_input"]').val(t),c(u(this))}),u(document).on("mouseout",".tutor-star-rating-container .tutor-star-rating-group",function(){var t=u(this).find('input[name="tutor_rating_gen_input"]').val(),e=parseInt(t),t=u(this).find('[data-rating-value="'+e+'"]');e&&t&&0<t.length?c(t):u(this).find("i").removeClass("tutor-icon-star-full").addClass("tutor-icon-star-line")}),u(document).on("click",".tutor_submit_review_btn",function(t){t.preventDefault();var e=u(this),o=e.closest("form").find('input[name="tutor_rating_gen_input"]').val(),n=(n=e.closest("form").find('textarea[name="review"]').val()).trim(),t=u('input[name="tutor_course_id"]').val();o&&0!=o&&n?n&&u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{course_id:t,rating:o,review:n,action:"tutor_place_rating"},beforeSend:function(){e.addClass("updating-icon")},success:function(t){var e=t.data.review_id,t=t.data.review;u(".tutor-review-"+e+" .review-content").html(t),new window.tutor_popup(u,"icon-rating",40).popup({title:s("Thank You for Rating This Course!","tutor"),description:s("Your rating will now be visible in the course page","tutor")}),setTimeout(function(){location.reload()},3e3)}}):alert(s("Rating and review required","tutor"))}).on("click",".tutor_cancel_review_btn",function(){u(this).closest("form").hide()}),u(document).on("click",".write-course-review-link-btn",function(t){t.preventDefault(),u(this).siblings(".tutor-write-review-form").slideToggle()}),u(document).on("click",".tutor-ask-question-btn",function(t){t.preventDefault(),u(".tutor-add-question-wrap").slideToggle()}),u(document).on("click",".tutor_question_cancel",function(t){t.preventDefault(),u(".tutor-add-question-wrap").toggle()}),u(document).on("submit","#tutor-ask-question-form",function(t){t.preventDefault();var e=u(this),t=u(this).serializeObject();t.action="tutor_ask_question",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor_ask_question_btn").addClass("updating-icon")},success:function(t){t.success&&(u(".tutor-add-question-wrap").hide(),window.location.reload())},complete:function(){e.find(".tutor_ask_question_btn").removeClass("updating-icon")}})}),u(document).on("submit",".tutor-add-answer-form",function(t){t.preventDefault();var e=u(this),t=u(this).serializeObject();t.action="tutor_add_answer",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor_add_answer_btn").addClass("updating-icon")},success:function(t){t.success&&window.location.reload()},complete:function(){e.find(".tutor_add_answer_btn").removeClass("updating-icon")}})}),u(document).on("focus",".tutor_add_answer_textarea",function(t){t.preventDefault();t=u(this).closest(".tutor_add_answer_wrap").attr("data-question-id");wp.editor.initialize("tutor_answer_"+t,{tinymce:{wpautop:!0,toolbar1:"bold italic underline bullist strikethrough numlist blockquote alignleft aligncenter alignright undo redo link unlink spellchecker fullscreen"}})}),u(document).on("click",".tutor_cancel_wp_editor",function(t){t.preventDefault(),u(this).closest(".tutor_wp_editor_wrap").toggle(),u(this).closest(".tutor_add_answer_wrap").find(".tutor_wp_editor_show_btn_wrap").toggle();t=u(this).closest(".tutor_add_answer_wrap").attr("data-question-id");wp.editor.remove("tutor_answer_"+t)}),u(document).on("click",".tutor_wp_editor_show_btn",function(t){t.preventDefault(),u(this).closest(".tutor_add_answer_wrap").find(".tutor_wp_editor_wrap").toggle(),u(this).closest(".tutor_wp_editor_show_btn_wrap").toggle()});var l,d,p,m=u("#tutor-quiz-time-update"),_=null;m.length&&(_=JSON.parse(m.attr("data-attempt-settings")),0<(f=JSON.parse(m.attr("data-attempt-meta"))).time_limit.time_limit_seconds?(l=new Date(_.attempt_started_at).getTime()+1e3*f.time_limit.time_limit_seconds,d=new Date(f.date_time_now).getTime(),p=setInterval(function(){var a,t=l-d,e=Math.floor(t/864e5),o=Math.floor(t%864e5/36e5),n=Math.floor(t%36e5/6e4),i=Math.floor(t%6e4/1e3),r="";e&&(r+=e+"d "),o&&(r+=o+"h "),n&&(r+=n+"m "),i&&(r+=i+"s "),t<0&&(clearInterval(p),r="EXPIRED","autosubmit"===_tutorobject.quiz_options.quiz_when_time_expires?u("form#tutor-answering-quiz").submit():"autoabandon"===_tutorobject.quiz_options.quiz_when_time_expires&&(t=u("#tutor_quiz_id").val(),u("#tutor_quiz_remaining_time_secs").val(),t={quiz_id:t,action:"tutor_quiz_timeout"},a=u("#tutor-quiz-time-expire-wrapper").attr("data-attempt-remaining"),u(".tutor-quiz-answer-next-btn, .tutor-quiz-submit-btn, .tutor-quiz-answer-previous-btn").prop("disabled",!0),u(".time-remaining span").css("color","#F44337"),u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,success:function(t){var e=u("#tutor-quiz-time-expire-wrapper").data("attempt-allowed"),o=u("#tutor-quiz-time-expire-wrapper").data("attempt-remaining"),n="#tutor-quiz-time-expire-wrapper .tutor-alert";u(n).addClass("show"),0<a?u("".concat(n," .text")).html(s("Your time limit for this quiz has expired, please reattempt the quiz. Attempts remaining: "+o+"/"+e,"tutor")):(u(n).addClass("tutor-alert-danger"),u("#tutor-start-quiz").hide(),u("".concat(n," .text")).html("".concat(s("Unfortunately, you are out of time and quiz attempts. ","tutor"))))},complete:function(){}}))),d+=1e3,m.html(r)},1e3)):m.closest(".time-remaining").remove());var f=u("#tutor-quiz-body form#tutor-start-quiz");function h(){jQuery().sortable&&(u(".tutor-quiz-answers-wrap").sortable({handle:".answer-sorting-bar",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){}}).disableSelection(),u(".quiz-draggable-rand-answers, .quiz-answer-matching-droppable").sortable({connectWith:".quiz-answer-matching-droppable",placeholder:"drop-hover"}).disableSelection())}function v(o){var t,e,n=!0,a=o.find(".quiz-answer-required");return a.length&&((t=a.find("input")).length&&("radio"===(e=t.attr("type"))?0==a.find('input[type="radio"]:checked').length&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("Please select an option to answer","tutor"),"</p>")),n=!1):"checkbox"===e?0==a.find('input[type="checkbox"]:checked').length&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("Please select at least one option to answer.","tutor"),"</p>")),n=!1):"text"===e&&t.each(function(t,e){u(e).val().trim().length||(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("The answer for this question is required","tutor"),"</p>")),n=!1)})),a.find("textarea").length&&a.find("textarea").val().trim().length<1&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("The answer for this question is required","tutor"),"</p>")),n=!1),(a=a.find(".quiz-answer-matching-droppable")).length&&a.each(function(t,e){u(e).find(".quiz-draggable-answer-item").length||(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("Please match all the items","tutor"),"</p>")),n=!1)})),n}function g(o){var n=!1,a=JSON.parse(atob(window.tutor_quiz_context.split("").reverse().join("")));Array.isArray(a)||(a=[]);var t=o.attr("data-quiz-feedback-mode");u(".wrong-right-text").remove(),u(".quiz-answer-input-bottom").removeClass("wrong-answer right-answer");var i=!0,e=o.find("input"),r=o.find('input[type="radio"]:checked, input[type="checkbox"]:checked');return"retry"===t?(r.each(function(){var t=u(this),e=t.attr("type");"radio"!==e&&"checkbox"!==e||-1<a.indexOf(t.val())||(t.prop("checked")&&t.closest(".quiz-answer-input-bottom").addClass("wrong-answer").append('<span class="wrong-right-text"><i class="tutor-icon-line-cross"></i> '.concat(s("Incorrect, Please try again","tutor"),"</span>")),i=!1)}),e.each(function(){var t,e=u(this);"checkbox"===e.attr("type")&&(t=-1<a.indexOf(e.val()),e=e.is(":checked"),t&&!e&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("More answer for this question is required","tutor"),"</p>")),i=!1))})):"reveal"===t&&(r.each(function(){var t=u(this);-1<a.indexOf(t.val())||(i=!1)}),e.each(function(){var t,e=u(this),o=e.attr("type");"radio"!==o&&"checkbox"!==o||(t=-1<a.indexOf(e.val()),o=e.is(":checked"),t?e.closest(".quiz-answer-input-bottom").addClass("right-answer").append('<span class="wrong-right-text"><i class="tutor-icon-checkbox-pen-outline"></i>'.concat(s("Correct Answer","tutor"),"</span>")):e.prop("checked")&&e.closest(".quiz-answer-input-bottom").addClass("wrong-answer"),t&&!o&&(e.attr("disabled","disabled"),n=!(i=!1)))})),n=i?!0:n}f.length&&"1"===_tutorobject.quiz_options.quiz_auto_start&&f.submit(),u(document).on("click",".quiz-manual-review-action",function(t){t.preventDefault();var e=u(this),o=e.attr("data-attempt-id"),n=e.attr("data-attempt-answer-id"),t=e.attr("data-mark-as");u.ajax({url:_tutorobject.ajaxurl,type:"GET",data:{action:"review_quiz_answer",attempt_id:o,attempt_answer_id:n,mark_as:t},beforeSend:function(){e.find("i").addClass("updating-icon")},success:function(t){location.reload()},complete:function(){e.find("i").removeClass("updating-icon")}})}),u(".tooltip-btn").on("hover",function(t){u(this).toggleClass("active")}),u(".tutor-course-title h4 .toggle-information-icon").on("click",function(t){u(this).closest(".tutor-topics-in-single-lesson").find(".tutor-topics-summery").slideToggle(),t.stopPropagation()}),u(".tutor-course-topic.tutor-active").find(".tutor-course-lessons").slideDown(),u(".tutor-course-title").on("click",function(){var t=u(this).siblings(".tutor-course-lessons");u(this).closest(".tutor-course-topic").toggleClass("tutor-active"),t.slideToggle()}),u(document).on("click",".tutor-topics-title h3 .toggle-information-icon",function(t){u(this).closest(".tutor-topics-in-single-lesson").find(".tutor-topics-summery").slideToggle(),t.stopPropagation()}),u(document).on("click",".tutor-course-wishlist-btn",function(t){t.preventDefault();var e=u(this),t=e.attr("data-course-id");u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{course_id:t,action:"tutor_course_add_to_wishlist"},beforeSend:function(){e.addClass("updating-icon")},success:function(t){t.success?"added"===t.data.status?e.addClass("has-wish-listed"):e.removeClass("has-wish-listed"):window.location=t.data.redirect_to},complete:function(){e.removeClass("updating-icon")}})}),_tutorobject.enable_lesson_classic_editor||(u(document).on("click",".tutor-single-lesson-a",function(t){t.preventDefault();var e=u(this),t=e.attr("data-lesson-id"),o=u("#tutor-single-entry-content");u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{lesson_id:t,action:"tutor_render_lesson_content"},beforeSend:function(){var t=e.find(".lesson_title").text();u("head title").text(t),window.history.pushState("obj",t,e.attr("href")),o.addClass("loading-lesson"),u(".tutor-single-lesson-items").removeClass("active"),e.closest(".tutor-single-lesson-items").addClass("active")},success:function(t){o.html(t.data.html),r.init(),u(".tutor-lesson-sidebar").css("display",""),window.dispatchEvent(new window.Event("tutor_ajax_lesson_loaded"))},complete:function(){o.removeClass("loading-lesson")}})}),u(document).on("click",".sidebar-single-quiz-a",function(t){t.preventDefault();var e=u(this),t=e.attr("data-quiz-id"),o=e.find(".lesson_title").text(),n=u("#tutor-single-entry-content");u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{quiz_id:t,action:"tutor_render_quiz_content"},beforeSend:function(){u("head title").text(o),window.history.pushState("obj",o,e.attr("href")),n.addClass("loading-lesson"),u(".tutor-single-lesson-items").removeClass("active"),e.closest(".tutor-single-lesson-items").addClass("active")},success:function(t){n.html(t.data.html),h(),u(".tutor-lesson-sidebar").css("display","")},complete:function(){n.removeClass("loading-lesson")}})})),u(document).on("click",".tutor-lesson-sidebar-hide-bar",function(t){t.preventDefault(),u(".tutor-lesson-sidebar").toggle(),u("#tutor-single-entry-content").toggleClass("sidebar-hidden")}),u(".tutor-tabs-btn-group a").on("click touchstart",function(t){t.preventDefault();var e=u(this),t=e.attr("href");u(".tutor-lesson-sidebar-tab-item").hide(),u(t).show(),u(".tutor-tabs-btn-group a").removeClass("active"),e.addClass("active")}),h(),u(document).on("click",".tutor-quiz-answer-next-btn, .tutor-quiz-answer-previous-btn",function(t){var e,o;t.preventDefault(),u(this).hasClass("tutor-quiz-answer-previous-btn")?u(this).closest(".quiz-attempt-single-question").hide().prev().show():v(t=(e=u(this)).closest(".quiz-attempt-single-question"))&&g(t)&&(parseInt(e.closest(".quiz-attempt-single-question").attr("id").match(/\d+/)[0],10),!(e=e.closest(".quiz-attempt-single-question").attr("data-next-question-id"))||(o=u(e))&&o.length&&("reveal"===t.attr("data-quiz-feedback-mode")?setTimeout(function(){u(".quiz-attempt-single-question").hide(),o.show()},800):(u(".quiz-attempt-single-question").hide(),o.show()),u(".tutor-quiz-questions-pagination").length&&(u(".tutor-quiz-question-paginate-item").removeClass("active"),u('.tutor-quiz-questions-pagination a[href="'+e+'"]').addClass("active"))))}),u(document).on("submit","#tutor-answering-quiz",function(t){var e=u(".quiz-attempt-single-question"),o=!0;e.length&&e.each(function(t,e){o=v(u(e)),o=g(u(e))}),o||t.preventDefault()}),u(document).on("click",".tutor-quiz-question-paginate-item",function(t){t.preventDefault();var e=u(this),t=u(e.attr("href"));u(".quiz-attempt-single-question").hide(),t.show(),u(".tutor-quiz-question-paginate-item").removeClass("active"),e.addClass("active")}),u(document).on("keyup","textarea.question_type_short_answer, textarea.question_type_open_ended",function(t){var e=u(this),o=e.val(),n=e.hasClass("question_type_short_answer")?_tutorobject.quiz_options.short_answer_characters_limit:_tutorobject.quiz_options.open_ended_answer_characters_limit,a=n-o.length;a<1&&(e.val(o.substr(0,n)),a=0),e.closest(".tutor-quiz-answers-wrap").find(".characters_remaining").html(a)}),u(".quiz-draggable-rand-answers").length&&u(".quiz-draggable-rand-answers").each(function(){var t=u(this),e=t.height();t.css({height:e})}),u(document).on("submit click",".cart-required-login, .cart-required-login a, .cart-required-login form",function(t){t.preventDefault();t=u(this).data("login_page_url");t?window.location.assign(t):u(".tutor-cart-box-login-form").fadeIn(100)}),u(".tutor-popup-form-close, .login-overlay-close").on("click",function(){u(".tutor-cart-box-login-form").fadeOut(100)}),u(document).on("keyup",function(t){27===t.keyCode&&(u(".tutor-frontend-modal").hide(),u(".tutor-cart-box-login-form").fadeOut(100))}),!u.fn.ShareLink||(f=u(".tutor-social-share-wrap")).length&&(x=JSON.parse(f.attr("data-social-share-config")),u(".tutor_share").ShareLink({title:x.title,text:x.text,image:x.image,class_prefix:"s_",width:640,height:480})),jQuery.datepicker&&u(".tutor_report_datepicker").datepicker({dateFormat:"yy-mm-dd"}),u(".withdraw-method-select-input").on("change",function(t){var e=u(this);u(".withdraw-method-form").hide(),u("#withdraw-method-form-"+e.closest(".withdraw-method-select").attr("data-withdraw-method")).show()}),u(".withdraw-method-select-input").each(function(){var t=u(this);t.is(":checked")&&(u(".withdraw-method-form").hide(),u("#withdraw-method-form-"+t.closest(".withdraw-method-select").attr("data-withdraw-method")).show())}),u(document).on("submit","#tutor-withdraw-account-set-form",function(t){t.preventDefault();var e=u(this),o=e.find(".tutor_set_withdraw_account_btn"),t=e.serializeObject();u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor-success-msg").remove(),o.addClass("updating-icon")},success:function(t){t.success&&(t='<div class="tutor-success-msg" style="display: none;"><i class="tutor-icon-mark"></i> '+t.data.msg+" </div>",o.closest(".withdraw-account-save-btn-wrap").append(t),e.find(".tutor-success-msg").length&&e.find(".tutor-success-msg").slideDown(),setTimeout(function(){e.find(".tutor-success-msg").slideUp()},5e3))},complete:function(){o.removeClass("updating-icon")}})}),u(document).on("click",".open-withdraw-form-btn, .close-withdraw-form-btn",function(t){t.preventDefault(),"yes"!=u(this).data("reload")?(u(".tutor-earning-withdraw-form-wrap").toggle().find('[name="tutor_withdraw_amount"]').val(""),u(".tutor-withdrawal-pop-up-success").hide().next().show(),u("html, body").css("overflow",u(".tutor-earning-withdraw-form-wrap").is(":visible")?"hidden":"auto")):window.location.reload()}),u(document).on("submit","#tutor-earning-withdraw-form",function(t){t.preventDefault();var e=u(this),o=u("#tutor-earning-withdraw-btn"),n=u(".tutor-withdraw-form-response"),t=e.serializeObject();u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor-success-msg").remove(),o.addClass("updating-icon")},success:function(t){t.success?("undefined"!==t.data.available_balance&&u(".withdraw-balance-col .available_balance").html(t.data.available_balance),u(".tutor-withdrawal-pop-up-success").show().next().hide()):(t='<div class="tutor-error-msg inline-image-text is-inline-block"> <img src="'+window._tutorobject.tutor_url+'assets/images/icon-cross.svg"/> <div> <b>Error</b><br/> <span>'+t.data.msg+"</span> </div> </div>",n.html(t),setTimeout(function(){n.html("")},5e3))},complete:function(){o.removeClass("updating-icon")}})});var w=u(".tutor-frontend-modal");function b(){jQuery().sortable&&(u(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){y()}}),u(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){y()}}))}function y(){var i={};u(".tutor-topics-wrap").each(function(t,e){var o=u(this),n=parseInt(o.attr("id").match(/\d+/)[0],10),a={};o.find(".course-content-item").each(function(t,e){var o=u(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);a[t]=o}),i[t]={topic_id:n,lesson_ids:a}}),u("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}function q(){u("ul.tutor-bp-enrolled-course-list").each(function(){var t,e=u(this),o=e.find(" > li");3<o.length&&(t=o.length-3,o.each(function(t,e){var o=u(this);3<=t&&o.hide()}),t='<a href="javascript:;" class="tutor_bp_plus_courses"><strong>+'+t+" More </strong></a> Courses",e.closest(".tutor-bp-enrolled-courses-wrap").find(".thread-participant-enrolled-info").html(t)),e.show()})}w.each(function(){var e=u(this),t=u(this).data("popup-rel");u('[href="'+t+'"]').on("click",function(t){e.fadeIn(),t.preventDefault()})}),u(document).on("click",".tm-close, .tutor-frontend-modal-overlay, .tutor-modal-btn-cancel",function(){w.fadeOut()}),u(document).on("click",".tutor-dashboard-element-delete-btn",function(t){t.preventDefault();t=u(this).attr("data-id");u("#tutor-dashboard-delete-element-id").val(t)}),u(document).on("submit","#tutor-dashboard-delete-element-form",function(t){t.preventDefault();var e=u("#tutor-dashboard-delete-element-id").val(),o=u(".tutor-modal-element-delete-btn"),t=u(this).serializeObject();u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){o.addClass("updating-icon")},success:function(t){t.success&&u("#tutor-dashboard-"+t.data.element+"-"+e).remove()},complete:function(){o.removeClass("updating-icon"),u(".tutor-frontend-modal").hide()}})}),u("#tutor_profile_photo_id").val()||u(".tutor-profile-photo-delete-btn").hide(),u(document).on("click",".tutor-profile-photo-delete-btn",function(){return u(".tutor-profile-photo-upload-wrap").find("img").attr("src",_tutorobject.placeholder_img_src),u("#tutor_profile_photo_id").val(""),u(".tutor-profile-photo-delete-btn").hide(),u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{action:"tutor_profile_photo_remove"}}),!1}),u(document).on("submit","#tutor_assignment_start_form",function(t){t.preventDefault();t=u(this).serializeObject();t.action="tutor_start_assignment",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){u("#tutor_assignment_start_btn").addClass("updating-icon")},success:function(t){t.success&&location.reload()},complete:function(){u("#tutor_assignment_start_btn").removeClass("updating-icon")}})}),u(document).on("submit","#tutor_assignment_submit_form",function(t){u('textarea[name="assignment_answer"]').val().trim().length<1&&(u("#form_validation_response").html('<div class="tutor-error-msg">'+s("Assignment answer can not be empty","tutor")+"</div>"),t.preventDefault())}),u(document).on("click",".video_source_upload_wrap_html5 .video_upload_btn",function(t){t.preventDefault();var e,o=u(this);e||(e=wp.media({title:s("Select / Upload Media Of Your Chosen Persuasion","tutor"),button:{text:s("Use media","tutor")},library:{type:"video"},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".video_source_upload_wrap_html5").find("span.video_media_id").data("video_url",t.url).text(t.id).trigger("paste").closest("p").show(),o.closest(".video_source_upload_wrap_html5").find("input").val(t.id)}),e.open()}),b(),u(document).on("click",".update_lesson_modal_btn",function(t){t.preventDefault();var e=u(this),o=tinyMCE.get("tutor_lesson_modal_editor"),t=o?o.getContent():u("#"+inputid).val(),o=u(this).closest("form").serializeObject();o.lesson_content=t,u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?(u("#tutor-course-content-wrap").html(t.data.course_contents),b(),u(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(s("Done","tutor"),e.data("toast_success_message"),"success")):tutor_toast(s("Failed","tutor"),s("Lesson Update Failed","tutor"),"error")},error:function(){tutor_toast(s("Failed","tutor"),s("Lesson Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message")}})}),u(document).on("click","a.tutor-delete-attachment",function(t){t.preventDefault(),u(this).closest(".tutor-added-attachment").remove()}),u(document).on("click",".tutorUploadAttachmentBtn",function(t){t.preventDefault();var n,a=u(this);n||(n=wp.media({title:s("Select / Upload Media Of Your Chosen Persuasion","tutor"),button:{text:s("Use media","tutor")},multiple:!0})).on("select",function(){var t=n.state().get("selection").toJSON();if(t.length)for(var e=0;e<t.length;e++){var o=t[e],o='<div class="tutor-added-attachment"><i class="tutor-icon-archive"></i><a href="javascript:;" class="tutor-delete-attachment tutor-icon-line-cross"></a> <span> <a href="'+o.url+'">'+o.filename+'</a> </span> <input type="hidden" name="tutor_attachments[]" value="'+o.id+'"></div>';a.closest(".tutor-lesson-attachments-metabox").find(".tutor-added-attachments-wrap").append(o)}}),n.open()}),u("form").on("change",".tutor-assignment-file-upload",function(){u(this).siblings("label").find("span").html(u(this).val().replace(/.*(\/|\\)/,""))}),u(document).on("click",".tutor-topics-in-single-lesson .tutor-topics-title h3, .tutor-single-lesson-topic-toggle",function(t){var e=u(this).closest(".tutor-topics-in-single-lesson");e.toggleClass("tutor-topic-active"),e.find(".tutor-lessons-under-topic").slideToggle()}),u(".tutor-single-lesson-items.active").closest(".tutor-lessons-under-topic").show(),u(".tutor-single-lesson-items.active").closest(".tutor-topics-in-single-lesson").addClass("tutor-topic-active"),u(".tutor-course-lesson.active").closest(".tutor-lessons-under-topic").show(),u(document).on("click",".tutor-create-assignments-btn",function(t){t.preventDefault();var e=u(this),o=u(this).attr("data-topic-id"),n=u("#post_ID").val();u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_id:o,course_id:n,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){u(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),u(".tutor-lesson-modal-wrap").attr("data-topic-id",o).addClass("show"),u(document).trigger("assignment_modal_loaded",{topic_id:o,course_id:n}),tinymce.init(tinyMCEPreInit.mceInit.course_description),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),u(document).on("click",".open-tutor-assignment-modal",function(t){t.preventDefault();var e=u(this),o=e.attr("data-assignment-id"),n=e.attr("data-topic-id"),a=u("#post_ID").val();u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{assignment_id:o,topic_id:n,course_id:a,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){u(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),u(".tutor-lesson-modal-wrap").attr({"data-assignment-id":o,"data-topic-id":n}).addClass("show"),u(document).trigger("assignment_modal_loaded",{assignment_id:o,topic_id:n,course_id:a}),tinymce.init(tinyMCEPreInit.mceInit.course_description),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),u(document).on("click",".update_assignment_modal_btn",function(t){t.preventDefault();var e=u(this),o=tinyMCE.get("tutor_assignments_modal_editor"),t=o?o.getContent():u("#"+inputid).val(),o=u(this).closest("form").serializeObject();o.assignment_content=t,u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?(u("#tutor-course-content-wrap").html(t.data.course_contents),b(),u(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(s("Done","tutor"),e.data("toast_success_message"),"success")):tutor_toast(s("Failed","tutor"),s("Assignment Update Failed","tutor"),"error")},error:function(){tutor_toast(s("Failed","tutor"),s("Assignment Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message")}})}),u(document).on("click",".add-assignment-attachments",function(t){t.preventDefault();var o,n=u(this);o||(o=wp.media({title:s("Select / Upload Media Of Your Chosen Persuasion","tutor"),button:{text:s("Use media","tutor")},multiple:!1})).on("select",function(){var t=o.state().get("selection").first().toJSON(),e='<div class="tutor-individual-attachment-file"><p class="attachment-file-name">'+t.filename+'</p><input type="hidden" name="tutor_assignment_attachments[]" value="'+t.id+'"><a href="javascript:;" class="remove-assignment-attachment-a text-muted"> &times; Remove</a></div>';u("#assignment-attached-file").append(e),n.closest(".video_source_upload_wrap_html5").find("input").val(t.id)}),o.open()}),u(document).on("click",".remove-assignment-attachment-a",function(t){t.preventDefault(),u(this).closest(".tutor-individual-attachment-file").remove()}),"tutor_add_course_builder"===u('input[name="tutor_action"]').val()&&setInterval(function(){var t=u("form#tutor-frontend-course-builder").serializeObject();t.tutor_ajax_action="tutor_course_builder_draft_save",u.ajax({type:"POST",data:t,beforeSend:function(){u(".tutor-dashboard-builder-draft-btn span").text(s("Saving...","tutor"))},success:function(t){},complete:function(){u(".tutor-dashboard-builder-draft-btn span").text(s("Save","tutor"))}})},3e4),u(".tutor-course-builder-section-title").on("click",function(){u(this).find("i").hasClass("tutor-icon-up")?u(this).find("i").removeClass("tutor-icon-up").addClass("tutor-icon-down"):u(this).find("i").removeClass("tutor-icon-down").addClass("tutor-icon-up"),u(this).next("div").slideToggle()}),u(document).on("click",".open-tutor-edit-review-modal",function(t){t.preventDefault();var e=u(this),o=e.attr("data-review-id"),n=_tutorobject.nonce_key,t={review_id:o,action:"tutor_load_edit_review_modal"};t[n]=_tutorobject[n],u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){void 0!==t.data&&(u(".tutor-edit-review-modal-wrap .modal-container").html(t.data.output),u(".tutor-edit-review-modal-wrap").attr("data-review-id",o).addClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),u(document).on("submit","#tutor_update_review_form",function(t){t.preventDefault();var e=u(this),o=e.closest(".tutor-edit-review-modal-wrap ").attr("data-review-id"),t=_tutorobject.nonce_key,o={review_id:o,rating:e.find('input[name="tutor_rating_gen_input"]').val(),review:e.find('textarea[name="review"]').val().trim(),action:"tutor_update_review_modal"};o[t]=_tutorobject[t],u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.find('button[type="submit"]').addClass("tutor-updating-message")},success:function(t){t.success&&(u(".tutor-edit-review-modal-wrap").removeClass("show"),location.reload(!0))},complete:function(){e.find('button[type="submit"]').removeClass("tutor-updating-message")}})}),u(document).on("click","#tutor_profile_photo_button",function(t){t.preventDefault(),u("#tutor_profile_photo_file").trigger("click")}),u(document).on("change","#tutor_profile_photo_file",function(t){t.preventDefault();this.files&&this.files[0]&&((t=new FileReader).onload=function(t){u(".tutor-profile-photo-upload-wrap").find("img").attr("src",t.target.result)},t.readAsDataURL(this.files[0]))}),u(document).on("click",".thread-content .subject",function(t){var e=u(this),o=parseInt(e.closest(".thread-content").attr("data-thread-id")),e=_tutorobject.nonce_key,o={thread_id:o,action:"tutor_bp_retrieve_user_records_for_thread"};o[e]=_tutorobject[e],u.ajax({type:"POST",url:window._tutorobject.ajaxurl,data:o,beforeSend:function(){u("#tutor-bp-thread-wrap").html("")},success:function(t){t.success&&(u("#tutor-bp-thread-wrap").html(t.data.thread_head_html),q())}})}),q(),u(document).on("click","a.tutor_bp_plus_courses",function(t){t.preventDefault();t=u(this);t.closest(".tutor-bp-enrolled-courses-wrap").find(".tutor-bp-enrolled-course-list li").show(),t.closest(".thread-participant-enrolled-info").html("")}),u(".tutor-dropbtn").click(function(){u(this).parent().find(".tutor-dropdown-content").slideToggle(100)}),u(document).on("click",function(t){var e=u(".tutor-dropdown"),o=e.find(".tutor-dropdown-content");e.is(t.target)||0!==e.has(t.target).length||o.slideUp(100)}),u(document).on("submit",".tutor-login-form-wrap #loginform",function(t){t.preventDefault();var t=u(this),e=u(".tutor-login-form-wrap"),t=t.serializeObject();t.action="tutor_user_login",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,success:function(t){t.success?(location.assign(t.data.redirect),location.reload()):(t=t.data||s("Invalid username or password!","tutor"),e.find(".tutor-alert").length?e.find(".tutor-alert").html(t):e.prepend('<div class="tutor-alert tutor-alert-warning">'+t+"</div>"))}})});var j,x=u('.tutor-frontend-builder-course-price [name="tutor_course_price_type"]');0==x.length?u("#_tutor_is_course_public_meta_checkbox").show():x.change(function(){var t;u(this).prop("checked")&&(t="paid"==u(this).val()?"hide":"show",u("#_tutor_is_course_public_meta_checkbox")[t]())}).trigger("change"),(j=jQuery).fn.tutor_tooltip=function(){return this.on("mouseenter click",".tooltip",function(t){t.stopPropagation(),j(this).removeClass("isVisible")}).on("mouseenter focus",":has(>.tooltip)",function(t){j(this).prop("disabled")||j(this).find(".tooltip").addClass("isVisible")}).on("mouseleave blur keydown",":has(>.tooltip)",function(t){("keydown"!==t.type||27===t.which)&&j(this).find(".tooltip").removeClass("isVisible")}),this},jQuery(".tutor-tooltip-inside").tutor_tooltip();var k=u(".tutor-course-filter-container form"),z=u(".tutor-course-filter-loop-container"),C={};k.on("submit",function(t){t.preventDefault()}).find("input").change(function(t){var e=Object.assign(k.serializeObject(),C);e.action="tutor_course_filter_ajax",z.html('<center><img src="'+window._tutorobject.loading_icon_url+'"/></center>'),u(this).closest("form").find(".tutor-clear-all-filter").show(),u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:e,success:function(t){z.html(t).find(".tutor-pagination-wrap a").each(function(){u(this).attr("data-href",u(this).attr("href")).attr("href","#")})}})}),z.on("click",".tutor-pagination-wrap a",function(t){var e=u(this).data("href")||u(this).attr("href");!e||(e=(e=new URL(e)).searchParams.get("paged"))&&(t.preventDefault(),C.page=e,k.find("input:first").trigger("change"))}),z.on("change",'select[name="tutor_course_filter"]',function(){C.tutor_course_filter=u(this).val(),k.find("input:first").trigger("change")});x=u(".tutor-course-loop");0<x.length&&("yes"===window.sessionStorage.getItem("tutor_refresh_archive")&&window.location.reload(),window.sessionStorage.removeItem("tutor_refresh_archive"),x.on("click",".tutor-loop-cart-btn-wrap",function(){window.sessionStorage.setItem("tutor_refresh_archive","yes")}));x=u("#tutor_profile_cover_photo_editor");0<x.length&&new function(n){this.dialogue_box=n.find("#tutor_photo_dialogue_box"),this.open_dialogue_box=function(t){this.dialogue_box.attr("name",t),this.dialogue_box.trigger("click")},this.validate_image=function(t){return!0},this.upload_selected_image=function(t,e){var o,n,a;e&&this.validate_image(e)&&(o=tutor_get_nonce_data(!0),(n=this).toggle_loader(t,!0),(a=new FormData).append("action","tutor_user_photo_upload"),a.append("photo_type",t),a.append("photo_file",e,e.name),a.append(o.key,o.value),u.ajax({url:window._tutorobject.ajaxurl,data:a,type:"POST",processData:!1,contentType:!1,error:n.error_alert,complete:function(){n.toggle_loader(t,!1)}}))},this.accept_upload_image=function(t,e){var o=e.currentTarget.files[0]||null;t.update_preview(e.currentTarget.name,o),t.upload_selected_image(e.currentTarget.name,o),u(e.currentTarget).val("")},this.delete_image=function(t){var e=this;e.toggle_loader(t,!0),u.ajax({url:window._tutorobject.ajaxurl,data:{action:"tutor_user_photo_remove",photo_type:t},type:"POST",error:e.error_alert,complete:function(){e.toggle_loader(t,!1)}})},this.update_preview=function(t,e){var o=n.find("cover_photo"==t?"#tutor_cover_area":"#tutor_profile_area");if(!e)return o.css("background-image","url("+o.data("fallback")+")"),void this.delete_image(t);t=new FileReader;t.onload=function(t){o.css("background-image","url("+t.target.result+")")},t.readAsDataURL(e)},this.toggle_profile_pic_action=function(t){n[void 0===t?"toggleClass":t?"addClass":"removeClass"]("pop-up-opened")},this.error_alert=function(){alert("Something Went Wrong.")},this.toggle_loader=function(t,e){n.find("#tutor_photo_meta_area .loader-area").css("display",e?"block":"none")},this.initialize=function(){var e=this;this.dialogue_box.change(function(t){e.accept_upload_image(e,t)}),n.find("#tutor_profile_area .tutor_overlay, #tutor_pp_option>div:last-child").click(function(){e.toggle_profile_pic_action()}),n.find(".tutor_cover_uploader").click(function(){e.open_dialogue_box("cover_photo")}),n.find(".tutor_pp_uploader").click(function(){e.open_dialogue_box("profile_photo")}),n.find(".tutor_cover_deleter").click(function(){e.update_preview("cover_photo",null)}),n.find(".tutor_pp_deleter").click(function(){e.update_preview("profile_photo",null)})}}(x).initialize(),u(".tutor-instructor-filter").each(function(){var e,r=u(this),s={};function n(t,e,o){var n=r.find(".filter-result-container"),a=n.html(),i=r.data();i.current_page=o||1,t?s[t]=e:s={},s.attributes=i,s.action="load_filtered_instructor",n.html('<div style="text-align:center"><img src="'+window._tutorobject.loading_icon_url+'"/></div>'),u.ajax({url:window._tutorobject.ajaxurl,data:s,type:"POST",success:function(t){n.html(t)},error:function(){n.html(a),tutor_toast("Failed","Request Error","error")}})}r.on("change",'.course-category-filter [type="checkbox"]',function(){var e={};u(this).closest(".course-category-filter").find("input:checked").each(function(){e[u(this).val()]=u(this).parent().text()});var o=r.find(".selected-cate-list").empty(),t=Object.keys(e);t.forEach(function(t){o.append("<span>"+e[t]+' <span class="tutor-icon-line-cross" data-cat_id="'+t+'"></span></span>')}),t.length&&o.append('<span data-cat_id="0">Clear All</span>'),n(u(this).attr("name"),t)}).on("click",".selected-cate-list [data-cat_id]",function(){var t=u(this).data("cat_id"),e=r.find('.mobile-filter-popup [type="checkbox"]');(e=t?e.filter('[value="'+t+'"]'):e).prop("checked",!1).trigger("change")}).on("input",'.filter-pc [name="keyword"]',function(){var t=u(this).val();e&&window.clearTimeout(e),e=window.setTimeout(function(){n("keyword",t),e=null},500)}).on("click","[data-page_number]",function(t){t.preventDefault(),n(null,null,u(this).data("page_number"))}).on("click",".clear-instructor-filter",function(){var t=u(this).closest(".tutor-instructor-filter");t.find('input[type="checkbox"]').prop("checked",!1),t.find('[name="keyword"]').val(""),n()}).on("click",".mobile-filter-container i",function(){u(this).parent().next().addClass("is-opened")}).on("click",".mobile-filter-popup button",function(){u('.mobile-filter-popup [type="checkbox"]').trigger("change"),u(this).closest(".mobile-filter-popup").removeClass("is-opened")}).on("input",'.filter-mobile [name="keyword"]',function(){r.find('.filter-pc [name="keyword"]').val(u(this).val()).trigger("input")}).on("change",'.mobile-filter-popup [type="checkbox"]',function(t){var e,o;t.originalEvent||(e=u(this).attr("name"),o=u(this).val(),t=u(this).prop("checked"),r.find('.course-category-filter [name="'+e+'"]').filter('[value="'+o+'"]').prop("checked",t).trigger("change"))}).on("mousedown touchstart",".expand-instructor-filter",function(t){var e=u(window).height(),o=r.find(".mobile-filter-popup>div"),n=e-o.height(),a=((t.originalEvent.touches||[])[0]||t).clientY-n;r.on("mousemove touchmove",function(t){t=((t.originalEvent.touches||[])[0]||t).clientY,t=e-t+a;200<t&&t<=e&&o.css("height",t+"px")})}).on("mouseup touchend",function(){r.off("mousemove touchmove")}).on("click",".mobile-filter-popup>div",function(t){t.stopImmediatePropagation()}).on("click",".mobile-filter-popup",function(t){u(this).removeClass("is-opened")})}),u(".tutor-course-retake-button").click(function(t){t.preventDefault();var t=u(this),e=t.attr("href"),o=t.data("course_id"),t={title:s("Override Previous Progress","tutor"),description:s("Before continue, please decide whether to keep progress or reset.","tutor"),buttons:{reset:{title:s("Reset Data","tutor"),class:"secondary",callback:function(){var t=n.find(".tutor-button-secondary");t.prop("disabled",!0).append('<img style="margin-left: 7px" src="'+window._tutorobject.loading_icon_url+'"/>'),u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_reset_course_progress",course_id:o},success:function(t){t.success?window.location.assign(t.data.redirect_to):alert((t.data||{}).message||s("Something went wrong","tutor"))},complete:function(){t.prop("disabled",!1).find("img").remove()}})}},keep:{title:s("Keep Data","tutor"),class:"primary",callback:function(){window.location.assign(e)}}}},n=new window.tutor_popup(u,"icon-gear",40).popup(t)}),document.body.addEventListener("click",function(t){var e,o=t.target,n=o.tagName,a=o.parentElement.tagName;0<m.length&&"EXPIRED"!=m.html()&&("A"!==n&&"A"!==a||(t.preventDefault(),t.stopImmediatePropagation(),t={title:s("Abandon Quiz?","tutor"),description:s("Do you want to abandon this quiz? The quiz will be submitted partially up to this question if you leave this page.","tutor"),buttons:{keep:{title:s("Yes, leave quiz","tutor"),id:"leave",class:"secondary",callback:function(){var t=u("form#tutor-answering-quiz").serialize()+"&action=tutor_quiz_abandon";u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){document.querySelector("#tutor-popup-leave").innerHTML=s("Leaving...","tutor")},success:function(t){t.success?null==o.href?location.href=o.parentElement.href:location.href=o.href:alert(s("Something went wrong","tutor"))},error:function(){alert(s("Something went wrong","tutor")),e.remove()}})}},reset:{title:s("Stay here","tutor"),id:"reset",class:"primary",callback:function(){e.remove()}}}},e=new window.tutor_popup(u,"",40).popup(t)))}),u("body").on("submit","form#tutor-start-quiz",function(){u(this).find("button").prop("disabled",!0)})})})()})();
1
+ (()=>{var o={623:()=>{function b(t){return(b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function y(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var n,a,i=[],r=!0,s=!1;try{for(o=o.call(t);!(r=(n=o.next()).done)&&(i.push(n.value),!e||i.length!==e);r=!0);}catch(t){s=!0,a=t}finally{try{r||null==o.return||o.return()}finally{if(s)throw a}}return i}}(t,e)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);return"Map"===(o="Object"===o&&t.constructor?t.constructor.name:o)||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?n(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,n=new Array(e);o<e;o++)n[o]=t[o];return n}window.tutor_get_nonce_data=function(t){var e=window._tutorobject||{},o=e.nonce_key||"",e=e[o]||"";return t?{key:o,value:e}:(t=e,(e=o)in(o={})?Object.defineProperty(o,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):o[e]=t,o)},window.tutor_popup=function(r,o,n){var s,u=this;return this.popup_wrapper=function(t){var e=""===o?"":'<img class="tutor-pop-icon" src="'+window._tutorobject.tutor_url+"assets/images/"+o+'.svg"/>';return"<"+t+' class="tutor-component-popup-container"> <div class="tutor-component-popup-'+n+'"> <div class="tutor-component-content-container">'+e+'</div> <div class="tutor-component-button-container"></div> </div> </'+t+">"},this.popup=function(o){var t=o.title?"<h3>"+o.title+"</h3>":"",e=o.description?"<p>"+o.description+"</p>":"",n=Object.keys(o.buttons||{}).map(function(t){var e=o.buttons[t],t=e.id?"tutor-popup-"+e.id:"";return r('<button id="'+t+'" class="tutor-button tutor-button-'+e.class+'">'+e.title+"</button>").click(e.callback)}),a=(s=r(u.popup_wrapper(o.wrapper_tag||"div"))).find(".tutor-component-content-container");a.append(t),o.after_title&&a.append(o.after_title),a.append(e),o.after_description&&a.append(o.after_description),s.click(function(){r(this).remove()}).children().click(function(t){t.stopPropagation()});for(var i=0;i<n.length;i++)s.find(".tutor-component-button-container").append(n[i]);return r("body").append(s),s},{popup:this.popup}},window.tutorDotLoader=function(t){return' \n <div class="tutor-dot-loader '.concat(t||"",'">\n <span class="dot dot-1"></span>\n <span class="dot dot-2"></span>\n <span class="dot dot-3"></span>\n <span class="dot dot-4"></span>\n </div>')},window.tutor_date_picker=function(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",$(".tutor_date_picker").datepicker({dateFormat:t}))},jQuery(document).ready(function(l){"use strict";var t=wp.i18n,a=t.__;t._x,t._n,t._nx;function o(){var t;jQuery.datepicker&&(t=_tutorobject.wp_date_format||"yy-mm-dd",l(".tutor_date_picker").datepicker({dateFormat:t})),l(document).on("keydown",".hasDatepicker, .tutor_date_picker",function(t){8!==t.keyCode&&t.preventDefault()})}function s(){l(".tutor-field-slider").each(function(){var t=l(this),o=t.closest(".tutor-field-type-slider").find('input[type="hidden"]'),n=t.closest(".tutor-field-type-slider").find(".tutor-field-type-slider-value"),e=parseFloat(t.closest(".tutor-field-type-slider").attr("data-min")),a=parseFloat(t.closest(".tutor-field-type-slider").attr("data-max"));t.slider({range:"max",min:e,max:a,value:o.val(),slide:function(t,e){n.text(e.value),o.val(e.value)}})})}function e(t){var e=t.element;return l('<span><i class="tutor-icon-'+l(e).data("icon")+'"></i> '+t.text+"</span>")}function i(){jQuery().sortable&&(l(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){n()}}),l(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){n()}}))}function n(){var i={};l(".tutor-topics-wrap").each(function(t,e){var o=l(this),n=parseInt(o.attr("id").match(/\d+/)[0],10),a={};o.find(".course-content-item").each(function(t,e){var o=l(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);a[t]=o}),i[t]={topic_id:n,lesson_ids:a}}),l("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}function r(){return{init:function(){l(document).on("click",".tutor-select .tutor-select-option",function(t){t.preventDefault();var e=l(this);"true"!==e.attr("data-is-pro")?(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")).trigger("change"),e.closest(".tutor-select-options").hide(),disableAddoption()):alert("Tutor Pro version required")}),l(document).on("click",".tutor-select .select-header",function(t){t.preventDefault(),l(this).closest(".tutor-select").find(".tutor-select-options").slideToggle()}),this.setValue(),this.hideOnOutSideClick()},setValue:function(){l(".tutor-select").each(function(){var t=l(this).find(".tutor-select-option");t.length&&t.each(function(){var t,e=l(this);"selected"===e.attr("data-selected")&&(t=e.html().trim(),e.closest(".tutor-select").find(".select-header .lead-option").html(t),e.closest(".tutor-select").find(".select-header input.tutor_select_value_holder").val(e.attr("data-value")))})})},hideOnOutSideClick:function(){l(document).mouseup(function(t){var e=l(".tutor-select-options");l(t.target).closest(".select-header").length||e.is(t.target)||0!==e.has(t.target).length||e.hide()})},reInit:function(){this.setValue()}}}o(),s(),jQuery().select2&&l(".videosource_select2").select2({width:"100%",templateSelection:e,templateResult:e,allowHtml:!0}),l(document).on("change",".tutor_lesson_video_source",function(t){var e=l(this),o=l(this).val();o?l(".video-metabox-source-input-wrap").show():l(".video-metabox-source-input-wrap").hide(),e.closest(".tutor-option-field").find(".video-metabox-source-item").hide(),e.closest(".tutor-option-field").find(".video_source_wrap_"+o).show()}),l(document).on("click",".tutor-course-thumbnail-upload-btn",function(t){t.preventDefault();var e,o=l(this);e||(e=wp.media({title:a("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:a("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t.url),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),l(".tutor-course-thumbnail-delete-btn").show()}),e.open()}),l(document).on("click",".tutor-course-thumbnail-delete-btn",function(t){t.preventDefault();var e=l(this),t=e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("data-placeholder-src");e.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").attr("src",t),e.closest(".tutor-thumbnail-wrap").find("input").val(""),l(".tutor-course-thumbnail-delete-btn").hide()}),l(document).on("click",".create_new_topic_btn",function(t){t.preventDefault(),l(".tutor-metabox-add-topics").slideToggle()}),l(document).on("click","#tutor-add-topic-btn",function(t){t.preventDefault();var e=l(this),t=e.closest(".tutor-metabox-add-topics").find("input, textarea").serializeObject();t.action="tutor_add_course_topic",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(l("#tutor-course-content-wrap").html(t.data.course_contents),e.closest(".tutor-metabox-add-topics").find('input[type!="hidden"], textarea').each(function(){l(this).val("")}),e.closest(".tutor-metabox-add-topics").slideUp(),i())},complete:function(){e.removeClass("tutor-updating-message")}})}),l(".tutor-zoom-meeting-modal-wrap").on("submit",".tutor-meeting-modal-form",function(t){t.preventDefault();var e=l(this),o=e.serializeObject(),t=Intl.DateTimeFormat().resolvedOptions().timeZone;o.timezone=t;var n=e.find('button[type="submit"]');l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){n.addClass("tutor-updating-message")},success:function(t){t.success?tutor_toast(a("Success","tutor"),n.data("toast_success_message"),"success"):tutor_toast(a("Update Error","tutor"),a("Meeting Update Failed","tutor"),"error"),t.course_contents?(l(t.selector).html(t.course_contents),"#tutor-course-content-wrap"==t.selector&&i(),l(".tutor-zoom-meeting-modal-wrap").removeClass("show")):location.reload()},complete:function(){n.removeClass("tutor-updating-message")}})}),l(document).on("change keyup",".course-edit-topic-title-input",function(t){t.preventDefault(),l(this).closest(".tutor-topics-top").find(".topic-inner-title").html(l(this).val())}),l(document).on("click",".topic-edit-icon",function(t){t.preventDefault(),l(this).closest(".tutor-topics-top").find(".tutor-topics-edit-form").slideToggle()}),l(document).on("click",".tutor-topics-edit-button",function(t){t.preventDefault();var e=l(this),o=e.closest(".tutor-topics-wrap"),t=parseInt(o.attr("id").match(/\d+/)[0],10),n=e.closest(".tutor-topics-wrap").find('[name="topic_title"]').val(),o=e.closest(".tutor-topics-wrap").find('[name="topic_summery"]').val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_title:n,topic_summery:o,topic_id:t,action:"tutor_update_topic"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".tutor-topics-wrap").find("span.topic-inner-title").text(n),e.closest(".tutor-topics-wrap").find(".tutor-topics-edit-form").slideUp())},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".open-tutor-lesson-modal",function(t){t.preventDefault();var e=l(this),o=e.attr("data-lesson-id"),n=e.attr("data-topic-id"),a=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:o,topic_id:n,course_id:a,action:"tutor_load_edit_lesson_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),l(".tutor-lesson-modal-wrap").attr({"data-lesson-id":o,"data-topic-id":n}).addClass("show");t=(t=tinyMCEPreInit.mceInit.tutor_editor_config)||tinyMCEPreInit.mceInit.course_description;tinymce.init(t),tinymce.execCommand("mceRemoveEditor",!1,"tutor_lesson_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_lesson_modal_editor"),l(document).trigger("lesson_modal_loaded",{lesson_id:o,topic_id:n,course_id:a})},complete:function(){quicktags({id:"tutor_lesson_modal_editor"}),e.removeClass("tutor-updating-message")}})}),l(document).on("click",".lesson_thumbnail_upload_btn",function(t){t.preventDefault();var e,o=l(this);e||(e=wp.media({title:a("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:a("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html('<img src="'+t.url+'" alt="" /><a href="javascript:;" class="tutor-lesson-thumbnail-delete-btn"><i class="tutor-icon-line-cross"></i></a>'),o.closest(".tutor-thumbnail-wrap").find("input").val(t.id),l(".tutor-lesson-thumbnail-delete-btn").show()}),e.open()}),l(document).on("click",".tutor-lesson-thumbnail-delete-btn",function(t){t.preventDefault();t=l(this);t.closest(".tutor-thumbnail-wrap").find("._lesson_thumbnail_id").val(""),t.closest(".tutor-thumbnail-wrap").find(".thumbnail-img").html(""),t.hide()}),l(document).on("click",".tutor-delete-lesson-btn",function(t){var e;t.preventDefault(),confirm(a("Are you sure?","tutor"))&&(t=(e=l(this)).attr("data-lesson-id"),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{lesson_id:t,action:"tutor_delete_lesson_by_id"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&e.closest(".course-content-item").remove()},complete:function(){e.removeClass("tutor-updating-message")}}))}),l(document).on("click",".topic-delete-btn a",function(t){l(this).attr("data-topic-id");confirm(a("Are you sure to delete?","tutor"))||t.preventDefault()}),l(document).on("click",".tutor-expand-all-topic",function(t){t.preventDefault(),l(".tutor-topics-body").slideDown(),l(".expand-collapse-wrap i").removeClass("tutor-icon-light-down").addClass("tutor-icon-light-up")}),l(document).on("click",".tutor-collapse-all-topic",function(t){t.preventDefault(),l(".tutor-topics-body").slideUp(),l(".expand-collapse-wrap i").removeClass("tutor-icon-light-up").addClass("tutor-icon-light-down")}),l(document).on("click",".topic-inner-title, .expand-collapse-wrap",function(t){t.preventDefault();t=l(this);t.closest(".tutor-topics-wrap").find(".tutor-topics-body").slideToggle(),t.closest(".tutor-topics-wrap").find(".expand-collapse-wrap i").toggleClass("tutor-icon-light-down tutor-icon-light-up")}),l(document).on("click",".quiz-modal-btn-first-step",function(t){t.preventDefault();var e,o,n,a=l(this),i=l('[name="quiz_title"]'),r=i.val(),t=l('[name="quiz_description"]').val();r?(i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html(""),e=l("#post_ID").val(),o=a.closest(".tutor-modal-wrap").attr("quiz-for-post-id"),l("#tutor_quiz_builder_quiz_id").length?(n=l("#tutor_quiz_builder_quiz_id").val(),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,quiz_id:n,topic_id:o,action:"tutor_quiz_builder_quiz_update"},beforeSend:function(){a.addClass("tutor-updating-message")},success:function(t){l("#tutor-quiz-"+n).html(t.data.output_quiz_row),l('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s()},complete:function(){a.removeClass("tutor-updating-message")}})):l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_title:r,quiz_description:t,course_id:e,topic_id:o,action:"tutor_create_quiz_and_load_modal"},beforeSend:function(){a.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),l("#tutor-topics-"+o+" .tutor-lessons").append(t.data.output_quiz_row),l('#tutor-quiz-modal-tab-items-wrap a[href="#quiz-builder-tab-questions"]').trigger("click"),s(),l(document).trigger("quiz_modal_loaded",{topic_id:o,course_id:e})},complete:function(){a.removeClass("tutor-updating-message")}})):i.closest(".tutor-quiz-builder-group").find(".quiz_form_msg").html("Please enter quiz title")}),l(document).on("click",".open-tutor-quiz-modal",function(t){t.preventDefault();var e=l(this),o=e.attr("data-quiz-id"),n=e.attr("data-topic-id");null==n&&(n=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id"));var a=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:o,topic_id:n,course_id:a,action:"tutor_load_edit_quiz_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),l(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id",o).attr("quiz-for-post-id",n).addClass("show"),e.attr("data-back-to-tab")&&(t=e.attr("data-back-to-tab"),l('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")),l(document).trigger("quiz_modal_loaded",{quiz_id:o,topic_id:n,course_id:a}),s(),jQuery().sortable&&l(".quiz-builder-questions-wrap").sortable({handle:".question-sorting",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var n;n={},l(".quiz-builder-question-wrap").each(function(t,e){var o=l(this),o=parseInt(o.attr("data-question-id"),10);n[t]=o}),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_question_ids:n,action:"tutor_quiz_question_sorting"}})}})},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".quiz-modal-settings-save-btn",function(t){t.preventDefault();var e=l(this),o=l(".tutor-quiz-builder-modal-wrap").attr("data-quiz-id"),n=l("#current_topic_id_for_quiz").val(),t=l("#quiz-builder-tab-settings :input, #quiz-builder-tab-advanced-options :input").serializeObject();t.topic_id=n,t.quiz_id=o,t.action="tutor_quiz_modal_update_settings",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&l("#tutor-course-content-wrap").html(t.data.course_contents),t.success?tutor_toast(a("Success","tutor"),e.data("toast_success_message"),"success"):tutor_toast(a("Update Error","tutor"),a("Quiz Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message"),"modal_close"===e.attr("data-action")&&l(".tutor-modal-wrap").removeClass("show")}})}),l(document).on("click",".quiz-modal-question-save-btn",function(t){t.preventDefault();var e=l(this),o=l(".quiz_question_form :input").serializeObject();o.action="tutor_quiz_modal_update_question";t=e.closest(".tutor-modal-wrap").attr("quiz-for-post-id");o.topic_id=t,l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?e.closest(".tutor-quiz-builder-modal-contents").find(".open-tutor-quiz-modal").trigger("click"):void 0!==t.data&&l("#quiz_validation_msg_wrap").html(t.data.validation_msg)},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".modal-close-btn",function(t){t.preventDefault(),l(".tutor-modal-wrap").removeClass("show")}),l(document).on("keyup",function(t){27===t.keyCode&&l(".tutor-modal-wrap").removeClass("show")}),l(document).on("click",".tutor-add-quiz-btn",function(t){t.preventDefault();var e=l(this),o=l(this).closest(".tutor_add_quiz_wrap").attr("data-add-quiz-under"),t=l(this).data("topic-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_for_post_id:o,current_topic_id:t,action:"tutor_load_quiz_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-wrap .modal-container").html(t.data.output),l(".tutor-quiz-builder-modal-wrap").attr("quiz-for-post-id",o).addClass("show")},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-modal-tab-item",function(t){t.preventDefault();var e=l(this),o=l('[name="quiz_title"]');o.val()?(o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html(""),t=e.attr("href"),l(".quiz-builder-tab-container").hide(),l(t).show(),l("a.tutor-quiz-modal-tab-item").removeClass("active"),e.addClass("active")):o.closest(".tutor-quiz-builder-form-row").find(".quiz_form_msg").html('<p class="quiz-form-warning">Please save the quiz first</p>')}),l(document).on("click",".quiz-modal-btn-next, .quiz-modal-btn-back",function(t){t.preventDefault();t=l(this).attr("href");l('#tutor-quiz-modal-tab-items-wrap a[href="'+t+'"]').trigger("click")}),l(document).on("click",".quiz-modal-tab-navigation-btn.quiz-modal-btn-cancel",function(t){t.preventDefault(),l(".tutor-modal-wrap").removeClass("show")}),l(document).on("click",".tutor-quiz-open-question-form",function(t){t.preventDefault();var e=l(this),o=l("#tutor_quiz_builder_quiz_id").val(),n=l("#post_ID").val(),t=e.attr("data-question-id"),n={quiz_id:o,course_id:n,action:"tutor_quiz_builder_get_question_form"};t&&(n.question_id=t),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:n,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l(".tutor-quiz-builder-modal-contents").html(t.data.output),r().reInit(),jQuery().sortable&&l("#tutor_quiz_question_answers").sortable({handle:".tutor-quiz-answer-sort-icon",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){var n;n={},l(".tutor-quiz-answer-wrap").each(function(t,e){var o=l(this),o=parseInt(o.attr("data-answer-id"),10);n[t]=o}),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{sorted_answer_ids:n,action:"tutor_quiz_answer_sorting"}})}}),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-question-trash",function(t){t.preventDefault();var e=l(this),t=e.attr("data-question-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:t,action:"tutor_quiz_builder_question_delete"},beforeSend:function(){e.closest(".quiz-builder-question-wrap").remove()}})}),l(document).on("click",".add_question_answers_option:not(.disabled)",function(t){t.preventDefault();var e=l(this),o=e.attr("data-question-id"),t=l(".quiz_question_form :input").serializeObject();t.question_id=o,t.action="tutor_quiz_add_question_answers",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answer_form").html(t.data.output),disableAddoption()},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-answer-edit a",function(t){t.preventDefault();var e=l(this),t=e.closest(".tutor-quiz-answer-wrap").attr("data-answer-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_edit_question_answer"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answer_form").html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click","#quiz-answer-save-btn",function(t){t.preventDefault();var e=l(this),t=l(".quiz_question_form :input").serializeObject();t.action="tutor_save_quiz_answer_options",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){l("#quiz_validation_msg_wrap").html(""),e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click","#quiz-answer-edit-btn",function(t){t.preventDefault();var e=l(this),t=l(".quiz_question_form :input").serializeObject();t.action="tutor_update_quiz_answer_options",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){l("#tutor_quiz_question_answers").trigger("refresh")},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("change",".tutor-quiz-answers-mark-correct-wrap input",function(t){t.preventDefault();var e=l(this),o=e.val(),t=1;e.prop("checked")||(t=0),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:o,inputValue:t,action:"tutor_mark_answer_as_correct"}})}),l(document).on("refresh","#tutor_quiz_question_answers",function(t){t.preventDefault();var e=l(this),o=e.attr("data-question-id"),t=l(".tutor_select_value_holder").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{question_id:o,question_type:t,action:"tutor_quiz_builder_get_answers_by_question"},beforeSend:function(){e.addClass("tutor-updating-message"),l("#tutor_quiz_question_answer_form").html("")},success:function(t){t.success&&e.html(t.data.output)},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-quiz-answer-trash-wrap a.answer-trash-btn",function(t){t.preventDefault();var e=l(this),t=e.attr("data-answer-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{answer_id:t,action:"tutor_quiz_builder_delete_answer"},beforeSend:function(){e.closest(".tutor-quiz-answer-wrap").remove()}})}),l(document).on("click",".tutor-delete-quiz-btn",function(t){var e;t.preventDefault(),confirm(a("Are you sure?","tutor"))&&(t=(e=l(this)).attr("data-quiz-id"),l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{quiz_id:t,action:"tutor_delete_quiz_by_id"},beforeSend:function(){e.closest(".course-content-item").remove()}}))}),r().init(),l(document).on("change","input.tutor_select_value_holder",function(t){l(this);l(".add_question_answers_option").trigger("click"),l("#tutor_quiz_question_answers").trigger("refresh")}),l(document).on("click",".tutor-media-upload-btn",function(t){t.preventDefault();var e,o=l(this);e||(e=wp.media({title:a("Select or Upload Media Of Your Chosen Persuasion","tutor"),button:{text:a("Use this media","tutor")},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.html('<img src="'+t.url+'" alt="" />'),o.closest(".tutor-media-upload-wrap").find("input").val(t.id)}),e.open()}),l(document).on("click",".tutor-media-upload-trash",function(t){t.preventDefault();t=l(this);t.closest(".tutor-media-upload-wrap").find(".tutor-media-upload-btn").html('<i class="tutor-icon-image1"></i>'),t.closest(".tutor-media-upload-wrap").find("input").val("")});var u,c=(u=0,function(t,e){clearTimeout(u),u=setTimeout(t,e)});l(document).on("click",".tutor-add-instructor-btn",function(t){t.preventDefault();var e=l(this),t=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:t,action:"tutor_load_instructors_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(l(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),l(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("change keyup",".tutor-instructors-modal-wrap .tutor-modal-search-input",function(t){t.preventDefault();var o=l(this),n=l(".tutor-modal-wrap");c(function(){var t=o.val(),e=l("#post_ID").val();l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:e,search_terms:t,action:"tutor_load_instructors_modal"},beforeSend:function(){n.addClass("loading")},success:function(t){t.success&&(l(".tutor-instructors-modal-wrap .modal-container").html(t.data.output),l(".tutor-instructors-modal-wrap").addClass("show"))},complete:function(){n.removeClass("loading")}})},1e3)}),l(document).on("click",".add_instructor_to_course_btn",function(t){t.preventDefault();var e=l(this),o=l(".tutor-modal-wrap"),t=l("#post_ID").val(),o=o.find("input").serializeObject();o.course_id=t,o.action="tutor_add_instructors_to_course",l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(l(".tutor-course-available-instructors").html(t.data.output),l(".tutor-modal-wrap").removeClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),l(document).on("click",".tutor-instructor-delete-btn",function(t){t.preventDefault();var e=l(this),o=l("#post_ID").val(),t=e.closest(".added-instructor-item").attr("data-instructor-id");l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{course_id:o,instructor_id:t,action:"detach_instructor_from_course"},success:function(t){t.success&&e.closest(".added-instructor-item").remove()}})}),l(document).on("click",".settings-tabs-navs li",function(t){t.preventDefault();var e=l(this),o=e.find("a").attr("data-target"),t=e.find("a").attr("href");e.addClass("active").siblings("li.active").removeClass("active"),l(".settings-tab-wrap").removeClass("active").hide(),l(o).addClass("active").show(),window.history.pushState({},"",t)}),l(document).on("lesson_modal_loaded quiz_modal_loaded assignment_modal_loaded",function(t,e){jQuery().select2&&l(".select2_multiselect").select2({dropdownCssClass:"increasezindex"}),o()}),l(document).on("lesson_modal_loaded",function(t,e){l(".tutor-lesson-modal-wrap .modal-title h1").html(a("Lesson","tutor"))}),l(document).on("assignment_modal_loaded",function(t,e){l(".tutor-lesson-modal-wrap .modal-title h1").html(a("Assignment","tutor"))}),l(document).on("keyup change",".tutor-number-validation",function(t){var e=l(this),o=parseInt(e.val()),n=parseInt(e.attr("data-min")),a=parseInt(e.attr("data-max"));o<n?e.val(n):a<o&&e.val(a)}),l(document).on("click",".tutor-instructor-feedback",function(t){t.preventDefault();var e=l(this);l.ajax({url:window.ajaxurl||_tutorobject.ajaxurl,type:"POST",data:{attempts_id:e.data("attemptid"),feedback:l(".tutor-instructor-feedback-content").val(),action:"tutor_instructor_feedback"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success&&(e.closest(".course-content-item").remove(),tutor_toast(a("Success","tutor"),e.data("toast_success_message"),"success"))},complete:function(){e.removeClass("tutor-updating-message")}})});var d=l(".tutor-announcement-add-new"),p=l(".tutor-announcement-edit"),m=l(".tutor-announcement-delete"),_=l(".tutor-announcement-details"),t=l(".tutor-announcement-close-btn"),f=l(".tutor-accouncement-create-modal"),h=l(".tutor-accouncement-update-modal"),v=l(".tutor-accouncement-details-modal");function g(t,e){var o=new URL(window.location.href),n=o.searchParams;return n.set(t,e),o.search=n.toString(),_tutorobject.is_admin?n.set("paged",1):n.set("current_page",1),o.search=n.toString(),o.toString()}l(d).click(function(){f.addClass("show"),l("#tutor-annoucement-backend-create-modal").addClass("show")}),l(_).click(function(){var t=l(this).attr("announcement-date"),e=l(this).attr("announcement-id"),o=l(this).attr("course-id"),n=l(this).attr("course-name"),a=l(this).attr("announcement-title"),i=l(this).attr("announcement-summary");l(".tutor-announcement-detail-content").html("<h3>".concat(a,"</h3><p>").concat(i,"</p>")),l(".tutor-announcement-detail-course-info p").html("".concat(n)),l(".tutor-announcement-detail-date-info p").html("".concat(t)),l("#tutor-announcement-edit-from-detail").attr("announcement-id",e),l("#tutor-announcement-edit-from-detail").attr("course-id",o),l("#tutor-announcement-edit-from-detail").attr("announcement-title",a),l("#tutor-announcement-edit-from-detail").attr("announcement-summary",i),l("#tutor-announcement-delete-from-detail").attr("announcement-id",e),v.addClass("show")}),l(p).click(function(){v&&v.removeClass("show");var t=l(this).attr("announcement-id"),e=l(this).attr("course-id"),o=l(this).attr("announcement-title"),n=l(this).attr("announcement-summary");l("#tutor-announcement-course-id").val(e),l("#announcement_id").val(t),l("#tutor-announcement-title").val(o),l("#tutor-announcement-summary").val(n),h.addClass("show")}),l(t).click(function(){f.removeClass("show"),h.removeClass("show"),v.removeClass("show"),l("#tutor-annoucement-backend-create-modal").removeClass("show")}),l(".tutor-announcements-form").on("submit",function(t){t.preventDefault();var e=l(this).find('button[type="submit"]'),t=l(".tutor-announcements-form").serialize()+"&action=tutor_announcement_create&action_type=create";l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(l(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){l(".tutor-announcements-create-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var n=y(o[e],2),n=(n[0],n[1]);l(".tutor-announcements-create-alert .tutor-alert").append("<li>".concat(n,"</li>"))}}"fail"==t.status&&l(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(t){console.log(t)}})}),l(".tutor-announcements-update-form").on("submit",function(t){t.preventDefault();var e=l(this).find('button[type="submit"]'),t=l(".tutor-announcements-update-form").serialize()+"&action=tutor_announcement_create&action_type=update";l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){if(l(".tutor-alert").remove(),"success"==t.status&&location.reload(),"validation_error"==t.status){l(".tutor-announcements-update-alert").append('<div class="tutor-alert alert-warning"></div>');for(var e=0,o=Object.entries(t.message);e<o.length;e++){var n=y(o[e],2),n=(n[0],n[1]);l(".tutor-announcements-update-alert > .tutor-alert").append("<li>".concat(n,"</li>"))}}"fail"==t.status&&l(".tutor-announcements-create-alert").html("<li>".concat(t.message,"</li>"))},error:function(){}})}),l(m).click(function(){var t=l(this).attr("announcement-id"),e=l("#tutor-announcement-tr-"+t);confirm("Do you want to delete?")&&l.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_announcement_delete",announcement_id:t},beforeSend:function(){},success:function(t){e.remove(),v.length&&v.removeClass("show"),"fail"==t.status&&console.log(t.message)},error:function(){}})}),l(".tutor-announcement-course-sorting").on("change",function(t){window.location=g("course-id",l(this).val())}),l(".tutor-announcement-order-sorting").on("change",function(t){window.location=g("order",l(this).val())}),l(".tutor-announcement-date-sorting").on("change",function(t){window.location=g("date",l(this).val())}),l(".tutor-announcement-search-sorting").on("click",function(t){window.location=g("search",l(".tutor-announcement-search-field").val())}),l(document).click(function(){l(".tutor-dropdown").removeClass("show")}),l(".tutor-dropdown").click(function(t){t.stopPropagation(),l(".tutor-dropdown").hasClass("show")&&l(".tutor-dropdown").removeClass("show"),l(this).addClass("show")});var w,m=".video_source_wrap_external_url input, .video_source_wrap_vimeo input, .video_source_wrap_youtube input, .video_source_wrap_html5, .video_source_upload_wrap_html5";l("body").on("paste",m,function(t){t.stopImmediatePropagation();var r=l(this).closest(".lesson-modal-form-wrap").find(".tutor-option-field-video-duration"),e=r.find("label"),o=l(this).hasClass("video_source_wrap_html5")||l(this).hasClass("video_source_upload_wrap_html5"),n=l(this).data("autofill_url");l(this).data("autofill_url",null);function a(t){t?0==e.find("img").length&&e.append(' <img src="'+window._tutorobject.loading_icon_url+'" style="display:inline-block"/>'):e.find("img").remove()}function i(t){for(var e=Math.floor(t/3600),o=Math.floor((t-3600*e)/60),t=Math.round(t-3600*e-60*o),n=[e=e<10?"0"+e:e,o=o<10?"0"+o:o,t=t<10?"0"+t:t],a=r.find("input"),i=0;i<3;i++)a.eq(i).val(n[i])}var s,u,c,t=o?l(this).find("span").data("video_url"):n||t.originalEvent.clipboardData.getData("text");o||l(this).parent().hasClass("video_source_wrap_external_url")?((s=document.createElement("video")).addEventListener("loadedmetadata",function(){i(s.duration),a(!1)}),a(!0),s.src=t):l(this).parent().hasClass("video_source_wrap_vimeo")?(u=(c=t.match(/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/))?c[5]:null)&&(a(!0),l.getJSON("http://vimeo.com/api/v2/video/"+u+"/json",function(t){Array.isArray(t)&&t[0]&&void 0!==t[0].duration&&i(t[0].duration),a(!1)})):l(this).parent().hasClass("video_source_wrap_youtube")&&(u=!(!(c=t.match(/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/))||11!=c[7].length)&&c[7],c=l(this).data("youtube_api_key"),u&&c&&(c="https://www.googleapis.com/youtube/v3/videos?id="+u+"&key="+c+"&part=contentDetails",a(!0),l.getJSON(c,function(t){"object"==b(t)&&t.items&&t.items[0]&&t.items[0].contentDetails&&t.items[0].contentDetails.duration&&i(function(t){t=(t=t.match(/PT(\d+H)?(\d+M)?(\d+S)?/)).slice(1).map(function(t){if(null!=t)return t.replace(/\D/,"")});return 3600*(parseInt(t[0])||0)+60*(parseInt(t[1])||0)+(parseInt(t[2])||0)}(t.items[0].contentDetails.duration)),a(!1)})))}).on("input",m,function(){w&&clearTimeout(w);var e=l(this);w=setTimeout(function(){var t=(t=e.val())?t.trim():"";console.log("Trigger",t),t&&e.data("autofill_url",t).trigger("paste")},700)}),l(".tutor-form-submit-through-ajax").submit(function(t){t.preventDefault();var e=l(this),o=l(this).attr("action")||window.location.href,n=l(this).attr("method")||"GET",t=l(this).serializeObject();e.find("button").addClass("tutor-updating-message"),l.ajax({url:o,type:n,data:t,success:function(){tutor_toast(a("Success","tutor"),e.data("toast_success_message"),"success")},complete:function(){e.find("button").removeClass("tutor-updating-message")}})}),l.ajaxSetup({data:tutor_get_nonce_data()})}),jQuery.fn.serializeObject=function(){var t={},e=this.serializeArray();return jQuery.each(e,function(){t[this.name]?(t[this.name].push||(t[this.name]=[t[this.name]]),t[this.name].push(this.value||"")):t[this.name]=this.value||""}),t},window.tutor_toast=function(t,e,o){var n=((window._tutorobject||{}).tutor_url||"")+"assets/images/";jQuery(".tutor-toast-parent").length||jQuery("body").append('<div class="tutor-toast-parent"></div>');var a=jQuery(' <div> <div> <img src="'+{success:n+"icon-check.svg",error:n+"icon-cross.svg"}[o]+'"/> </div> <div> <div> <b>'+t+"</b> <span>"+e+'</span> </div> </div> <div> <i class="tutor-toast-close tutor-icon-line-cross"></i> </div> </div>');a.find(".tutor-toast-close").click(function(){a.remove()}),jQuery(".tutor-toast-parent").append(a),setTimeout(function(){a&&a.fadeOut("fast",function(){jQuery(this).remove()})},5e3)},window.disableAddoption=function(){function t(t){t.classList.contains("disabled")||t.classList.add("disabled")}function e(t){t.classList.contains("disabled")&&t.classList.remove("disabled")}var o=document.querySelector(".tutor_select_value_holder").value,n=document.getElementById("tutor_quiz_question_answers"),a=document.getElementById("tutor_quiz_question_answer_form"),i=document.querySelector(".add_question_answers_option");("open_ended"===o||"short_answer"===o||("true_false"===o||"fill_in_the_blank"===o)&&(a.hasChildNodes()||n.hasChildNodes())?t:e)(i)}},896:()=>{window.jQuery(document).ready(function(o){var n=wp.i18n.__;o(document).on("click",".tutor-copy-text",function(t){t.stopImmediatePropagation(),t.preventDefault();var e=o(this).data("text"),t=o("<input>");o("body").append(t),t.val(e).select(),document.execCommand("copy"),t.remove(),tutor_toast(n("Copied!","tutor"),e,"success")})})}},n={};function a(t){var e=n[t];if(void 0!==e)return e.exports;e=n[t]={exports:{}};return o[t](e,e.exports,a),e.exports}(()=>{"use strict";a(896),a(623);jQuery(document).ready(function(u){var e,o,n,a,t=wp.i18n,s=t.__;t._x,t._n,t._nx;function i(t,e){var o,n;1<t.originalEvent.touches.length||(t.preventDefault(),o=t.originalEvent.changedTouches[0],(n=document.createEvent("MouseEvents")).initMouseEvent(e,!0,!0,window,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(n))}jQuery().select2&&u(".tutor_select2").select2({escapeMarkup:function(t){return t}}),(e=jQuery).support.touch="ontouchend"in document,e.support.touch&&(_=e.ui.mouse.prototype,n=_._mouseInit,a=_._mouseDestroy,_._touchStart=function(t){!o&&this._mouseCapture(t.originalEvent.changedTouches[0])&&(o=!0,this._touchMoved=!1,i(t,"mouseover"),i(t,"mousemove"),i(t,"mousedown"))},_._touchMove=function(t){o&&(this._touchMoved=!0,i(t,"mousemove"))},_._touchEnd=function(t){o&&(i(t,"mouseup"),i(t,"mouseout"),this._touchMoved||i(t,"click"),o=!1)},_._mouseInit=function(){var t=this;t.element.bind({touchstart:e.proxy(t,"_touchStart"),touchmove:e.proxy(t,"_touchMove"),touchend:e.proxy(t,"_touchEnd")}),n.call(t)},_._mouseDestroy=function(){var t=this;t.element.unbind({touchstart:e.proxy(t,"_touchStart"),touchmove:e.proxy(t,"_touchMove"),touchend:e.proxy(t,"_touchEnd")}),a.call(t)});var r={ajaxurl:window._tutorobject.ajaxurl,nonce_key:window._tutorobject.nonce_key,video_data:function(){var t=u("#tutor_video_tracking_information").val();return t?JSON.parse(t):{}},track_player:function(){var t,o,e,n=this;"undefined"!=typeof Plyr&&(t=new Plyr("#tutorPlayer"),o=n.video_data(),t.on("ready",function(t){var e=t.detail.plyr,t=o.best_watch_time;0<t&&e.duration>Math.round(t)&&(e.media.currentTime=t),n.sync_time(e)}),e=0,t.on("timeupdate",function(t){t=t.detail.plyr;30<=e/4&&(n.sync_time(t),e=0),e++}),t.on("ended",function(t){var e=n.video_data(),t=t.detail.plyr;n.sync_time(t,{is_ended:!0}),e.autoload_next_course_content&&n.autoload_content()}))},sync_time:function(t,e){var o=this.video_data().post_id,t={action:"sync_video_playback",currentTime:t.currentTime,duration:t.duration,post_id:o};t[this.nonce_key]=_tutorobject[this.nonce_key];o=t;e&&(o=Object.assign(t,e)),u.post(this.ajaxurl,o)},autoload_content:function(){var t={action:"autoload_next_course_content",post_id:this.video_data().post_id};t[this.nonce_key]=_tutorobject[this.nonce_key],u.post(this.ajaxurl,t).done(function(t){t.success&&t.data.next_url&&(location.href=t.data.next_url)})},init:function(){this.track_player()}};function c(t){t.add(t.prevAll()).filter("i").addClass("tutor-icon-star-full").removeClass("tutor-icon-star-line"),t.nextAll().filter("i").removeClass("tutor-icon-star-full").addClass("tutor-icon-star-line")}u("#tutorPlayer").length&&r.init(),u(document).on("change keyup paste",".tutor_user_name",function(){u(this).val(u(this).val().toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,""))}),u(document).on("mouseover",".tutor-star-rating-container .tutor-star-rating-group i",function(){c(u(this))}),u(document).on("click",".tutor-star-rating-container .tutor-star-rating-group i",function(){var t=u(this).attr("data-rating-value");u(this).closest(".tutor-star-rating-group").find('input[name="tutor_rating_gen_input"]').val(t),c(u(this))}),u(document).on("mouseout",".tutor-star-rating-container .tutor-star-rating-group",function(){var t=u(this).find('input[name="tutor_rating_gen_input"]').val(),e=parseInt(t),t=u(this).find('[data-rating-value="'+e+'"]');e&&t&&0<t.length?c(t):u(this).find("i").removeClass("tutor-icon-star-full").addClass("tutor-icon-star-line")}),u(document).on("click",".tutor_submit_review_btn",function(t){t.preventDefault();var e=u(this),o=e.closest("form").find('input[name="tutor_rating_gen_input"]').val(),n=(n=e.closest("form").find('textarea[name="review"]').val()).trim(),t=u('input[name="tutor_course_id"]').val();o&&0!=o&&n?n&&u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{course_id:t,rating:o,review:n,action:"tutor_place_rating"},beforeSend:function(){e.addClass("updating-icon")},success:function(t){var e=t.data.review_id,t=t.data.review;u(".tutor-review-"+e+" .review-content").html(t),new window.tutor_popup(u,"icon-rating",40).popup({title:s("Thank You for Rating This Course!","tutor"),description:s("Your rating will now be visible in the course page","tutor")}),setTimeout(function(){location.reload()},3e3)}}):alert(s("Rating and review required","tutor"))}).on("click",".tutor_cancel_review_btn",function(){u(this).closest("form").hide()}),u(document).on("click",".write-course-review-link-btn",function(t){t.preventDefault(),u(this).siblings(".tutor-write-review-form").slideToggle()}),u(document).on("click",".tutor-ask-question-btn",function(t){t.preventDefault(),u(".tutor-add-question-wrap").slideToggle()}),u(document).on("click",".tutor_question_cancel",function(t){t.preventDefault(),u(".tutor-add-question-wrap").toggle()}),u(document).on("submit","#tutor-ask-question-form",function(t){t.preventDefault();var e=u(this),t=u(this).serializeObject();t.action="tutor_ask_question",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor_ask_question_btn").addClass("updating-icon")},success:function(t){t.success&&(u(".tutor-add-question-wrap").hide(),window.location.reload())},complete:function(){e.find(".tutor_ask_question_btn").removeClass("updating-icon")}})}),u(document).on("submit",".tutor-add-answer-form",function(t){t.preventDefault();var e=u(this),t=u(this).serializeObject();t.action="tutor_add_answer",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor_add_answer_btn").addClass("updating-icon")},success:function(t){t.success&&window.location.reload()},complete:function(){e.find(".tutor_add_answer_btn").removeClass("updating-icon")}})}),u(document).on("focus",".tutor_add_answer_textarea",function(t){t.preventDefault();t=u(this).closest(".tutor_add_answer_wrap").attr("data-question-id");wp.editor.initialize("tutor_answer_"+t,{tinymce:{wpautop:!0,toolbar1:"bold italic underline bullist strikethrough numlist blockquote alignleft aligncenter alignright undo redo link unlink spellchecker fullscreen"}})}),u(document).on("click",".tutor_cancel_wp_editor",function(t){t.preventDefault(),u(this).closest(".tutor_wp_editor_wrap").toggle(),u(this).closest(".tutor_add_answer_wrap").find(".tutor_wp_editor_show_btn_wrap").toggle();t=u(this).closest(".tutor_add_answer_wrap").attr("data-question-id");wp.editor.remove("tutor_answer_"+t)}),u(document).on("click",".tutor_wp_editor_show_btn",function(t){t.preventDefault(),u(this).closest(".tutor_add_answer_wrap").find(".tutor_wp_editor_wrap").toggle(),u(this).closest(".tutor_wp_editor_show_btn_wrap").toggle()});var l,d,p,m=u("#tutor-quiz-time-update"),_=null;m.length&&(_=JSON.parse(m.attr("data-attempt-settings")),0<(f=JSON.parse(m.attr("data-attempt-meta"))).time_limit.time_limit_seconds?(l=new Date(_.attempt_started_at).getTime()+1e3*f.time_limit.time_limit_seconds,d=new Date(f.date_time_now).getTime(),p=setInterval(function(){var a,t=l-d,e=Math.floor(t/864e5),o=Math.floor(t%864e5/36e5),n=Math.floor(t%36e5/6e4),i=Math.floor(t%6e4/1e3),r="";e&&(r+=e+"d "),o&&(r+=o+"h "),n&&(r+=n+"m "),i&&(r+=i+"s "),t<0&&(clearInterval(p),r="EXPIRED","autosubmit"===_tutorobject.quiz_options.quiz_when_time_expires?u("form#tutor-answering-quiz").submit():"autoabandon"===_tutorobject.quiz_options.quiz_when_time_expires&&(t=u("#tutor_quiz_id").val(),u("#tutor_quiz_remaining_time_secs").val(),t={quiz_id:t,action:"tutor_quiz_timeout"},a=u("#tutor-quiz-time-expire-wrapper").attr("data-attempt-remaining"),u(".tutor-quiz-answer-next-btn, .tutor-quiz-submit-btn, .tutor-quiz-answer-previous-btn").prop("disabled",!0),u(".time-remaining span").css("color","#F44337"),u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,success:function(t){var e=u("#tutor-quiz-time-expire-wrapper").data("attempt-allowed"),o=u("#tutor-quiz-time-expire-wrapper").data("attempt-remaining"),n="#tutor-quiz-time-expire-wrapper .tutor-alert";u(n).addClass("show"),0<a?u("".concat(n," .text")).html(s("Your time limit for this quiz has expired, please reattempt the quiz. Attempts remaining: "+o+"/"+e,"tutor")):(u(n).addClass("tutor-alert-danger"),u("#tutor-start-quiz").hide(),u("".concat(n," .text")).html("".concat(s("Unfortunately, you are out of time and quiz attempts. ","tutor"))))},complete:function(){}}))),d+=1e3,m.html(r)},1e3)):m.closest(".time-remaining").remove());var f=u("#tutor-quiz-body form#tutor-start-quiz");function h(){jQuery().sortable&&(u(".tutor-quiz-answers-wrap").sortable({handle:".answer-sorting-bar",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){}}).disableSelection(),u(".quiz-draggable-rand-answers, .quiz-answer-matching-droppable").sortable({connectWith:".quiz-answer-matching-droppable",placeholder:"drop-hover"}).disableSelection())}function v(o){var t,e,n=!0,a=o.find(".quiz-answer-required");return a.length&&((t=a.find("input")).length&&("radio"===(e=t.attr("type"))?0==a.find('input[type="radio"]:checked').length&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("Please select an option to answer","tutor"),"</p>")),n=!1):"checkbox"===e?0==a.find('input[type="checkbox"]:checked').length&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("Please select at least one option to answer.","tutor"),"</p>")),n=!1):"text"===e&&t.each(function(t,e){u(e).val().trim().length||(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("The answer for this question is required","tutor"),"</p>")),n=!1)})),a.find("textarea").length&&a.find("textarea").val().trim().length<1&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("The answer for this question is required","tutor"),"</p>")),n=!1),(a=a.find(".quiz-answer-matching-droppable")).length&&a.each(function(t,e){u(e).find(".quiz-draggable-answer-item").length||(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("Please match all the items","tutor"),"</p>")),n=!1)})),n}function g(o){var n=!1,a=JSON.parse(atob(window.tutor_quiz_context.split("").reverse().join("")));Array.isArray(a)||(a=[]);var t=o.attr("data-quiz-feedback-mode");u(".wrong-right-text").remove(),u(".quiz-answer-input-bottom").removeClass("wrong-answer right-answer");var i=!0,e=o.find("input"),r=o.find('input[type="radio"]:checked, input[type="checkbox"]:checked');return"retry"===t?(r.each(function(){var t=u(this),e=t.attr("type");"radio"!==e&&"checkbox"!==e||-1<a.indexOf(t.val())||(t.prop("checked")&&t.closest(".quiz-answer-input-bottom").addClass("wrong-answer").append('<span class="wrong-right-text"><i class="tutor-icon-line-cross"></i> '.concat(s("Incorrect, Please try again","tutor"),"</span>")),i=!1)}),e.each(function(){var t,e=u(this);"checkbox"===e.attr("type")&&(t=-1<a.indexOf(e.val()),e=e.is(":checked"),t&&!e&&(o.find(".answer-help-block").html('<p style="color: #dc3545">'.concat(s("More answer for this question is required","tutor"),"</p>")),i=!1))})):"reveal"===t&&(r.each(function(){var t=u(this);-1<a.indexOf(t.val())||(i=!1)}),e.each(function(){var t,e=u(this),o=e.attr("type");"radio"!==o&&"checkbox"!==o||(t=-1<a.indexOf(e.val()),o=e.is(":checked"),t?e.closest(".quiz-answer-input-bottom").addClass("right-answer").append('<span class="wrong-right-text"><i class="tutor-icon-checkbox-pen-outline"></i>'.concat(s("Correct Answer","tutor"),"</span>")):e.prop("checked")&&e.closest(".quiz-answer-input-bottom").addClass("wrong-answer"),t&&!o&&(e.attr("disabled","disabled"),n=!(i=!1)))})),n=i?!0:n}f.length&&"1"===_tutorobject.quiz_options.quiz_auto_start&&f.submit(),u(document).on("click",".quiz-manual-review-action",function(t){t.preventDefault();var e=u(this),o=e.attr("data-attempt-id"),n=e.attr("data-attempt-answer-id"),t=e.attr("data-mark-as");u.ajax({url:_tutorobject.ajaxurl,type:"GET",data:{action:"review_quiz_answer",attempt_id:o,attempt_answer_id:n,mark_as:t},beforeSend:function(){e.find("i").addClass("updating-icon")},success:function(t){location.reload()},complete:function(){e.find("i").removeClass("updating-icon")}})}),u(".tooltip-btn").on("hover",function(t){u(this).toggleClass("active")}),u(".tutor-course-title h4 .toggle-information-icon").on("click",function(t){u(this).closest(".tutor-topics-in-single-lesson").find(".tutor-topics-summery").slideToggle(),t.stopPropagation()}),u(".tutor-course-topic.tutor-active").find(".tutor-course-lessons").slideDown(),u(".tutor-course-title").on("click",function(){var t=u(this).siblings(".tutor-course-lessons");u(this).closest(".tutor-course-topic").toggleClass("tutor-active"),t.slideToggle()}),u(document).on("click",".tutor-topics-title h3 .toggle-information-icon",function(t){u(this).closest(".tutor-topics-in-single-lesson").find(".tutor-topics-summery").slideToggle(),t.stopPropagation()}),u(document).on("click",".tutor-course-wishlist-btn",function(t){t.preventDefault();var e=u(this),t=e.attr("data-course-id");u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{course_id:t,action:"tutor_course_add_to_wishlist"},beforeSend:function(){e.addClass("updating-icon")},success:function(t){t.success?"added"===t.data.status?e.addClass("has-wish-listed"):e.removeClass("has-wish-listed"):window.location=t.data.redirect_to},complete:function(){e.removeClass("updating-icon")}})}),_tutorobject.enable_lesson_classic_editor||(u(document).on("click",".tutor-single-lesson-a",function(t){t.preventDefault();var e=u(this),t=e.attr("data-lesson-id"),o=u("#tutor-single-entry-content");u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{lesson_id:t,action:"tutor_render_lesson_content"},beforeSend:function(){var t=e.find(".lesson_title").text();u("head title").text(t),window.history.pushState("obj",t,e.attr("href")),o.addClass("loading-lesson"),u(".tutor-single-lesson-items").removeClass("active"),e.closest(".tutor-single-lesson-items").addClass("active")},success:function(t){o.html(t.data.html),r.init(),u(".tutor-lesson-sidebar").css("display",""),window.dispatchEvent(new window.Event("tutor_ajax_lesson_loaded"))},complete:function(){o.removeClass("loading-lesson")}})}),u(document).on("click",".sidebar-single-quiz-a",function(t){t.preventDefault();var e=u(this),t=e.attr("data-quiz-id"),o=e.find(".lesson_title").text(),n=u("#tutor-single-entry-content");u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{quiz_id:t,action:"tutor_render_quiz_content"},beforeSend:function(){u("head title").text(o),window.history.pushState("obj",o,e.attr("href")),n.addClass("loading-lesson"),u(".tutor-single-lesson-items").removeClass("active"),e.closest(".tutor-single-lesson-items").addClass("active")},success:function(t){n.html(t.data.html),h(),u(".tutor-lesson-sidebar").css("display","")},complete:function(){n.removeClass("loading-lesson")}})})),u(document).on("click",".tutor-lesson-sidebar-hide-bar",function(t){t.preventDefault(),u(".tutor-lesson-sidebar").toggle(),u("#tutor-single-entry-content").toggleClass("sidebar-hidden")}),u(".tutor-tabs-btn-group a").on("click touchstart",function(t){t.preventDefault();var e=u(this),t=e.attr("href");u(".tutor-lesson-sidebar-tab-item").hide(),u(t).show(),u(".tutor-tabs-btn-group a").removeClass("active"),e.addClass("active")}),h(),u(document).on("click",".tutor-quiz-answer-next-btn, .tutor-quiz-answer-previous-btn",function(t){var e,o;t.preventDefault(),u(this).hasClass("tutor-quiz-answer-previous-btn")?u(this).closest(".quiz-attempt-single-question").hide().prev().show():v(t=(e=u(this)).closest(".quiz-attempt-single-question"))&&g(t)&&(parseInt(e.closest(".quiz-attempt-single-question").attr("id").match(/\d+/)[0],10),!(e=e.closest(".quiz-attempt-single-question").attr("data-next-question-id"))||(o=u(e))&&o.length&&("reveal"===t.attr("data-quiz-feedback-mode")?setTimeout(function(){u(".quiz-attempt-single-question").hide(),o.show()},800):(u(".quiz-attempt-single-question").hide(),o.show()),u(".tutor-quiz-questions-pagination").length&&(u(".tutor-quiz-question-paginate-item").removeClass("active"),u('.tutor-quiz-questions-pagination a[href="'+e+'"]').addClass("active"))))}),u(document).on("submit","#tutor-answering-quiz",function(t){var e=u(".quiz-attempt-single-question"),o=!0;e.length&&e.each(function(t,e){o=v(u(e)),o=g(u(e))}),o||t.preventDefault()}),u(document).on("click",".tutor-quiz-question-paginate-item",function(t){t.preventDefault();var e=u(this),t=u(e.attr("href"));u(".quiz-attempt-single-question").hide(),t.show(),u(".tutor-quiz-question-paginate-item").removeClass("active"),e.addClass("active")}),u(document).on("keyup","textarea.question_type_short_answer, textarea.question_type_open_ended",function(t){var e=u(this),o=e.val(),n=e.hasClass("question_type_short_answer")?_tutorobject.quiz_options.short_answer_characters_limit:_tutorobject.quiz_options.open_ended_answer_characters_limit,a=n-o.length;a<1&&(e.val(o.substr(0,n)),a=0),e.closest(".tutor-quiz-answers-wrap").find(".characters_remaining").html(a)}),u(".quiz-draggable-rand-answers").length&&u(".quiz-draggable-rand-answers").each(function(){var t=u(this),e=t.height();t.css({height:e})}),u(document).on("submit click",".cart-required-login, .cart-required-login a, .cart-required-login form",function(t){t.preventDefault();t=u(this).data("login_page_url");t?window.location.assign(t):u(".tutor-cart-box-login-form").fadeIn(100)}),u(".tutor-popup-form-close, .login-overlay-close").on("click",function(){u(".tutor-cart-box-login-form").fadeOut(100)}),u(document).on("keyup",function(t){27===t.keyCode&&(u(".tutor-frontend-modal").hide(),u(".tutor-cart-box-login-form").fadeOut(100))}),!u.fn.ShareLink||(f=u(".tutor-social-share-wrap")).length&&(x=JSON.parse(f.attr("data-social-share-config")),u(".tutor_share").ShareLink({title:x.title,text:x.text,image:x.image,class_prefix:"s_",width:640,height:480})),jQuery.datepicker&&u(".tutor_report_datepicker").datepicker({dateFormat:"yy-mm-dd"}),u(".withdraw-method-select-input").on("change",function(t){var e=u(this);u(".withdraw-method-form").hide(),u("#withdraw-method-form-"+e.closest(".withdraw-method-select").attr("data-withdraw-method")).show()}),u(".withdraw-method-select-input").each(function(){var t=u(this);t.is(":checked")&&(u(".withdraw-method-form").hide(),u("#withdraw-method-form-"+t.closest(".withdraw-method-select").attr("data-withdraw-method")).show())}),u(document).on("submit","#tutor-withdraw-account-set-form",function(t){t.preventDefault();var e=u(this),o=e.find(".tutor_set_withdraw_account_btn"),t=e.serializeObject();u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor-success-msg").remove(),o.addClass("updating-icon")},success:function(t){t.success&&(t='<div class="tutor-success-msg" style="display: none;"><i class="tutor-icon-mark"></i> '+t.data.msg+" </div>",o.closest(".withdraw-account-save-btn-wrap").append(t),e.find(".tutor-success-msg").length&&e.find(".tutor-success-msg").slideDown(),setTimeout(function(){e.find(".tutor-success-msg").slideUp()},5e3))},complete:function(){o.removeClass("updating-icon")}})}),u(document).on("click",".open-withdraw-form-btn, .close-withdraw-form-btn",function(t){t.preventDefault(),"yes"!=u(this).data("reload")?(u(".tutor-earning-withdraw-form-wrap").toggle().find('[name="tutor_withdraw_amount"]').val(""),u(".tutor-withdrawal-pop-up-success").hide().next().show(),u("html, body").css("overflow",u(".tutor-earning-withdraw-form-wrap").is(":visible")?"hidden":"auto")):window.location.reload()}),u(document).on("submit","#tutor-earning-withdraw-form",function(t){t.preventDefault();var e=u(this),o=u("#tutor-earning-withdraw-btn"),n=u(".tutor-withdraw-form-response"),t=e.serializeObject();u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.find(".tutor-success-msg").remove(),o.addClass("updating-icon")},success:function(t){t.success?("undefined"!==t.data.available_balance&&u(".withdraw-balance-col .available_balance").html(t.data.available_balance),u(".tutor-withdrawal-pop-up-success").show().next().hide()):(t='<div class="tutor-error-msg inline-image-text is-inline-block"> <img src="'+window._tutorobject.tutor_url+'assets/images/icon-cross.svg"/> <div> <b>Error</b><br/> <span>'+t.data.msg+"</span> </div> </div>",n.html(t),setTimeout(function(){n.html("")},5e3))},complete:function(){o.removeClass("updating-icon")}})});var w=u(".tutor-frontend-modal");function b(){jQuery().sortable&&(u(".course-contents").sortable({handle:".course-move-handle",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){y()}}),u(".tutor-lessons:not(.drop-lessons)").sortable({connectWith:".tutor-lessons",items:"div.course-content-item",start:function(t,e){e.placeholder.css("visibility","visible")},stop:function(t,e){y()}}))}function y(){var i={};u(".tutor-topics-wrap").each(function(t,e){var o=u(this),n=parseInt(o.attr("id").match(/\d+/)[0],10),a={};o.find(".course-content-item").each(function(t,e){var o=u(this),o=parseInt(o.attr("id").match(/\d+/)[0],10);a[t]=o}),i[t]={topic_id:n,lesson_ids:a}}),u("#tutor_topics_lessons_sorting").val(JSON.stringify(i))}function q(){u("ul.tutor-bp-enrolled-course-list").each(function(){var t,e=u(this),o=e.find(" > li");3<o.length&&(t=o.length-3,o.each(function(t,e){var o=u(this);3<=t&&o.hide()}),t='<a href="javascript:;" class="tutor_bp_plus_courses"><strong>+'+t+" More </strong></a> Courses",e.closest(".tutor-bp-enrolled-courses-wrap").find(".thread-participant-enrolled-info").html(t)),e.show()})}w.each(function(){var e=u(this),t=u(this).data("popup-rel");u('[href="'+t+'"]').on("click",function(t){e.fadeIn(),t.preventDefault()})}),u(document).on("click",".tm-close, .tutor-frontend-modal-overlay, .tutor-modal-btn-cancel",function(){w.fadeOut()}),u(document).on("click",".tutor-dashboard-element-delete-btn",function(t){t.preventDefault();t=u(this).attr("data-id");u("#tutor-dashboard-delete-element-id").val(t)}),u(document).on("submit","#tutor-dashboard-delete-element-form",function(t){t.preventDefault();var e=u("#tutor-dashboard-delete-element-id").val(),o=u(".tutor-modal-element-delete-btn"),t=u(this).serializeObject();u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){o.addClass("updating-icon")},success:function(t){t.success&&u("#tutor-dashboard-"+t.data.element+"-"+e).remove()},complete:function(){o.removeClass("updating-icon"),u(".tutor-frontend-modal").hide()}})}),u("#tutor_profile_photo_id").val()||u(".tutor-profile-photo-delete-btn").hide(),u(document).on("click",".tutor-profile-photo-delete-btn",function(){return u(".tutor-profile-photo-upload-wrap").find("img").attr("src",_tutorobject.placeholder_img_src),u("#tutor_profile_photo_id").val(""),u(".tutor-profile-photo-delete-btn").hide(),u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:{action:"tutor_profile_photo_remove"}}),!1}),u(document).on("submit","#tutor_assignment_start_form",function(t){t.preventDefault();t=u(this).serializeObject();t.action="tutor_start_assignment",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){u("#tutor_assignment_start_btn").addClass("updating-icon")},success:function(t){t.success&&location.reload()},complete:function(){u("#tutor_assignment_start_btn").removeClass("updating-icon")}})}),u(document).on("submit","#tutor_assignment_submit_form",function(t){u('textarea[name="assignment_answer"]').val().trim().length<1&&(u("#form_validation_response").html('<div class="tutor-error-msg">'+s("Assignment answer can not be empty","tutor")+"</div>"),t.preventDefault())}),u(document).on("click",".video_source_upload_wrap_html5 .video_upload_btn",function(t){t.preventDefault();var e,o=u(this);e||(e=wp.media({title:s("Select / Upload Media Of Your Chosen Persuasion","tutor"),button:{text:s("Use media","tutor")},library:{type:"video"},multiple:!1})).on("select",function(){var t=e.state().get("selection").first().toJSON();o.closest(".video_source_upload_wrap_html5").find("span.video_media_id").data("video_url",t.url).text(t.id).trigger("paste").closest("p").show(),o.closest(".video_source_upload_wrap_html5").find("input").val(t.id)}),e.open()}),b(),u(document).on("click",".update_lesson_modal_btn",function(t){t.preventDefault();var e=u(this),o="tutor_lesson_modal_editor",t=tinyMCE.get(o),t=t?t.getContent():u("#"+o).val();console.log(t);o=u(this).closest("form").serializeObject();o.lesson_content=t,u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?(u("#tutor-course-content-wrap").html(t.data.course_contents),b(),u(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(s("Done","tutor"),e.data("toast_success_message"),"success")):tutor_toast(s("Failed","tutor"),s("Lesson Update Failed","tutor"),"error")},error:function(){tutor_toast(s("Failed","tutor"),s("Lesson Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message")}})}),u(document).on("click","a.tutor-delete-attachment",function(t){t.preventDefault(),u(this).closest(".tutor-added-attachment").remove()}),u(document).on("click",".tutorUploadAttachmentBtn",function(t){t.preventDefault();var n,a=u(this);n||(n=wp.media({title:s("Select / Upload Media Of Your Chosen Persuasion","tutor"),button:{text:s("Use media","tutor")},multiple:!0})).on("select",function(){var t=n.state().get("selection").toJSON();if(t.length)for(var e=0;e<t.length;e++){var o=t[e],o='<div class="tutor-added-attachment"><i class="tutor-icon-archive"></i><a href="javascript:;" class="tutor-delete-attachment tutor-icon-line-cross"></a> <span> <a href="'+o.url+'">'+o.filename+'</a> </span> <input type="hidden" name="tutor_attachments[]" value="'+o.id+'"></div>';a.closest(".tutor-lesson-attachments-metabox").find(".tutor-added-attachments-wrap").append(o)}}),n.open()}),u("form").on("change",".tutor-assignment-file-upload",function(){u(this).siblings("label").find("span").html(u(this).val().replace(/.*(\/|\\)/,""))}),u(document).on("click",".tutor-topics-in-single-lesson .tutor-topics-title h3, .tutor-single-lesson-topic-toggle",function(t){var e=u(this).closest(".tutor-topics-in-single-lesson");e.toggleClass("tutor-topic-active"),e.find(".tutor-lessons-under-topic").slideToggle()}),u(".tutor-single-lesson-items.active").closest(".tutor-lessons-under-topic").show(),u(".tutor-single-lesson-items.active").closest(".tutor-topics-in-single-lesson").addClass("tutor-topic-active"),u(".tutor-course-lesson.active").closest(".tutor-lessons-under-topic").show(),u(document).on("click",".tutor-create-assignments-btn",function(t){t.preventDefault();var e=u(this),o=u(this).attr("data-topic-id"),n=u("#post_ID").val();u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{topic_id:o,course_id:n,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){u(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),u(".tutor-lesson-modal-wrap").attr("data-topic-id",o).addClass("show"),u(document).trigger("assignment_modal_loaded",{topic_id:o,course_id:n}),tinymce.init(tinyMCEPreInit.mceInit.course_description),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),u(document).on("click",".open-tutor-assignment-modal",function(t){t.preventDefault();var e=u(this),o=e.attr("data-assignment-id"),n=e.attr("data-topic-id"),a=u("#post_ID").val();u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{assignment_id:o,topic_id:n,course_id:a,action:"tutor_load_assignments_builder_modal"},beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){u(".tutor-lesson-modal-wrap .modal-container").html(t.data.output),u(".tutor-lesson-modal-wrap").attr({"data-assignment-id":o,"data-topic-id":n}).addClass("show"),u(document).trigger("assignment_modal_loaded",{assignment_id:o,topic_id:n,course_id:a}),tinymce.init(tinyMCEPreInit.mceInit.course_description),tinymce.execCommand("mceRemoveEditor",!1,"tutor_assignments_modal_editor"),tinyMCE.execCommand("mceAddEditor",!1,"tutor_assignments_modal_editor")},complete:function(){quicktags({id:"tutor_assignments_modal_editor"}),e.removeClass("tutor-updating-message")}})}),u(document).on("click",".update_assignment_modal_btn",function(t){t.preventDefault();var e=u(this),o="tutor_assignments_modal_editor",t=tinyMCE.get(o),t=t?t.getContent():u("#"+o).val();console.log(t);o=u(this).closest("form").serializeObject();o.assignment_content=t,u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){t.success?(u("#tutor-course-content-wrap").html(t.data.course_contents),b(),u(".tutor-lesson-modal-wrap").removeClass("show"),tutor_toast(s("Done","tutor"),e.data("toast_success_message"),"success")):tutor_toast(s("Failed","tutor"),s("Assignment Update Failed","tutor"),"error")},error:function(){tutor_toast(s("Failed","tutor"),s("Assignment Update Failed","tutor"),"error")},complete:function(){e.removeClass("tutor-updating-message")}})}),u(document).on("click",".add-assignment-attachments",function(t){t.preventDefault();var o,n=u(this);o||(o=wp.media({title:s("Select / Upload Media Of Your Chosen Persuasion","tutor"),button:{text:s("Use media","tutor")},multiple:!1})).on("select",function(){var t=o.state().get("selection").first().toJSON(),e='<div class="tutor-individual-attachment-file"><p class="attachment-file-name">'+t.filename+'</p><input type="hidden" name="tutor_assignment_attachments[]" value="'+t.id+'"><a href="javascript:;" class="remove-assignment-attachment-a text-muted"> &times; Remove</a></div>';u("#assignment-attached-file").append(e),n.closest(".video_source_upload_wrap_html5").find("input").val(t.id)}),o.open()}),u(document).on("click",".remove-assignment-attachment-a",function(t){t.preventDefault(),u(this).closest(".tutor-individual-attachment-file").remove()}),"tutor_add_course_builder"===u('input[name="tutor_action"]').val()&&setInterval(function(){var t=u("form#tutor-frontend-course-builder").serializeObject();t.tutor_ajax_action="tutor_course_builder_draft_save",u.ajax({type:"POST",data:t,beforeSend:function(){u(".tutor-dashboard-builder-draft-btn span").text(s("Saving...","tutor"))},success:function(t){},complete:function(){u(".tutor-dashboard-builder-draft-btn span").text(s("Save","tutor"))}})},3e4),u(".tutor-course-builder-section-title").on("click",function(){u(this).find("i").hasClass("tutor-icon-up")?u(this).find("i").removeClass("tutor-icon-up").addClass("tutor-icon-down"):u(this).find("i").removeClass("tutor-icon-down").addClass("tutor-icon-up"),u(this).next("div").slideToggle()}),u(document).on("click",".open-tutor-edit-review-modal",function(t){t.preventDefault();var e=u(this),o=e.attr("data-review-id"),n=_tutorobject.nonce_key,t={review_id:o,action:"tutor_load_edit_review_modal"};t[n]=_tutorobject[n],u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){e.addClass("tutor-updating-message")},success:function(t){void 0!==t.data&&(u(".tutor-edit-review-modal-wrap .modal-container").html(t.data.output),u(".tutor-edit-review-modal-wrap").attr("data-review-id",o).addClass("show"))},complete:function(){e.removeClass("tutor-updating-message")}})}),u(document).on("submit","#tutor_update_review_form",function(t){t.preventDefault();var e=u(this),o=e.closest(".tutor-edit-review-modal-wrap ").attr("data-review-id"),t=_tutorobject.nonce_key,o={review_id:o,rating:e.find('input[name="tutor_rating_gen_input"]').val(),review:e.find('textarea[name="review"]').val().trim(),action:"tutor_update_review_modal"};o[t]=_tutorobject[t],u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:o,beforeSend:function(){e.find('button[type="submit"]').addClass("tutor-updating-message")},success:function(t){t.success&&(u(".tutor-edit-review-modal-wrap").removeClass("show"),location.reload(!0))},complete:function(){e.find('button[type="submit"]').removeClass("tutor-updating-message")}})}),u(document).on("click","#tutor_profile_photo_button",function(t){t.preventDefault(),u("#tutor_profile_photo_file").trigger("click")}),u(document).on("change","#tutor_profile_photo_file",function(t){t.preventDefault();this.files&&this.files[0]&&((t=new FileReader).onload=function(t){u(".tutor-profile-photo-upload-wrap").find("img").attr("src",t.target.result)},t.readAsDataURL(this.files[0]))}),u(document).on("click",".thread-content .subject",function(t){var e=u(this),o=parseInt(e.closest(".thread-content").attr("data-thread-id")),e=_tutorobject.nonce_key,o={thread_id:o,action:"tutor_bp_retrieve_user_records_for_thread"};o[e]=_tutorobject[e],u.ajax({type:"POST",url:window._tutorobject.ajaxurl,data:o,beforeSend:function(){u("#tutor-bp-thread-wrap").html("")},success:function(t){t.success&&(u("#tutor-bp-thread-wrap").html(t.data.thread_head_html),q())}})}),q(),u(document).on("click","a.tutor_bp_plus_courses",function(t){t.preventDefault();t=u(this);t.closest(".tutor-bp-enrolled-courses-wrap").find(".tutor-bp-enrolled-course-list li").show(),t.closest(".thread-participant-enrolled-info").html("")}),u(".tutor-dropbtn").click(function(){u(this).parent().find(".tutor-dropdown-content").slideToggle(100)}),u(document).on("click",function(t){var e=u(".tutor-dropdown"),o=e.find(".tutor-dropdown-content");e.is(t.target)||0!==e.has(t.target).length||o.slideUp(100)}),u(document).on("submit",".tutor-login-form-wrap #loginform",function(t){t.preventDefault();var t=u(this),e=u(".tutor-login-form-wrap"),t=t.serializeObject();t.action="tutor_user_login",u.ajax({url:_tutorobject.ajaxurl,type:"POST",data:t,success:function(t){t.success?(location.assign(t.data.redirect),location.reload()):(t=t.data||s("Invalid username or password!","tutor"),e.find(".tutor-alert").length?e.find(".tutor-alert").html(t):e.prepend('<div class="tutor-alert tutor-alert-warning">'+t+"</div>"))}})});var j,x=u('.tutor-frontend-builder-course-price [name="tutor_course_price_type"]');0==x.length?u("#_tutor_is_course_public_meta_checkbox").show():x.change(function(){var t;u(this).prop("checked")&&(t="paid"==u(this).val()?"hide":"show",u("#_tutor_is_course_public_meta_checkbox")[t]())}).trigger("change"),(j=jQuery).fn.tutor_tooltip=function(){return this.on("mouseenter click",".tooltip",function(t){t.stopPropagation(),j(this).removeClass("isVisible")}).on("mouseenter focus",":has(>.tooltip)",function(t){j(this).prop("disabled")||j(this).find(".tooltip").addClass("isVisible")}).on("mouseleave blur keydown",":has(>.tooltip)",function(t){("keydown"!==t.type||27===t.which)&&j(this).find(".tooltip").removeClass("isVisible")}),this},jQuery(".tutor-tooltip-inside").tutor_tooltip();var k=u(".tutor-course-filter-container form"),z=u(".tutor-course-filter-loop-container"),C={};k.on("submit",function(t){t.preventDefault()}).find("input").change(function(t){var e=Object.assign(k.serializeObject(),C);e.action="tutor_course_filter_ajax",z.html('<center><img src="'+window._tutorobject.loading_icon_url+'"/></center>'),u(this).closest("form").find(".tutor-clear-all-filter").show(),u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:e,success:function(t){z.html(t).find(".tutor-pagination-wrap a").each(function(){u(this).attr("data-href",u(this).attr("href")).attr("href","#")})}})}),z.on("click",".tutor-pagination-wrap a",function(t){var e=u(this).data("href")||u(this).attr("href");!e||(e=(e=new URL(e)).searchParams.get("paged"))&&(t.preventDefault(),C.page=e,k.find("input:first").trigger("change"))}),z.on("change",'select[name="tutor_course_filter"]',function(){C.tutor_course_filter=u(this).val(),k.find("input:first").trigger("change")});x=u(".tutor-course-loop");0<x.length&&("yes"===window.sessionStorage.getItem("tutor_refresh_archive")&&window.location.reload(),window.sessionStorage.removeItem("tutor_refresh_archive"),x.on("click",".tutor-loop-cart-btn-wrap",function(){window.sessionStorage.setItem("tutor_refresh_archive","yes")}));x=u("#tutor_profile_cover_photo_editor");0<x.length&&new function(n){this.dialogue_box=n.find("#tutor_photo_dialogue_box"),this.open_dialogue_box=function(t){this.dialogue_box.attr("name",t),this.dialogue_box.trigger("click")},this.validate_image=function(t){return!0},this.upload_selected_image=function(t,e){var o,n,a;e&&this.validate_image(e)&&(o=tutor_get_nonce_data(!0),(n=this).toggle_loader(t,!0),(a=new FormData).append("action","tutor_user_photo_upload"),a.append("photo_type",t),a.append("photo_file",e,e.name),a.append(o.key,o.value),u.ajax({url:window._tutorobject.ajaxurl,data:a,type:"POST",processData:!1,contentType:!1,error:n.error_alert,complete:function(){n.toggle_loader(t,!1)}}))},this.accept_upload_image=function(t,e){var o=e.currentTarget.files[0]||null;t.update_preview(e.currentTarget.name,o),t.upload_selected_image(e.currentTarget.name,o),u(e.currentTarget).val("")},this.delete_image=function(t){var e=this;e.toggle_loader(t,!0),u.ajax({url:window._tutorobject.ajaxurl,data:{action:"tutor_user_photo_remove",photo_type:t},type:"POST",error:e.error_alert,complete:function(){e.toggle_loader(t,!1)}})},this.update_preview=function(t,e){var o=n.find("cover_photo"==t?"#tutor_cover_area":"#tutor_profile_area");if(!e)return o.css("background-image","url("+o.data("fallback")+")"),void this.delete_image(t);t=new FileReader;t.onload=function(t){o.css("background-image","url("+t.target.result+")")},t.readAsDataURL(e)},this.toggle_profile_pic_action=function(t){n[void 0===t?"toggleClass":t?"addClass":"removeClass"]("pop-up-opened")},this.error_alert=function(){alert("Something Went Wrong.")},this.toggle_loader=function(t,e){n.find("#tutor_photo_meta_area .loader-area").css("display",e?"block":"none")},this.initialize=function(){var e=this;this.dialogue_box.change(function(t){e.accept_upload_image(e,t)}),n.find("#tutor_profile_area .tutor_overlay, #tutor_pp_option>div:last-child").click(function(){e.toggle_profile_pic_action()}),n.find(".tutor_cover_uploader").click(function(){e.open_dialogue_box("cover_photo")}),n.find(".tutor_pp_uploader").click(function(){e.open_dialogue_box("profile_photo")}),n.find(".tutor_cover_deleter").click(function(){e.update_preview("cover_photo",null)}),n.find(".tutor_pp_deleter").click(function(){e.update_preview("profile_photo",null)})}}(x).initialize(),u(".tutor-instructor-filter").each(function(){var e,r=u(this),s={};function n(t,e,o){var n=r.find(".filter-result-container"),a=n.html(),i=r.data();i.current_page=o||1,t?s[t]=e:s={},s.attributes=i,s.action="load_filtered_instructor",n.html('<div style="text-align:center"><img src="'+window._tutorobject.loading_icon_url+'"/></div>'),u.ajax({url:window._tutorobject.ajaxurl,data:s,type:"POST",success:function(t){n.html(t)},error:function(){n.html(a),tutor_toast("Failed","Request Error","error")}})}r.on("change",'.course-category-filter [type="checkbox"]',function(){var e={};u(this).closest(".course-category-filter").find("input:checked").each(function(){e[u(this).val()]=u(this).parent().text()});var o=r.find(".selected-cate-list").empty(),t=Object.keys(e);t.forEach(function(t){o.append("<span>"+e[t]+' <span class="tutor-icon-line-cross" data-cat_id="'+t+'"></span></span>')}),t.length&&o.append('<span data-cat_id="0">Clear All</span>'),n(u(this).attr("name"),t)}).on("click",".selected-cate-list [data-cat_id]",function(){var t=u(this).data("cat_id"),e=r.find('.mobile-filter-popup [type="checkbox"]');(e=t?e.filter('[value="'+t+'"]'):e).prop("checked",!1).trigger("change")}).on("input",'.filter-pc [name="keyword"]',function(){var t=u(this).val();e&&window.clearTimeout(e),e=window.setTimeout(function(){n("keyword",t),e=null},500)}).on("click","[data-page_number]",function(t){t.preventDefault(),n(null,null,u(this).data("page_number"))}).on("click",".clear-instructor-filter",function(){var t=u(this).closest(".tutor-instructor-filter");t.find('input[type="checkbox"]').prop("checked",!1),t.find('[name="keyword"]').val(""),n()}).on("click",".mobile-filter-container i",function(){u(this).parent().next().addClass("is-opened")}).on("click",".mobile-filter-popup button",function(){u('.mobile-filter-popup [type="checkbox"]').trigger("change"),u(this).closest(".mobile-filter-popup").removeClass("is-opened")}).on("input",'.filter-mobile [name="keyword"]',function(){r.find('.filter-pc [name="keyword"]').val(u(this).val()).trigger("input")}).on("change",'.mobile-filter-popup [type="checkbox"]',function(t){var e,o;t.originalEvent||(e=u(this).attr("name"),o=u(this).val(),t=u(this).prop("checked"),r.find('.course-category-filter [name="'+e+'"]').filter('[value="'+o+'"]').prop("checked",t).trigger("change"))}).on("mousedown touchstart",".expand-instructor-filter",function(t){var e=u(window).height(),o=r.find(".mobile-filter-popup>div"),n=e-o.height(),a=((t.originalEvent.touches||[])[0]||t).clientY-n;r.on("mousemove touchmove",function(t){t=((t.originalEvent.touches||[])[0]||t).clientY,t=e-t+a;200<t&&t<=e&&o.css("height",t+"px")})}).on("mouseup touchend",function(){r.off("mousemove touchmove")}).on("click",".mobile-filter-popup>div",function(t){t.stopImmediatePropagation()}).on("click",".mobile-filter-popup",function(t){u(this).removeClass("is-opened")})}),u(".tutor-course-retake-button").click(function(t){t.preventDefault();var t=u(this),e=t.attr("href"),o=t.data("course_id"),t={title:s("Override Previous Progress","tutor"),description:s("Before continue, please decide whether to keep progress or reset.","tutor"),buttons:{reset:{title:s("Reset Data","tutor"),class:"secondary",callback:function(){var t=n.find(".tutor-button-secondary");t.prop("disabled",!0).append('<img style="margin-left: 7px" src="'+window._tutorobject.loading_icon_url+'"/>'),u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:{action:"tutor_reset_course_progress",course_id:o},success:function(t){t.success?window.location.assign(t.data.redirect_to):alert((t.data||{}).message||s("Something went wrong","tutor"))},complete:function(){t.prop("disabled",!1).find("img").remove()}})}},keep:{title:s("Keep Data","tutor"),class:"primary",callback:function(){window.location.assign(e)}}}},n=new window.tutor_popup(u,"icon-gear",40).popup(t)}),document.body.addEventListener("click",function(t){var e,o=t.target,n=o.tagName,a=o.parentElement.tagName;0<m.length&&"EXPIRED"!=m.html()&&("A"!==n&&"A"!==a||(t.preventDefault(),t.stopImmediatePropagation(),t={title:s("Abandon Quiz?","tutor"),description:s("Do you want to abandon this quiz? The quiz will be submitted partially up to this question if you leave this page.","tutor"),buttons:{keep:{title:s("Yes, leave quiz","tutor"),id:"leave",class:"secondary",callback:function(){var t=u("form#tutor-answering-quiz").serialize()+"&action=tutor_quiz_abandon";u.ajax({url:window._tutorobject.ajaxurl,type:"POST",data:t,beforeSend:function(){document.querySelector("#tutor-popup-leave").innerHTML=s("Leaving...","tutor")},success:function(t){t.success?null==o.href?location.href=o.parentElement.href:location.href=o.href:alert(s("Something went wrong","tutor"))},error:function(){alert(s("Something went wrong","tutor")),e.remove()}})}},reset:{title:s("Stay here","tutor"),id:"reset",class:"primary",callback:function(){e.remove()}}}},e=new window.tutor_popup(u,"",40).popup(t)))}),u("body").on("submit","form#tutor-start-quiz",function(){u(this).find("button").prop("disabled",!0)})})})()})();
classes/Admin.php CHANGED
@@ -227,7 +227,7 @@ class Admin{
227
  }
228
 
229
  if (! empty($_GET['post']) ) {
230
- $get_post_id = (int) sanitize_text_field($_GET['post']);
231
  $get_post = get_post($get_post_id);
232
  $tutor_post_types = array(tutor()->course_post_type, tutor()->lesson_post_type);
233
 
227
  }
228
 
229
  if (! empty($_GET['post']) ) {
230
+ $get_post_id = (int) $_GET['post'];
231
  $get_post = get_post($get_post_id);
232
  $tutor_post_types = array(tutor()->course_post_type, tutor()->lesson_post_type);
233
 
classes/Ajax.php CHANGED
@@ -198,7 +198,7 @@ class Ajax {
198
 
199
  global $wpdb;
200
 
201
- $course_id = (int) sanitize_text_field( $_POST['tutor_course_id'] );
202
  $question_title = sanitize_text_field( $_POST['question_title'] );
203
  $question = wp_kses_post( $_POST['question'] );
204
 
@@ -259,7 +259,7 @@ class Ajax {
259
  wp_send_json_error( __( 'Please write answer', 'tutor' ) );
260
  }
261
 
262
- $question_id = (int) sanitize_text_field( $_POST['question_id'] );
263
  $question = tutor_utils()->get_qa_question( $question_id );
264
 
265
  $user_id = get_current_user_id();
@@ -299,7 +299,7 @@ class Ajax {
299
  public function tutor_course_add_to_wishlist() {
300
  tutils()->checking_nonce();
301
 
302
- $course_id = (int) sanitize_text_field( $_POST['course_id'] );
303
  if ( ! is_user_logged_in() ) {
304
  wp_send_json_error( array( 'redirect_to' => wp_login_url( wp_get_referer() ) ) );
305
  }
@@ -385,7 +385,7 @@ class Ajax {
385
  public function tutor_load_edit_review_modal() {
386
  tutor_utils()->checking_nonce();
387
 
388
- $review_id = (int) sanitize_text_field( tutils()->array_get( 'review_id', $_POST ) );
389
  $rating = tutils()->get_rating_by_id( $review_id );
390
 
391
  if ( ! tutils()->has_enrolled_content_access( 'review', $review_id ) ) {
@@ -405,7 +405,7 @@ class Ajax {
405
 
406
  tutor_utils()->checking_nonce();
407
 
408
- $review_id = (int) sanitize_text_field( tutils()->array_get( 'review_id', $_POST ) );
409
  $rating = sanitize_text_field( tutor_utils()->avalue_dot( 'rating', $_POST ) );
410
  $review = wp_kses_post( tutor_utils()->avalue_dot( 'review', $_POST ) );
411
 
@@ -452,9 +452,9 @@ class Ajax {
452
 
453
  try {
454
  $creds = array(
455
- 'user_login' => trim( wp_unslash( $username ) ), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
456
- 'user_password' => $password, // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
457
- 'remember' => isset( $_POST['rememberme'] ), // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
458
  );
459
 
460
  $validation_error = new \WP_Error();
198
 
199
  global $wpdb;
200
 
201
+ $course_id = (int) $_POST['tutor_course_id'];
202
  $question_title = sanitize_text_field( $_POST['question_title'] );
203
  $question = wp_kses_post( $_POST['question'] );
204
 
259
  wp_send_json_error( __( 'Please write answer', 'tutor' ) );
260
  }
261
 
262
+ $question_id = (int) $_POST['question_id'];
263
  $question = tutor_utils()->get_qa_question( $question_id );
264
 
265
  $user_id = get_current_user_id();
299
  public function tutor_course_add_to_wishlist() {
300
  tutils()->checking_nonce();
301
 
302
+ $course_id = (int) $_POST['course_id'];
303
  if ( ! is_user_logged_in() ) {
304
  wp_send_json_error( array( 'redirect_to' => wp_login_url( wp_get_referer() ) ) );
305
  }
385
  public function tutor_load_edit_review_modal() {
386
  tutor_utils()->checking_nonce();
387
 
388
+ $review_id = (int) tutils()->array_get( 'review_id', $_POST );
389
  $rating = tutils()->get_rating_by_id( $review_id );
390
 
391
  if ( ! tutils()->has_enrolled_content_access( 'review', $review_id ) ) {
405
 
406
  tutor_utils()->checking_nonce();
407
 
408
+ $review_id = (int) tutils()->array_get( 'review_id', $_POST );
409
  $rating = sanitize_text_field( tutor_utils()->avalue_dot( 'rating', $_POST ) );
410
  $review = wp_kses_post( tutor_utils()->avalue_dot( 'review', $_POST ) );
411
 
452
 
453
  try {
454
  $creds = array(
455
+ 'user_login' => trim( wp_unslash( $username ) ),
456
+ 'user_password' => $password,
457
+ 'remember' => isset( $_POST['rememberme'] ),
458
  );
459
 
460
  $validation_error = new \WP_Error();
classes/Course.php CHANGED
@@ -187,7 +187,6 @@ class Course extends Tutor_Base {
187
  public function register_meta_box() {
188
  $coursePostType = tutor()->course_post_type;
189
  $course_marketplace = tutor_utils()->get_option( 'enable_course_marketplace' );
190
- // add_meta_box( 'tutor-course-levels', __( 'Course Level', 'tutor' ), array($this, 'course_level_metabox'), $coursePostType );
191
  add_meta_box( 'tutor-course-topics', __( 'Course Builder', 'tutor' ), array( $this, 'course_meta_box' ), $coursePostType );
192
  add_meta_box( 'tutor-course-additional-data', __( 'Additional Data', 'tutor' ), array( $this, 'course_additional_data_meta_box' ), $coursePostType );
193
  add_meta_box( 'tutor-course-videos', __( 'Video', 'tutor' ), array( $this, 'video_metabox' ), $coursePostType );
@@ -209,7 +208,7 @@ class Course extends Tutor_Base {
209
  $content = ob_get_clean();
210
 
211
  if ( $echo ) {
212
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
213
  } else {
214
  return $content;
215
  }
@@ -222,7 +221,7 @@ class Course extends Tutor_Base {
222
  $content = ob_get_clean();
223
 
224
  if ( $echo ) {
225
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
226
  } else {
227
  return $content;
228
  }
@@ -234,19 +233,7 @@ class Course extends Tutor_Base {
234
  $content = ob_get_clean();
235
 
236
  if ( $echo ) {
237
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
238
- } else {
239
- return $content;
240
- }
241
- }
242
-
243
- public function course_level_metabox( $echo = true ) {
244
- ob_start();
245
- include tutor()->path . 'views/metabox/course-level-metabox.php';
246
- $content = ob_get_clean();
247
-
248
- if ( $echo ) {
249
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
250
  } else {
251
  return $content;
252
  }
@@ -258,7 +245,7 @@ class Course extends Tutor_Base {
258
  $content = ob_get_clean();
259
 
260
  if ( $echo ) {
261
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
262
  } else {
263
  return $content;
264
  }
@@ -271,10 +258,10 @@ class Course extends Tutor_Base {
271
  */
272
  public function register_meta_box_in_frontend() {
273
  do_action( 'tutor_course_builder_metabox_before', get_the_ID() );
274
- course_builder_section_wrap( $this->video_metabox( $echo = false ), __( 'Video', 'tutor' ) );
275
- course_builder_section_wrap( $this->course_meta_box( $echo = false ), __( 'Course Builder', 'tutor' ) );
276
- course_builder_section_wrap( $this->instructors_metabox( $echo = false ), __( 'Instructors', 'tutor' ) );
277
- course_builder_section_wrap( $this->course_additional_data_meta_box( $echo = false ), __( 'Additional Data', 'tutor' ) );
278
  do_action( 'tutor_course_builder_metabox_after', get_the_ID() );
279
  }
280
 
@@ -392,7 +379,7 @@ class Course extends Tutor_Base {
392
 
393
  if ( $additional_data_edit ) {
394
  if ( ! empty( $_POST['video']['source'] ) ) { // Video
395
- $video = tutor_utils()->array_get( 'video', tutor_sanitize_data($_POST) );
396
  update_post_meta( $post_ID, '_video', $video );
397
  } else {
398
  delete_post_meta( $post_ID, '_video' );
@@ -474,7 +461,7 @@ class Course extends Tutor_Base {
474
  public function tutor_update_topic() {
475
  tutils()->checking_nonce();
476
 
477
- $topic_id = (int) sanitize_text_field( $_POST['topic_id'] );
478
  $topic_title = sanitize_text_field( $_POST['topic_title'] );
479
  $topic_summery = wp_kses_post( $_POST['topic_summery'] );
480
 
@@ -548,7 +535,7 @@ class Course extends Tutor_Base {
548
 
549
  global $wpdb;
550
 
551
- $topic_id = (int) sanitize_text_field( $_GET['topic_id'] );
552
  $wpdb->update(
553
  $wpdb->posts,
554
  array( 'post_parent' => 0 ),
@@ -567,7 +554,7 @@ class Course extends Tutor_Base {
567
  public function tutor_delete_announcement() {
568
  tutor_utils()->checking_nonce( 'get' );
569
 
570
- $announcement_id = (int) sanitize_text_field( $_GET['topic_id'] );
571
 
572
  wp_delete_post( $announcement_id );
573
  wp_safe_redirect( wp_get_referer() );
@@ -587,7 +574,7 @@ class Course extends Tutor_Base {
587
  exit( __( 'Please Sign In first', 'tutor' ) );
588
  }
589
 
590
- $course_id = (int) sanitize_text_field( $_POST['tutor_course_id'] );
591
  $user_id = get_current_user_id();
592
 
593
  /**
@@ -635,7 +622,7 @@ class Course extends Tutor_Base {
635
  die( __( 'Please Sign-In', 'tutor' ) );
636
  }
637
 
638
- $course_id = (int) sanitize_text_field( $_POST['course_id'] );
639
 
640
  do_action( 'tutor_course_complete_before', $course_id );
641
  /**
@@ -718,7 +705,7 @@ class Course extends Tutor_Base {
718
 
719
  global $wpdb;
720
 
721
- $course_id = (int) sanitize_text_field( $_POST['course_id'] );
722
  $search_terms = sanitize_text_field( tutor_utils()->avalue_dot( 'search_terms', tutor_sanitize_data($_POST) ) );
723
 
724
  if ( ! tutils()->can_user_manage( 'course', $course_id ) ) {
@@ -757,7 +744,6 @@ class Course extends Tutor_Base {
757
  $output .= apply_filters( 'tutor_course_instructors_html', $instructor_output, $instructors );
758
 
759
  } else {
760
- $output .= '<p>' . __( 'No instructor available or you have already added maximum instructors' ) . '</p>';
761
  $output .= '<p>' . __( 'No instructor available or you have already added maximum instructors', 'tutor' ) . '</p>';
762
  }
763
 
@@ -771,7 +757,7 @@ class Course extends Tutor_Base {
771
  public function tutor_add_instructors_to_course() {
772
  tutils()->checking_nonce();
773
 
774
- $course_id = (int) sanitize_text_field( $_POST['course_id'] );
775
  $instructor_ids = tutor_utils()->avalue_dot( 'tutor_instructor_ids', tutor_sanitize_data($_POST) );
776
 
777
  if ( ! tutils()->can_user_manage( 'course', $course_id ) ) {
@@ -808,8 +794,8 @@ class Course extends Tutor_Base {
808
 
809
  global $wpdb;
810
 
811
- $instructor_id = (int) sanitize_text_field( $_POST['instructor_id'] );
812
- $course_id = (int) sanitize_text_field( $_POST['course_id'] );
813
 
814
  if ( ! tutils()->can_user_manage( 'course', $course_id ) ) {
815
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
187
  public function register_meta_box() {
188
  $coursePostType = tutor()->course_post_type;
189
  $course_marketplace = tutor_utils()->get_option( 'enable_course_marketplace' );
 
190
  add_meta_box( 'tutor-course-topics', __( 'Course Builder', 'tutor' ), array( $this, 'course_meta_box' ), $coursePostType );
191
  add_meta_box( 'tutor-course-additional-data', __( 'Additional Data', 'tutor' ), array( $this, 'course_additional_data_meta_box' ), $coursePostType );
192
  add_meta_box( 'tutor-course-videos', __( 'Video', 'tutor' ), array( $this, 'video_metabox' ), $coursePostType );
208
  $content = ob_get_clean();
209
 
210
  if ( $echo ) {
211
+ echo tutor_kses_html( $content );
212
  } else {
213
  return $content;
214
  }
221
  $content = ob_get_clean();
222
 
223
  if ( $echo ) {
224
+ echo tutor_kses_html( $content );
225
  } else {
226
  return $content;
227
  }
233
  $content = ob_get_clean();
234
 
235
  if ( $echo ) {
236
+ echo tutor_kses_html( $content );
 
 
 
 
 
 
 
 
 
 
 
 
237
  } else {
238
  return $content;
239
  }
245
  $content = ob_get_clean();
246
 
247
  if ( $echo ) {
248
+ echo tutor_kses_html( $content );
249
  } else {
250
  return $content;
251
  }
258
  */
259
  public function register_meta_box_in_frontend() {
260
  do_action( 'tutor_course_builder_metabox_before', get_the_ID() );
261
+ course_builder_section_wrap( $this->video_metabox( false ), __( 'Video', 'tutor' ) );
262
+ course_builder_section_wrap( $this->course_meta_box( false ), __( 'Course Builder', 'tutor' ) );
263
+ course_builder_section_wrap( $this->instructors_metabox( false ), __( 'Instructors', 'tutor' ) );
264
+ course_builder_section_wrap( $this->course_additional_data_meta_box( false ), __( 'Additional Data', 'tutor' ) );
265
  do_action( 'tutor_course_builder_metabox_after', get_the_ID() );
266
  }
267
 
379
 
380
  if ( $additional_data_edit ) {
381
  if ( ! empty( $_POST['video']['source'] ) ) { // Video
382
+ $video = tutor_utils()->array_get( 'video', $_POST );
383
  update_post_meta( $post_ID, '_video', $video );
384
  } else {
385
  delete_post_meta( $post_ID, '_video' );
461
  public function tutor_update_topic() {
462
  tutils()->checking_nonce();
463
 
464
+ $topic_id = (int) $_POST['topic_id'];
465
  $topic_title = sanitize_text_field( $_POST['topic_title'] );
466
  $topic_summery = wp_kses_post( $_POST['topic_summery'] );
467
 
535
 
536
  global $wpdb;
537
 
538
+ $topic_id = (int) $_GET['topic_id'];
539
  $wpdb->update(
540
  $wpdb->posts,
541
  array( 'post_parent' => 0 ),
554
  public function tutor_delete_announcement() {
555
  tutor_utils()->checking_nonce( 'get' );
556
 
557
+ $announcement_id = (int) $_GET['topic_id'];
558
 
559
  wp_delete_post( $announcement_id );
560
  wp_safe_redirect( wp_get_referer() );
574
  exit( __( 'Please Sign In first', 'tutor' ) );
575
  }
576
 
577
+ $course_id = (int) $_POST['tutor_course_id'];
578
  $user_id = get_current_user_id();
579
 
580
  /**
622
  die( __( 'Please Sign-In', 'tutor' ) );
623
  }
624
 
625
+ $course_id = (int) $_POST['course_id'];
626
 
627
  do_action( 'tutor_course_complete_before', $course_id );
628
  /**
705
 
706
  global $wpdb;
707
 
708
+ $course_id = (int) $_POST['course_id'];
709
  $search_terms = sanitize_text_field( tutor_utils()->avalue_dot( 'search_terms', tutor_sanitize_data($_POST) ) );
710
 
711
  if ( ! tutils()->can_user_manage( 'course', $course_id ) ) {
744
  $output .= apply_filters( 'tutor_course_instructors_html', $instructor_output, $instructors );
745
 
746
  } else {
 
747
  $output .= '<p>' . __( 'No instructor available or you have already added maximum instructors', 'tutor' ) . '</p>';
748
  }
749
 
757
  public function tutor_add_instructors_to_course() {
758
  tutils()->checking_nonce();
759
 
760
+ $course_id = (int) $_POST['course_id'];
761
  $instructor_ids = tutor_utils()->avalue_dot( 'tutor_instructor_ids', tutor_sanitize_data($_POST) );
762
 
763
  if ( ! tutils()->can_user_manage( 'course', $course_id ) ) {
794
 
795
  global $wpdb;
796
 
797
+ $instructor_id = (int) $_POST['instructor_id'];
798
+ $course_id = (int) $_POST['course_id'];
799
 
800
  if ( ! tutils()->can_user_manage( 'course', $course_id ) ) {
801
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
classes/Course_Filter.php CHANGED
@@ -20,7 +20,7 @@ class Course_Filter {
20
  $_post = tutor_sanitize_data( $_POST );
21
 
22
  $default_per_page = tutils()->get_option( 'courses_per_page', 12 );
23
- $courses_per_page = (int) sanitize_text_field( tutils()->array_get( 'course_per_page', $_post, $default_per_page ) );
24
  $page = ( isset( $_post['page'] ) && is_numeric( $_post['page'] ) && $_post['page'] > 0 ) ? sanitize_text_field( $_post['page'] ) : 1;
25
 
26
  $args = array(
@@ -104,7 +104,7 @@ class Course_Filter {
104
  }
105
 
106
  query_posts( apply_filters( 'tutor_course_filter_args', $args ) );
107
- $col_per_row = (int) sanitize_text_field( tutils()->array_get( 'column_per_row', $_post, 3 ) );
108
  $GLOBALS['tutor_shortcode_arg'] = array(
109
  'column_per_row' => $col_per_row <= 0 ? 3 : $col_per_row,
110
  'course_per_page' => $courses_per_page,
@@ -145,8 +145,8 @@ class Course_Filter {
145
  ?>
146
  <div class="tutor-course-filter-nested-terms">
147
  <label>
148
- <input type="checkbox" name="tutor-course-filter-<?php echo esc_attr( $taxonomy ); ?>" value="<?php echo $term->term_id; ?>" <?php echo $term->term_id == $term_id ? 'checked' : ''; ?>/>&nbsp;
149
- <?php echo $term->name; ?>
150
  </label>
151
 
152
  <?php isset( $term->children ) ? $this->render_terms_hierarchically( $term->children, $taxonomy ) : 0; ?>
20
  $_post = tutor_sanitize_data( $_POST );
21
 
22
  $default_per_page = tutils()->get_option( 'courses_per_page', 12 );
23
+ $courses_per_page = (int) tutils()->array_get( 'course_per_page', $_post, $default_per_page );
24
  $page = ( isset( $_post['page'] ) && is_numeric( $_post['page'] ) && $_post['page'] > 0 ) ? sanitize_text_field( $_post['page'] ) : 1;
25
 
26
  $args = array(
104
  }
105
 
106
  query_posts( apply_filters( 'tutor_course_filter_args', $args ) );
107
+ $col_per_row = (int) tutils()->array_get( 'column_per_row', $_post, 3 );
108
  $GLOBALS['tutor_shortcode_arg'] = array(
109
  'column_per_row' => $col_per_row <= 0 ? 3 : $col_per_row,
110
  'course_per_page' => $courses_per_page,
145
  ?>
146
  <div class="tutor-course-filter-nested-terms">
147
  <label>
148
+ <input type="checkbox" name="tutor-course-filter-<?php echo esc_attr( $taxonomy ); ?>" value="<?php echo esc_attr( $term->term_id ); ?>" <?php echo $term->term_id == $term_id ? 'checked' : ''; ?>/>&nbsp;
149
+ <?php echo sanitize_text_field( $term->name ); ?>
150
  </label>
151
 
152
  <?php isset( $term->children ) ? $this->render_terms_hierarchically( $term->children, $taxonomy ) : 0; ?>
classes/Dashboard.php CHANGED
@@ -39,7 +39,7 @@ class Dashboard {
39
  /**
40
  * Get course which currently in edit, or insert new course
41
  */
42
- $course_ID = (int) sanitize_text_field( tutor_utils()->array_get( 'course_ID', $_GET ) );
43
 
44
  if ( $course_ID ) {
45
  $post_id = $course_ID;
@@ -84,14 +84,8 @@ class Dashboard {
84
  * @since v.1.6.6
85
  */
86
  public function profile_completion_notification() {
87
- $output = '';
88
- $enable_profile_completion = tutils()->get_option( 'enable_profile_completion' );
89
- if ( $enable_profile_completion ) {
90
- ob_start();
91
  tutor_load_template( 'dashboard.notifications.profile-completion' );
92
- $output = apply_filters( 'tutor_profile_completion_notification_html', ob_get_clean() );
93
  }
94
-
95
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
96
  }
97
  }
39
  /**
40
  * Get course which currently in edit, or insert new course
41
  */
42
+ $course_ID = (int) tutor_utils()->array_get( 'course_ID', $_GET );
43
 
44
  if ( $course_ID ) {
45
  $post_id = $course_ID;
84
  * @since v.1.6.6
85
  */
86
  public function profile_completion_notification() {
87
+ if ( tutils()->get_option( 'enable_profile_completion' ) ) {
 
 
 
88
  tutor_load_template( 'dashboard.notifications.profile-completion' );
 
89
  }
 
 
90
  }
91
  }
classes/FormHandler.php CHANGED
@@ -101,7 +101,7 @@ class FormHandler {
101
  tutils()->checking_nonce();
102
 
103
  $reset_key = sanitize_text_field( tutils()->array_get( 'reset_key', $_POST ) );
104
- $user_id = (int) sanitize_text_field( tutils()->array_get( 'user_id', $_POST ) );
105
  $password = sanitize_text_field( tutils()->array_get( 'password', $_POST ) );
106
  $confirm_password = sanitize_text_field( tutils()->array_get( 'confirm_password', $_POST ) );
107
 
101
  tutils()->checking_nonce();
102
 
103
  $reset_key = sanitize_text_field( tutils()->array_get( 'reset_key', $_POST ) );
104
+ $user_id = (int) tutils()->array_get( 'user_id', $_POST );
105
  $password = sanitize_text_field( tutils()->array_get( 'password', $_POST ) );
106
  $confirm_password = sanitize_text_field( tutils()->array_get( 'confirm_password', $_POST ) );
107
 
classes/Instructor.php CHANGED
@@ -250,7 +250,7 @@ class Instructor {
250
  wp_send_json_error( array('message' =>__('Access Denied', 'tutor')) );
251
  }
252
 
253
- $instructor_id = (int) sanitize_text_field(tutils()->array_get('instructor_id', $_POST));
254
  $action = sanitize_text_field(tutils()->array_get('action_name', $_POST));
255
 
256
  if( 'approve' === $action ) {
250
  wp_send_json_error( array('message' =>__('Access Denied', 'tutor')) );
251
  }
252
 
253
+ $instructor_id = (int) tutils()->array_get('instructor_id', $_POST);
254
  $action = sanitize_text_field(tutils()->array_get('action_name', $_POST));
255
 
256
  if( 'approve' === $action ) {
classes/Instructors_List.php CHANGED
@@ -148,7 +148,7 @@ class Instructors_List extends \Tutor_List_Table {
148
 
149
  function process_bulk_action() {
150
  if ( 'approve' === $this->current_action() ) {
151
- $instructor_id = (int) sanitize_text_field( $_GET['instructor'] );
152
 
153
  do_action( 'tutor_before_approved_instructor', $instructor_id );
154
 
@@ -163,7 +163,7 @@ class Instructors_List extends \Tutor_List_Table {
163
  }
164
 
165
  if ( 'blocked' === $this->current_action() ) {
166
- $instructor_id = (int) sanitize_text_field( $_GET['instructor'] );
167
 
168
  do_action( 'tutor_before_blocked_instructor', $instructor_id );
169
  update_user_meta( $instructor_id, '_tutor_instructor_status', 'blocked' );
148
 
149
  function process_bulk_action() {
150
  if ( 'approve' === $this->current_action() ) {
151
+ $instructor_id = (int) $_GET['instructor'];
152
 
153
  do_action( 'tutor_before_approved_instructor', $instructor_id );
154
 
163
  }
164
 
165
  if ( 'blocked' === $this->current_action() ) {
166
+ $instructor_id = (int) $_GET['instructor'];
167
 
168
  do_action( 'tutor_before_blocked_instructor', $instructor_id );
169
  update_user_meta( $instructor_id, '_tutor_instructor_status', 'blocked' );
classes/Lesson.php CHANGED
@@ -78,7 +78,7 @@ class Lesson extends Tutor_Base {
78
  public function save_lesson_meta( $post_ID ) {
79
  // Course
80
  if ( isset( $_POST['selected_course'] ) ) {
81
- $course_id = (int) sanitize_text_field( $_POST['selected_course'] );
82
  if ( $course_id ) {
83
  update_post_meta( $post_ID, '_tutor_course_id_for_lesson', $course_id );
84
  }
@@ -89,7 +89,7 @@ class Lesson extends Tutor_Base {
89
  if ( $video_source === '-1' ) {
90
  delete_post_meta( $post_ID, '_video' );
91
  } elseif ( $video_source ) {
92
- $video = (array) tutor_utils()->array_get( 'video', tutor_sanitize_data($_POST), array() );
93
  update_post_meta( $post_ID, '_video', $video );
94
  }
95
 
@@ -118,7 +118,7 @@ class Lesson extends Tutor_Base {
118
  tutils()->checking_nonce();
119
 
120
  $lesson_id = (int) tutor_utils()->avalue_dot( 'lesson_id', tutor_sanitize_data($_POST) );
121
- $topic_id = (int) sanitize_text_field( $_POST['topic_id'] );
122
 
123
  if ( ! tutils()->can_user_manage( 'topic', $topic_id ) ) {
124
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
@@ -155,10 +155,10 @@ class Lesson extends Tutor_Base {
155
 
156
  global $wpdb;
157
 
158
- $lesson_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( 'lesson_id', $_POST ) );
159
- $topic_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( 'current_topic_id', $_POST ) );
160
  $course_id = tutor_utils()->get_course_id_by( 'topic', $topic_id );
161
- $_lesson_thumbnail_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( '_lesson_thumbnail_id', $_POST ) );
162
 
163
  if ( ! tutils()->can_user_manage( 'topic', $topic_id ) ) {
164
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
@@ -214,7 +214,7 @@ class Lesson extends Tutor_Base {
214
  public function tutor_delete_lesson_by_id() {
215
  tutils()->checking_nonce();
216
 
217
- $lesson_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( 'lesson_id', $_POST ) );
218
 
219
  if ( ! tutils()->can_user_manage( 'lesson', $lesson_id ) ) {
220
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
@@ -310,7 +310,7 @@ class Lesson extends Tutor_Base {
310
  die( __( 'Please Sign-In', 'tutor' ) );
311
  }
312
 
313
- $lesson_id = (int) sanitize_text_field( $_POST['lesson_id'] );
314
 
315
  do_action( 'tutor_lesson_completed_before', $lesson_id );
316
  /**
@@ -327,7 +327,7 @@ class Lesson extends Tutor_Base {
327
  public function tutor_render_lesson_content() {
328
  tutils()->checking_nonce();
329
 
330
- $lesson_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( 'lesson_id', $_POST ) );
331
 
332
  $ancestors = get_post_ancestors( $lesson_id );
333
  $course_id = ! empty( $ancestors ) ? array_pop( $ancestors ) : $lesson_id;
78
  public function save_lesson_meta( $post_ID ) {
79
  // Course
80
  if ( isset( $_POST['selected_course'] ) ) {
81
+ $course_id = (int) $_POST['selected_course'];
82
  if ( $course_id ) {
83
  update_post_meta( $post_ID, '_tutor_course_id_for_lesson', $course_id );
84
  }
89
  if ( $video_source === '-1' ) {
90
  delete_post_meta( $post_ID, '_video' );
91
  } elseif ( $video_source ) {
92
+ $video = (array) tutor_utils()->array_get( 'video', $_POST, array() );
93
  update_post_meta( $post_ID, '_video', $video );
94
  }
95
 
118
  tutils()->checking_nonce();
119
 
120
  $lesson_id = (int) tutor_utils()->avalue_dot( 'lesson_id', tutor_sanitize_data($_POST) );
121
+ $topic_id = (int) $_POST['topic_id'];
122
 
123
  if ( ! tutils()->can_user_manage( 'topic', $topic_id ) ) {
124
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
155
 
156
  global $wpdb;
157
 
158
+ $lesson_id = (int) tutor_utils()->avalue_dot( 'lesson_id', $_POST );
159
+ $topic_id = (int) tutor_utils()->avalue_dot( 'current_topic_id', $_POST );
160
  $course_id = tutor_utils()->get_course_id_by( 'topic', $topic_id );
161
+ $_lesson_thumbnail_id = (int) tutor_utils()->avalue_dot( '_lesson_thumbnail_id', $_POST );
162
 
163
  if ( ! tutils()->can_user_manage( 'topic', $topic_id ) ) {
164
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
214
  public function tutor_delete_lesson_by_id() {
215
  tutils()->checking_nonce();
216
 
217
+ $lesson_id = (int) tutor_utils()->avalue_dot( 'lesson_id', $_POST );
218
 
219
  if ( ! tutils()->can_user_manage( 'lesson', $lesson_id ) ) {
220
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
310
  die( __( 'Please Sign-In', 'tutor' ) );
311
  }
312
 
313
+ $lesson_id = (int) $_POST['lesson_id'];
314
 
315
  do_action( 'tutor_lesson_completed_before', $lesson_id );
316
  /**
327
  public function tutor_render_lesson_content() {
328
  tutils()->checking_nonce();
329
 
330
+ $lesson_id = (int) tutor_utils()->avalue_dot( 'lesson_id', $_POST );
331
 
332
  $ancestors = get_post_ancestors( $lesson_id );
333
  $course_id = ! empty( $ancestors ) ? array_pop( $ancestors ) : $lesson_id;
classes/Options.php CHANGED
@@ -105,7 +105,8 @@ class Options {
105
  'external_url' => __('External URL', 'tutor'),
106
  'youtube' => __('Youtube', 'tutor'),
107
  'vimeo' => __('Vimeo', 'tutor'),
108
- 'embedded' => __('Embedded', 'tutor')
 
109
  );
110
 
111
  $course_filters = array(
105
  'external_url' => __('External URL', 'tutor'),
106
  'youtube' => __('Youtube', 'tutor'),
107
  'vimeo' => __('Vimeo', 'tutor'),
108
+ 'embedded' => __('Embedded', 'tutor'),
109
+ 'shortcode' => __('Shortcode', 'tutor')
110
  );
111
 
112
  $course_filters = array(
classes/Q_and_A.php CHANGED
@@ -24,7 +24,7 @@ class Q_and_A {
24
 
25
  $answer = wp_kses_post($_POST['answer']);
26
  if (!empty($answer)) {
27
- $question_id = (int) sanitize_text_field($_POST['question_id']);
28
  $question = tutor_utils()->get_qa_question($question_id);
29
 
30
  $user_id = get_current_user_id();
24
 
25
  $answer = wp_kses_post($_POST['answer']);
26
  if (!empty($answer)) {
27
+ $question_id = (int) $_POST['question_id'];
28
  $question = tutor_utils()->get_qa_question($question_id);
29
 
30
  $user_id = get_current_user_id();
classes/Quiz.php CHANGED
@@ -176,7 +176,7 @@ class Quiz {
176
  $user_id = get_current_user_id();
177
  $user = get_userdata( $user_id );
178
 
179
- $quiz_id = (int) sanitize_text_field( $_POST['quiz_id'] );
180
 
181
  $quiz = get_post( $quiz_id );
182
  $course = tutor_utils()->get_course_by_quiz( $quiz_id );
@@ -283,7 +283,7 @@ class Quiz {
283
  public static function tutor_quiz_attemp_submit() {
284
  tutor_utils()->checking_nonce();
285
 
286
- $attempt_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( 'attempt_id', $_POST ) );
287
  $attempt = tutor_utils()->get_attempt( $attempt_id );
288
  $course_id = tutor_utils()->get_course_by_quiz( $attempt->quiz_id )->ID;
289
 
@@ -491,7 +491,7 @@ class Quiz {
491
 
492
  global $wpdb;
493
 
494
- $quiz_id = (int) sanitize_text_field( $_POST['quiz_id'] );
495
  $attempt = tutor_utils()->is_started_quiz( $quiz_id );
496
  $attempt_id = $attempt->attempt_id;
497
 
@@ -517,7 +517,7 @@ class Quiz {
517
 
518
  global $wpdb;
519
 
520
- $quiz_id = (int) sanitize_text_field( $_POST['quiz_id'] );
521
 
522
  // if(!tutils()->can_user_manage('quiz', $quiz_id)) {
523
  // wp_send_json_error( array('message'=>__('Access Denied', 'tutor')) );
@@ -552,8 +552,8 @@ class Quiz {
552
 
553
  global $wpdb;
554
 
555
- $attempt_id = (int) sanitize_text_field( $_GET['attempt_id'] );
556
- $attempt_answer_id = (int) sanitize_text_field( $_GET['attempt_answer_id'] );
557
  $mark_as = sanitize_text_field( $_GET['mark_as'] );
558
 
559
  if ( ! tutils()->can_user_manage( 'attempt', $attempt_id ) || ! tutils()->can_user_manage( 'attempt_answer', $attempt_answer_id ) ) {
@@ -673,15 +673,15 @@ class Quiz {
673
 
674
  ob_start();
675
  ?>
676
- <div id="tutor-quiz-<?php echo esc_attr( $quiz_id ); ?>" class="course-content-item tutor-quiz tutor-quiz-<?php echo $quiz_id; ?>">
677
  <div class="tutor-lesson-top">
678
  <i class="tutor-icon-move"></i>
679
- <a href="javascript:;" class="open-tutor-quiz-modal" data-quiz-id="<?php echo $quiz_id; ?>" data-topic-id="<?php echo $topic_id; ?>">
680
  <i class=" tutor-icon-doubt"></i>[<?php _e( 'QUIZ', 'tutor' ); ?>]&nbsp;
681
  <?php echo stripslashes( $quiz_title ); ?>
682
  </a>
683
  <?php do_action( 'tutor_course_builder_before_quiz_btn_action', $quiz_id ); ?>
684
- <a href="javascript:;" class="tutor-delete-quiz-btn" data-quiz-id="<?php echo $quiz_id; ?>"><i class="tutor-icon-garbage"></i></a>
685
  </div>
686
  </div>
687
  <?php
@@ -700,7 +700,7 @@ class Quiz {
700
 
701
  global $wpdb;
702
 
703
- $quiz_id = (int) sanitize_text_field( $_POST['quiz_id'] );
704
  $post = get_post( $quiz_id );
705
 
706
  if ( ! tutils()->can_user_manage( 'quiz', $quiz_id ) ) {
@@ -847,7 +847,7 @@ class Quiz {
847
 
848
  global $wpdb;
849
 
850
- $question_data = tutor_sanitize_data( $_POST['tutor_quiz_question'] );
851
 
852
  foreach ( $question_data as $question_id => $question ) {
853
 
@@ -948,7 +948,7 @@ class Quiz {
948
  public function tutor_quiz_edit_question_answer() {
949
  tutils()->checking_nonce();
950
 
951
- $answer_id = (int) sanitize_text_field( $_POST['answer_id'] );
952
 
953
  if ( ! tutils()->can_user_manage( 'quiz_answer', $answer_id ) ) {
954
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
@@ -1076,7 +1076,7 @@ class Quiz {
1076
 
1077
  global $wpdb;
1078
 
1079
- $answer_id = (int) sanitize_text_field( $_POST['tutor_quiz_answer_id'] );
1080
 
1081
  if ( ! tutils()->can_user_manage( 'quiz_answer', $answer_id ) ) {
1082
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
@@ -1166,13 +1166,13 @@ class Quiz {
1166
  if ( $question_type === 'true_false' || $question_type === 'single_choice' ) {
1167
  ?>
1168
  <span class="tutor-quiz-answers-mark-correct-wrap">
1169
- <input type="radio" name="mark_as_correct[<?php echo $answer->belongs_question_id; ?>]" value="<?php echo $answer->answer_id; ?>" title="<?php _e( 'Mark as correct', 'tutor' ); ?>" <?php checked( 1, $answer->is_correct ); ?> >
1170
  </span>
1171
  <?php
1172
  } elseif ( $question_type === 'multiple_choice' ) {
1173
  ?>
1174
  <span class="tutor-quiz-answers-mark-correct-wrap">
1175
- <input type="checkbox" name="mark_as_correct[<?php echo $answer->belongs_question_id; ?>]" value="<?php echo $answer->answer_id; ?>" title="<?php _e( 'Mark as correct', 'tutor' ); ?>" <?php checked( 1, $answer->is_correct ); ?> >
1176
  </span>
1177
  <?php
1178
  }
@@ -1319,7 +1319,7 @@ class Quiz {
1319
 
1320
  tutils()->checking_nonce();
1321
 
1322
- $quiz_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( 'quiz_id', $_POST ) );
1323
 
1324
  if ( ! tutils()->has_enrolled_content_access( 'quiz', $quiz_id ) ) {
1325
  wp_send_json_error( array( 'message' => __( 'Access Denied.', 'tutor' ) ) );
176
  $user_id = get_current_user_id();
177
  $user = get_userdata( $user_id );
178
 
179
+ $quiz_id = (int) $_POST['quiz_id'];
180
 
181
  $quiz = get_post( $quiz_id );
182
  $course = tutor_utils()->get_course_by_quiz( $quiz_id );
283
  public static function tutor_quiz_attemp_submit() {
284
  tutor_utils()->checking_nonce();
285
 
286
+ $attempt_id = (int) tutor_utils()->avalue_dot( 'attempt_id', $_POST );
287
  $attempt = tutor_utils()->get_attempt( $attempt_id );
288
  $course_id = tutor_utils()->get_course_by_quiz( $attempt->quiz_id )->ID;
289
 
491
 
492
  global $wpdb;
493
 
494
+ $quiz_id = (int) $_POST['quiz_id'];
495
  $attempt = tutor_utils()->is_started_quiz( $quiz_id );
496
  $attempt_id = $attempt->attempt_id;
497
 
517
 
518
  global $wpdb;
519
 
520
+ $quiz_id = (int) $_POST['quiz_id'];
521
 
522
  // if(!tutils()->can_user_manage('quiz', $quiz_id)) {
523
  // wp_send_json_error( array('message'=>__('Access Denied', 'tutor')) );
552
 
553
  global $wpdb;
554
 
555
+ $attempt_id = (int) $_GET['attempt_id'];
556
+ $attempt_answer_id = (int) $_GET['attempt_answer_id'];
557
  $mark_as = sanitize_text_field( $_GET['mark_as'] );
558
 
559
  if ( ! tutils()->can_user_manage( 'attempt', $attempt_id ) || ! tutils()->can_user_manage( 'attempt_answer', $attempt_answer_id ) ) {
673
 
674
  ob_start();
675
  ?>
676
+ <div id="tutor-quiz-<?php echo esc_attr( $quiz_id ); ?>" class="course-content-item tutor-quiz tutor-quiz-<?php echo esc_attr( $quiz_id ); ?>">
677
  <div class="tutor-lesson-top">
678
  <i class="tutor-icon-move"></i>
679
+ <a href="javascript:;" class="open-tutor-quiz-modal" data-quiz-id="<?php echo esc_attr( $quiz_id ); ?>" data-topic-id="<?php echo esc_attr( $topic_id ); ?>">
680
  <i class=" tutor-icon-doubt"></i>[<?php _e( 'QUIZ', 'tutor' ); ?>]&nbsp;
681
  <?php echo stripslashes( $quiz_title ); ?>
682
  </a>
683
  <?php do_action( 'tutor_course_builder_before_quiz_btn_action', $quiz_id ); ?>
684
+ <a href="javascript:;" class="tutor-delete-quiz-btn" data-quiz-id="<?php echo esc_attr( $quiz_id ); ?>"><i class="tutor-icon-garbage"></i></a>
685
  </div>
686
  </div>
687
  <?php
700
 
701
  global $wpdb;
702
 
703
+ $quiz_id = (int) $_POST['quiz_id'];
704
  $post = get_post( $quiz_id );
705
 
706
  if ( ! tutils()->can_user_manage( 'quiz', $quiz_id ) ) {
847
 
848
  global $wpdb;
849
 
850
+ $question_data = $_POST['tutor_quiz_question'];
851
 
852
  foreach ( $question_data as $question_id => $question ) {
853
 
948
  public function tutor_quiz_edit_question_answer() {
949
  tutils()->checking_nonce();
950
 
951
+ $answer_id = (int) $_POST['answer_id'];
952
 
953
  if ( ! tutils()->can_user_manage( 'quiz_answer', $answer_id ) ) {
954
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
1076
 
1077
  global $wpdb;
1078
 
1079
+ $answer_id = (int) $_POST['tutor_quiz_answer_id'];
1080
 
1081
  if ( ! tutils()->can_user_manage( 'quiz_answer', $answer_id ) ) {
1082
  wp_send_json_error( array( 'message' => __( 'Access Denied', 'tutor' ) ) );
1166
  if ( $question_type === 'true_false' || $question_type === 'single_choice' ) {
1167
  ?>
1168
  <span class="tutor-quiz-answers-mark-correct-wrap">
1169
+ <input type="radio" name="mark_as_correct[<?php echo esc_attr( $answer->belongs_question_id ); ?>]" value="<?php echo esc_attr( $answer->answer_id ); ?>" title="<?php _e( 'Mark as correct', 'tutor' ); ?>" <?php checked( 1, $answer->is_correct ); ?> >
1170
  </span>
1171
  <?php
1172
  } elseif ( $question_type === 'multiple_choice' ) {
1173
  ?>
1174
  <span class="tutor-quiz-answers-mark-correct-wrap">
1175
+ <input type="checkbox" name="mark_as_correct[<?php echo esc_attr( $answer->belongs_question_id ); ?>]" value="<?php echo esc_attr( $answer->answer_id ); ?>" title="<?php _e( 'Mark as correct', 'tutor' ); ?>" <?php checked( 1, $answer->is_correct ); ?> >
1176
  </span>
1177
  <?php
1178
  }
1319
 
1320
  tutils()->checking_nonce();
1321
 
1322
+ $quiz_id = (int) tutor_utils()->avalue_dot( 'quiz_id', $_POST );
1323
 
1324
  if ( ! tutils()->has_enrolled_content_access( 'quiz', $quiz_id ) ) {
1325
  wp_send_json_error( array( 'message' => __( 'Access Denied.', 'tutor' ) ) );
classes/Quiz_Attempts_List.php CHANGED
@@ -38,7 +38,7 @@ class Quiz_Attempts_List extends \Tutor_List_Table {
38
  function column_student( $item ) {
39
  $actions = array();
40
 
41
- $actions['answer'] = sprintf( '<a href="?page=%s&sub_page=%s&attempt_id=%s">' . __( 'Review', 'tutor' ) . '</a>', $_REQUEST['page'], 'view_attempt', $item->attempt_id );
42
  // $actions['delete'] = sprintf('<a href="?page=%s&action=%s&attempt_id=%s">Delete</a>',$_REQUEST['page'],'delete',$item->attempt_id);
43
 
44
  $quiz_title = '<p><strong>' . $item->display_name . '</strong></p>';
38
  function column_student( $item ) {
39
  $actions = array();
40
 
41
+ $actions['answer'] = sprintf( '<a href="?page=%s&sub_page=%s&attempt_id=%s">' . __( 'Review', 'tutor' ) . '</a>', sanitize_text_field( $_REQUEST['page'] ), 'view_attempt', $item->attempt_id );
42
  // $actions['delete'] = sprintf('<a href="?page=%s&action=%s&attempt_id=%s">Delete</a>',$_REQUEST['page'],'delete',$item->attempt_id);
43
 
44
  $quiz_title = '<p><strong>' . $item->display_name . '</strong></p>';
classes/Shortcode.php CHANGED
@@ -162,7 +162,7 @@ class Shortcode {
162
 
163
  private function prepare_instructor_list($current_page, $atts, $cat_ids = array(), $keyword = '') {
164
 
165
- $limit = (int)sanitize_text_field(tutils()->array_get('count', $atts, 9));
166
  $page = $current_page - 1;
167
 
168
  $instructors = tutor_utils()->get_instructors($limit*$page, $limit, $keyword, '', '', '', 'approved', $cat_ids);
@@ -243,7 +243,7 @@ class Shortcode {
243
  tutor_utils()->checking_nonce();
244
 
245
  $attributes = (array)tutils()->array_get('attributes', tutor_sanitize_data($_POST), array());
246
- $current_page = (int)sanitize_text_field(tutils()->array_get('current_page', $attributes, 1));
247
  $keyword = (string)sanitize_text_field(tutils()->array_get('keyword', $_POST, ''));
248
 
249
  $category = (array)tutils()->array_get('category', tutor_sanitize_data($_POST), array());
162
 
163
  private function prepare_instructor_list($current_page, $atts, $cat_ids = array(), $keyword = '') {
164
 
165
+ $limit = (int) tutils()->array_get('count', $atts, 9);
166
  $page = $current_page - 1;
167
 
168
  $instructors = tutor_utils()->get_instructors($limit*$page, $limit, $keyword, '', '', '', 'approved', $cat_ids);
243
  tutor_utils()->checking_nonce();
244
 
245
  $attributes = (array)tutils()->array_get('attributes', tutor_sanitize_data($_POST), array());
246
+ $current_page = (int) tutils()->array_get('current_page', $attributes, 1);
247
  $keyword = (string)sanitize_text_field(tutils()->array_get('keyword', $_POST, ''));
248
 
249
  $category = (array)tutils()->array_get('category', tutor_sanitize_data($_POST), array());
classes/Tutor_List_Table.php CHANGED
@@ -397,7 +397,7 @@ class Tutor_List_Table {
397
  }
398
 
399
  $content = str_replace( 'OPTIONS_PLACEHOLDER', $options, $markup );
400
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
401
  }
402
 
403
  /**
@@ -421,7 +421,7 @@ class Tutor_List_Table {
421
  $options .= '<option value="' . $order . '" ' . selected( $selected, $order, false ) . '> ' . __( $order, 'tutor' ) . ' </option>';
422
  }
423
  $content = str_replace( 'OPTION_PLACEHOLDER', $options, $markup );
424
- echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
425
  }
426
  /**
427
  * @since 1.8.0
@@ -440,7 +440,7 @@ class Tutor_List_Table {
440
  <i class="tutor-icon-calendar"></i>
441
  </div>
442
  ';
443
- echo $markup; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
444
  }
445
 
446
  /**
@@ -599,7 +599,7 @@ class Tutor_List_Table {
599
 
600
  $out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>';
601
 
602
- return $out; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
603
 
604
  }
605
 
@@ -965,7 +965,7 @@ class Tutor_List_Table {
965
  }
966
  $this->_pagination = '<div class="tablenav-pages' . $page_class . '">' . $output . '</div>';
967
 
968
- echo $this->_pagination; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
969
  }
970
 
971
  /**
397
  }
398
 
399
  $content = str_replace( 'OPTIONS_PLACEHOLDER', $options, $markup );
400
+ echo $content;
401
  }
402
 
403
  /**
421
  $options .= '<option value="' . $order . '" ' . selected( $selected, $order, false ) . '> ' . __( $order, 'tutor' ) . ' </option>';
422
  }
423
  $content = str_replace( 'OPTION_PLACEHOLDER', $options, $markup );
424
+ echo $content;
425
  }
426
  /**
427
  * @since 1.8.0
440
  <i class="tutor-icon-calendar"></i>
441
  </div>
442
  ';
443
+ echo $markup;
444
  }
445
 
446
  /**
599
 
600
  $out .= '<button type="button" class="toggle-row"><span class="screen-reader-text">' . __( 'Show more details' ) . '</span></button>';
601
 
602
+ return $out;
603
 
604
  }
605
 
965
  }
966
  $this->_pagination = '<div class="tablenav-pages' . $page_class . '">' . $output . '</div>';
967
 
968
+ echo $this->_pagination;
969
  }
970
 
971
  /**
classes/Tutor_Setup.php CHANGED
@@ -350,7 +350,7 @@ if ( ! defined( 'ABSPATH' ) )
350
  $i++;
351
  }
352
 
353
- echo $html;
354
  }
355
 
356
 
350
  $i++;
351
  }
352
 
353
+ echo tutor_kses_html( $html );
354
  }
355
 
356
 
classes/Utils.php CHANGED
@@ -1628,7 +1628,7 @@ class Utils {
1628
  }
1629
 
1630
  if ( $echo ) {
1631
- echo $tutor_lesson_type_icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1632
  }
1633
 
1634
  return $tutor_lesson_type_icon;
@@ -1746,7 +1746,8 @@ class Utils {
1746
  ! empty( $video['source_external_url'] ) ||
1747
  ! empty( $video['source_youtube'] ) ||
1748
  ! empty( $video['source_vimeo'] ) ||
1749
- ! empty( $video['source_embedded'] );
 
1750
 
1751
  return $not_empty ? $video : false;
1752
  }
@@ -3262,7 +3263,7 @@ class Utils {
3262
  $output .= '</div>';
3263
 
3264
  if ( $echo ) {
3265
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
3266
  }
3267
 
3268
  return $output;
1628
  }
1629
 
1630
  if ( $echo ) {
1631
+ echo tutor_kses_html( $tutor_lesson_type_icon );
1632
  }
1633
 
1634
  return $tutor_lesson_type_icon;
1746
  ! empty( $video['source_external_url'] ) ||
1747
  ! empty( $video['source_youtube'] ) ||
1748
  ! empty( $video['source_vimeo'] ) ||
1749
+ ! empty( $video['source_embedded'] ) ||
1750
+ ! empty( $video['source_shortcode'] );
1751
 
1752
  return $not_empty ? $video : false;
1753
  }
3263
  $output .= '</div>';
3264
 
3265
  if ( $echo ) {
3266
+ echo tutor_kses_html( $output );
3267
  }
3268
 
3269
  return $output;
classes/Video_Stream.php CHANGED
@@ -121,7 +121,7 @@ class Video_Stream {
121
  }
122
  // $data = fread($this->stream, $bytesToRead);
123
  $data = @stream_get_contents( $this->stream, $bytesToRead, $i );
124
- echo $data; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
125
  flush();
126
  $i += $bytesToRead;
127
  }
121
  }
122
  // $data = fread($this->stream, $bytesToRead);
123
  $data = @stream_get_contents( $this->stream, $bytesToRead, $i );
124
+ echo $data;
125
  flush();
126
  $i += $bytesToRead;
127
  }
classes/Withdraw_Requests_List.php CHANGED
@@ -138,7 +138,7 @@ class Withdraw_Requests_List extends \Tutor_List_Table {
138
  $should_withdraw_delete = apply_filters( 'tutor_should_withdraw_delete', true );
139
 
140
  if ( $should_withdraw_delete ) {
141
- $withdraw_id = (int) sanitize_text_field( $_GET['withdraw_id'] );
142
 
143
  do_action( 'tutor_before_delete_withdraw', $withdraw_id );
144
 
@@ -156,7 +156,7 @@ class Withdraw_Requests_List extends \Tutor_List_Table {
156
  * Reject Withdraw
157
  */
158
  if ( 'approved' === $this->current_action() ) {
159
- $withdraw_id = (int) sanitize_text_field( $_GET['withdraw_id'] );
160
  $withdraw = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}tutor_withdraws WHERE withdraw_id = %d ", $withdraw_id ) );
161
  if ( ! $withdraw || $withdraw->status === 'approved' ) {
162
  return;
@@ -182,7 +182,7 @@ class Withdraw_Requests_List extends \Tutor_List_Table {
182
  * Rejected
183
  */
184
  if ( 'rejected' === $this->current_action() ) {
185
- $withdraw_id = (int) sanitize_text_field( $_GET['withdraw_id'] );
186
  $withdraw = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}tutor_withdraws WHERE withdraw_id = %d ", $withdraw_id ) );
187
  if ( ! $withdraw || $withdraw->status === 'rejected' ) {
188
  return;
138
  $should_withdraw_delete = apply_filters( 'tutor_should_withdraw_delete', true );
139
 
140
  if ( $should_withdraw_delete ) {
141
+ $withdraw_id = (int) $_GET['withdraw_id'];
142
 
143
  do_action( 'tutor_before_delete_withdraw', $withdraw_id );
144
 
156
  * Reject Withdraw
157
  */
158
  if ( 'approved' === $this->current_action() ) {
159
+ $withdraw_id = (int) $_GET['withdraw_id'];
160
  $withdraw = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}tutor_withdraws WHERE withdraw_id = %d ", $withdraw_id ) );
161
  if ( ! $withdraw || $withdraw->status === 'approved' ) {
162
  return;
182
  * Rejected
183
  */
184
  if ( 'rejected' === $this->current_action() ) {
185
+ $withdraw_id = (int) $_GET['withdraw_id'];
186
  $withdraw = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}tutor_withdraws WHERE withdraw_id = %d ", $withdraw_id ) );
187
  if ( ! $withdraw || $withdraw->status === 'rejected' ) {
188
  return;
classes/WooCommerce.php CHANGED
@@ -144,7 +144,7 @@ class WooCommerce extends Tutor_Base {
144
  ob_start();
145
  ?>
146
  <div class="price">
147
- <?php echo $product->get_price_html(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
148
  </div>
149
  <?php
150
  return ob_get_clean();
@@ -185,7 +185,7 @@ class WooCommerce extends Tutor_Base {
185
  * Save course meta for attaching product
186
  */
187
  public function save_course_meta( $post_ID ) {
188
- $product_id = (int) sanitize_text_field( tutor_utils()->avalue_dot( '_tutor_course_product_id', $_POST, 0 ) );
189
 
190
  if ( $product_id === -1 ) {
191
  delete_post_meta( $post_ID, '_tutor_course_product_id' );
144
  ob_start();
145
  ?>
146
  <div class="price">
147
+ <?php echo $product->get_price_html(); ?>
148
  </div>
149
  <?php
150
  return ob_get_clean();
185
  * Save course meta for attaching product
186
  */
187
  public function save_course_meta( $post_ID ) {
188
+ $product_id = (int) tutor_utils()->avalue_dot( '_tutor_course_product_id', $_POST, 0 );
189
 
190
  if ( $product_id === -1 ) {
191
  delete_post_meta( $post_ID, '_tutor_course_product_id' );
includes/tutor-general-functions.php CHANGED
@@ -422,14 +422,14 @@ if ( ! function_exists( 'course_builder_section_wrap' ) ) {
422
  <h3><i class="tutor-icon-down"></i> <span><?php echo $title; ?></span></h3>
423
  </div>
424
  <div class="tutor-course-builder-section-content">
425
- <?php echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
426
  </div>
427
  </div>
428
  <?php
429
  $html = ob_get_clean();
430
 
431
  if ( $echo ) {
432
- echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
433
  } else {
434
  return $html;
435
  }
@@ -581,7 +581,7 @@ if ( ! function_exists( 'tutor_alert' ) ) {
581
  $html = '<div class="tutor-alert tutor-alert-' . $type . '">' . $msg . '</div>';
582
 
583
  if ( $echo ) {
584
- echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
585
  }
586
  return $html;
587
  }
@@ -686,7 +686,7 @@ if ( ! function_exists( 'tutor_action_field' ) ) {
686
  }
687
 
688
  if ( $echo ) {
689
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
690
  } else {
691
  return $output;
692
  }
@@ -796,4 +796,44 @@ if ( ! function_exists( 'tutor_get_formated_date' ) ) {
796
  }
797
  }
798
 
 
 
 
 
799
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
422
  <h3><i class="tutor-icon-down"></i> <span><?php echo $title; ?></span></h3>
423
  </div>
424
  <div class="tutor-course-builder-section-content">
425
+ <?php echo $content; ?>
426
  </div>
427
  </div>
428
  <?php
429
  $html = ob_get_clean();
430
 
431
  if ( $echo ) {
432
+ echo tutor_kses_html( $html );
433
  } else {
434
  return $html;
435
  }
581
  $html = '<div class="tutor-alert tutor-alert-' . $type . '">' . $msg . '</div>';
582
 
583
  if ( $echo ) {
584
+ echo tutor_kses_html( $html );
585
  }
586
  return $html;
587
  }
686
  }
687
 
688
  if ( $echo ) {
689
+ echo tutor_kses_html( $output );
690
  } else {
691
  return $output;
692
  }
796
  }
797
  }
798
 
799
+ if(!function_exists('tutor_kses_allowed_html')) {
800
+ function tutor_kses_allowed_html($allowed_tags, $context) {
801
+ $tags = array('input', 'style', 'script', 'select', 'form', 'option', 'optgroup', 'iframe', 'bdi');
802
+ $atts = array('min', 'max', 'maxlength', 'type', 'method', 'enctype', 'action', 'selected', 'class', 'id', 'disabled', 'checked', 'readonly', 'name', 'aria-*', 'style', 'role', 'placeholder', 'value', 'data-*', 'src', 'width', 'height', 'frameborder', 'allow', 'title');
803
 
804
+ foreach($tags as $tag) {
805
+ $tag_attrs = array();
806
+
807
+ foreach($atts as $att) {
808
+ $tag_attrs[$att] = true;
809
+ }
810
+
811
+ $allowed_tags[$tag] = $tag_attrs;
812
+ }
813
+
814
+ return $allowed_tags;
815
+ }
816
+ }
817
+
818
+ if(!function_exists('tutor_kses_allowed_css')) {
819
+ function tutor_kses_allowed_css( $styles ) {
820
+ $styles[] = 'display';
821
+ return $styles;
822
+ }
823
+ }
824
+
825
+ if(!function_exists('tutor_kses_html')) {
826
+ function tutor_kses_html( $content ) {
827
+ add_filter( 'wp_kses_allowed_html', 'tutor_kses_allowed_html', 10, 2 );
828
+ add_filter( 'safe_style_css', 'tutor_kses_allowed_css' );
829
+
830
+ $content = preg_replace('/<!--(.|\s)*?-->/', '', $content);
831
+ $content = wp_kses_post( $content );
832
+ $content = str_replace('&amp;', '&', $content);
833
+
834
+ remove_filter( 'safe_style_css', 'tutor_kses_allowed_css' );
835
+ remove_filter( 'wp_kses_allowed_html', 'tutor_kses_allowed_html' );
836
+
837
+ return $content;
838
+ }
839
+ }
includes/tutor-template-functions.php CHANGED
@@ -176,7 +176,7 @@ if ( ! function_exists( 'tutor_course_loop_start' ) ) {
176
  $output = apply_filters( 'tutor_course_loop_start', ob_get_clean() );
177
 
178
  if ( $echo ) {
179
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
180
  }
181
  return $output;
182
  }
@@ -189,7 +189,7 @@ if ( ! function_exists( 'tutor_course_loop_end' ) ) {
189
 
190
  $output = apply_filters( 'tutor_course_loop_end', ob_get_clean() );
191
  if ( $echo ) {
192
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
193
  }
194
 
195
  return $output;
@@ -203,7 +203,7 @@ if ( ! function_exists( 'tutor_course_archive_pagination' ) ) {
203
 
204
  $output = apply_filters( 'tutor_course_archive_pagination', ob_get_clean() );
205
  if ( $echo ) {
206
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
207
  }
208
 
209
  return $output;
@@ -215,7 +215,7 @@ function tutor_course_loop_before_content() {
215
  tutor_load_template( 'loop.loop-before-content' );
216
 
217
  $output = apply_filters( 'tutor_course_loop_before_content', ob_get_clean() );
218
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
219
  }
220
 
221
  function tutor_course_loop_after_content() {
@@ -223,7 +223,7 @@ function tutor_course_loop_after_content() {
223
  tutor_load_template( 'loop.loop-after-content' );
224
 
225
  $output = apply_filters( 'tutor_course_loop_after_content', ob_get_clean() );
226
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
227
  }
228
 
229
  if ( ! function_exists( 'tutor_course_loop_title' ) ) {
@@ -232,7 +232,7 @@ if ( ! function_exists( 'tutor_course_loop_title' ) ) {
232
  tutor_load_template( 'loop.title' );
233
  $output = apply_filters( 'tutor_course_loop_title', ob_get_clean() );
234
 
235
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
236
  }
237
  }
238
 
@@ -243,7 +243,7 @@ if ( ! function_exists( 'tutor_course_loop_header' ) ) {
243
  tutor_load_template( 'loop.header' );
244
  $output = apply_filters( 'tutor_course_loop_header', ob_get_clean() );
245
 
246
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
247
  }
248
  }
249
 
@@ -253,7 +253,7 @@ if ( ! function_exists( 'tutor_course_loop_footer' ) ) {
253
  tutor_load_template( 'loop.footer' );
254
  $output = apply_filters( 'tutor_course_loop_footer', ob_get_clean() );
255
 
256
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
257
  }
258
  }
259
 
@@ -266,7 +266,7 @@ if ( ! function_exists( 'tutor_course_loop_start_content_wrap' ) ) {
266
  tutor_load_template( 'loop.start_content_wrap' );
267
  $output = apply_filters( 'tutor_course_loop_start_content_wrap', ob_get_clean() );
268
 
269
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
270
  }
271
  }
272
 
@@ -276,7 +276,7 @@ if ( ! function_exists( 'tutor_course_loop_end_content_wrap' ) ) {
276
  tutor_load_template( 'loop.end_content_wrap' );
277
  $output = apply_filters( 'tutor_course_loop_end_content_wrap', ob_get_clean() );
278
 
279
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
280
  }
281
  }
282
 
@@ -287,7 +287,7 @@ if ( ! function_exists( 'tutor_course_loop_thumbnail' ) ) {
287
  $output = apply_filters( 'tutor_course_loop_thumbnail', ob_get_clean() );
288
 
289
  if ( $echo ) {
290
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
291
  } else {
292
  return $output;
293
  }
@@ -377,7 +377,7 @@ if ( ! function_exists( 'tutor_course_archive_filter_bar' ) ) {
377
  tutor_load_template( 'global.course-archive-filter-bar' );
378
  $output = apply_filters( 'tutor_course_archive_filter_bar', ob_get_clean() );
379
 
380
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
381
  }
382
  }
383
 
@@ -436,7 +436,7 @@ if ( ! function_exists( 'get_tutor_course_thumbnail' ) ) {
436
  $html = sprintf( '<img alt="%s" src="' . $placeHolderUrl . '" />', __( 'Placeholder', 'tutor' ) );
437
  }
438
 
439
- echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
440
  }
441
  }
442
  /**
@@ -464,7 +464,7 @@ if ( ! function_exists( 'tutor_course_loop_meta' ) ) {
464
  tutor_load_template( 'loop.meta' );
465
  $output = apply_filters( 'tutor_course_loop_meta', ob_get_clean() );
466
 
467
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
468
  }
469
  }
470
 
@@ -480,7 +480,7 @@ if ( ! function_exists( 'tutor_course_loop_author' ) ) {
480
  tutor_load_template( 'loop.course-author' );
481
  $output = apply_filters( 'tutor_course_loop_author', ob_get_clean() );
482
 
483
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
484
  }
485
  }
486
 
@@ -528,7 +528,7 @@ if ( ! function_exists( 'tutor_course_loop_rating' ) ) {
528
  tutor_load_template( 'loop.rating' );
529
  $output = apply_filters( 'tutor_course_loop_rating', ob_get_clean() );
530
 
531
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
532
  }
533
  }
534
 
@@ -552,7 +552,7 @@ if ( ! function_exists( 'tutor_course_loop_add_to_cart' ) ) {
552
  $output = apply_filters( 'tutor_course_loop_add_to_cart_link', ob_get_clean() );
553
 
554
  if ( $echo ) {
555
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
556
  }
557
  return $output;
558
  }
@@ -564,7 +564,7 @@ if ( ! function_exists( 'tutor_course_price' ) ) {
564
  tutor_load_template( 'single.course.wc-price-html' );
565
  $output = apply_filters( 'tutor_course_price', ob_get_clean() );
566
 
567
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
568
  }
569
  }
570
 
@@ -667,7 +667,7 @@ if ( ! function_exists( 'tutor_course_benefits_html' ) ) {
667
  $output = apply_filters( 'tutor_course/single/benefits_html', ob_get_clean() );
668
 
669
  if ( $echo ) {
670
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
671
  }
672
  return $output;
673
  }
@@ -690,7 +690,7 @@ if ( ! function_exists( 'tutor_course_topics' ) ) {
690
  wp_reset_postdata();
691
 
692
  if ( $echo ) {
693
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
694
  }
695
 
696
  return $output;
@@ -739,7 +739,7 @@ if ( ! function_exists( 'tutor_course_requirements_html' ) ) {
739
  $output = apply_filters( 'tutor_course/single/requirements_html', ob_get_clean() );
740
 
741
  if ( $echo ) {
742
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
743
  }
744
  return $output;
745
  }
@@ -788,7 +788,7 @@ if ( ! function_exists( 'tutor_course_target_audience_html' ) ) {
788
  $output = apply_filters( 'tutor_course/single/audience_html', ob_get_clean() );
789
 
790
  if ( $echo ) {
791
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
792
  }
793
  return $output;
794
  }
@@ -819,7 +819,7 @@ if ( ! function_exists( 'tutor_course_material_includes_html' ) ) {
819
  $output = apply_filters( 'tutor_course/single/material_includes', ob_get_clean() );
820
 
821
  if ( $echo ) {
822
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
823
  }
824
  return $output;
825
  }
@@ -840,7 +840,7 @@ if ( ! function_exists( 'tutor_course_instructors_html' ) ) {
840
  $output = apply_filters( 'tutor_course/single/instructors_html', ob_get_clean() );
841
 
842
  if ( $echo ) {
843
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
844
  }
845
  return $output;
846
  }
@@ -853,7 +853,7 @@ if ( ! function_exists( 'tutor_course_target_reviews_html' ) ) {
853
  $output = apply_filters( 'tutor_course/single/reviews_html', ob_get_clean() );
854
 
855
  if ( $echo ) {
856
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
857
  }
858
  return $output;
859
  }
@@ -866,7 +866,7 @@ if ( ! function_exists( 'tutor_course_target_review_form_html' ) ) {
866
  $output = apply_filters( 'tutor_review_disabled_text', '' );
867
 
868
  if ( $echo ) {
869
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
870
  }
871
  return $output;
872
  }
@@ -876,7 +876,7 @@ if ( ! function_exists( 'tutor_course_target_review_form_html' ) ) {
876
  $output = apply_filters( 'tutor_course/single/reviews_form', ob_get_clean() );
877
 
878
  if ( $echo ) {
879
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
880
  }
881
  return $output;
882
  }
@@ -898,7 +898,7 @@ if ( ! function_exists( 'tutor_course_content' ) ) {
898
  $output = apply_filters( 'tutor_course/single/content', ob_get_clean() );
899
 
900
  if ( $echo ) {
901
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
902
  }
903
 
904
  return $output;
@@ -936,7 +936,7 @@ if ( ! function_exists( 'tutor_course_lead_info' ) ) {
936
  $output = apply_filters( 'tutor_course/single/lead_info', ob_get_clean() );
937
 
938
  if ( $echo ) {
939
- echo $output;
940
  }
941
  return $output;
942
  }
@@ -972,7 +972,7 @@ if ( ! function_exists( 'tutor_course_enrolled_lead_info' ) ) {
972
  $output = apply_filters( 'tutor_course/single/enrolled/lead_info', ob_get_clean() );
973
 
974
  if ( $echo ) {
975
- echo $output;
976
  }
977
 
978
  return $output;
@@ -1044,7 +1044,7 @@ if ( ! function_exists( 'tutor_course_enroll_box' ) ) {
1044
  }
1045
 
1046
  if ( $echo ) {
1047
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1048
  }
1049
 
1050
  return $output;
@@ -1079,7 +1079,7 @@ function tutor_single_course_add_to_cart( $echo = true ) {
1079
  }
1080
 
1081
  if ( $echo ) {
1082
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1083
  }
1084
 
1085
  return $output;
@@ -1118,7 +1118,7 @@ if ( ! function_exists( 'tutor_course_enrolled_nav' ) ) {
1118
  $output = apply_filters( 'tutor_course/single/enrolled/nav', ob_get_clean() );
1119
 
1120
  if ( $echo ) {
1121
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1122
  }
1123
  return $output;
1124
  }
@@ -1131,7 +1131,7 @@ if ( ! function_exists( 'tutor_course_video' ) ) {
1131
  $output = apply_filters( 'tutor_course/single/video', ob_get_clean() );
1132
 
1133
  if ( $echo ) {
1134
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1135
  }
1136
  return $output;
1137
  }
@@ -1144,7 +1144,7 @@ if ( ! function_exists( 'tutor_lesson_video' ) ) {
1144
  $output = apply_filters( 'tutor_lesson/single/video', ob_get_clean() );
1145
 
1146
  if ( $echo ) {
1147
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1148
  }
1149
  return $output;
1150
  }
@@ -1167,7 +1167,7 @@ if ( ! function_exists( 'get_tutor_posts_attachments' ) ) {
1167
  $output = apply_filters( 'tutor_lesson/single/attachments', ob_get_clean() );
1168
 
1169
  if ( $echo ) {
1170
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1171
  }
1172
  return $output;
1173
  }
@@ -1189,7 +1189,7 @@ if ( ! function_exists( 'tutor_lessons_sidebar' ) ) {
1189
  $output = apply_filters( 'tutor_lesson/single/lesson_sidebar', ob_get_clean() );
1190
 
1191
  if ( $echo ) {
1192
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1193
  }
1194
 
1195
  return $output;
@@ -1211,7 +1211,7 @@ if ( ! function_exists( 'tutor_lesson_content' ) ) {
1211
  $output = apply_filters( 'tutor_lesson/single/content', ob_get_clean() );
1212
 
1213
  if ( $echo ) {
1214
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1215
  }
1216
 
1217
  return $output;
@@ -1225,7 +1225,7 @@ if ( ! function_exists( 'tutor_lesson_mark_complete_html' ) ) {
1225
  $output = apply_filters( 'tutor_lesson/single/complete_form', ob_get_clean() );
1226
 
1227
  if ( $echo ) {
1228
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1229
  }
1230
 
1231
  return $output;
@@ -1239,7 +1239,7 @@ if ( ! function_exists( 'tutor_course_mark_complete_html' ) ) {
1239
  $output = apply_filters( 'tutor_course/single/complete_form', ob_get_clean() );
1240
 
1241
  if ( $echo ) {
1242
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1243
  }
1244
 
1245
  return $output;
@@ -1264,7 +1264,7 @@ if ( ! function_exists( 'tutor_course_completing_progress_bar' ) ) {
1264
  $output = apply_filters( 'tutor_course/single/completing-progress-bar', ob_get_clean() );
1265
 
1266
  if ( $echo ) {
1267
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1268
  }
1269
 
1270
  return $output;
@@ -1277,7 +1277,7 @@ function tutor_course_question_and_answer( $echo = true ) {
1277
  $output = apply_filters( 'tutor_course/single/question_and_answer', ob_get_clean() );
1278
 
1279
  if ( $echo ) {
1280
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1281
  }
1282
 
1283
  return $output;
@@ -1290,7 +1290,7 @@ function tutor_course_announcements( $echo = true ) {
1290
  $output = apply_filters( 'tutor_course/single/announcements', ob_get_clean() );
1291
 
1292
  if ( $echo ) {
1293
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1294
  }
1295
 
1296
  return $output;
@@ -1302,7 +1302,7 @@ function tutor_single_quiz_top( $echo = true ) {
1302
  $output = apply_filters( 'tutor_single_quiz/top', ob_get_clean() );
1303
 
1304
  if ( $echo ) {
1305
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1306
  }
1307
  return $output;
1308
  }
@@ -1331,7 +1331,7 @@ function tutor_single_quiz_content( $echo = true ) {
1331
  $output = apply_filters( 'tutor_single_quiz/content', ob_get_clean() );
1332
 
1333
  if ( $echo ) {
1334
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1335
  }
1336
  return $output;
1337
  }
@@ -1343,7 +1343,7 @@ function tutor_single_quiz_no_course_belongs( $echo = true ) {
1343
  $output = apply_filters( 'tutor_single_quiz/no_course_belongs', ob_get_clean() );
1344
 
1345
  if ( $echo ) {
1346
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1347
  }
1348
  return $output;
1349
  }
@@ -1355,7 +1355,7 @@ function single_quiz_contents( $echo = true ) {
1355
  $output = apply_filters( 'tutor_single_quiz/single_quiz_contents', ob_get_clean() );
1356
 
1357
  if ( $echo ) {
1358
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1359
  }
1360
  return $output;
1361
  }
@@ -1454,7 +1454,7 @@ if ( ! function_exists( 'tutor_course_tags_html' ) ) {
1454
  $output = apply_filters( 'tutor_course/single/tags_html', ob_get_clean() );
1455
 
1456
  if ( $echo ) {
1457
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1458
  }
1459
 
1460
  return $output;
@@ -1476,7 +1476,7 @@ if ( ! function_exists( 'tutor_lesson_sidebar_question_and_answer' ) ) {
1476
  $output = apply_filters( 'tutor_lesson/single/sidebar_question_and_answer', ob_get_clean() );
1477
 
1478
  if ( $echo ) {
1479
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1480
  }
1481
 
1482
  return $output;
@@ -1505,7 +1505,7 @@ if ( ! function_exists( 'tutor_social_share' ) ) {
1505
 
1506
  if ( $echo && $output != '' ) {
1507
  echo '<span>' . __( 'Share:', 'tutor' ) . '</span>';
1508
- echo $output;
1509
  }
1510
 
1511
  return $output;
@@ -1529,7 +1529,7 @@ if ( ! function_exists( 'tutor_assignment_content' ) ) {
1529
  $output = apply_filters( 'tutor_assignment/single/content', ob_get_clean() );
1530
 
1531
  if ( $echo ) {
1532
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1533
  }
1534
 
1535
  return $output;
@@ -1588,31 +1588,12 @@ function tutor_next_previous_pagination( $course_content_id = 0, $echo = true )
1588
  $output = apply_filters( 'tutor/single/next_previous_pagination', ob_get_clean() );
1589
 
1590
  if ( $echo ) {
1591
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1592
  }
1593
 
1594
  return $output;
1595
  }
1596
 
1597
-
1598
- /**
1599
- * Required login form in archive page
1600
- *
1601
- * @param bool $echo
1602
- * @since v 1.5.5
1603
- *
1604
- * @todo, it will be remove from 2.0.0
1605
- */
1606
- function tutor_archive_course_add_to_cart( $echo = true ) {
1607
- _deprecated_function( __FUNCTION__, '1.5.8' );
1608
-
1609
- $output = '';
1610
- if ( $echo ) {
1611
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1612
- }
1613
- return $output;
1614
- }
1615
-
1616
  /**
1617
  * @param bool $echo
1618
  * @return string
@@ -1633,7 +1614,7 @@ if ( ! function_exists( 'tutor_login_form_popup' ) ) {
1633
  $output = apply_filters( 'tutor_login_form_popup_html', $output );
1634
 
1635
  if ( $echo ) {
1636
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1637
  }
1638
  return $output;
1639
  }
176
  $output = apply_filters( 'tutor_course_loop_start', ob_get_clean() );
177
 
178
  if ( $echo ) {
179
+ echo tutor_kses_html( $output );
180
  }
181
  return $output;
182
  }
189
 
190
  $output = apply_filters( 'tutor_course_loop_end', ob_get_clean() );
191
  if ( $echo ) {
192
+ echo tutor_kses_html( $output );
193
  }
194
 
195
  return $output;
203
 
204
  $output = apply_filters( 'tutor_course_archive_pagination', ob_get_clean() );
205
  if ( $echo ) {
206
+ echo tutor_kses_html( $output );
207
  }
208
 
209
  return $output;
215
  tutor_load_template( 'loop.loop-before-content' );
216
 
217
  $output = apply_filters( 'tutor_course_loop_before_content', ob_get_clean() );
218
+ echo tutor_kses_html( $output );
219
  }
220
 
221
  function tutor_course_loop_after_content() {
223
  tutor_load_template( 'loop.loop-after-content' );
224
 
225
  $output = apply_filters( 'tutor_course_loop_after_content', ob_get_clean() );
226
+ echo tutor_kses_html( $output );
227
  }
228
 
229
  if ( ! function_exists( 'tutor_course_loop_title' ) ) {
232
  tutor_load_template( 'loop.title' );
233
  $output = apply_filters( 'tutor_course_loop_title', ob_get_clean() );
234
 
235
+ echo tutor_kses_html( $output );
236
  }
237
  }
238
 
243
  tutor_load_template( 'loop.header' );
244
  $output = apply_filters( 'tutor_course_loop_header', ob_get_clean() );
245
 
246
+ echo tutor_kses_html( $output );
247
  }
248
  }
249
 
253
  tutor_load_template( 'loop.footer' );
254
  $output = apply_filters( 'tutor_course_loop_footer', ob_get_clean() );
255
 
256
+ echo tutor_kses_html( $output );
257
  }
258
  }
259
 
266
  tutor_load_template( 'loop.start_content_wrap' );
267
  $output = apply_filters( 'tutor_course_loop_start_content_wrap', ob_get_clean() );
268
 
269
+ echo tutor_kses_html( $output );
270
  }
271
  }
272
 
276
  tutor_load_template( 'loop.end_content_wrap' );
277
  $output = apply_filters( 'tutor_course_loop_end_content_wrap', ob_get_clean() );
278
 
279
+ echo tutor_kses_html( $output );
280
  }
281
  }
282
 
287
  $output = apply_filters( 'tutor_course_loop_thumbnail', ob_get_clean() );
288
 
289
  if ( $echo ) {
290
+ echo tutor_kses_html( $output );
291
  } else {
292
  return $output;
293
  }
377
  tutor_load_template( 'global.course-archive-filter-bar' );
378
  $output = apply_filters( 'tutor_course_archive_filter_bar', ob_get_clean() );
379
 
380
+ echo $output;
381
  }
382
  }
383
 
436
  $html = sprintf( '<img alt="%s" src="' . $placeHolderUrl . '" />', __( 'Placeholder', 'tutor' ) );
437
  }
438
 
439
+ echo tutor_kses_html( $html );
440
  }
441
  }
442
  /**
464
  tutor_load_template( 'loop.meta' );
465
  $output = apply_filters( 'tutor_course_loop_meta', ob_get_clean() );
466
 
467
+ echo tutor_kses_html( $output );
468
  }
469
  }
470
 
480
  tutor_load_template( 'loop.course-author' );
481
  $output = apply_filters( 'tutor_course_loop_author', ob_get_clean() );
482
 
483
+ echo $output;
484
  }
485
  }
486
 
528
  tutor_load_template( 'loop.rating' );
529
  $output = apply_filters( 'tutor_course_loop_rating', ob_get_clean() );
530
 
531
+ echo tutor_kses_html( $output );
532
  }
533
  }
534
 
552
  $output = apply_filters( 'tutor_course_loop_add_to_cart_link', ob_get_clean() );
553
 
554
  if ( $echo ) {
555
+ echo wp_kses_post($output);
556
  }
557
  return $output;
558
  }
564
  tutor_load_template( 'single.course.wc-price-html' );
565
  $output = apply_filters( 'tutor_course_price', ob_get_clean() );
566
 
567
+ echo $output;
568
  }
569
  }
570
 
667
  $output = apply_filters( 'tutor_course/single/benefits_html', ob_get_clean() );
668
 
669
  if ( $echo ) {
670
+ echo wp_kses_post($output);
671
  }
672
  return $output;
673
  }
690
  wp_reset_postdata();
691
 
692
  if ( $echo ) {
693
+ echo tutor_kses_html( $output );
694
  }
695
 
696
  return $output;
739
  $output = apply_filters( 'tutor_course/single/requirements_html', ob_get_clean() );
740
 
741
  if ( $echo ) {
742
+ echo tutor_kses_html( $output );
743
  }
744
  return $output;
745
  }
788
  $output = apply_filters( 'tutor_course/single/audience_html', ob_get_clean() );
789
 
790
  if ( $echo ) {
791
+ echo tutor_kses_html( $output );
792
  }
793
  return $output;
794
  }
819
  $output = apply_filters( 'tutor_course/single/material_includes', ob_get_clean() );
820
 
821
  if ( $echo ) {
822
+ echo tutor_kses_html( $output );
823
  }
824
  return $output;
825
  }
840
  $output = apply_filters( 'tutor_course/single/instructors_html', ob_get_clean() );
841
 
842
  if ( $echo ) {
843
+ echo tutor_kses_html( $output );
844
  }
845
  return $output;
846
  }
853
  $output = apply_filters( 'tutor_course/single/reviews_html', ob_get_clean() );
854
 
855
  if ( $echo ) {
856
+ echo tutor_kses_html( $output );
857
  }
858
  return $output;
859
  }
866
  $output = apply_filters( 'tutor_review_disabled_text', '' );
867
 
868
  if ( $echo ) {
869
+ echo tutor_kses_html( $output );
870
  }
871
  return $output;
872
  }
876
  $output = apply_filters( 'tutor_course/single/reviews_form', ob_get_clean() );
877
 
878
  if ( $echo ) {
879
+ echo tutor_kses_html( $output );
880
  }
881
  return $output;
882
  }
898
  $output = apply_filters( 'tutor_course/single/content', ob_get_clean() );
899
 
900
  if ( $echo ) {
901
+ echo tutor_kses_html( $output );
902
  }
903
 
904
  return $output;
936
  $output = apply_filters( 'tutor_course/single/lead_info', ob_get_clean() );
937
 
938
  if ( $echo ) {
939
+ echo tutor_kses_html( $output );
940
  }
941
  return $output;
942
  }
972
  $output = apply_filters( 'tutor_course/single/enrolled/lead_info', ob_get_clean() );
973
 
974
  if ( $echo ) {
975
+ echo tutor_kses_html( $output );
976
  }
977
 
978
  return $output;
1044
  }
1045
 
1046
  if ( $echo ) {
1047
+ echo $output;
1048
  }
1049
 
1050
  return $output;
1079
  }
1080
 
1081
  if ( $echo ) {
1082
+ echo $output;
1083
  }
1084
 
1085
  return $output;
1118
  $output = apply_filters( 'tutor_course/single/enrolled/nav', ob_get_clean() );
1119
 
1120
  if ( $echo ) {
1121
+ echo $output;
1122
  }
1123
  return $output;
1124
  }
1131
  $output = apply_filters( 'tutor_course/single/video', ob_get_clean() );
1132
 
1133
  if ( $echo ) {
1134
+ echo $output;
1135
  }
1136
  return $output;
1137
  }
1144
  $output = apply_filters( 'tutor_lesson/single/video', ob_get_clean() );
1145
 
1146
  if ( $echo ) {
1147
+ echo tutor_kses_html( $output );
1148
  }
1149
  return $output;
1150
  }
1167
  $output = apply_filters( 'tutor_lesson/single/attachments', ob_get_clean() );
1168
 
1169
  if ( $echo ) {
1170
+ echo tutor_kses_html( $output );
1171
  }
1172
  return $output;
1173
  }
1189
  $output = apply_filters( 'tutor_lesson/single/lesson_sidebar', ob_get_clean() );
1190
 
1191
  if ( $echo ) {
1192
+ echo tutor_kses_html( $output );
1193
  }
1194
 
1195
  return $output;
1211
  $output = apply_filters( 'tutor_lesson/single/content', ob_get_clean() );
1212
 
1213
  if ( $echo ) {
1214
+ echo $output;
1215
  }
1216
 
1217
  return $output;
1225
  $output = apply_filters( 'tutor_lesson/single/complete_form', ob_get_clean() );
1226
 
1227
  if ( $echo ) {
1228
+ echo tutor_kses_html( $output );
1229
  }
1230
 
1231
  return $output;
1239
  $output = apply_filters( 'tutor_course/single/complete_form', ob_get_clean() );
1240
 
1241
  if ( $echo ) {
1242
+ echo tutor_kses_html( $output );
1243
  }
1244
 
1245
  return $output;
1264
  $output = apply_filters( 'tutor_course/single/completing-progress-bar', ob_get_clean() );
1265
 
1266
  if ( $echo ) {
1267
+ echo tutor_kses_html( $output );
1268
  }
1269
 
1270
  return $output;
1277
  $output = apply_filters( 'tutor_course/single/question_and_answer', ob_get_clean() );
1278
 
1279
  if ( $echo ) {
1280
+ echo $output;
1281
  }
1282
 
1283
  return $output;
1290
  $output = apply_filters( 'tutor_course/single/announcements', ob_get_clean() );
1291
 
1292
  if ( $echo ) {
1293
+ echo $output;
1294
  }
1295
 
1296
  return $output;
1302
  $output = apply_filters( 'tutor_single_quiz/top', ob_get_clean() );
1303
 
1304
  if ( $echo ) {
1305
+ echo $output;
1306
  }
1307
  return $output;
1308
  }
1331
  $output = apply_filters( 'tutor_single_quiz/content', ob_get_clean() );
1332
 
1333
  if ( $echo ) {
1334
+ echo $output;
1335
  }
1336
  return $output;
1337
  }
1343
  $output = apply_filters( 'tutor_single_quiz/no_course_belongs', ob_get_clean() );
1344
 
1345
  if ( $echo ) {
1346
+ echo $output;
1347
  }
1348
  return $output;
1349
  }
1355
  $output = apply_filters( 'tutor_single_quiz/single_quiz_contents', ob_get_clean() );
1356
 
1357
  if ( $echo ) {
1358
+ echo $output;
1359
  }
1360
  return $output;
1361
  }
1454
  $output = apply_filters( 'tutor_course/single/tags_html', ob_get_clean() );
1455
 
1456
  if ( $echo ) {
1457
+ echo tutor_kses_html( $output );
1458
  }
1459
 
1460
  return $output;
1476
  $output = apply_filters( 'tutor_lesson/single/sidebar_question_and_answer', ob_get_clean() );
1477
 
1478
  if ( $echo ) {
1479
+ echo tutor_kses_html( $output );
1480
  }
1481
 
1482
  return $output;
1505
 
1506
  if ( $echo && $output != '' ) {
1507
  echo '<span>' . __( 'Share:', 'tutor' ) . '</span>';
1508
+ echo tutor_kses_html( $output );
1509
  }
1510
 
1511
  return $output;
1529
  $output = apply_filters( 'tutor_assignment/single/content', ob_get_clean() );
1530
 
1531
  if ( $echo ) {
1532
+ echo tutor_kses_html( $output );
1533
  }
1534
 
1535
  return $output;
1588
  $output = apply_filters( 'tutor/single/next_previous_pagination', ob_get_clean() );
1589
 
1590
  if ( $echo ) {
1591
+ echo tutor_kses_html( $output );
1592
  }
1593
 
1594
  return $output;
1595
  }
1596
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1597
  /**
1598
  * @param bool $echo
1599
  * @return string
1614
  $output = apply_filters( 'tutor_login_form_popup_html', $output );
1615
 
1616
  if ( $echo ) {
1617
+ echo tutor_kses_html( $output );
1618
  }
1619
  return $output;
1620
  }
languages/tutor.pot CHANGED
@@ -125,15 +125,15 @@ msgstr ""
125
  msgid "Tags"
126
  msgstr ""
127
 
128
- #: classes/Admin.php:60, classes/Admin.php:60, classes/Course.php:507, classes/Options.php:594, classes/Quiz_Attempts_List.php:117, templates/student-public-profile.php:103, views/pages/students.php:8
129
  msgid "Students"
130
  msgstr ""
131
 
132
- #: classes/Admin.php:63, classes/Admin.php:63, classes/Course.php:195, classes/Course.php:276, classes/Options.php:555, views/pages/instructors.php:29
133
  msgid "Instructors"
134
  msgstr ""
135
 
136
- #: classes/Admin.php:66, classes/Admin.php:66, classes/Utils.php:1333, classes/Utils.php:2582, templates/dashboard/announcements.php:124, views/pages/announcements.php:105, views/pages/announcements.php:115
137
  msgid "Announcements"
138
  msgstr ""
139
 
@@ -145,7 +145,7 @@ msgstr ""
145
  msgid "Q & A "
146
  msgstr ""
147
 
148
- #: classes/Admin.php:70, classes/Admin.php:70, classes/Utils.php:2590, templates/dashboard/quiz-attempts.php:19, views/pages/quiz_attempts.php:29
149
  msgid "Quiz Attempts"
150
  msgstr ""
151
 
@@ -157,7 +157,7 @@ msgstr ""
157
  msgid "Add-ons"
158
  msgstr ""
159
 
160
- #: classes/Admin.php:80, classes/Admin.php:80, classes/Admin.php:453, classes/Utils.php:2614, templates/dashboard/settings.php:8, views/modal/add_quiz.php:22, views/modal/edit_quiz.php:35, templates/dashboard/notifications/profile-completion.php:14, templates/dashboard/settings/education.php:7, templates/dashboard/settings/skill.php:8
161
  msgid "Settings"
162
  msgstr ""
163
 
@@ -177,7 +177,7 @@ msgstr ""
177
  msgid "Tutor Pages"
178
  msgstr ""
179
 
180
- #: classes/Admin.php:139, classes/Instructors_List.php:130, templates/dashboard/dashboard.php:92, templates/dashboard/purchase_history.php:23, templates/dashboard/withdraw.php:185, views/pages/view_attempt.php:59, views/pages/tools/tutor_pages.php:11
181
  msgid "Status"
182
  msgstr ""
183
 
@@ -201,7 +201,7 @@ msgstr ""
201
  msgid "If you like %1$s please leave us a %2$s rating. A huge thanks in advance!"
202
  msgstr ""
203
 
204
- #: classes/Ajax.php:66, classes/Ajax.php:119, classes/Ajax.php:206, classes/Ajax.php:270, classes/Ajax.php:349, classes/Ajax.php:392, classes/Ajax.php:413, classes/Ajax.php:526, classes/Ajax.php:598, classes/Course.php:447, classes/Course.php:482, classes/Course.php:725, classes/Course.php:778, classes/Course.php:815, classes/Course.php:835, classes/Instructor.php:250, classes/Lesson.php:124, classes/Lesson.php:164, classes/Lesson.php:220, classes/Quiz.php:148, classes/Quiz.php:560, classes/Quiz.php:652, classes/Quiz.php:707, classes/Quiz.php:750, classes/Quiz.php:792, classes/Quiz.php:815, classes/Quiz.php:910, classes/Quiz.php:933, classes/Quiz.php:954, classes/Quiz.php:1082, classes/Quiz.php:1127, classes/Quiz.php:1208, classes/Quiz.php:1268, classes/Quiz.php:1293, classes/Q_and_A.php:71
205
  msgid "Access Denied"
206
  msgstr ""
207
 
@@ -281,87 +281,87 @@ msgstr ""
281
  msgid "Fully booked"
282
  msgstr ""
283
 
284
- #: classes/Course.php:191, classes/Course.php:275
285
  msgid "Course Builder"
286
  msgstr ""
287
 
288
- #: classes/Course.php:192, classes/Course.php:277
289
  msgid "Additional Data"
290
  msgstr ""
291
 
292
- #: classes/Course.php:193, classes/Course.php:274
293
  msgid "Video"
294
  msgstr ""
295
 
296
- #: classes/Course.php:203, classes/Course.php:1380, views/options/options_generator.php:2
297
  msgid "Tutor Settings"
298
  msgstr ""
299
 
300
- #: classes/Course.php:492
301
  msgid "Topic has been updated"
302
  msgstr ""
303
 
304
- #: classes/Course.php:506, classes/Options.php:448, classes/Post_types.php:172, templates/single/course/course-topics.php:39
305
  msgid "Lessons"
306
  msgstr ""
307
 
308
- #: classes/Course.php:508, templates/course-filter/filters.php:74, templates/dashboard/earning/statement.php:29
309
  msgid "Price"
310
  msgstr ""
311
 
312
- #: classes/Course.php:537
313
  msgid "free"
314
  msgstr ""
315
 
316
- #: classes/Course.php:587
317
  msgid "Please Sign In first"
318
  msgstr ""
319
 
320
- #: classes/Course.php:635, classes/Lesson.php:310
321
  msgid "Please Sign-In"
322
  msgstr ""
323
 
324
- #: classes/Course.php:761
325
  msgid "No instructor available or you have already added maximum instructors"
326
  msgstr ""
327
 
328
- #: classes/Course.php:765
329
  msgid "To add unlimited multiple instructors in your course, get %1$sTutor LMS Pro%2$s"
330
  msgstr ""
331
 
332
- #: classes/Course.php:1210
333
  msgid "complete all lessons to mark this course as complete"
334
  msgstr ""
335
 
336
- #: classes/Course.php:1247
337
  msgid "You have to pass %s quizzes to complete this course."
338
  msgstr ""
339
 
340
- #: classes/Course.php:1359
341
  msgid "Make This Course Public"
342
  msgstr ""
343
 
344
- #: classes/Course.php:1361
345
  msgid "No enrollment required."
346
  msgstr ""
347
 
348
- #: classes/Course.php:1369
349
  msgid "Disable Q&A"
350
  msgstr ""
351
 
352
- #: classes/Course.php:1429
353
  msgid "Invalid Course ID or Access Denied."
354
  msgstr ""
355
 
356
- #: classes/Course_Settings_Tabs.php:32, classes/Options.php:224, classes/Tutor_Setup.php:400, views/metabox/course/settings-tabs.php:13
357
  msgid "Course Settings"
358
  msgstr ""
359
 
360
- #: classes/Course_Settings_Tabs.php:38, classes/Options.php:121, classes/Options.php:124, classes/Options.php:223, classes/Tutor_Setup.php:561, classes/WooCommerce.php:294
361
  msgid "General"
362
  msgstr ""
363
 
364
- #: classes/Course_Settings_Tabs.php:39, classes/Options.php:125, classes/Tutor_Setup.php:361
365
  msgid "General Settings"
366
  msgstr ""
367
 
@@ -369,7 +369,7 @@ msgstr ""
369
  msgid "Maximum Students"
370
  msgstr ""
371
 
372
- #: classes/Course_Settings_Tabs.php:46, classes/Options.php:137, classes/Options.php:144, classes/Options.php:164, classes/Options.php:171, classes/Options.php:178, classes/Options.php:185, classes/Options.php:198, classes/Options.php:229, classes/Options.php:247, classes/Options.php:264, classes/Options.php:297, classes/Options.php:315, classes/Options.php:321, classes/Options.php:457, classes/Options.php:564, classes/Options.php:578, classes/Options.php:585, classes/Options.php:610, classes/Options.php:617, classes/Options.php:635, classes/Options.php:659, classes/User.php:193
373
  msgid "Enable"
374
  msgstr ""
375
 
@@ -409,7 +409,7 @@ msgstr ""
409
  msgid "Place comma (,) separated courses ids which you like to exclude from the query"
410
  msgstr ""
411
 
412
- #: classes/Course_Widget.php:140, classes/Options.php:113, templates/course-filter/filters.php:33
413
  msgid "Category"
414
  msgstr ""
415
 
@@ -637,7 +637,7 @@ msgstr ""
637
  msgid "Couldn't create lesson."
638
  msgstr ""
639
 
640
- #: classes/Lesson.php:273, classes/Options.php:220, classes/Question_Answers_List.php:78, classes/Quiz_Attempts_List.php:119, classes/Tutor_Setup.php:562, templates/student-public-profile.php:98, templates/dashboard/assignments.php:95, templates/dashboard/question-answer.php:27, templates/shortcode/tutor-instructor.php:27, views/pages/view_attempt.php:73, templates/dashboard/announcements/details.php:19, templates/dashboard/assignments/review.php:44, templates/dashboard/assignments/submitted.php:30, templates/dashboard/earning/statement.php:12, templates/single/quiz/top.php:27
641
  msgid "Course"
642
  msgstr ""
643
 
@@ -678,739 +678,743 @@ msgstr ""
678
  msgid "Embedded"
679
  msgstr ""
680
 
681
- #: classes/Options.php:112
 
 
 
 
682
  msgid "Keyword Search"
683
  msgstr ""
684
 
685
- #: classes/Options.php:114, templates/course-filter/filters.php:42
686
  msgid "Tag"
687
  msgstr ""
688
 
689
- #: classes/Options.php:115, views/metabox/course-level-metabox.php:10
690
  msgid "Difficulty Level"
691
  msgstr ""
692
 
693
- #: classes/Options.php:116
694
  msgid "Price Type"
695
  msgstr ""
696
 
697
- #: classes/Options.php:129, classes/Utils.php:7185
698
  msgid "Dashboard Page"
699
  msgstr ""
700
 
701
- #: classes/Options.php:132
702
  msgid "This page will be used for student and instructor dashboard"
703
  msgstr ""
704
 
705
- #: classes/Options.php:136, classes/Tutor_Setup.php:371
706
  msgid "Public Profile"
707
  msgstr ""
708
 
709
- #: classes/Options.php:139
710
  msgid "Enable this to make a profile publicly visible"
711
  msgstr ""
712
 
713
- #: classes/Options.php:143
714
  msgid "Profile Completion"
715
  msgstr ""
716
 
717
- #: classes/Options.php:146
718
  msgid "Enabling this feature will show a notification bar to students and instructors to complete their profile information"
719
  msgstr ""
720
 
721
- #: classes/Options.php:150
722
  msgid "Tutor Native Login"
723
  msgstr ""
724
 
725
- #: classes/Options.php:151, classes/Options.php:328, classes/Options.php:335, classes/Options.php:342, classes/Options.php:349, classes/Options.php:356, classes/Options.php:363, classes/Options.php:370, classes/Options.php:377, classes/Options.php:384, classes/Options.php:391, classes/Options.php:398, classes/Options.php:405, classes/Options.php:412, classes/Options.php:419, classes/Options.php:426, classes/Options.php:533
726
  msgid "Disable"
727
  msgstr ""
728
 
729
- #: classes/Options.php:153
730
  msgid "Disable to use the default WordPress login page"
731
  msgstr ""
732
 
733
- #: classes/Options.php:157
734
  msgid "Course Visibility"
735
  msgstr ""
736
 
737
- #: classes/Options.php:158
738
  msgid "Logged in only"
739
  msgstr ""
740
 
741
- #: classes/Options.php:159
742
  msgid "Students must be logged in to view course"
743
  msgstr ""
744
 
745
- #: classes/Options.php:163
746
  msgid "Erase upon uninstallation"
747
  msgstr ""
748
 
749
- #: classes/Options.php:165
750
  msgid "Delete all data during uninstallation"
751
  msgstr ""
752
 
753
- #: classes/Options.php:170
754
  msgid "Spotlight mode"
755
  msgstr ""
756
 
757
- #: classes/Options.php:173
758
  msgid "This will hide the header and the footer and enable spotlight (full screen) mode when students view lessons."
759
  msgstr ""
760
 
761
- #: classes/Options.php:177, classes/Tutor_Setup.php:381
762
  msgid "YouTube Player"
763
  msgstr ""
764
 
765
- #: classes/Options.php:180, classes/Options.php:187
766
  msgid "Disable this option to use Tutor LMS video player."
767
  msgstr ""
768
 
769
- #: classes/Options.php:184, classes/Tutor_Setup.php:386
770
  msgid "Vimeo Player"
771
  msgstr ""
772
 
773
- #: classes/Options.php:191
774
  msgid "Pagination"
775
  msgstr ""
776
 
777
- #: classes/Options.php:193
778
  msgid "Number of items you would like displayed \"per page\" in the pagination"
779
  msgstr ""
780
 
781
- #: classes/Options.php:197
782
  msgid "Maintenance Mode"
783
  msgstr ""
784
 
785
- #: classes/Options.php:200
786
  msgid "Enabling the maintenance mode allows you to display a custom message on the frontend. During this time, visitors can not access the site content. But the wp-admin dashboard will remain accessible."
787
  msgstr ""
788
 
789
- #: classes/Options.php:204
790
  msgid "Frontend Admin Bar"
791
  msgstr ""
792
 
793
- #: classes/Options.php:205
794
  msgid "Hide"
795
  msgstr ""
796
 
797
- #: classes/Options.php:207
798
  msgid "Hide admin bar option allow you to hide WordPress admin bar entirely from the frontend. It will still show to administrator roles user"
799
  msgstr ""
800
 
801
- #: classes/Options.php:211
802
  msgid "Error message for wrong login credentials"
803
  msgstr ""
804
 
805
- #: classes/Options.php:213
806
  msgid "Login error message displayed when the user puts wrong login credentials."
807
  msgstr ""
808
 
809
- #: classes/Options.php:228
810
  msgid "Gutenberg Editor"
811
  msgstr ""
812
 
813
- #: classes/Options.php:230
814
  msgid "Use Gutenberg editor on course description area."
815
  msgstr ""
816
 
817
- #: classes/Options.php:234, classes/Options.php:240, classes/Options.php:309, classes/Options.php:462, classes/WooCommerce.php:306
818
  msgid "Enable / Disable"
819
  msgstr ""
820
 
821
- #: classes/Options.php:235
822
  msgid "Hide course products from shop page"
823
  msgstr ""
824
 
825
- #: classes/Options.php:236
826
  msgid "Enabling this feature will remove course products from the shop page."
827
  msgstr ""
828
 
829
- #: classes/Options.php:241
830
  msgid "Course Content Access"
831
  msgstr ""
832
 
833
- #: classes/Options.php:242
834
  msgid "Allow instructors and admins to view the course content without enrolling"
835
  msgstr ""
836
 
837
- #: classes/Options.php:246
838
  msgid "Auto redirect to courses"
839
  msgstr ""
840
 
841
- #: classes/Options.php:248
842
  msgid "When a user's WooCommerce order is auto-completed, they will be redirected to enrolled courses"
843
  msgstr ""
844
 
845
- #: classes/Options.php:252
846
  msgid "Course Completion Process"
847
  msgstr ""
848
 
849
- #: classes/Options.php:256
850
  msgid "Flexible"
851
  msgstr ""
852
 
853
- #: classes/Options.php:257
854
  msgid "Strict Mode"
855
  msgstr ""
856
 
857
- #: classes/Options.php:259
858
  msgid "Students can complete courses anytime in the Flexible mode. In the Strict mode, students have to complete, pass all the lessons and quizzes (if any) to mark a course as complete."
859
  msgstr ""
860
 
861
- #: classes/Options.php:263
862
  msgid "Course Retake"
863
  msgstr ""
864
 
865
- #: classes/Options.php:265
866
  msgid "Enabling this feature will allow students to reset course progress and start over."
867
  msgstr ""
868
 
869
- #: classes/Options.php:270
870
  msgid "Archive"
871
  msgstr ""
872
 
873
- #: classes/Options.php:271
874
  msgid "Course Archive Settings"
875
  msgstr ""
876
 
877
- #: classes/Options.php:275
878
  msgid "Course Archive Page"
879
  msgstr ""
880
 
881
- #: classes/Options.php:278
882
  msgid "This page will be used to list all the published courses."
883
  msgstr ""
884
 
885
- #: classes/Options.php:282
886
  msgid "Column Per Row"
887
  msgstr ""
888
 
889
- #: classes/Options.php:285
890
  msgid "Define how many column you want to use to display courses."
891
  msgstr ""
892
 
893
- #: classes/Options.php:289, classes/Tutor_Setup.php:419
894
  msgid "Courses Per Page"
895
  msgstr ""
896
 
897
- #: classes/Options.php:292
898
  msgid "Define how many courses you want to show per page"
899
  msgstr ""
900
 
901
- #: classes/Options.php:296
902
  msgid "Course Filter"
903
  msgstr ""
904
 
905
- #: classes/Options.php:298
906
  msgid "Show sorting and filtering options on course archive page"
907
  msgstr ""
908
 
909
- #: classes/Options.php:302
910
  msgid "Preferred Course Filters"
911
  msgstr ""
912
 
913
- #: classes/Options.php:304
914
  msgid "Choose preferred filter options you'd like to show in course archive page."
915
  msgstr ""
916
 
917
- #: classes/Options.php:310
918
  msgid "Course Display Settings"
919
  msgstr ""
920
 
921
- #: classes/Options.php:314
922
  msgid "Display Instructor Info"
923
  msgstr ""
924
 
925
- #: classes/Options.php:316
926
  msgid "Show instructor bio on each page"
927
  msgstr ""
928
 
929
- #: classes/Options.php:320
930
  msgid "Question and Answer"
931
  msgstr ""
932
 
933
- #: classes/Options.php:323
934
  msgid "Enabling this feature will add a Q&amp;A section on every course."
935
  msgstr ""
936
 
937
- #: classes/Options.php:327
938
  msgid "Course Author"
939
  msgstr ""
940
 
941
- #: classes/Options.php:330
942
  msgid "Disabling this feature will be removed course author name from the course page."
943
  msgstr ""
944
 
945
- #: classes/Options.php:334
946
  msgid "Course Level"
947
  msgstr ""
948
 
949
- #: classes/Options.php:337
950
  msgid "Disabling this feature will be removed course level from the course page."
951
  msgstr ""
952
 
953
- #: classes/Options.php:341
954
  msgid "Course Share"
955
  msgstr ""
956
 
957
- #: classes/Options.php:344
958
  msgid "Disabling this feature will be removed course share option from the course page."
959
  msgstr ""
960
 
961
- #: classes/Options.php:348
962
  msgid "Course Duration"
963
  msgstr ""
964
 
965
- #: classes/Options.php:351
966
  msgid "Disabling this feature will be removed course duration from the course page."
967
  msgstr ""
968
 
969
- #: classes/Options.php:355
970
  msgid "Course Total Enrolled"
971
  msgstr ""
972
 
973
- #: classes/Options.php:358
974
  msgid "Disabling this feature will be removed course total enrolled from the course page."
975
  msgstr ""
976
 
977
- #: classes/Options.php:362
978
  msgid "Course Update Date"
979
  msgstr ""
980
 
981
- #: classes/Options.php:365
982
  msgid "Disabling this feature will be removed course update date from the course page."
983
  msgstr ""
984
 
985
- #: classes/Options.php:369
986
  msgid "Course Progress Bar"
987
  msgstr ""
988
 
989
- #: classes/Options.php:372
990
  msgid "Disabling this feature will be removed completing progress bar from the course page."
991
  msgstr ""
992
 
993
- #: classes/Options.php:376
994
  msgid "Course Material"
995
  msgstr ""
996
 
997
- #: classes/Options.php:379
998
  msgid "Disabling this feature will be removed course material from the course page."
999
  msgstr ""
1000
 
1001
- #: classes/Options.php:383
1002
  msgid "Course About"
1003
  msgstr ""
1004
 
1005
- #: classes/Options.php:386
1006
  msgid "Disabling this feature will be removed course about from the course page."
1007
  msgstr ""
1008
 
1009
- #: classes/Options.php:390
1010
  msgid "Course Description"
1011
  msgstr ""
1012
 
1013
- #: classes/Options.php:393
1014
  msgid "Disabling this feature will be removed course description from the course page."
1015
  msgstr ""
1016
 
1017
- #: classes/Options.php:397
1018
  msgid "Course Benefits"
1019
  msgstr ""
1020
 
1021
- #: classes/Options.php:400
1022
  msgid "Disabling this feature will be removed course benefits from the course page."
1023
  msgstr ""
1024
 
1025
- #: classes/Options.php:404
1026
  msgid "Course Requirements"
1027
  msgstr ""
1028
 
1029
- #: classes/Options.php:407
1030
  msgid "Disabling this feature will be removed course requirements from the course page."
1031
  msgstr ""
1032
 
1033
- #: classes/Options.php:411
1034
  msgid "Course Target Audience"
1035
  msgstr ""
1036
 
1037
- #: classes/Options.php:414
1038
  msgid "Disabling this feature will be removed course target audience from the course page."
1039
  msgstr ""
1040
 
1041
- #: classes/Options.php:418
1042
  msgid "Course Announcements"
1043
  msgstr ""
1044
 
1045
- #: classes/Options.php:421
1046
  msgid "Disabling this feature will be removed course announcements from the course page."
1047
  msgstr ""
1048
 
1049
- #: classes/Options.php:425
1050
  msgid "Course Review"
1051
  msgstr ""
1052
 
1053
- #: classes/Options.php:428
1054
  msgid "Disabling this feature will be removed course review system from the course page."
1055
  msgstr ""
1056
 
1057
- #: classes/Options.php:432
1058
  msgid "Preferred Video Source"
1059
  msgstr ""
1060
 
1061
- #: classes/Options.php:434
1062
  msgid "Choose video sources you'd like to support. Unchecking all will not disable video feature."
1063
  msgstr ""
1064
 
1065
- #: classes/Options.php:438
1066
  msgid "Default Video Source"
1067
  msgstr ""
1068
 
1069
- #: classes/Options.php:441
1070
  msgid "Choose video source to be selected by default."
1071
  msgstr ""
1072
 
1073
- #: classes/Options.php:451
1074
  msgid "Lesson Settings"
1075
  msgstr ""
1076
 
1077
- #: classes/Options.php:452
1078
  msgid "Lesson settings will be here"
1079
  msgstr ""
1080
 
1081
- #: classes/Options.php:456, views/modal/edit-lesson.php:12
1082
  msgid "Classic Editor"
1083
  msgstr ""
1084
 
1085
- #: classes/Options.php:458
1086
  msgid "Enable classic editor to get full support of any editor/page builder."
1087
  msgstr ""
1088
 
1089
- #: classes/Options.php:463
1090
  msgid "Automatically load next course content."
1091
  msgstr ""
1092
 
1093
- #: classes/Options.php:464
1094
  msgid "Enabling this feature will be load next course content automatically after finishing current video."
1095
  msgstr ""
1096
 
1097
- #: classes/Options.php:468
1098
  msgid "Lesson Permalink Base"
1099
  msgstr ""
1100
 
1101
- #: classes/Options.php:474
1102
  msgid "Youtube API Key"
1103
  msgstr ""
1104
 
1105
- #: classes/Options.php:483, classes/Options.php:486, classes/Quiz_Attempts_List.php:118, classes/Tutor_Setup.php:563, views/metabox/course-contents.php:174, views/metabox/course-topics.php:68, views/pages/view_attempt.php:39, templates/single/quiz/top.php:24
1106
  msgid "Quiz"
1107
  msgstr ""
1108
 
1109
- #: classes/Options.php:487
1110
  msgid "The values you set here define the default values that are used in the settings form when you create a new quiz."
1111
  msgstr ""
1112
 
1113
- #: classes/Options.php:491, classes/Tutor_Setup.php:432, views/modal/edit_quiz.php:151
1114
  msgid "Time Limit"
1115
  msgstr ""
1116
 
1117
- #: classes/Options.php:492
1118
  msgid "0 means unlimited time."
1119
  msgstr ""
1120
 
1121
- #: classes/Options.php:503, views/modal/edit_quiz.php:163
1122
  msgid "Weeks"
1123
  msgstr ""
1124
 
1125
- #: classes/Options.php:504, views/modal/edit_quiz.php:162
1126
  msgid "Days"
1127
  msgstr ""
1128
 
1129
- #: classes/Options.php:505, views/modal/edit_quiz.php:161
1130
  msgid "Hours"
1131
  msgstr ""
1132
 
1133
- #: classes/Options.php:506, views/modal/edit_quiz.php:160
1134
  msgid "Minutes"
1135
  msgstr ""
1136
 
1137
- #: classes/Options.php:507, views/modal/edit_quiz.php:159
1138
  msgid "Seconds"
1139
  msgstr ""
1140
 
1141
- #: classes/Options.php:514
1142
  msgid "When time expires"
1143
  msgstr ""
1144
 
1145
- #: classes/Options.php:518, classes/Tutor_Setup.php:439
1146
  msgid "The current quiz answers are submitted automatically."
1147
  msgstr ""
1148
 
1149
- #: classes/Options.php:519, classes/Tutor_Setup.php:440
1150
  msgid "The current quiz answers are submitted by students."
1151
  msgstr ""
1152
 
1153
- #: classes/Options.php:520, classes/Tutor_Setup.php:441
1154
  msgid "Attempts must be submitted before time expires, otherwise they will not be counted"
1155
  msgstr ""
1156
 
1157
- #: classes/Options.php:522
1158
  msgid "Choose which action to follow when the quiz time expires."
1159
  msgstr ""
1160
 
1161
- #: classes/Options.php:526
1162
  msgid "Attempts allowed"
1163
  msgstr ""
1164
 
1165
- #: classes/Options.php:528
1166
  msgid "The highest number of attempts students are allowed to take for a quiz. 0 means unlimited attempts."
1167
  msgstr ""
1168
 
1169
- #: classes/Options.php:532
1170
  msgid "Show Previous button"
1171
  msgstr ""
1172
 
1173
- #: classes/Options.php:535
1174
  msgid "Choose whether to show or hide previous button for single question."
1175
  msgstr ""
1176
 
1177
- #: classes/Options.php:539
1178
  msgid "Final grade calculation"
1179
  msgstr ""
1180
 
1181
- #: classes/Options.php:543, classes/Tutor_Setup.php:455
1182
  msgid "Highest Grade"
1183
  msgstr ""
1184
 
1185
- #: classes/Options.php:544, classes/Tutor_Setup.php:460
1186
  msgid "Average Grade"
1187
  msgstr ""
1188
 
1189
- #: classes/Options.php:545, classes/Tutor_Setup.php:465
1190
  msgid "First Attempt"
1191
  msgstr ""
1192
 
1193
- #: classes/Options.php:546, classes/Tutor_Setup.php:470
1194
  msgid "Last Attempt"
1195
  msgstr ""
1196
 
1197
- #: classes/Options.php:548
1198
  msgid "When multiple attempts are allowed, which method should be used to calculate a student's final grade for the quiz."
1199
  msgstr ""
1200
 
1201
- #: classes/Options.php:558
1202
  msgid "Instructor Profile Settings"
1203
  msgstr ""
1204
 
1205
- #: classes/Options.php:559, classes/Options.php:598, classes/Options.php:630
1206
  msgid "Enable Disable Option to on/off notification on various event"
1207
  msgstr ""
1208
 
1209
- #: classes/Options.php:563
1210
  msgid "Course Marketplace"
1211
  msgstr ""
1212
 
1213
- #: classes/Options.php:566
1214
  msgid "Allow multiple instructors to upload their courses."
1215
  msgstr ""
1216
 
1217
- #: classes/Options.php:570, classes/Utils.php:7186
1218
  msgid "Instructor Registration Page"
1219
  msgstr ""
1220
 
1221
- #: classes/Options.php:573
1222
  msgid "This page will be used to sign up new instructors."
1223
  msgstr ""
1224
 
1225
- #: classes/Options.php:577
1226
  msgid "Allow publishing course"
1227
  msgstr ""
1228
 
1229
- #: classes/Options.php:580
1230
  msgid "Enable instructors to publish course directly. <strong>Do not select</strong> if admins want to review courses before publishing."
1231
  msgstr ""
1232
 
1233
- #: classes/Options.php:584
1234
  msgid "Become Instructor Button"
1235
  msgstr ""
1236
 
1237
- #: classes/Options.php:587
1238
  msgid "Uncheck this option to hide the button from student dashboard."
1239
  msgstr ""
1240
 
1241
- #: classes/Options.php:597
1242
  msgid "Student Profile settings"
1243
  msgstr ""
1244
 
1245
- #: classes/Options.php:602, classes/Utils.php:7187
1246
  msgid "Student Registration Page"
1247
  msgstr ""
1248
 
1249
- #: classes/Options.php:605
1250
  msgid "Choose the page for student registration page"
1251
  msgstr ""
1252
 
1253
- #: classes/Options.php:609
1254
  msgid "Show reviews on profile"
1255
  msgstr ""
1256
 
1257
- #: classes/Options.php:612
1258
  msgid "Enabling this will show the reviews written by each student on their profile"
1259
  msgstr ""
1260
 
1261
- #: classes/Options.php:616
1262
  msgid "Show completed courses"
1263
  msgstr ""
1264
 
1265
- #: classes/Options.php:619
1266
  msgid "Completed courses will be shown on student profiles. <br/> For example, you can see this link-"
1267
  msgstr ""
1268
 
1269
- #: classes/Options.php:626, classes/Options.php:634, classes/Tutor_Setup.php:491, templates/dashboard/earning.php:123, templates/dashboard/earning/chart-body.php:17, templates/dashboard/earning/statement.php:13, templates/dashboard/earning/statements.php:131
1270
  msgid "Earning"
1271
  msgstr ""
1272
 
1273
- #: classes/Options.php:629
1274
  msgid "Earning and commission allocation"
1275
  msgstr ""
1276
 
1277
- #: classes/Options.php:637
1278
  msgid "If disabled, the Admin will receive 100% of the earning"
1279
  msgstr ""
1280
 
1281
- #: classes/Options.php:641
1282
  msgid "Admin Commission Percentage"
1283
  msgstr ""
1284
 
1285
- #: classes/Options.php:643
1286
  msgid "Define the commission of the Admin from each sale.(after deducting fees)"
1287
  msgstr ""
1288
 
1289
- #: classes/Options.php:647
1290
  msgid "Instructor Commission Percentage"
1291
  msgstr ""
1292
 
1293
- #: classes/Options.php:649
1294
  msgid "Define the commission for instructors from each sale.(after deducting fees)"
1295
  msgstr ""
1296
 
1297
- #: classes/Options.php:653
1298
  msgid "Fee Deduction"
1299
  msgstr ""
1300
 
1301
- #: classes/Options.php:654
1302
  msgid "Fees are charged from the entire sales amount. The remaining amount will be divided among admin and instructors."
1303
  msgstr ""
1304
 
1305
- #: classes/Options.php:664
1306
  msgid "Fee Name"
1307
  msgstr ""
1308
 
1309
- #: classes/Options.php:669
1310
  msgid "Fee Amount"
1311
  msgstr ""
1312
 
1313
- #: classes/Options.php:677
1314
  msgid "Select Fees Type"
1315
  msgstr ""
1316
 
1317
- #: classes/Options.php:678
1318
  msgid "Percent"
1319
  msgstr ""
1320
 
1321
- #: classes/Options.php:679
1322
  msgid "Fixed"
1323
  msgstr ""
1324
 
1325
- #: classes/Options.php:687
1326
  msgid "Show Statement Per Page"
1327
  msgstr ""
1328
 
1329
- #: classes/Options.php:689
1330
  msgid "Define the number of statements to show."
1331
  msgstr ""
1332
 
1333
- #: classes/Options.php:696, templates/dashboard/withdraw.php:42
1334
  msgid "Withdrawal"
1335
  msgstr ""
1336
 
1337
- #: classes/Options.php:699
1338
  msgid "Withdrawal Settings"
1339
  msgstr ""
1340
 
1341
- #: classes/Options.php:703
1342
  msgid "Minimum Withdraw Amount"
1343
  msgstr ""
1344
 
1345
- #: classes/Options.php:705
1346
  msgid "Instructors should earn equal or above this amount to make a withdraw request."
1347
  msgstr ""
1348
 
1349
- #: classes/Options.php:711
1350
  msgid "Withdraw Methods"
1351
  msgstr ""
1352
 
1353
- #: classes/Options.php:712
1354
  msgid "Set withdraw settings"
1355
  msgstr ""
1356
 
1357
- #: classes/Options.php:718
1358
  msgid "Style"
1359
  msgstr ""
1360
 
1361
- #: classes/Options.php:721
1362
  msgid "Color Style"
1363
  msgstr ""
1364
 
1365
- #: classes/Options.php:725
1366
  msgid "Primary Color"
1367
  msgstr ""
1368
 
1369
- #: classes/Options.php:730
1370
  msgid "Primary Hover Color"
1371
  msgstr ""
1372
 
1373
- #: classes/Options.php:735
1374
  msgid "Text color"
1375
  msgstr ""
1376
 
1377
- #: classes/Options.php:740
1378
  msgid "Light color"
1379
  msgstr ""
1380
 
1381
- #: classes/Options.php:747
1382
  msgid "Button Primary Color"
1383
  msgstr ""
1384
 
1385
- #: classes/Options.php:753
1386
  msgid "Button Danger Color"
1387
  msgstr ""
1388
 
1389
- #: classes/Options.php:758
1390
  msgid "Button Success Color"
1391
  msgstr ""
1392
 
1393
- #: classes/Options.php:763
1394
  msgid "Button Warning Color"
1395
  msgstr ""
1396
 
1397
- #: classes/Options.php:773, classes/Options.php:776
1398
  msgid "Monetization"
1399
  msgstr ""
1400
 
1401
- #: classes/Options.php:777
1402
  msgid "You can monetize your LMS website by selling courses in a various way."
1403
  msgstr ""
1404
 
1405
- #: classes/Options.php:782
1406
  msgid "Monetize Option"
1407
  msgstr ""
1408
 
1409
- #: classes/Options.php:786
1410
  msgid "Disable Monetization"
1411
  msgstr ""
1412
 
1413
- #: classes/Options.php:788
1414
  msgid "Select a monetization option to generate revenue by selling courses. Supports: WooCommerce, Easy Digital Downloads, Paid Memberships Pro"
1415
  msgstr ""
1416
 
@@ -1824,7 +1828,7 @@ msgstr ""
1824
  msgid "Answer"
1825
  msgstr ""
1826
 
1827
- #: classes/Question_Answers_List.php:76, classes/Quiz.php:824, templates/dashboard/question-answer.php:25, views/pages/view_attempt.php:194, templates/dashboard/my-quiz-attempts/attempts-details.php:215, templates/dashboard/quiz-attempts/quiz-reviews.php:232
1828
  msgid "Question"
1829
  msgstr ""
1830
 
@@ -1864,7 +1868,7 @@ msgstr ""
1864
  msgid "Make sure you’re saving the answers in the right order. Students will have to match this order exactly."
1865
  msgstr ""
1866
 
1867
- #: classes/Quiz.php:1175, classes/Quiz.php:1169, views/modal/question_form.php:164, views/modal/question_form.php:158, views/pages/view_attempt.php:337, templates/dashboard/quiz-attempts/quiz-reviews.php:404
1868
  msgid "Mark as correct"
1869
  msgstr ""
1870
 
@@ -1964,7 +1968,7 @@ msgstr ""
1964
  msgid "Setup Wizard"
1965
  msgstr ""
1966
 
1967
- #: classes/Tutor.php:519, classes/Utils.php:2554, templates/dashboard/dashboard.php:9
1968
  msgid "Dashboard"
1969
  msgstr ""
1970
 
@@ -2060,7 +2064,7 @@ msgstr ""
2060
  msgid "weeks"
2061
  msgstr ""
2062
 
2063
- #: classes/Tutor_Setup.php:275, classes/Tutor_Setup.php:564, classes/Utils.php:2568
2064
  msgid "Instructor"
2065
  msgstr ""
2066
 
@@ -2376,183 +2380,183 @@ msgstr ""
2376
  msgid "Q&A"
2377
  msgstr ""
2378
 
2379
- #: classes/Utils.php:2223, templates/student-public-profile.php:115
2380
  msgid "Course Enrolled"
2381
  msgstr ""
2382
 
2383
- #: classes/Utils.php:2555, templates/dashboard/my-profile.php:21
2384
  msgid "My Profile"
2385
  msgstr ""
2386
 
2387
- #: classes/Utils.php:2556, templates/dashboard/dashboard.php:36, templates/dashboard/enrolled-courses.php:9
2388
  msgid "Enrolled Courses"
2389
  msgstr ""
2390
 
2391
- #: classes/Utils.php:2557, templates/dashboard/wishlist.php:10
2392
  msgid "Wishlist"
2393
  msgstr ""
2394
 
2395
- #: classes/Utils.php:2558
2396
  msgid "Reviews"
2397
  msgstr ""
2398
 
2399
- #: classes/Utils.php:2559, templates/dashboard/my-quiz-attempts.php:25
2400
  msgid "My Quiz Attempts"
2401
  msgstr ""
2402
 
2403
- #: classes/Utils.php:2560, templates/dashboard/purchase_history.php:9
2404
  msgid "Purchase History"
2405
  msgstr ""
2406
 
2407
- #: classes/Utils.php:2573
2408
  msgid "Create Course"
2409
  msgstr ""
2410
 
2411
- #: classes/Utils.php:2578, templates/dashboard/my-courses.php:9
2412
  msgid "My Courses"
2413
  msgstr ""
2414
 
2415
- #: classes/Utils.php:2586
2416
  msgid "Withdrawals"
2417
  msgstr ""
2418
 
2419
- #: classes/Utils.php:2594, templates/dashboard/question-answer.php:10, views/pages/question_answer.php:18
2420
  msgid "Question & Answer"
2421
  msgstr ""
2422
 
2423
- #: classes/Utils.php:2615
2424
  msgid "Logout"
2425
  msgstr ""
2426
 
2427
- #: classes/Utils.php:2630
2428
  msgid "Retrieve Password"
2429
  msgstr ""
2430
 
2431
- #: classes/Utils.php:2739, templates/dashboard/dashboard.php:27
2432
  msgid "Pending"
2433
  msgstr ""
2434
 
2435
- #: classes/Utils.php:2740
2436
  msgid "Approved"
2437
  msgstr ""
2438
 
2439
- #: classes/Utils.php:2741
2440
  msgid "Blocked"
2441
  msgstr ""
2442
 
2443
- #: classes/Utils.php:4445
2444
  msgid "True/False"
2445
  msgstr ""
2446
 
2447
- #: classes/Utils.php:4450
2448
  msgid "Single Choice"
2449
  msgstr ""
2450
 
2451
- #: classes/Utils.php:4455
2452
  msgid "Multiple Choice"
2453
  msgstr ""
2454
 
2455
- #: classes/Utils.php:4460
2456
  msgid "Open Ended/Essay"
2457
  msgstr ""
2458
 
2459
- #: classes/Utils.php:4465
2460
  msgid "Fill In The Blanks"
2461
  msgstr ""
2462
 
2463
- #: classes/Utils.php:4470
2464
  msgid "Short Answer"
2465
  msgstr ""
2466
 
2467
- #: classes/Utils.php:4475
2468
  msgid "Matching"
2469
  msgstr ""
2470
 
2471
- #: classes/Utils.php:4480
2472
  msgid "Image Matching"
2473
  msgstr ""
2474
 
2475
- #: classes/Utils.php:4485
2476
  msgid "Image Answering"
2477
  msgstr ""
2478
 
2479
- #: classes/Utils.php:4490
2480
  msgid "Ordering"
2481
  msgstr ""
2482
 
2483
- #: classes/Utils.php:5374
2484
  msgid "All Levels"
2485
  msgstr ""
2486
 
2487
- #: classes/Utils.php:5375, templates/course-filter/filters.php:4
2488
  msgid "Beginner"
2489
  msgstr ""
2490
 
2491
- #: classes/Utils.php:5376, templates/course-filter/filters.php:5
2492
  msgid "Intermediate"
2493
  msgstr ""
2494
 
2495
- #: classes/Utils.php:5377, templates/course-filter/filters.php:6
2496
  msgid "Expert"
2497
  msgstr ""
2498
 
2499
- #: classes/Utils.php:5401
2500
  msgid "Courses Taken"
2501
  msgstr ""
2502
 
2503
- #: classes/Utils.php:5408
2504
  msgid "Enrolled Course"
2505
  msgstr ""
2506
 
2507
- #: classes/Utils.php:5412
2508
  msgid "Reviews Written"
2509
  msgstr ""
2510
 
2511
- #: classes/Utils.php:5719
2512
  msgid "Website URL"
2513
  msgstr ""
2514
 
2515
- #: classes/Utils.php:5724
2516
  msgid "Github URL"
2517
  msgstr ""
2518
 
2519
- #: classes/Utils.php:5729
2520
  msgid "Facebook URL"
2521
  msgstr ""
2522
 
2523
- #: classes/Utils.php:5734
2524
  msgid "Twitter URL"
2525
  msgstr ""
2526
 
2527
- #: classes/Utils.php:5739
2528
  msgid "Linkedin URL"
2529
  msgstr ""
2530
 
2531
- #: classes/Utils.php:7148
2532
  msgid "Not Taken"
2533
  msgstr ""
2534
 
2535
- #: classes/Utils.php:7146
2536
  msgid "In Progress"
2537
  msgstr ""
2538
 
2539
- #: classes/Utils.php:7142
2540
  msgid "Completed"
2541
  msgstr ""
2542
 
2543
- #: classes/Utils.php:7335, templates/dashboard/my-profile.php:34, templates/dashboard/registration.php:49, templates/dashboard/registration.php:52, views/pages/add_new_instructor.php:29, views/pages/add_new_instructor.php:35, templates/dashboard/instructor/registration.php:51, templates/dashboard/instructor/registration.php:54, templates/dashboard/settings/profile.php:96, templates/dashboard/settings/profile.php:98
2544
  msgid "First Name"
2545
  msgstr ""
2546
 
2547
- #: classes/Utils.php:7336, templates/dashboard/my-profile.php:44, templates/dashboard/registration.php:59, templates/dashboard/registration.php:62, views/pages/add_new_instructor.php:43, views/pages/add_new_instructor.php:49, templates/dashboard/instructor/registration.php:61, templates/dashboard/instructor/registration.php:64, templates/dashboard/settings/profile.php:105, templates/dashboard/settings/profile.php:107
2548
  msgid "Last Name"
2549
  msgstr ""
2550
 
2551
- #: classes/Utils.php:7337, views/metabox/user-profile-fields.php:37
2552
  msgid "Profile Photo"
2553
  msgstr ""
2554
 
2555
- #: classes/Utils.php:7338
2556
  msgid "Withdraw Method"
2557
  msgstr ""
2558
 
@@ -2929,7 +2933,7 @@ msgstr ""
2929
  msgid "Lesson List"
2930
  msgstr ""
2931
 
2932
- #: templates/single-preview-lesson.php:199, templates/single-quiz.php:35, templates/single/assignment/content.php:32, templates/single/lesson/content.php:35, templates/single/quiz/single_quiz_contents.php:14
2933
  msgid "Go to Course Home"
2934
  msgstr ""
2935
 
@@ -3009,7 +3013,7 @@ msgstr ""
3009
  msgid "No assignment available"
3010
  msgstr ""
3011
 
3012
- #: templates/dashboard/assignments.php:74, templates/dashboard/dashboard.php:90
3013
  msgid "Course Name"
3014
  msgstr ""
3015
 
@@ -3089,7 +3093,7 @@ msgstr ""
3089
  msgid "Important Guideline: %1$s 700x430 pixels %2$s %3$s File Support: %1$s jpg, .jpeg,. gif, or .png %2$s no text on the image."
3090
  msgstr ""
3091
 
3092
- #: templates/dashboard/create-course.php:238, views/metabox/video-metabox.php:125, views/modal/question_answer_edit_form.php:217, views/modal/question_answer_edit_form.php:180, views/modal/question_answer_edit_form.php:127, views/modal/question_answer_edit_form.php:34, views/modal/question_answer_form.php:235, views/modal/question_answer_form.php:205, views/modal/question_answer_form.php:160, views/modal/question_answer_form.php:49
3093
  msgid "Upload Image"
3094
  msgstr ""
3095
 
@@ -3157,11 +3161,11 @@ msgstr ""
3157
  msgid "Total Earnings"
3158
  msgstr ""
3159
 
3160
- #: templates/dashboard/dashboard.php:86
3161
  msgid "Most Popular Courses"
3162
  msgstr ""
3163
 
3164
- #: templates/dashboard/dashboard.php:91
3165
  msgid "Enrolled"
3166
  msgstr ""
3167
 
@@ -3653,15 +3657,15 @@ msgstr ""
3653
  msgid "Total Course Duration"
3654
  msgstr ""
3655
 
3656
- #: views/metabox/course-additional-data.php:26, views/metabox/video-metabox.php:169
3657
  msgid "HH"
3658
  msgstr ""
3659
 
3660
- #: views/metabox/course-additional-data.php:30, views/metabox/video-metabox.php:174
3661
  msgid "MM"
3662
  msgstr ""
3663
 
3664
- #: views/metabox/course-additional-data.php:35, views/metabox/video-metabox.php:179
3665
  msgid "SS"
3666
  msgstr ""
3667
 
@@ -3807,35 +3811,39 @@ msgstr ""
3807
  msgid "Upload"
3808
  msgstr ""
3809
 
3810
- #: views/metabox/video-metabox.php:57
 
 
 
 
3811
  msgid "Video Source"
3812
  msgstr ""
3813
 
3814
- #: views/metabox/video-metabox.php:55
3815
  msgid "Course Intro Video"
3816
  msgstr ""
3817
 
3818
- #: views/metabox/video-metabox.php:66
3819
  msgid "Select Video Source"
3820
  msgstr ""
3821
 
3822
- #: views/metabox/video-metabox.php:79
3823
  msgid "Select your preferred video type."
3824
  msgstr ""
3825
 
3826
- #: views/metabox/video-metabox.php:92
3827
  msgid "Upload Video"
3828
  msgstr ""
3829
 
3830
- #: views/metabox/video-metabox.php:94
3831
  msgid "Media ID"
3832
  msgstr ""
3833
 
3834
- #: views/metabox/video-metabox.php:116
3835
  msgid "Video Poster"
3836
  msgstr ""
3837
 
3838
- #: views/metabox/video-metabox.php:117
3839
  msgid "Thumb Size: 700x430 pixels. File Support: jpg, jpeg, or png"
3840
  msgstr ""
3841
 
@@ -3843,19 +3851,19 @@ msgstr ""
3843
  msgid "External Video URL"
3844
  msgstr ""
3845
 
3846
- #: views/metabox/video-metabox.php:143
3847
  msgid "YouTube Video URL"
3848
  msgstr ""
3849
 
3850
- #: views/metabox/video-metabox.php:146
3851
  msgid "Vimeo Video URL"
3852
  msgstr ""
3853
 
3854
- #: views/metabox/video-metabox.php:149
3855
  msgid "Place your embedded code here"
3856
  msgstr ""
3857
 
3858
- #: views/metabox/video-metabox.php:162
3859
  msgid "Video playback time"
3860
  msgstr ""
3861
 
@@ -4279,7 +4287,7 @@ msgstr ""
4279
  msgid "Update Announcement"
4280
  msgstr ""
4281
 
4282
- #: views/pages/announcements.php:328, views/pages/view_attempt.php:360, templates/dashboard/announcements/update.php:51, templates/dashboard/quiz-attempts/quiz-reviews.php:424
4283
  msgid "Update"
4284
  msgstr ""
4285
 
@@ -4355,63 +4363,63 @@ msgstr ""
4355
  msgid "Quiz Time"
4356
  msgstr ""
4357
 
4358
- #: views/pages/view_attempt.php:157, templates/dashboard/quiz-attempts/quiz-reviews.php:198
4359
  msgid "Reminder:"
4360
  msgstr ""
4361
 
4362
- #: views/pages/view_attempt.php:157, templates/dashboard/quiz-attempts/quiz-reviews.php:198
4363
  msgid "Please review answers for question no. %s"
4364
  msgstr ""
4365
 
4366
- #: views/pages/view_attempt.php:170, templates/dashboard/quiz-attempts/quiz-reviews.php:209
4367
  msgid "Manually reviewed at: "
4368
  msgstr ""
4369
 
4370
- #: views/pages/view_attempt.php:187, templates/dashboard/my-quiz-attempts/attempts-details.php:208, templates/dashboard/quiz-attempts/quiz-reviews.php:225
4371
  msgid "Quiz Overview"
4372
  msgstr ""
4373
 
4374
- #: views/pages/view_attempt.php:192, templates/dashboard/earning/statement.php:53, templates/dashboard/earning/statement.php:60, templates/dashboard/earning/statements.php:181, templates/dashboard/earning/statements.php:188, templates/dashboard/my-quiz-attempts/attempts-details.php:214, templates/dashboard/quiz-attempts/quiz-reviews.php:231
4375
  msgid "Type"
4376
  msgstr ""
4377
 
4378
- #: views/pages/view_attempt.php:193, templates/dashboard/my-quiz-attempts/attempts-details.php:213, templates/dashboard/quiz-attempts/quiz-reviews.php:230
4379
  msgid "No."
4380
  msgstr ""
4381
 
4382
- #: views/pages/view_attempt.php:195, templates/dashboard/my-quiz-attempts/attempts-details.php:216, templates/dashboard/quiz-attempts/quiz-reviews.php:233
4383
  msgid "Given Answers"
4384
  msgstr ""
4385
 
4386
- #: views/pages/view_attempt.php:196, templates/dashboard/my-quiz-attempts/attempts-details.php:218, templates/dashboard/quiz-attempts/quiz-reviews.php:235
4387
  msgid "Correct/Incorrect"
4388
  msgstr ""
4389
 
4390
- #: views/pages/view_attempt.php:197, templates/dashboard/quiz-attempts/quiz-reviews.php:236
4391
  msgid "Manual Review"
4392
  msgstr ""
4393
 
4394
- #: views/pages/view_attempt.php:326, views/pages/view_attempt.php:321, templates/dashboard/my-quiz-attempts/attempts-details.php:124, templates/dashboard/my-quiz-attempts/attempts-details.php:389, templates/dashboard/my-quiz-attempts/attempts-details.php:384, templates/dashboard/quiz-attempts/quiz-reviews.php:110, templates/dashboard/quiz-attempts/quiz-reviews.php:397, templates/dashboard/quiz-attempts/quiz-reviews.php:392
4395
  msgid "Incorrect"
4396
  msgstr ""
4397
 
4398
- #: views/pages/view_attempt.php:323, views/pages/view_attempt.php:312, templates/dashboard/my-quiz-attempts/attempts-details.php:123, templates/dashboard/my-quiz-attempts/attempts-details.php:380, templates/dashboard/quiz-attempts/quiz-reviews.php:109, templates/dashboard/quiz-attempts/quiz-reviews.php:388
4399
  msgid "Correct"
4400
  msgstr ""
4401
 
4402
- #: views/pages/view_attempt.php:318, templates/dashboard/my-quiz-attempts/attempts-details.php:386, templates/dashboard/quiz-attempts/quiz-reviews.php:394
4403
  msgid "Review Required"
4404
  msgstr ""
4405
 
4406
- #: views/pages/view_attempt.php:338, templates/dashboard/quiz-attempts/quiz-reviews.php:405
4407
  msgid "Mark as In correct"
4408
  msgstr ""
4409
 
4410
- #: views/pages/view_attempt.php:356, templates/dashboard/my-quiz-attempts/attempts-details.php:190, templates/dashboard/quiz-attempts/quiz-reviews.php:176, templates/dashboard/quiz-attempts/quiz-reviews.php:420
4411
  msgid "Instructor Feedback"
4412
  msgstr ""
4413
 
4414
- #: views/pages/view_attempt.php:360, templates/dashboard/quiz-attempts/quiz-reviews.php:424
4415
  msgid "Updated"
4416
  msgstr ""
4417
 
125
  msgid "Tags"
126
  msgstr ""
127
 
128
+ #: classes/Admin.php:60, classes/Admin.php:60, classes/Course.php:494, classes/Options.php:595, classes/Quiz_Attempts_List.php:117, templates/student-public-profile.php:103, views/pages/students.php:8
129
  msgid "Students"
130
  msgstr ""
131
 
132
+ #: classes/Admin.php:63, classes/Admin.php:63, classes/Course.php:194, classes/Course.php:263, classes/Options.php:556, views/pages/instructors.php:29
133
  msgid "Instructors"
134
  msgstr ""
135
 
136
+ #: classes/Admin.php:66, classes/Admin.php:66, classes/Utils.php:1333, classes/Utils.php:2583, templates/dashboard/announcements.php:124, views/pages/announcements.php:105, views/pages/announcements.php:115
137
  msgid "Announcements"
138
  msgstr ""
139
 
145
  msgid "Q & A "
146
  msgstr ""
147
 
148
+ #: classes/Admin.php:70, classes/Admin.php:70, classes/Utils.php:2591, templates/dashboard/quiz-attempts.php:19, views/pages/quiz_attempts.php:29
149
  msgid "Quiz Attempts"
150
  msgstr ""
151
 
157
  msgid "Add-ons"
158
  msgstr ""
159
 
160
+ #: classes/Admin.php:80, classes/Admin.php:80, classes/Admin.php:453, classes/Utils.php:2615, templates/dashboard/settings.php:8, views/modal/add_quiz.php:22, views/modal/edit_quiz.php:35, templates/dashboard/notifications/profile-completion.php:14, templates/dashboard/settings/education.php:7, templates/dashboard/settings/skill.php:8
161
  msgid "Settings"
162
  msgstr ""
163
 
177
  msgid "Tutor Pages"
178
  msgstr ""
179
 
180
+ #: classes/Admin.php:139, classes/Instructors_List.php:130, templates/dashboard/dashboard.php:94, templates/dashboard/purchase_history.php:23, templates/dashboard/withdraw.php:185, views/pages/view_attempt.php:59, views/pages/tools/tutor_pages.php:11
181
  msgid "Status"
182
  msgstr ""
183
 
201
  msgid "If you like %1$s please leave us a %2$s rating. A huge thanks in advance!"
202
  msgstr ""
203
 
204
+ #: classes/Ajax.php:66, classes/Ajax.php:119, classes/Ajax.php:206, classes/Ajax.php:270, classes/Ajax.php:349, classes/Ajax.php:392, classes/Ajax.php:413, classes/Ajax.php:526, classes/Ajax.php:598, classes/Course.php:434, classes/Course.php:469, classes/Course.php:712, classes/Course.php:764, classes/Course.php:801, classes/Course.php:821, classes/Instructor.php:250, classes/Lesson.php:124, classes/Lesson.php:164, classes/Lesson.php:220, classes/Quiz.php:148, classes/Quiz.php:560, classes/Quiz.php:652, classes/Quiz.php:707, classes/Quiz.php:750, classes/Quiz.php:792, classes/Quiz.php:815, classes/Quiz.php:910, classes/Quiz.php:933, classes/Quiz.php:954, classes/Quiz.php:1082, classes/Quiz.php:1127, classes/Quiz.php:1208, classes/Quiz.php:1268, classes/Quiz.php:1293, classes/Q_and_A.php:71
205
  msgid "Access Denied"
206
  msgstr ""
207
 
281
  msgid "Fully booked"
282
  msgstr ""
283
 
284
+ #: classes/Course.php:190, classes/Course.php:262
285
  msgid "Course Builder"
286
  msgstr ""
287
 
288
+ #: classes/Course.php:191, classes/Course.php:264
289
  msgid "Additional Data"
290
  msgstr ""
291
 
292
+ #: classes/Course.php:192, classes/Course.php:261
293
  msgid "Video"
294
  msgstr ""
295
 
296
+ #: classes/Course.php:202, classes/Course.php:1366, views/options/options_generator.php:2
297
  msgid "Tutor Settings"
298
  msgstr ""
299
 
300
+ #: classes/Course.php:479
301
  msgid "Topic has been updated"
302
  msgstr ""
303
 
304
+ #: classes/Course.php:493, classes/Options.php:449, classes/Post_types.php:172, templates/single/course/course-topics.php:39
305
  msgid "Lessons"
306
  msgstr ""
307
 
308
+ #: classes/Course.php:495, templates/course-filter/filters.php:74, templates/dashboard/earning/statement.php:29
309
  msgid "Price"
310
  msgstr ""
311
 
312
+ #: classes/Course.php:524
313
  msgid "free"
314
  msgstr ""
315
 
316
+ #: classes/Course.php:574
317
  msgid "Please Sign In first"
318
  msgstr ""
319
 
320
+ #: classes/Course.php:622, classes/Lesson.php:310
321
  msgid "Please Sign-In"
322
  msgstr ""
323
 
324
+ #: classes/Course.php:747
325
  msgid "No instructor available or you have already added maximum instructors"
326
  msgstr ""
327
 
328
+ #: classes/Course.php:751
329
  msgid "To add unlimited multiple instructors in your course, get %1$sTutor LMS Pro%2$s"
330
  msgstr ""
331
 
332
+ #: classes/Course.php:1196
333
  msgid "complete all lessons to mark this course as complete"
334
  msgstr ""
335
 
336
+ #: classes/Course.php:1233
337
  msgid "You have to pass %s quizzes to complete this course."
338
  msgstr ""
339
 
340
+ #: classes/Course.php:1345
341
  msgid "Make This Course Public"
342
  msgstr ""
343
 
344
+ #: classes/Course.php:1347
345
  msgid "No enrollment required."
346
  msgstr ""
347
 
348
+ #: classes/Course.php:1355
349
  msgid "Disable Q&A"
350
  msgstr ""
351
 
352
+ #: classes/Course.php:1415
353
  msgid "Invalid Course ID or Access Denied."
354
  msgstr ""
355
 
356
+ #: classes/Course_Settings_Tabs.php:32, classes/Options.php:225, classes/Tutor_Setup.php:400, views/metabox/course/settings-tabs.php:13
357
  msgid "Course Settings"
358
  msgstr ""
359
 
360
+ #: classes/Course_Settings_Tabs.php:38, classes/Options.php:122, classes/Options.php:125, classes/Options.php:224, classes/Tutor_Setup.php:561, classes/WooCommerce.php:294
361
  msgid "General"
362
  msgstr ""
363
 
364
+ #: classes/Course_Settings_Tabs.php:39, classes/Options.php:126, classes/Tutor_Setup.php:361
365
  msgid "General Settings"
366
  msgstr ""
367
 
369
  msgid "Maximum Students"
370
  msgstr ""
371
 
372
+ #: classes/Course_Settings_Tabs.php:46, classes/Options.php:138, classes/Options.php:145, classes/Options.php:165, classes/Options.php:172, classes/Options.php:179, classes/Options.php:186, classes/Options.php:199, classes/Options.php:230, classes/Options.php:248, classes/Options.php:265, classes/Options.php:298, classes/Options.php:316, classes/Options.php:322, classes/Options.php:458, classes/Options.php:565, classes/Options.php:579, classes/Options.php:586, classes/Options.php:611, classes/Options.php:618, classes/Options.php:636, classes/Options.php:660, classes/User.php:193
373
  msgid "Enable"
374
  msgstr ""
375
 
409
  msgid "Place comma (,) separated courses ids which you like to exclude from the query"
410
  msgstr ""
411
 
412
+ #: classes/Course_Widget.php:140, classes/Options.php:114, templates/course-filter/filters.php:33
413
  msgid "Category"
414
  msgstr ""
415
 
637
  msgid "Couldn't create lesson."
638
  msgstr ""
639
 
640
+ #: classes/Lesson.php:273, classes/Options.php:221, classes/Question_Answers_List.php:78, classes/Quiz_Attempts_List.php:119, classes/Tutor_Setup.php:562, templates/student-public-profile.php:98, templates/dashboard/assignments.php:95, templates/dashboard/question-answer.php:27, templates/shortcode/tutor-instructor.php:27, views/pages/view_attempt.php:73, templates/dashboard/announcements/details.php:19, templates/dashboard/assignments/review.php:44, templates/dashboard/assignments/submitted.php:30, templates/dashboard/earning/statement.php:12, templates/single/quiz/top.php:27
641
  msgid "Course"
642
  msgstr ""
643
 
678
  msgid "Embedded"
679
  msgstr ""
680
 
681
+ #: classes/Options.php:109, views/metabox/video-metabox.php:143
682
+ msgid "Shortcode"
683
+ msgstr ""
684
+
685
+ #: classes/Options.php:113
686
  msgid "Keyword Search"
687
  msgstr ""
688
 
689
+ #: classes/Options.php:115, templates/course-filter/filters.php:42
690
  msgid "Tag"
691
  msgstr ""
692
 
693
+ #: classes/Options.php:116, views/metabox/course-level-metabox.php:10
694
  msgid "Difficulty Level"
695
  msgstr ""
696
 
697
+ #: classes/Options.php:117
698
  msgid "Price Type"
699
  msgstr ""
700
 
701
+ #: classes/Options.php:130, classes/Utils.php:7186
702
  msgid "Dashboard Page"
703
  msgstr ""
704
 
705
+ #: classes/Options.php:133
706
  msgid "This page will be used for student and instructor dashboard"
707
  msgstr ""
708
 
709
+ #: classes/Options.php:137, classes/Tutor_Setup.php:371
710
  msgid "Public Profile"
711
  msgstr ""
712
 
713
+ #: classes/Options.php:140
714
  msgid "Enable this to make a profile publicly visible"
715
  msgstr ""
716
 
717
+ #: classes/Options.php:144
718
  msgid "Profile Completion"
719
  msgstr ""
720
 
721
+ #: classes/Options.php:147
722
  msgid "Enabling this feature will show a notification bar to students and instructors to complete their profile information"
723
  msgstr ""
724
 
725
+ #: classes/Options.php:151
726
  msgid "Tutor Native Login"
727
  msgstr ""
728
 
729
+ #: classes/Options.php:152, classes/Options.php:329, classes/Options.php:336, classes/Options.php:343, classes/Options.php:350, classes/Options.php:357, classes/Options.php:364, classes/Options.php:371, classes/Options.php:378, classes/Options.php:385, classes/Options.php:392, classes/Options.php:399, classes/Options.php:406, classes/Options.php:413, classes/Options.php:420, classes/Options.php:427, classes/Options.php:534
730
  msgid "Disable"
731
  msgstr ""
732
 
733
+ #: classes/Options.php:154
734
  msgid "Disable to use the default WordPress login page"
735
  msgstr ""
736
 
737
+ #: classes/Options.php:158
738
  msgid "Course Visibility"
739
  msgstr ""
740
 
741
+ #: classes/Options.php:159
742
  msgid "Logged in only"
743
  msgstr ""
744
 
745
+ #: classes/Options.php:160
746
  msgid "Students must be logged in to view course"
747
  msgstr ""
748
 
749
+ #: classes/Options.php:164
750
  msgid "Erase upon uninstallation"
751
  msgstr ""
752
 
753
+ #: classes/Options.php:166
754
  msgid "Delete all data during uninstallation"
755
  msgstr ""
756
 
757
+ #: classes/Options.php:171
758
  msgid "Spotlight mode"
759
  msgstr ""
760
 
761
+ #: classes/Options.php:174
762
  msgid "This will hide the header and the footer and enable spotlight (full screen) mode when students view lessons."
763
  msgstr ""
764
 
765
+ #: classes/Options.php:178, classes/Tutor_Setup.php:381
766
  msgid "YouTube Player"
767
  msgstr ""
768
 
769
+ #: classes/Options.php:181, classes/Options.php:188
770
  msgid "Disable this option to use Tutor LMS video player."
771
  msgstr ""
772
 
773
+ #: classes/Options.php:185, classes/Tutor_Setup.php:386
774
  msgid "Vimeo Player"
775
  msgstr ""
776
 
777
+ #: classes/Options.php:192
778
  msgid "Pagination"
779
  msgstr ""
780
 
781
+ #: classes/Options.php:194
782
  msgid "Number of items you would like displayed \"per page\" in the pagination"
783
  msgstr ""
784
 
785
+ #: classes/Options.php:198
786
  msgid "Maintenance Mode"
787
  msgstr ""
788
 
789
+ #: classes/Options.php:201
790
  msgid "Enabling the maintenance mode allows you to display a custom message on the frontend. During this time, visitors can not access the site content. But the wp-admin dashboard will remain accessible."
791
  msgstr ""
792
 
793
+ #: classes/Options.php:205
794
  msgid "Frontend Admin Bar"
795
  msgstr ""
796
 
797
+ #: classes/Options.php:206
798
  msgid "Hide"
799
  msgstr ""
800
 
801
+ #: classes/Options.php:208
802
  msgid "Hide admin bar option allow you to hide WordPress admin bar entirely from the frontend. It will still show to administrator roles user"
803
  msgstr ""
804
 
805
+ #: classes/Options.php:212
806
  msgid "Error message for wrong login credentials"
807
  msgstr ""
808
 
809
+ #: classes/Options.php:214
810
  msgid "Login error message displayed when the user puts wrong login credentials."
811
  msgstr ""
812
 
813
+ #: classes/Options.php:229
814
  msgid "Gutenberg Editor"
815
  msgstr ""
816
 
817
+ #: classes/Options.php:231
818
  msgid "Use Gutenberg editor on course description area."
819
  msgstr ""
820
 
821
+ #: classes/Options.php:235, classes/Options.php:241, classes/Options.php:310, classes/Options.php:463, classes/WooCommerce.php:306
822
  msgid "Enable / Disable"
823
  msgstr ""
824
 
825
+ #: classes/Options.php:236
826
  msgid "Hide course products from shop page"
827
  msgstr ""
828
 
829
+ #: classes/Options.php:237
830
  msgid "Enabling this feature will remove course products from the shop page."
831
  msgstr ""
832
 
833
+ #: classes/Options.php:242
834
  msgid "Course Content Access"
835
  msgstr ""
836
 
837
+ #: classes/Options.php:243
838
  msgid "Allow instructors and admins to view the course content without enrolling"
839
  msgstr ""
840
 
841
+ #: classes/Options.php:247
842
  msgid "Auto redirect to courses"
843
  msgstr ""
844
 
845
+ #: classes/Options.php:249
846
  msgid "When a user's WooCommerce order is auto-completed, they will be redirected to enrolled courses"
847
  msgstr ""
848
 
849
+ #: classes/Options.php:253
850
  msgid "Course Completion Process"
851
  msgstr ""
852
 
853
+ #: classes/Options.php:257
854
  msgid "Flexible"
855
  msgstr ""
856
 
857
+ #: classes/Options.php:258
858
  msgid "Strict Mode"
859
  msgstr ""
860
 
861
+ #: classes/Options.php:260
862
  msgid "Students can complete courses anytime in the Flexible mode. In the Strict mode, students have to complete, pass all the lessons and quizzes (if any) to mark a course as complete."
863
  msgstr ""
864
 
865
+ #: classes/Options.php:264
866
  msgid "Course Retake"
867
  msgstr ""
868
 
869
+ #: classes/Options.php:266
870
  msgid "Enabling this feature will allow students to reset course progress and start over."
871
  msgstr ""
872
 
873
+ #: classes/Options.php:271
874
  msgid "Archive"
875
  msgstr ""
876
 
877
+ #: classes/Options.php:272
878
  msgid "Course Archive Settings"
879
  msgstr ""
880
 
881
+ #: classes/Options.php:276
882
  msgid "Course Archive Page"
883
  msgstr ""
884
 
885
+ #: classes/Options.php:279
886
  msgid "This page will be used to list all the published courses."
887
  msgstr ""
888
 
889
+ #: classes/Options.php:283
890
  msgid "Column Per Row"
891
  msgstr ""
892
 
893
+ #: classes/Options.php:286
894
  msgid "Define how many column you want to use to display courses."
895
  msgstr ""
896
 
897
+ #: classes/Options.php:290, classes/Tutor_Setup.php:419
898
  msgid "Courses Per Page"
899
  msgstr ""
900
 
901
+ #: classes/Options.php:293
902
  msgid "Define how many courses you want to show per page"
903
  msgstr ""
904
 
905
+ #: classes/Options.php:297
906
  msgid "Course Filter"
907
  msgstr ""
908
 
909
+ #: classes/Options.php:299
910
  msgid "Show sorting and filtering options on course archive page"
911
  msgstr ""
912
 
913
+ #: classes/Options.php:303
914
  msgid "Preferred Course Filters"
915
  msgstr ""
916
 
917
+ #: classes/Options.php:305
918
  msgid "Choose preferred filter options you'd like to show in course archive page."
919
  msgstr ""
920
 
921
+ #: classes/Options.php:311
922
  msgid "Course Display Settings"
923
  msgstr ""
924
 
925
+ #: classes/Options.php:315
926
  msgid "Display Instructor Info"
927
  msgstr ""
928
 
929
+ #: classes/Options.php:317
930
  msgid "Show instructor bio on each page"
931
  msgstr ""
932
 
933
+ #: classes/Options.php:321
934
  msgid "Question and Answer"
935
  msgstr ""
936
 
937
+ #: classes/Options.php:324
938
  msgid "Enabling this feature will add a Q&amp;A section on every course."
939
  msgstr ""
940
 
941
+ #: classes/Options.php:328
942
  msgid "Course Author"
943
  msgstr ""
944
 
945
+ #: classes/Options.php:331
946
  msgid "Disabling this feature will be removed course author name from the course page."
947
  msgstr ""
948
 
949
+ #: classes/Options.php:335
950
  msgid "Course Level"
951
  msgstr ""
952
 
953
+ #: classes/Options.php:338
954
  msgid "Disabling this feature will be removed course level from the course page."
955
  msgstr ""
956
 
957
+ #: classes/Options.php:342
958
  msgid "Course Share"
959
  msgstr ""
960
 
961
+ #: classes/Options.php:345
962
  msgid "Disabling this feature will be removed course share option from the course page."
963
  msgstr ""
964
 
965
+ #: classes/Options.php:349
966
  msgid "Course Duration"
967
  msgstr ""
968
 
969
+ #: classes/Options.php:352
970
  msgid "Disabling this feature will be removed course duration from the course page."
971
  msgstr ""
972
 
973
+ #: classes/Options.php:356
974
  msgid "Course Total Enrolled"
975
  msgstr ""
976
 
977
+ #: classes/Options.php:359
978
  msgid "Disabling this feature will be removed course total enrolled from the course page."
979
  msgstr ""
980
 
981
+ #: classes/Options.php:363
982
  msgid "Course Update Date"
983
  msgstr ""
984
 
985
+ #: classes/Options.php:366
986
  msgid "Disabling this feature will be removed course update date from the course page."
987
  msgstr ""
988
 
989
+ #: classes/Options.php:370
990
  msgid "Course Progress Bar"
991
  msgstr ""
992
 
993
+ #: classes/Options.php:373
994
  msgid "Disabling this feature will be removed completing progress bar from the course page."
995
  msgstr ""
996
 
997
+ #: classes/Options.php:377
998
  msgid "Course Material"
999
  msgstr ""
1000
 
1001
+ #: classes/Options.php:380
1002
  msgid "Disabling this feature will be removed course material from the course page."
1003
  msgstr ""
1004
 
1005
+ #: classes/Options.php:384
1006
  msgid "Course About"
1007
  msgstr ""
1008
 
1009
+ #: classes/Options.php:387
1010
  msgid "Disabling this feature will be removed course about from the course page."
1011
  msgstr ""
1012
 
1013
+ #: classes/Options.php:391
1014
  msgid "Course Description"
1015
  msgstr ""
1016
 
1017
+ #: classes/Options.php:394
1018
  msgid "Disabling this feature will be removed course description from the course page."
1019
  msgstr ""
1020
 
1021
+ #: classes/Options.php:398
1022
  msgid "Course Benefits"
1023
  msgstr ""
1024
 
1025
+ #: classes/Options.php:401
1026
  msgid "Disabling this feature will be removed course benefits from the course page."
1027
  msgstr ""
1028
 
1029
+ #: classes/Options.php:405
1030
  msgid "Course Requirements"
1031
  msgstr ""
1032
 
1033
+ #: classes/Options.php:408
1034
  msgid "Disabling this feature will be removed course requirements from the course page."
1035
  msgstr ""
1036
 
1037
+ #: classes/Options.php:412
1038
  msgid "Course Target Audience"
1039
  msgstr ""
1040
 
1041
+ #: classes/Options.php:415
1042
  msgid "Disabling this feature will be removed course target audience from the course page."
1043
  msgstr ""
1044
 
1045
+ #: classes/Options.php:419
1046
  msgid "Course Announcements"
1047
  msgstr ""
1048
 
1049
+ #: classes/Options.php:422
1050
  msgid "Disabling this feature will be removed course announcements from the course page."
1051
  msgstr ""
1052
 
1053
+ #: classes/Options.php:426
1054
  msgid "Course Review"
1055
  msgstr ""
1056
 
1057
+ #: classes/Options.php:429
1058
  msgid "Disabling this feature will be removed course review system from the course page."
1059
  msgstr ""
1060
 
1061
+ #: classes/Options.php:433
1062
  msgid "Preferred Video Source"
1063
  msgstr ""
1064
 
1065
+ #: classes/Options.php:435
1066
  msgid "Choose video sources you'd like to support. Unchecking all will not disable video feature."
1067
  msgstr ""
1068
 
1069
+ #: classes/Options.php:439
1070
  msgid "Default Video Source"
1071
  msgstr ""
1072
 
1073
+ #: classes/Options.php:442
1074
  msgid "Choose video source to be selected by default."
1075
  msgstr ""
1076
 
1077
+ #: classes/Options.php:452
1078
  msgid "Lesson Settings"
1079
  msgstr ""
1080
 
1081
+ #: classes/Options.php:453
1082
  msgid "Lesson settings will be here"
1083
  msgstr ""
1084
 
1085
+ #: classes/Options.php:457, views/modal/edit-lesson.php:12
1086
  msgid "Classic Editor"
1087
  msgstr ""
1088
 
1089
+ #: classes/Options.php:459
1090
  msgid "Enable classic editor to get full support of any editor/page builder."
1091
  msgstr ""
1092
 
1093
+ #: classes/Options.php:464
1094
  msgid "Automatically load next course content."
1095
  msgstr ""
1096
 
1097
+ #: classes/Options.php:465
1098
  msgid "Enabling this feature will be load next course content automatically after finishing current video."
1099
  msgstr ""
1100
 
1101
+ #: classes/Options.php:469
1102
  msgid "Lesson Permalink Base"
1103
  msgstr ""
1104
 
1105
+ #: classes/Options.php:475
1106
  msgid "Youtube API Key"
1107
  msgstr ""
1108
 
1109
+ #: classes/Options.php:484, classes/Options.php:487, classes/Quiz_Attempts_List.php:118, classes/Tutor_Setup.php:563, views/metabox/course-contents.php:174, views/metabox/course-topics.php:68, views/pages/view_attempt.php:39, templates/single/quiz/top.php:24
1110
  msgid "Quiz"
1111
  msgstr ""
1112
 
1113
+ #: classes/Options.php:488
1114
  msgid "The values you set here define the default values that are used in the settings form when you create a new quiz."
1115
  msgstr ""
1116
 
1117
+ #: classes/Options.php:492, classes/Tutor_Setup.php:432, views/modal/edit_quiz.php:151
1118
  msgid "Time Limit"
1119
  msgstr ""
1120
 
1121
+ #: classes/Options.php:493
1122
  msgid "0 means unlimited time."
1123
  msgstr ""
1124
 
1125
+ #: classes/Options.php:504, views/modal/edit_quiz.php:163
1126
  msgid "Weeks"
1127
  msgstr ""
1128
 
1129
+ #: classes/Options.php:505, views/modal/edit_quiz.php:162
1130
  msgid "Days"
1131
  msgstr ""
1132
 
1133
+ #: classes/Options.php:506, views/modal/edit_quiz.php:161
1134
  msgid "Hours"
1135
  msgstr ""
1136
 
1137
+ #: classes/Options.php:507, views/modal/edit_quiz.php:160
1138
  msgid "Minutes"
1139
  msgstr ""
1140
 
1141
+ #: classes/Options.php:508, views/modal/edit_quiz.php:159
1142
  msgid "Seconds"
1143
  msgstr ""
1144
 
1145
+ #: classes/Options.php:515
1146
  msgid "When time expires"
1147
  msgstr ""
1148
 
1149
+ #: classes/Options.php:519, classes/Tutor_Setup.php:439
1150
  msgid "The current quiz answers are submitted automatically."
1151
  msgstr ""
1152
 
1153
+ #: classes/Options.php:520, classes/Tutor_Setup.php:440
1154
  msgid "The current quiz answers are submitted by students."
1155
  msgstr ""
1156
 
1157
+ #: classes/Options.php:521, classes/Tutor_Setup.php:441
1158
  msgid "Attempts must be submitted before time expires, otherwise they will not be counted"
1159
  msgstr ""
1160
 
1161
+ #: classes/Options.php:523
1162
  msgid "Choose which action to follow when the quiz time expires."
1163
  msgstr ""
1164
 
1165
+ #: classes/Options.php:527
1166
  msgid "Attempts allowed"
1167
  msgstr ""
1168
 
1169
+ #: classes/Options.php:529
1170
  msgid "The highest number of attempts students are allowed to take for a quiz. 0 means unlimited attempts."
1171
  msgstr ""
1172
 
1173
+ #: classes/Options.php:533
1174
  msgid "Show Previous button"
1175
  msgstr ""
1176
 
1177
+ #: classes/Options.php:536
1178
  msgid "Choose whether to show or hide previous button for single question."
1179
  msgstr ""
1180
 
1181
+ #: classes/Options.php:540
1182
  msgid "Final grade calculation"
1183
  msgstr ""
1184
 
1185
+ #: classes/Options.php:544, classes/Tutor_Setup.php:455
1186
  msgid "Highest Grade"
1187
  msgstr ""
1188
 
1189
+ #: classes/Options.php:545, classes/Tutor_Setup.php:460
1190
  msgid "Average Grade"
1191
  msgstr ""
1192
 
1193
+ #: classes/Options.php:546, classes/Tutor_Setup.php:465
1194
  msgid "First Attempt"
1195
  msgstr ""
1196
 
1197
+ #: classes/Options.php:547, classes/Tutor_Setup.php:470
1198
  msgid "Last Attempt"
1199
  msgstr ""
1200
 
1201
+ #: classes/Options.php:549
1202
  msgid "When multiple attempts are allowed, which method should be used to calculate a student's final grade for the quiz."
1203
  msgstr ""
1204
 
1205
+ #: classes/Options.php:559
1206
  msgid "Instructor Profile Settings"
1207
  msgstr ""
1208
 
1209
+ #: classes/Options.php:560, classes/Options.php:599, classes/Options.php:631
1210
  msgid "Enable Disable Option to on/off notification on various event"
1211
  msgstr ""
1212
 
1213
+ #: classes/Options.php:564
1214
  msgid "Course Marketplace"
1215
  msgstr ""
1216
 
1217
+ #: classes/Options.php:567
1218
  msgid "Allow multiple instructors to upload their courses."
1219
  msgstr ""
1220
 
1221
+ #: classes/Options.php:571, classes/Utils.php:7187
1222
  msgid "Instructor Registration Page"
1223
  msgstr ""
1224
 
1225
+ #: classes/Options.php:574
1226
  msgid "This page will be used to sign up new instructors."
1227
  msgstr ""
1228
 
1229
+ #: classes/Options.php:578
1230
  msgid "Allow publishing course"
1231
  msgstr ""
1232
 
1233
+ #: classes/Options.php:581
1234
  msgid "Enable instructors to publish course directly. <strong>Do not select</strong> if admins want to review courses before publishing."
1235
  msgstr ""
1236
 
1237
+ #: classes/Options.php:585
1238
  msgid "Become Instructor Button"
1239
  msgstr ""
1240
 
1241
+ #: classes/Options.php:588
1242
  msgid "Uncheck this option to hide the button from student dashboard."
1243
  msgstr ""
1244
 
1245
+ #: classes/Options.php:598
1246
  msgid "Student Profile settings"
1247
  msgstr ""
1248
 
1249
+ #: classes/Options.php:603, classes/Utils.php:7188
1250
  msgid "Student Registration Page"
1251
  msgstr ""
1252
 
1253
+ #: classes/Options.php:606
1254
  msgid "Choose the page for student registration page"
1255
  msgstr ""
1256
 
1257
+ #: classes/Options.php:610
1258
  msgid "Show reviews on profile"
1259
  msgstr ""
1260
 
1261
+ #: classes/Options.php:613
1262
  msgid "Enabling this will show the reviews written by each student on their profile"
1263
  msgstr ""
1264
 
1265
+ #: classes/Options.php:617
1266
  msgid "Show completed courses"
1267
  msgstr ""
1268
 
1269
+ #: classes/Options.php:620
1270
  msgid "Completed courses will be shown on student profiles. <br/> For example, you can see this link-"
1271
  msgstr ""
1272
 
1273
+ #: classes/Options.php:627, classes/Options.php:635, classes/Tutor_Setup.php:491, templates/dashboard/earning.php:123, templates/dashboard/earning/chart-body.php:17, templates/dashboard/earning/statement.php:13, templates/dashboard/earning/statements.php:131
1274
  msgid "Earning"
1275
  msgstr ""
1276
 
1277
+ #: classes/Options.php:630
1278
  msgid "Earning and commission allocation"
1279
  msgstr ""
1280
 
1281
+ #: classes/Options.php:638
1282
  msgid "If disabled, the Admin will receive 100% of the earning"
1283
  msgstr ""
1284
 
1285
+ #: classes/Options.php:642
1286
  msgid "Admin Commission Percentage"
1287
  msgstr ""
1288
 
1289
+ #: classes/Options.php:644
1290
  msgid "Define the commission of the Admin from each sale.(after deducting fees)"
1291
  msgstr ""
1292
 
1293
+ #: classes/Options.php:648
1294
  msgid "Instructor Commission Percentage"
1295
  msgstr ""
1296
 
1297
+ #: classes/Options.php:650
1298
  msgid "Define the commission for instructors from each sale.(after deducting fees)"
1299
  msgstr ""
1300
 
1301
+ #: classes/Options.php:654
1302
  msgid "Fee Deduction"
1303
  msgstr ""
1304
 
1305
+ #: classes/Options.php:655
1306
  msgid "Fees are charged from the entire sales amount. The remaining amount will be divided among admin and instructors."
1307
  msgstr ""
1308
 
1309
+ #: classes/Options.php:665
1310
  msgid "Fee Name"
1311
  msgstr ""
1312
 
1313
+ #: classes/Options.php:670
1314
  msgid "Fee Amount"
1315
  msgstr ""
1316
 
1317
+ #: classes/Options.php:678
1318
  msgid "Select Fees Type"
1319
  msgstr ""
1320
 
1321
+ #: classes/Options.php:679
1322
  msgid "Percent"
1323
  msgstr ""
1324
 
1325
+ #: classes/Options.php:680
1326
  msgid "Fixed"
1327
  msgstr ""
1328
 
1329
+ #: classes/Options.php:688
1330
  msgid "Show Statement Per Page"
1331
  msgstr ""
1332
 
1333
+ #: classes/Options.php:690
1334
  msgid "Define the number of statements to show."
1335
  msgstr ""
1336
 
1337
+ #: classes/Options.php:697, templates/dashboard/withdraw.php:42
1338
  msgid "Withdrawal"
1339
  msgstr ""
1340
 
1341
+ #: classes/Options.php:700
1342
  msgid "Withdrawal Settings"
1343
  msgstr ""
1344
 
1345
+ #: classes/Options.php:704
1346
  msgid "Minimum Withdraw Amount"
1347
  msgstr ""
1348
 
1349
+ #: classes/Options.php:706
1350
  msgid "Instructors should earn equal or above this amount to make a withdraw request."
1351
  msgstr ""
1352
 
1353
+ #: classes/Options.php:712
1354
  msgid "Withdraw Methods"
1355
  msgstr ""
1356
 
1357
+ #: classes/Options.php:713
1358
  msgid "Set withdraw settings"
1359
  msgstr ""
1360
 
1361
+ #: classes/Options.php:719
1362
  msgid "Style"
1363
  msgstr ""
1364
 
1365
+ #: classes/Options.php:722
1366
  msgid "Color Style"
1367
  msgstr ""
1368
 
1369
+ #: classes/Options.php:726
1370
  msgid "Primary Color"
1371
  msgstr ""
1372
 
1373
+ #: classes/Options.php:731
1374
  msgid "Primary Hover Color"
1375
  msgstr ""
1376
 
1377
+ #: classes/Options.php:736
1378
  msgid "Text color"
1379
  msgstr ""
1380
 
1381
+ #: classes/Options.php:741
1382
  msgid "Light color"
1383
  msgstr ""
1384
 
1385
+ #: classes/Options.php:748
1386
  msgid "Button Primary Color"
1387
  msgstr ""
1388
 
1389
+ #: classes/Options.php:754
1390
  msgid "Button Danger Color"
1391
  msgstr ""
1392
 
1393
+ #: classes/Options.php:759
1394
  msgid "Button Success Color"
1395
  msgstr ""
1396
 
1397
+ #: classes/Options.php:764
1398
  msgid "Button Warning Color"
1399
  msgstr ""
1400
 
1401
+ #: classes/Options.php:774, classes/Options.php:777
1402
  msgid "Monetization"
1403
  msgstr ""
1404
 
1405
+ #: classes/Options.php:778
1406
  msgid "You can monetize your LMS website by selling courses in a various way."
1407
  msgstr ""
1408
 
1409
+ #: classes/Options.php:783
1410
  msgid "Monetize Option"
1411
  msgstr ""
1412
 
1413
+ #: classes/Options.php:787
1414
  msgid "Disable Monetization"
1415
  msgstr ""
1416
 
1417
+ #: classes/Options.php:789
1418
  msgid "Select a monetization option to generate revenue by selling courses. Supports: WooCommerce, Easy Digital Downloads, Paid Memberships Pro"
1419
  msgstr ""
1420
 
1828
  msgid "Answer"
1829
  msgstr ""
1830
 
1831
+ #: classes/Question_Answers_List.php:76, classes/Quiz.php:824, templates/dashboard/question-answer.php:25, views/pages/view_attempt.php:185, templates/dashboard/my-quiz-attempts/attempts-details.php:215, templates/dashboard/quiz-attempts/quiz-reviews.php:232
1832
  msgid "Question"
1833
  msgstr ""
1834
 
1868
  msgid "Make sure you’re saving the answers in the right order. Students will have to match this order exactly."
1869
  msgstr ""
1870
 
1871
+ #: classes/Quiz.php:1175, classes/Quiz.php:1169, views/modal/question_form.php:164, views/modal/question_form.php:158, views/pages/view_attempt.php:328, templates/dashboard/quiz-attempts/quiz-reviews.php:404
1872
  msgid "Mark as correct"
1873
  msgstr ""
1874
 
1968
  msgid "Setup Wizard"
1969
  msgstr ""
1970
 
1971
+ #: classes/Tutor.php:519, classes/Utils.php:2555, templates/dashboard/dashboard.php:9
1972
  msgid "Dashboard"
1973
  msgstr ""
1974
 
2064
  msgid "weeks"
2065
  msgstr ""
2066
 
2067
+ #: classes/Tutor_Setup.php:275, classes/Tutor_Setup.php:564, classes/Utils.php:2569
2068
  msgid "Instructor"
2069
  msgstr ""
2070
 
2380
  msgid "Q&A"
2381
  msgstr ""
2382
 
2383
+ #: classes/Utils.php:2224, templates/student-public-profile.php:115
2384
  msgid "Course Enrolled"
2385
  msgstr ""
2386
 
2387
+ #: classes/Utils.php:2556, templates/dashboard/my-profile.php:21
2388
  msgid "My Profile"
2389
  msgstr ""
2390
 
2391
+ #: classes/Utils.php:2557, templates/dashboard/dashboard.php:36, templates/dashboard/enrolled-courses.php:9
2392
  msgid "Enrolled Courses"
2393
  msgstr ""
2394
 
2395
+ #: classes/Utils.php:2558, templates/dashboard/wishlist.php:10
2396
  msgid "Wishlist"
2397
  msgstr ""
2398
 
2399
+ #: classes/Utils.php:2559
2400
  msgid "Reviews"
2401
  msgstr ""
2402
 
2403
+ #: classes/Utils.php:2560, templates/dashboard/my-quiz-attempts.php:25
2404
  msgid "My Quiz Attempts"
2405
  msgstr ""
2406
 
2407
+ #: classes/Utils.php:2561, templates/dashboard/purchase_history.php:9
2408
  msgid "Purchase History"
2409
  msgstr ""
2410
 
2411
+ #: classes/Utils.php:2574
2412
  msgid "Create Course"
2413
  msgstr ""
2414
 
2415
+ #: classes/Utils.php:2579, templates/dashboard/my-courses.php:9
2416
  msgid "My Courses"
2417
  msgstr ""
2418
 
2419
+ #: classes/Utils.php:2587
2420
  msgid "Withdrawals"
2421
  msgstr ""
2422
 
2423
+ #: classes/Utils.php:2595, templates/dashboard/question-answer.php:10, views/pages/question_answer.php:18
2424
  msgid "Question & Answer"
2425
  msgstr ""
2426
 
2427
+ #: classes/Utils.php:2616
2428
  msgid "Logout"
2429
  msgstr ""
2430
 
2431
+ #: classes/Utils.php:2631
2432
  msgid "Retrieve Password"
2433
  msgstr ""
2434
 
2435
+ #: classes/Utils.php:2740, templates/dashboard/dashboard.php:27
2436
  msgid "Pending"
2437
  msgstr ""
2438
 
2439
+ #: classes/Utils.php:2741
2440
  msgid "Approved"
2441
  msgstr ""
2442
 
2443
+ #: classes/Utils.php:2742
2444
  msgid "Blocked"
2445
  msgstr ""
2446
 
2447
+ #: classes/Utils.php:4446
2448
  msgid "True/False"
2449
  msgstr ""
2450
 
2451
+ #: classes/Utils.php:4451
2452
  msgid "Single Choice"
2453
  msgstr ""
2454
 
2455
+ #: classes/Utils.php:4456
2456
  msgid "Multiple Choice"
2457
  msgstr ""
2458
 
2459
+ #: classes/Utils.php:4461
2460
  msgid "Open Ended/Essay"
2461
  msgstr ""
2462
 
2463
+ #: classes/Utils.php:4466
2464
  msgid "Fill In The Blanks"
2465
  msgstr ""
2466
 
2467
+ #: classes/Utils.php:4471
2468
  msgid "Short Answer"
2469
  msgstr ""
2470
 
2471
+ #: classes/Utils.php:4476
2472
  msgid "Matching"
2473
  msgstr ""
2474
 
2475
+ #: classes/Utils.php:4481
2476
  msgid "Image Matching"
2477
  msgstr ""
2478
 
2479
+ #: classes/Utils.php:4486
2480
  msgid "Image Answering"
2481
  msgstr ""
2482
 
2483
+ #: classes/Utils.php:4491
2484
  msgid "Ordering"
2485
  msgstr ""
2486
 
2487
+ #: classes/Utils.php:5375
2488
  msgid "All Levels"
2489
  msgstr ""
2490
 
2491
+ #: classes/Utils.php:5376, templates/course-filter/filters.php:4
2492
  msgid "Beginner"
2493
  msgstr ""
2494
 
2495
+ #: classes/Utils.php:5377, templates/course-filter/filters.php:5
2496
  msgid "Intermediate"
2497
  msgstr ""
2498
 
2499
+ #: classes/Utils.php:5378, templates/course-filter/filters.php:6
2500
  msgid "Expert"
2501
  msgstr ""
2502
 
2503
+ #: classes/Utils.php:5402
2504
  msgid "Courses Taken"
2505
  msgstr ""
2506
 
2507
+ #: classes/Utils.php:5409
2508
  msgid "Enrolled Course"
2509
  msgstr ""
2510
 
2511
+ #: classes/Utils.php:5413
2512
  msgid "Reviews Written"
2513
  msgstr ""
2514
 
2515
+ #: classes/Utils.php:5720
2516
  msgid "Website URL"
2517
  msgstr ""
2518
 
2519
+ #: classes/Utils.php:5725
2520
  msgid "Github URL"
2521
  msgstr ""
2522
 
2523
+ #: classes/Utils.php:5730
2524
  msgid "Facebook URL"
2525
  msgstr ""
2526
 
2527
+ #: classes/Utils.php:5735
2528
  msgid "Twitter URL"
2529
  msgstr ""
2530
 
2531
+ #: classes/Utils.php:5740
2532
  msgid "Linkedin URL"
2533
  msgstr ""
2534
 
2535
+ #: classes/Utils.php:7149
2536
  msgid "Not Taken"
2537
  msgstr ""
2538
 
2539
+ #: classes/Utils.php:7147
2540
  msgid "In Progress"
2541
  msgstr ""
2542
 
2543
+ #: classes/Utils.php:7143
2544
  msgid "Completed"
2545
  msgstr ""
2546
 
2547
+ #: classes/Utils.php:7336, templates/dashboard/my-profile.php:34, templates/dashboard/registration.php:49, templates/dashboard/registration.php:52, views/pages/add_new_instructor.php:29, views/pages/add_new_instructor.php:35, templates/dashboard/instructor/registration.php:51, templates/dashboard/instructor/registration.php:54, templates/dashboard/settings/profile.php:96, templates/dashboard/settings/profile.php:98
2548
  msgid "First Name"
2549
  msgstr ""
2550
 
2551
+ #: classes/Utils.php:7337, templates/dashboard/my-profile.php:44, templates/dashboard/registration.php:59, templates/dashboard/registration.php:62, views/pages/add_new_instructor.php:43, views/pages/add_new_instructor.php:49, templates/dashboard/instructor/registration.php:61, templates/dashboard/instructor/registration.php:64, templates/dashboard/settings/profile.php:105, templates/dashboard/settings/profile.php:107
2552
  msgid "Last Name"
2553
  msgstr ""
2554
 
2555
+ #: classes/Utils.php:7338, views/metabox/user-profile-fields.php:37
2556
  msgid "Profile Photo"
2557
  msgstr ""
2558
 
2559
+ #: classes/Utils.php:7339
2560
  msgid "Withdraw Method"
2561
  msgstr ""
2562
 
2933
  msgid "Lesson List"
2934
  msgstr ""
2935
 
2936
+ #: templates/single-preview-lesson.php:186, templates/single-quiz.php:35, templates/single/assignment/content.php:32, templates/single/lesson/content.php:35, templates/single/quiz/single_quiz_contents.php:14
2937
  msgid "Go to Course Home"
2938
  msgstr ""
2939
 
3013
  msgid "No assignment available"
3014
  msgstr ""
3015
 
3016
+ #: templates/dashboard/assignments.php:74, templates/dashboard/dashboard.php:92
3017
  msgid "Course Name"
3018
  msgstr ""
3019
 
3093
  msgid "Important Guideline: %1$s 700x430 pixels %2$s %3$s File Support: %1$s jpg, .jpeg,. gif, or .png %2$s no text on the image."
3094
  msgstr ""
3095
 
3096
+ #: templates/dashboard/create-course.php:238, views/metabox/video-metabox.php:129, views/modal/question_answer_edit_form.php:217, views/modal/question_answer_edit_form.php:180, views/modal/question_answer_edit_form.php:127, views/modal/question_answer_edit_form.php:34, views/modal/question_answer_form.php:235, views/modal/question_answer_form.php:205, views/modal/question_answer_form.php:160, views/modal/question_answer_form.php:49
3097
  msgid "Upload Image"
3098
  msgstr ""
3099
 
3161
  msgid "Total Earnings"
3162
  msgstr ""
3163
 
3164
+ #: templates/dashboard/dashboard.php:88
3165
  msgid "Most Popular Courses"
3166
  msgstr ""
3167
 
3168
+ #: templates/dashboard/dashboard.php:93
3169
  msgid "Enrolled"
3170
  msgstr ""
3171
 
3657
  msgid "Total Course Duration"
3658
  msgstr ""
3659
 
3660
+ #: views/metabox/course-additional-data.php:26, views/metabox/video-metabox.php:173
3661
  msgid "HH"
3662
  msgstr ""
3663
 
3664
+ #: views/metabox/course-additional-data.php:30, views/metabox/video-metabox.php:178
3665
  msgid "MM"
3666
  msgstr ""
3667
 
3668
+ #: views/metabox/course-additional-data.php:35, views/metabox/video-metabox.php:183
3669
  msgid "SS"
3670
  msgstr ""
3671
 
3811
  msgid "Upload"
3812
  msgstr ""
3813
 
3814
+ #: views/metabox/video-metabox.php:41
3815
+ msgid "[/] Shortcode"
3816
+ msgstr ""
3817
+
3818
+ #: views/metabox/video-metabox.php:61
3819
  msgid "Video Source"
3820
  msgstr ""
3821
 
3822
+ #: views/metabox/video-metabox.php:59
3823
  msgid "Course Intro Video"
3824
  msgstr ""
3825
 
3826
+ #: views/metabox/video-metabox.php:70
3827
  msgid "Select Video Source"
3828
  msgstr ""
3829
 
3830
+ #: views/metabox/video-metabox.php:83
3831
  msgid "Select your preferred video type."
3832
  msgstr ""
3833
 
3834
+ #: views/metabox/video-metabox.php:96
3835
  msgid "Upload Video"
3836
  msgstr ""
3837
 
3838
+ #: views/metabox/video-metabox.php:98
3839
  msgid "Media ID"
3840
  msgstr ""
3841
 
3842
+ #: views/metabox/video-metabox.php:120
3843
  msgid "Video Poster"
3844
  msgstr ""
3845
 
3846
+ #: views/metabox/video-metabox.php:121
3847
  msgid "Thumb Size: 700x430 pixels. File Support: jpg, jpeg, or png"
3848
  msgstr ""
3849
 
3851
  msgid "External Video URL"
3852
  msgstr ""
3853
 
3854
+ #: views/metabox/video-metabox.php:147
3855
  msgid "YouTube Video URL"
3856
  msgstr ""
3857
 
3858
+ #: views/metabox/video-metabox.php:151
3859
  msgid "Vimeo Video URL"
3860
  msgstr ""
3861
 
3862
+ #: views/metabox/video-metabox.php:155
3863
  msgid "Place your embedded code here"
3864
  msgstr ""
3865
 
3866
+ #: views/metabox/video-metabox.php:166
3867
  msgid "Video playback time"
3868
  msgstr ""
3869
 
4287
  msgid "Update Announcement"
4288
  msgstr ""
4289
 
4290
+ #: views/pages/announcements.php:328, views/pages/view_attempt.php:351, templates/dashboard/announcements/update.php:51, templates/dashboard/quiz-attempts/quiz-reviews.php:424
4291
  msgid "Update"
4292
  msgstr ""
4293
 
4363
  msgid "Quiz Time"
4364
  msgstr ""
4365
 
4366
+ #: views/pages/view_attempt.php:153, templates/dashboard/quiz-attempts/quiz-reviews.php:198
4367
  msgid "Reminder:"
4368
  msgstr ""
4369
 
4370
+ #: views/pages/view_attempt.php:153, templates/dashboard/quiz-attempts/quiz-reviews.php:198
4371
  msgid "Please review answers for question no. %s"
4372
  msgstr ""
4373
 
4374
+ #: views/pages/view_attempt.php:162, templates/dashboard/quiz-attempts/quiz-reviews.php:209
4375
  msgid "Manually reviewed at: "
4376
  msgstr ""
4377
 
4378
+ #: views/pages/view_attempt.php:178, templates/dashboard/my-quiz-attempts/attempts-details.php:208, templates/dashboard/quiz-attempts/quiz-reviews.php:225
4379
  msgid "Quiz Overview"
4380
  msgstr ""
4381
 
4382
+ #: views/pages/view_attempt.php:183, templates/dashboard/earning/statement.php:53, templates/dashboard/earning/statement.php:60, templates/dashboard/earning/statements.php:181, templates/dashboard/earning/statements.php:188, templates/dashboard/my-quiz-attempts/attempts-details.php:214, templates/dashboard/quiz-attempts/quiz-reviews.php:231
4383
  msgid "Type"
4384
  msgstr ""
4385
 
4386
+ #: views/pages/view_attempt.php:184, templates/dashboard/my-quiz-attempts/attempts-details.php:213, templates/dashboard/quiz-attempts/quiz-reviews.php:230
4387
  msgid "No."
4388
  msgstr ""
4389
 
4390
+ #: views/pages/view_attempt.php:186, templates/dashboard/my-quiz-attempts/attempts-details.php:216, templates/dashboard/quiz-attempts/quiz-reviews.php:233
4391
  msgid "Given Answers"
4392
  msgstr ""
4393
 
4394
+ #: views/pages/view_attempt.php:187, templates/dashboard/my-quiz-attempts/attempts-details.php:218, templates/dashboard/quiz-attempts/quiz-reviews.php:235
4395
  msgid "Correct/Incorrect"
4396
  msgstr ""
4397
 
4398
+ #: views/pages/view_attempt.php:188, templates/dashboard/quiz-attempts/quiz-reviews.php:236
4399
  msgid "Manual Review"
4400
  msgstr ""
4401
 
4402
+ #: views/pages/view_attempt.php:317, views/pages/view_attempt.php:312, templates/dashboard/my-quiz-attempts/attempts-details.php:124, templates/dashboard/my-quiz-attempts/attempts-details.php:389, templates/dashboard/my-quiz-attempts/attempts-details.php:384, templates/dashboard/quiz-attempts/quiz-reviews.php:110, templates/dashboard/quiz-attempts/quiz-reviews.php:397, templates/dashboard/quiz-attempts/quiz-reviews.php:392
4403
  msgid "Incorrect"
4404
  msgstr ""
4405
 
4406
+ #: views/pages/view_attempt.php:314, views/pages/view_attempt.php:303, templates/dashboard/my-quiz-attempts/attempts-details.php:123, templates/dashboard/my-quiz-attempts/attempts-details.php:380, templates/dashboard/quiz-attempts/quiz-reviews.php:109, templates/dashboard/quiz-attempts/quiz-reviews.php:388
4407
  msgid "Correct"
4408
  msgstr ""
4409
 
4410
+ #: views/pages/view_attempt.php:309, templates/dashboard/my-quiz-attempts/attempts-details.php:386, templates/dashboard/quiz-attempts/quiz-reviews.php:394
4411
  msgid "Review Required"
4412
  msgstr ""
4413
 
4414
+ #: views/pages/view_attempt.php:329, templates/dashboard/quiz-attempts/quiz-reviews.php:405
4415
  msgid "Mark as In correct"
4416
  msgstr ""
4417
 
4418
+ #: views/pages/view_attempt.php:347, templates/dashboard/my-quiz-attempts/attempts-details.php:190, templates/dashboard/quiz-attempts/quiz-reviews.php:176, templates/dashboard/quiz-attempts/quiz-reviews.php:420
4419
  msgid "Instructor Feedback"
4420
  msgstr ""
4421
 
4422
+ #: views/pages/view_attempt.php:351, templates/dashboard/quiz-attempts/quiz-reviews.php:424
4423
  msgid "Updated"
4424
  msgstr ""
4425
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: lms, course, elearning, education, learning management system
5
  Requires at least: 5.3
6
  Tested up to: 5.8
7
  Requires PHP: 7.0
8
- Stable tag: 1.9.13
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -241,9 +241,21 @@ Tutor enables you to use any third party plugins without facing any compatibilit
241
 
242
  == Changelog ==
243
 
 
 
 
 
 
 
 
 
 
 
244
  = 1.9.13 - January 10, 2022 =
245
 
246
- Update: Security Update
 
 
247
 
248
  = 1.9.12 - December 14, 2021 =
249
 
5
  Requires at least: 5.3
6
  Tested up to: 5.8
7
  Requires PHP: 7.0
8
+ Stable tag: 1.9.14
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
11
 
241
 
242
  == Changelog ==
243
 
244
+ = 1.9.14 - January 20, 2022 =
245
+
246
+ New: Now you can add Videos using a Shortcode
247
+ Fix: Issue of HTML codes disappearing after saving a Quiz
248
+ Fix: Issue regarding video not working using Embedded code
249
+ Fix: Presto Player Shortcode wasn't saving in the video source
250
+ Update: Better user input field sanitization ensure SQL Injection
251
+ Update: Better security of HTML output of user-provided input
252
+ Update: XSS vulnerability protection is made stronger
253
+
254
  = 1.9.13 - January 10, 2022 =
255
 
256
+ Update: User Input field sanitization is made stronger to ensure SQL Injection
257
+ Update: HTML output of user provided input is more secure now
258
+ Update: XSS vulnerability protection is made stronger than before
259
 
260
  = 1.9.12 - December 14, 2021 =
261
 
templates/dashboard.php CHANGED
@@ -111,7 +111,7 @@ do_action( 'tutor_dashboard/before/wrap' );
111
  '</b>'.
112
  '</span>';
113
  } elseif ( $rejected_on || $instructor_status !== 'blocked' ) {
114
- echo $become_button; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
115
  }
116
  ?>
117
  </div>
111
  '</b>'.
112
  '</span>';
113
  } elseif ( $rejected_on || $instructor_status !== 'blocked' ) {
114
+ echo $become_button;
115
  }
116
  ?>
117
  </div>
templates/dashboard/announcements/create.php CHANGED
@@ -21,7 +21,7 @@
21
  <select class="ignore-nice-select" name="tutor_announcement_course" id="" required>
22
  <?php if ( $courses ) : ?>
23
  <?php foreach ( $courses as $course ) : ?>
24
- <option value="<?php echo $course->ID; ?>">
25
  <?php echo esc_html( $course->post_title ); ?>
26
  </option>
27
  <?php endforeach; ?>
21
  <select class="ignore-nice-select" name="tutor_announcement_course" id="" required>
22
  <?php if ( $courses ) : ?>
23
  <?php foreach ( $courses as $course ) : ?>
24
+ <option value="<?php echo esc_attr( $course->ID ); ?>">
25
  <?php echo esc_html( $course->post_title ); ?>
26
  </option>
27
  <?php endforeach; ?>
templates/dashboard/announcements/update.php CHANGED
@@ -22,7 +22,7 @@
22
  <select class="ignore-nice-select" name="tutor_announcement_course" id="tutor-announcement-course-id" required>
23
  <?php if ( $courses ) : ?>
24
  <?php foreach ( $courses as $course ) : ?>
25
- <option value="<?php echo $course->ID; ?>">
26
  <?php echo esc_html( $course->post_title ); ?>
27
  </option>
28
  <?php endforeach; ?>
22
  <select class="ignore-nice-select" name="tutor_announcement_course" id="tutor-announcement-course-id" required>
23
  <?php if ( $courses ) : ?>
24
  <?php foreach ( $courses as $course ) : ?>
25
+ <option value="<?php echo esc_attr( $course->ID ); ?>">
26
  <?php echo esc_html( $course->post_title ); ?>
27
  </option>
28
  <?php endforeach; ?>
templates/dashboard/assignments/review.php CHANGED
@@ -11,8 +11,8 @@
11
  * @version 1.4.3
12
  */
13
 
14
- $assignment_id = (int) sanitize_text_field( tutor_utils()->array_get( 'assignment', $_GET ) );
15
- $assignment_submitted_id = (int) sanitize_text_field( tutor_utils()->array_get( 'view_assignment', $_GET ) );
16
  $submitted_url = tutor_utils()->get_tutor_dashboard_page_permalink( 'assignments/submitted' );
17
 
18
  if ( ! $assignment_submitted_id ) {
@@ -93,13 +93,13 @@ if ( $submitted_assignment ) {
93
  <form action="" method="post" class="tutor-form-submit-through-ajax" data-toast_success_message="<?php esc_attr_e( 'Assignment evaluated', 'tutor' ); ?>">
94
  <?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
95
  <input type="hidden" value="tutor_evaluate_assignment_submission" name="tutor_action"/>
96
- <input type="hidden" value="<?php echo $assignment_submitted_id; ?>" name="assignment_submitted_id"/>
97
  <div class="tutor-assignment-evaluate-row">
98
  <div class="tutor-option-field-label">
99
  <label for=""><?php esc_html_e( 'Your Points', 'tutor' ); ?></label>
100
  </div>
101
  <div class="tutor-option-field input-mark">
102
- <input type="number" name="evaluate_assignment[assignment_mark]" value="<?php echo $given_mark ? $given_mark : 0; ?>">
103
  <p class="desc"><?php echo wp_sprintf( __( 'Evaluate this assignment out of %s', 'tutor' ), '<code>' . $max_mark . '</code>' ); ?></p>
104
  </div>
105
  </div>
11
  * @version 1.4.3
12
  */
13
 
14
+ $assignment_id = (int) tutor_utils()->array_get( 'assignment', $_GET );
15
+ $assignment_submitted_id = (int) tutor_utils()->array_get( 'view_assignment', $_GET );
16
  $submitted_url = tutor_utils()->get_tutor_dashboard_page_permalink( 'assignments/submitted' );
17
 
18
  if ( ! $assignment_submitted_id ) {
93
  <form action="" method="post" class="tutor-form-submit-through-ajax" data-toast_success_message="<?php esc_attr_e( 'Assignment evaluated', 'tutor' ); ?>">
94
  <?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
95
  <input type="hidden" value="tutor_evaluate_assignment_submission" name="tutor_action"/>
96
+ <input type="hidden" value="<?php echo esc_attr( $assignment_submitted_id ); ?>" name="assignment_submitted_id"/>
97
  <div class="tutor-assignment-evaluate-row">
98
  <div class="tutor-option-field-label">
99
  <label for=""><?php esc_html_e( 'Your Points', 'tutor' ); ?></label>
100
  </div>
101
  <div class="tutor-option-field input-mark">
102
+ <input type="number" name="evaluate_assignment[assignment_mark]" value="<?php echo $given_mark ? esc_attr( $given_mark ) : 0; ?>">
103
  <p class="desc"><?php echo wp_sprintf( __( 'Evaluate this assignment out of %s', 'tutor' ), '<code>' . $max_mark . '</code>' ); ?></p>
104
  </div>
105
  </div>
templates/dashboard/create-course.php CHANGED
@@ -58,7 +58,7 @@ if ( ! tutor_utils()->can_user_edit_course( get_current_user_id(), $course_id )
58
  </div>
59
  <div class="tutor-col-auto">
60
  <div class="tutor-dashboard-builder-header-right">
61
- <a href="<?php esc_url( get_the_permalink( $course_id ) ); ?>" target="_blank"><i class="tutor-icon-glasses"></i><?php _e( 'Preview', 'tutor' ); ?></a>
62
  <?php
63
  if ( $can_publish_course ) {
64
  ?>
@@ -91,18 +91,18 @@ if ( ! tutor_utils()->can_user_edit_course( get_current_user_id(), $course_id )
91
  $expires = get_user_meta( $user_id, 'tutor_frontend_course_message_expires', true );
92
  $message = get_user_meta( $user_id, 'tutor_frontend_course_action_message', true );
93
 
94
- if ( $message && $expires && $expires > time() ) {
95
- ?>
96
  <div class="tutor-alert tutor-alert-info">
97
  <?php echo esc_html( $message ); ?>
98
  </div>
99
  <?php
100
- }
101
 
102
- if ( $message || $expires ) {
103
- delete_user_meta( $user_id, 'tutor_frontend_course_message_expires' );
104
- delete_user_meta( $user_id, 'tutor_frontend_course_action_message' );
105
- }
106
  ?>
107
  <!--alert message end -->
108
  <?php do_action( 'tutor/dashboard_course_builder_form_field_before' ); ?>
58
  </div>
59
  <div class="tutor-col-auto">
60
  <div class="tutor-dashboard-builder-header-right">
61
+ <a href="<?php echo esc_url( get_the_permalink( $course_id ) ); ?>" target="_blank"><i class="tutor-icon-glasses"></i><?php _e( 'Preview', 'tutor' ); ?></a>
62
  <?php
63
  if ( $can_publish_course ) {
64
  ?>
91
  $expires = get_user_meta( $user_id, 'tutor_frontend_course_message_expires', true );
92
  $message = get_user_meta( $user_id, 'tutor_frontend_course_action_message', true );
93
 
94
+ if ( $message && $expires && $expires > time() ) {
95
+ ?>
96
  <div class="tutor-alert tutor-alert-info">
97
  <?php echo esc_html( $message ); ?>
98
  </div>
99
  <?php
100
+ }
101
 
102
+ if ( $message || $expires ) {
103
+ delete_user_meta( $user_id, 'tutor_frontend_course_message_expires' );
104
+ delete_user_meta( $user_id, 'tutor_frontend_course_action_message' );
105
+ }
106
  ?>
107
  <!--alert message end -->
108
  <?php do_action( 'tutor/dashboard_course_builder_form_field_before' ); ?>
templates/dashboard/dashboard.php CHANGED
@@ -34,19 +34,19 @@
34
  <div class="tutor-dashboard-info-card">
35
  <p>
36
  <span><?php _e( 'Enrolled Courses', 'tutor' ); ?></span>
37
- <span class="tutor-dashboard-info-val"><?php echo $enrolled_course_count; ?></span>
38
  </p>
39
  </div>
40
  <div class="tutor-dashboard-info-card">
41
  <p>
42
  <span><?php _e( 'Active Courses', 'tutor' ); ?></span>
43
- <span class="tutor-dashboard-info-val"><?php echo $active_course_count; ?></span>
44
  </p>
45
  </div>
46
  <div class="tutor-dashboard-info-card">
47
  <p>
48
  <span><?php _e( 'Completed Courses', 'tutor' ); ?></span>
49
- <span class="tutor-dashboard-info-val"><?php echo $completed_course_count; ?></span>
50
  </p>
51
  </div>
52
 
@@ -57,7 +57,7 @@
57
  <p>
58
  <span><?php _e( 'Total Students', 'tutor' ); ?></span>
59
  <span class="tutor-dashboard-info-val">
60
- <?php echo $total_students; ?>
61
  </span>
62
  </p>
63
  </div>
@@ -70,7 +70,9 @@
70
  <div class="tutor-dashboard-info-card">
71
  <p>
72
  <span><?php _e( 'Total Earnings', 'tutor' ); ?></span>
73
- <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price( $earning_sum->instructor_amount ); ?></span>
 
 
74
  </p>
75
  </div>
76
  <?php
34
  <div class="tutor-dashboard-info-card">
35
  <p>
36
  <span><?php _e( 'Enrolled Courses', 'tutor' ); ?></span>
37
+ <span class="tutor-dashboard-info-val"><?php echo esc_html( $enrolled_course_count ); ?></span>
38
  </p>
39
  </div>
40
  <div class="tutor-dashboard-info-card">
41
  <p>
42
  <span><?php _e( 'Active Courses', 'tutor' ); ?></span>
43
+ <span class="tutor-dashboard-info-val"><?php echo esc_html( $active_course_count ); ?></span>
44
  </p>
45
  </div>
46
  <div class="tutor-dashboard-info-card">
47
  <p>
48
  <span><?php _e( 'Completed Courses', 'tutor' ); ?></span>
49
+ <span class="tutor-dashboard-info-val"><?php echo esc_html( $completed_course_count ); ?></span>
50
  </p>
51
  </div>
52
 
57
  <p>
58
  <span><?php _e( 'Total Students', 'tutor' ); ?></span>
59
  <span class="tutor-dashboard-info-val">
60
+ <?php echo esc_html( $total_students ); ?>
61
  </span>
62
  </p>
63
  </div>
70
  <div class="tutor-dashboard-info-card">
71
  <p>
72
  <span><?php _e( 'Total Earnings', 'tutor' ); ?></span>
73
+ <span class="tutor-dashboard-info-val">
74
+ <?php echo tutor_kses_html( tutor_utils()->tutor_price( $earning_sum->instructor_amount ) ); ?>
75
+ </span>
76
  </p>
77
  </div>
78
  <?php
templates/dashboard/my-profile.php CHANGED
@@ -35,7 +35,7 @@ $bio = nl2br( strip_tags( get_user_meta( $uid, '_tutor_profile
35
  </div>
36
  <div class="content">
37
  <p>
38
- <?php echo $fname ? $fname : '________'; ?>&nbsp;
39
  </p>
40
  </div>
41
  </div>
@@ -45,7 +45,7 @@ $bio = nl2br( strip_tags( get_user_meta( $uid, '_tutor_profile
45
  </div>
46
  <div class="content">
47
  <p>
48
- <?php echo $lname ? $lname : '________'; ?>&nbsp;
49
  </p>
50
  </div>
51
  </div>
@@ -54,7 +54,7 @@ $bio = nl2br( strip_tags( get_user_meta( $uid, '_tutor_profile
54
  <span><?php _e( 'Username', 'tutor' ); ?></span>
55
  </div>
56
  <div class="content">
57
- <p><?php echo $uname; ?>&nbsp;</p>
58
  </div>
59
  </div>
60
  <div class="tutor-dashboard-profile-item">
@@ -62,7 +62,7 @@ $bio = nl2br( strip_tags( get_user_meta( $uid, '_tutor_profile
62
  <span><?php _e( 'Email', 'tutor' ); ?></span>
63
  </div>
64
  <div class="content">
65
- <p><?php echo $email; ?>&nbsp;</p>
66
  </div>
67
  </div>
68
  <div class="tutor-dashboard-profile-item">
@@ -70,7 +70,7 @@ $bio = nl2br( strip_tags( get_user_meta( $uid, '_tutor_profile
70
  <span><?php _e( 'Phone Number', 'tutor' ); ?></span>
71
  </div>
72
  <div class="content">
73
- <p><?php echo $phone ? esc_attr( $phone ) : '________'; ?>&nbsp;</p>
74
  </div>
75
  </div>
76
 
@@ -79,7 +79,7 @@ $bio = nl2br( strip_tags( get_user_meta( $uid, '_tutor_profile
79
  <span><?php _e( 'Bio', 'tutor' ); ?></span>
80
  </div>
81
  <div class="content">
82
- <p><?php echo $bio ? $bio : '________'; ?>&nbsp;</p>
83
  </div>
84
  </div>
85
 
35
  </div>
36
  <div class="content">
37
  <p>
38
+ <?php echo $fname ? esc_html( $fname ) : '________'; ?>&nbsp;
39
  </p>
40
  </div>
41
  </div>
45
  </div>
46
  <div class="content">
47
  <p>
48
+ <?php echo $lname ? esc_html( $lname ) : '________'; ?>&nbsp;
49
  </p>
50
  </div>
51
  </div>
54
  <span><?php _e( 'Username', 'tutor' ); ?></span>
55
  </div>
56
  <div class="content">
57
+ <p><?php echo esc_html( $uname ); ?>&nbsp;</p>
58
  </div>
59
  </div>
60
  <div class="tutor-dashboard-profile-item">
62
  <span><?php _e( 'Email', 'tutor' ); ?></span>
63
  </div>
64
  <div class="content">
65
+ <p><?php echo esc_html( $email ); ?>&nbsp;</p>
66
  </div>
67
  </div>
68
  <div class="tutor-dashboard-profile-item">
70
  <span><?php _e( 'Phone Number', 'tutor' ); ?></span>
71
  </div>
72
  <div class="content">
73
+ <p><?php echo $phone ? esc_html( $phone ) : '________'; ?>&nbsp;</p>
74
  </div>
75
  </div>
76
 
79
  <span><?php _e( 'Bio', 'tutor' ); ?></span>
80
  </div>
81
  <div class="content">
82
+ <p><?php echo $bio ? esc_html( $bio ) : '________'; ?>&nbsp;</p>
83
  </div>
84
  </div>
85
 
templates/dashboard/my-quiz-attempts/attempts-details.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  exit;
17
  }
18
 
19
- $attempt_id = (int) sanitize_text_field( $_GET['attempt_id'] );
20
  $attempt = tutor_utils()->get_attempt( $attempt_id );
21
 
22
  if ( ! $attempt ) {
16
  exit;
17
  }
18
 
19
+ $attempt_id = (int) $_GET['attempt_id'];
20
  $attempt = tutor_utils()->get_attempt( $attempt_id );
21
 
22
  if ( ! $attempt ) {
templates/dashboard/purchase_history.php CHANGED
@@ -47,7 +47,7 @@ if ( tutils()->count( $orders ) ) {
47
  }
48
  ?>
49
  </td>
50
- <td><?php echo $price; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></td>
51
  <td><?php echo $status; ?></td>
52
 
53
  <td>
47
  }
48
  ?>
49
  </td>
50
+ <td><?php echo $price; ?></td>
51
  <td><?php echo $status; ?></td>
52
 
53
  <td>
templates/dashboard/quiz-attempts/quiz-reviews.php CHANGED
@@ -14,7 +14,7 @@
14
  ?>
15
 
16
  <?php
17
- $attempt_id = (int) sanitize_text_field( $_GET['attempt_id'] );
18
  $attempt = tutor_utils()->get_attempt( $attempt_id );
19
 
20
  if ( ! $attempt ) {
14
  ?>
15
 
16
  <?php
17
+ $attempt_id = (int) $_GET['attempt_id'];
18
  $attempt = tutor_utils()->get_attempt( $attempt_id );
19
 
20
  if ( ! $attempt ) {
templates/shortcode/instructor-filter.php CHANGED
@@ -75,7 +75,7 @@ foreach ( $categories as $category ) {
75
  </div>
76
  </div>
77
  <div class="filter-result-container">
78
- <?php echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
79
  </div>
80
  </div>
81
  </div>
75
  </div>
76
  </div>
77
  <div class="filter-result-container">
78
+ <?php echo $content; ?>
79
  </div>
80
  </div>
81
  </div>
templates/single-preview-lesson.php CHANGED
@@ -84,7 +84,7 @@ $enable_spotlight_mode = tutor_utils()->get_option( 'enable_spotlight_mode' );
84
  $topic_summery = get_the_content();
85
  ?>
86
 
87
- <div class="tutor-topics-in-single-lesson tutor-topics-<?php echo $topic_id; ?>">
88
  <div class="tutor-topics-title <?php echo $topic_summery ? 'has-summery' : ''; ?>">
89
  <h3>
90
  <?php
@@ -162,35 +162,22 @@ $enable_spotlight_mode = tutor_utils()->get_option( 'enable_spotlight_mode' );
162
  }
163
  ?>
164
  </div>
165
-
166
  </div>
167
-
168
  </div>
169
 
170
  <?php do_action( 'tutor_lesson/single/after/lesson_sidebar' ); ?>
171
-
172
-
173
  <!-- END: Sidebar -->
174
-
175
-
176
-
177
-
178
  </div>
179
  <div id="tutor-single-entry-content" class="tutor-lesson-content tutor-single-entry-content tutor-single-entry-content-<?php the_ID(); ?>">
180
-
181
- <?php // tutor_lesson_content(); ?>
182
-
183
  <?php
 
 
 
 
184
 
185
- $jsonData = array();
186
- $jsonData['post_id'] = get_the_ID();
187
- $jsonData['best_watch_time'] = 0;
188
- $jsonData['autoload_next_course_content'] = (bool) get_tutor_option( 'autoload_next_course_content' );
189
-
190
  ?>
191
 
192
- <?php do_action( 'tutor_lesson/single/before/content' ); ?>
193
-
194
  <div class="tutor-single-page-top-bar">
195
  <div class="tutor-topbar-item tutor-hide-sidebar-bar">
196
  <a href="javascript:;" class="tutor-lesson-sidebar-hide-bar"><i class="tutor-icon-angle-left"></i> </a>
@@ -207,22 +194,17 @@ $enable_spotlight_mode = tutor_utils()->get_option( 'enable_spotlight_mode' );
207
  </div>
208
  </div>
209
 
210
-
211
  <div class="tutor-lesson-content-area">
212
  <input type="hidden" id="tutor_video_tracking_information" value="<?php echo esc_attr( json_encode( $jsonData ) ); ?>">
213
- <?php tutor_lesson_video(); ?>
214
- <?php the_content(); ?>
215
- <?php get_tutor_posts_attachments(); ?>
216
- <?php tutor_next_previous_pagination(); ?>
 
 
217
  </div>
218
 
219
  <?php do_action( 'tutor_lesson/single/after/content' ); ?>
220
-
221
-
222
-
223
-
224
-
225
-
226
  </div>
227
  </div>
228
  <?php
84
  $topic_summery = get_the_content();
85
  ?>
86
 
87
+ <div class="tutor-topics-in-single-lesson tutor-topics-<?php echo esc_attr( $topic_id ) ; ?>">
88
  <div class="tutor-topics-title <?php echo $topic_summery ? 'has-summery' : ''; ?>">
89
  <h3>
90
  <?php
162
  }
163
  ?>
164
  </div>
 
165
  </div>
 
166
  </div>
167
 
168
  <?php do_action( 'tutor_lesson/single/after/lesson_sidebar' ); ?>
 
 
169
  <!-- END: Sidebar -->
 
 
 
 
170
  </div>
171
  <div id="tutor-single-entry-content" class="tutor-lesson-content tutor-single-entry-content tutor-single-entry-content-<?php the_ID(); ?>">
 
 
 
172
  <?php
173
+ $jsonData = array();
174
+ $jsonData['post_id'] = get_the_ID();
175
+ $jsonData['best_watch_time'] = 0;
176
+ $jsonData['autoload_next_course_content'] = (bool) get_tutor_option( 'autoload_next_course_content' );
177
 
178
+ do_action( 'tutor_lesson/single/before/content' );
 
 
 
 
179
  ?>
180
 
 
 
181
  <div class="tutor-single-page-top-bar">
182
  <div class="tutor-topbar-item tutor-hide-sidebar-bar">
183
  <a href="javascript:;" class="tutor-lesson-sidebar-hide-bar"><i class="tutor-icon-angle-left"></i> </a>
194
  </div>
195
  </div>
196
 
 
197
  <div class="tutor-lesson-content-area">
198
  <input type="hidden" id="tutor_video_tracking_information" value="<?php echo esc_attr( json_encode( $jsonData ) ); ?>">
199
+ <?php
200
+ tutor_lesson_video();
201
+ the_content();
202
+ get_tutor_posts_attachments();
203
+ tutor_next_previous_pagination();
204
+ ?>
205
  </div>
206
 
207
  <?php do_action( 'tutor_lesson/single/after/content' ); ?>
 
 
 
 
 
 
208
  </div>
209
  </div>
210
  <?php
templates/single/course/review-form.php CHANGED
@@ -43,7 +43,7 @@ $rating = $isLoggedIn ? tutor_utils()->get_course_rating_by_user() : '';
43
  ob_start();
44
  tutor_load_template( 'single.course.login' );
45
  $output = apply_filters( 'tutor_course/global/login', ob_get_clean() );
46
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
47
  }
48
  ?>
49
  </div>
43
  ob_start();
44
  tutor_load_template( 'single.course.login' );
45
  $output = apply_filters( 'tutor_course/global/login', ob_get_clean() );
46
+ echo $output;
47
  }
48
  ?>
49
  </div>
templates/single/next-previous-pagination.php CHANGED
@@ -16,13 +16,17 @@
16
  <?php
17
  if ( $previous_id ) {
18
  ?>
19
- <a class="tutor-previous-link tutor-previous-link-<?php echo esc_attr( $previous_id ); ?>" href="<?php echo esc_url( get_the_permalink( $previous_id ) ); ?>">&leftarrow; <?php _e( 'Previous' ); ?></a>
 
 
20
  <?php
21
  }
22
 
23
  if ( $next_id ) {
24
  ?>
25
- <a class="tutor-next-link tutor-next-link-<?php echo esc_attr( $next_id ); ?>" href="<?php echo esc_url( get_the_permalink( $next_id ) ); ?>"><?php _e( 'Next' ); ?> &rightarrow; </a>
 
 
26
  <?php
27
  }
28
  ?>
16
  <?php
17
  if ( $previous_id ) {
18
  ?>
19
+ <a class="tutor-previous-link tutor-previous-link-<?php echo esc_attr( $previous_id ); ?>" href="<?php echo esc_url( get_the_permalink( $previous_id ) ); ?>">
20
+ &leftarrow; <?php _e( 'Previous' ); ?>
21
+ </a>
22
  <?php
23
  }
24
 
25
  if ( $next_id ) {
26
  ?>
27
+ <a class="tutor-next-link tutor-next-link-<?php echo esc_attr( $next_id ); ?>" href="<?php echo esc_url( get_the_permalink( $next_id ) ); ?>">
28
+ <?php _e( 'Next' ); ?> &rightarrow;
29
+ </a>
30
  <?php
31
  }
32
  ?>
templates/single/video/shortcode.php ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Display Video HTML5
5
+ *
6
+ * @since v.1.0.0
7
+ * @author themeum
8
+ * @url https://themeum.com
9
+ *
10
+ * @package TutorLMS/Templates
11
+ * @version 1.4.3
12
+ */
13
+
14
+ if ( ! defined( 'ABSPATH' ) ) {
15
+ exit;
16
+ }
17
+
18
+ $video_info = tutor_utils()->get_video_info();
19
+
20
+ do_action( 'tutor_lesson/single/before/video/shortcode' );
21
+ ?>
22
+ <div class="tutor-single-lesson-segment tutor-lesson-video-wrap">
23
+ <div class="tutor-video-shortcode-wrap">
24
+ <?php echo do_shortcode( tutor_utils()->array_get( 'source_shortcode', $video_info ) ) ; ?>
25
+ </div>
26
+ </div>
27
+ <?php
28
+ do_action( 'tutor_lesson/single/after/video/shortcode' ); ?>
templates/student-public-profile.php CHANGED
@@ -81,9 +81,9 @@ foreach ( $tutor_user_social_icons as $key => $social_icon ) {
81
 
82
  <div class="profile-name">
83
  <div class="profile-rating-media content-for-mobile">
84
- <?php echo $rating_content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
85
  <div class="tutor-social-container content-for-desktop">
86
- <?php echo $social_media; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
87
  </div>
88
  </div>
89
 
@@ -94,12 +94,12 @@ foreach ( $tutor_user_social_icons as $key => $social_icon ) {
94
  $student_count = tutor_utils()->get_total_students_by_instructor( $user_id );
95
  ?>
96
  <span>
97
- <span><?php echo $course_count; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
98
  <?php $course_count > 1 ? _e( 'Courses', 'tutor' ) : _e( 'Course', 'tutor' ); ?>
99
  </span>
100
  <span><span>•</span></span>
101
  <span>
102
- <span><?php echo $student_count; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
103
  <?php $student_count > 1 ? _e( 'Students', 'tutor' ) : _e( 'Student', 'tutor' ); ?>
104
  </span>
105
  <?php
@@ -111,7 +111,7 @@ foreach ( $tutor_user_social_icons as $key => $social_icon ) {
111
  $complete_count = $complete_count ? count( $complete_count ) : 0;
112
  ?>
113
  <span>
114
- <span><?php echo $enrol_count; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
115
  <?php $enrol_count > 1 ? _e( 'Courses Enrolled', 'tutor' ) : _e( 'Course Enrolled', 'tutor' ); ?>
116
  </span>
117
  <span><span>•</span></span>
@@ -125,11 +125,11 @@ foreach ( $tutor_user_social_icons as $key => $social_icon ) {
125
  </div>
126
 
127
  <div class="tutor-social-container content-for-mobile">
128
- <?php echo $social_media; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
129
  </div>
130
 
131
  <div class="profile-rating-media content-for-desktop">
132
- <?php echo $rating_content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
133
  <div class="tutor-social-container content-for-desktop">
134
  <?php
135
  foreach ( $tutor_user_social_icons as $key => $social_icon ) {
81
 
82
  <div class="profile-name">
83
  <div class="profile-rating-media content-for-mobile">
84
+ <?php echo $rating_content; ?>
85
  <div class="tutor-social-container content-for-desktop">
86
+ <?php echo $social_media; ?>
87
  </div>
88
  </div>
89
 
94
  $student_count = tutor_utils()->get_total_students_by_instructor( $user_id );
95
  ?>
96
  <span>
97
+ <span><?php echo $course_count; ?></span>
98
  <?php $course_count > 1 ? _e( 'Courses', 'tutor' ) : _e( 'Course', 'tutor' ); ?>
99
  </span>
100
  <span><span>•</span></span>
101
  <span>
102
+ <span><?php echo $student_count; ?></span>
103
  <?php $student_count > 1 ? _e( 'Students', 'tutor' ) : _e( 'Student', 'tutor' ); ?>
104
  </span>
105
  <?php
111
  $complete_count = $complete_count ? count( $complete_count ) : 0;
112
  ?>
113
  <span>
114
+ <span><?php echo $enrol_count; ?></span>
115
  <?php $enrol_count > 1 ? _e( 'Courses Enrolled', 'tutor' ) : _e( 'Course Enrolled', 'tutor' ); ?>
116
  </span>
117
  <span><span>•</span></span>
125
  </div>
126
 
127
  <div class="tutor-social-container content-for-mobile">
128
+ <?php echo $social_media; ?>
129
  </div>
130
 
131
  <div class="profile-rating-media content-for-desktop">
132
+ <?php echo $rating_content; ?>
133
  <div class="tutor-social-container content-for-desktop">
134
  <?php
135
  foreach ( $tutor_user_social_icons as $key => $social_icon ) {
tutor.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Tutor LMS
4
  Plugin URI: https://www.themeum.com/product/tutor-lms/
5
  Description: Tutor is a complete solution for creating a Learning Management System in WordPress way. It can help you to create small to large scale online education site very conveniently. Power features like report, certificate, course preview, private file sharing make Tutor a robust plugin for any educational institutes.
6
  Author: Themeum
7
- Version: 1.9.13
8
  Author URI: https://themeum.com
9
  Requires at least: 4.5
10
  Tested up to: 5.8
@@ -17,7 +17,7 @@ if ( ! defined( 'ABSPATH' ) )
17
  /**
18
  * Defined the tutor main file
19
  */
20
- define( 'TUTOR_VERSION', '1.9.13' );
21
  define( 'TUTOR_FILE', __FILE__ );
22
 
23
  /**
4
  Plugin URI: https://www.themeum.com/product/tutor-lms/
5
  Description: Tutor is a complete solution for creating a Learning Management System in WordPress way. It can help you to create small to large scale online education site very conveniently. Power features like report, certificate, course preview, private file sharing make Tutor a robust plugin for any educational institutes.
6
  Author: Themeum
7
+ Version: 1.9.14
8
  Author URI: https://themeum.com
9
  Requires at least: 4.5
10
  Tested up to: 5.8
17
  /**
18
  * Defined the tutor main file
19
  */
20
+ define( 'TUTOR_VERSION', '1.9.14' );
21
  define( 'TUTOR_FILE', __FILE__ );
22
 
23
  /**
views/metabox/video-metabox.php CHANGED
@@ -37,6 +37,10 @@ $video_sources = array(
37
  'title' => __( 'Embedded', 'tutor' ),
38
  'icon' => 'code',
39
  ),
 
 
 
 
40
  );
41
 
42
  $supported_sources = tutor_utils()->get_option( 'supported_video_sources', $video_sources );
@@ -132,23 +136,23 @@ $default_source = tutor_utils()->get_option( 'default_video_source', null );
132
  </div>
133
 
134
  <div class="video-metabox-source-item video_source_wrap_external_url" style="display: <?php echo $videoSource === 'external_url' ? 'block' : 'none'; ?>;">
135
- <input type="text" name="video[source_external_url]" value="
136
- <?php
137
- echo tutor_utils()->avalue_dot( 'source_external_url', $video );
138
- ?>
139
- " placeholder="<?php _e( 'External Video URL', 'tutor' ); ?>">
140
  </div>
141
 
142
  <div class="video-metabox-source-item video_source_wrap_youtube" style="display: <?php echo $videoSource === 'youtube' ? 'block' : 'none'; ?>;">
143
  <input type="text" name="video[source_youtube]" value="<?php echo tutor_utils()->avalue_dot( 'source_youtube', $video ); ?>" placeholder="<?php _e( 'YouTube Video URL', 'tutor' ); ?>" data-youtube_api_key="<?php echo tutils()->get_option( 'lesson_video_duration_youtube_api_key', '' ); ?>">
144
  </div>
 
145
  <div class="video-metabox-source-item video_source_wrap_vimeo" style="display: <?php echo $videoSource === 'vimeo' ? 'block' : 'none'; ?>;">
146
  <input type="text" name="video[source_vimeo]" value="<?php echo tutor_utils()->avalue_dot( 'source_vimeo', $video ); ?>" placeholder="<?php _e( 'Vimeo Video URL', 'tutor' ); ?>">
147
  </div>
 
148
  <div class="video-metabox-source-item video_source_wrap_embedded" style="display: <?php echo $videoSource === 'embedded' ? 'block' : 'none'; ?>;">
149
- <textarea name="video[source_embedded]" placeholder="<?php _e( 'Place your embedded code here', 'tutor' ); ?>"><?php
150
- echo tutor_utils()->avalue_dot( 'source_embedded', $video );
151
- ?></textarea>
152
  </div>
153
  </div>
154
  </div>
37
  'title' => __( 'Embedded', 'tutor' ),
38
  'icon' => 'code',
39
  ),
40
+ 'shortcode' => array(
41
+ 'title' => __( '[/] Shortcode', 'tutor' ),
42
+ 'icon' => '',
43
+ ),
44
  );
45
 
46
  $supported_sources = tutor_utils()->get_option( 'supported_video_sources', $video_sources );
136
  </div>
137
 
138
  <div class="video-metabox-source-item video_source_wrap_external_url" style="display: <?php echo $videoSource === 'external_url' ? 'block' : 'none'; ?>;">
139
+ <input type="text" name="video[source_external_url]" value="<?php echo tutor_utils()->avalue_dot( 'source_external_url', $video ); ?>" placeholder="<?php _e( 'External Video URL', 'tutor' ); ?>">
140
+ </div>
141
+
142
+ <div class="video-metabox-source-item video_source_wrap_shortcode" style="display: <?php echo $videoSource === 'shortcode' ? 'block' : 'none'; ?>;">
143
+ <input type="text" name="video[source_shortcode]" value="<?php echo tutor_utils()->avalue_dot( 'source_shortcode', $video ); ?>" placeholder="<?php _e( 'Shortcode', 'tutor' ); ?>">
144
  </div>
145
 
146
  <div class="video-metabox-source-item video_source_wrap_youtube" style="display: <?php echo $videoSource === 'youtube' ? 'block' : 'none'; ?>;">
147
  <input type="text" name="video[source_youtube]" value="<?php echo tutor_utils()->avalue_dot( 'source_youtube', $video ); ?>" placeholder="<?php _e( 'YouTube Video URL', 'tutor' ); ?>" data-youtube_api_key="<?php echo tutils()->get_option( 'lesson_video_duration_youtube_api_key', '' ); ?>">
148
  </div>
149
+
150
  <div class="video-metabox-source-item video_source_wrap_vimeo" style="display: <?php echo $videoSource === 'vimeo' ? 'block' : 'none'; ?>;">
151
  <input type="text" name="video[source_vimeo]" value="<?php echo tutor_utils()->avalue_dot( 'source_vimeo', $video ); ?>" placeholder="<?php _e( 'Vimeo Video URL', 'tutor' ); ?>">
152
  </div>
153
+
154
  <div class="video-metabox-source-item video_source_wrap_embedded" style="display: <?php echo $videoSource === 'embedded' ? 'block' : 'none'; ?>;">
155
+ <textarea name="video[source_embedded]" placeholder="<?php _e( 'Place your embedded code here', 'tutor' ); ?>"><?php echo tutor_utils()->avalue_dot( 'source_embedded', $video ); ?></textarea>
 
 
156
  </div>
157
  </div>
158
  </div>
views/modal/question_answer_edit_form.php CHANGED
@@ -25,7 +25,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
25
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
26
  <div class="tutor-quiz-builder-row">
27
  <div class="tutor-quiz-builder-col">
28
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
29
  </div>
30
  </div>
31
  </div>
@@ -35,7 +35,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
35
  <div class="tutor-quiz-builder-row">
36
  <div class="tutor-quiz-builder-col">
37
  <div class="tutor-media-upload-wrap">
38
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>">
39
  <div class="tutor-media-preview">
40
  <a href="javascript:;" class="tutor-media-upload-btn">
41
  <?php
@@ -59,19 +59,19 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
59
  <div class="tutor-quiz-builder-row">
60
  <div class="tutor-quiz-builder-col auto-width">
61
  <label>
62
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text" <?php echo $answer_view_format ? checked( 'text', $answer_view_format ) : 'checked'; ?>>
63
  <?php _e( 'Only text', 'tutor' ); ?>
64
  </label>
65
  </div>
66
  <div class="tutor-quiz-builder-col auto-width">
67
  <label>
68
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="image" <?php echo checked( 'image', $answer_view_format ); ?>>
69
  <?php _e( 'Only Image', 'tutor' ); ?>
70
  </label>
71
  </div>
72
  <div class="tutor-quiz-builder-col auto-width">
73
  <label>
74
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text_image" <?php echo checked( 'text_image', $answer_view_format ); ?> >
75
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
76
  </label>
77
  </div>
@@ -84,7 +84,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
84
  <h4><?php _e( 'Question Title', 'tutor' ); ?></h4>
85
  <div class="tutor-quiz-builder-row">
86
  <div class="tutor-quiz-builder-col">
87
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
88
  </div>
89
  </div>
90
  <p class="help">
@@ -96,7 +96,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
96
  <h4><?php _e( 'Correct Answer(s)', 'tutor' ); ?></h4>
97
  <div class="tutor-quiz-builder-row">
98
  <div class="tutor-quiz-builder-col">
99
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_two_gap_match]" value="<?php echo esc_attr( $answer_two_gap_match ); ?>">
100
  </div>
101
  </div>
102
  <p class="help"><?php _e( 'Separate multiple answer by pipe <b>( | )</b> , 1 answer per variable assigned in question', 'tutor' ); ?></p>
@@ -110,7 +110,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
110
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
111
  <div class="tutor-quiz-builder-row">
112
  <div class="tutor-quiz-builder-col">
113
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
114
  </div>
115
  </div>
116
  </div>
@@ -118,7 +118,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
118
  <h4><?php _e( 'Matched Answer title', 'tutor' ); ?></h4>
119
  <div class="tutor-quiz-builder-row">
120
  <div class="tutor-quiz-builder-col">
121
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][matched_answer_title]" value="<?php echo esc_attr( $answer_two_gap_match ); ?>"/>
122
  </div>
123
  </div>
124
  </div>
@@ -128,7 +128,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
128
  <div class="tutor-quiz-builder-row">
129
  <div class="tutor-quiz-builder-col">
130
  <div class="tutor-media-upload-wrap">
131
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>"/>
132
  <div class="tutor-media-preview">
133
  <a href="javascript:;" class="tutor-media-upload-btn">
134
  <?php
@@ -153,19 +153,19 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
153
  <div class="tutor-quiz-builder-row">
154
  <div class="tutor-quiz-builder-col auto-width">
155
  <label>
156
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text" <?php echo $answer_view_format ? checked( 'text', $answer_view_format ) : 'checked'; ?>>
157
  <?php _e( 'Only text', 'tutor' ); ?>
158
  </label>
159
  </div>
160
  <div class="tutor-quiz-builder-col auto-width">
161
  <label>
162
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="image" <?php echo checked( 'image', $answer_view_format ); ?> >
163
  <?php _e( 'Only Image', 'tutor' ); ?>
164
  </label>
165
  </div>
166
  <div class="tutor-quiz-builder-col auto-width">
167
  <label>
168
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text_image" <?php echo checked( 'text_image', $answer_view_format ); ?> >
169
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
170
  </label>
171
  </div>
@@ -181,7 +181,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
181
  <div class="tutor-quiz-builder-row">
182
  <div class="tutor-quiz-builder-col">
183
  <div class="tutor-media-upload-wrap">
184
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>">
185
  <div class="tutor-media-preview">
186
  <a href="javascript:;" class="tutor-media-upload-btn">
187
  <?php
@@ -205,7 +205,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
205
  <h4><?php _e( 'Image matched text', 'tutor' ); ?></h4>
206
  <div class="tutor-quiz-builder-row">
207
  <div class="tutor-quiz-builder-col">
208
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
209
  </div>
210
  </div>
211
  </div> <!-- /.tutor-quiz-builder-group -->
@@ -218,7 +218,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
218
  <div class="tutor-quiz-builder-row">
219
  <div class="tutor-quiz-builder-col">
220
  <div class="tutor-media-upload-wrap">
221
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>">
222
  <div class="tutor-media-preview">
223
  <a href="javascript:;" class="tutor-media-upload-btn">
224
  <?php
@@ -242,7 +242,7 @@ $answer_two_gap_match = ! empty( $old_answer->answer_two_gap_match ) ? stripslas
242
  <h4><?php _e( 'Answer input value', 'tutor' ); ?></h4>
243
  <div class="tutor-quiz-builder-row">
244
  <div class="tutor-quiz-builder-col">
245
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
246
  </div>
247
  </div>
248
  <p class="help"><?php _e( 'The answers that students enter should match with this text. Write in <strong>small caps</strong>', 'tutor' ); ?></p>
25
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
26
  <div class="tutor-quiz-builder-row">
27
  <div class="tutor-quiz-builder-col">
28
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
29
  </div>
30
  </div>
31
  </div>
35
  <div class="tutor-quiz-builder-row">
36
  <div class="tutor-quiz-builder-col">
37
  <div class="tutor-media-upload-wrap">
38
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>">
39
  <div class="tutor-media-preview">
40
  <a href="javascript:;" class="tutor-media-upload-btn">
41
  <?php
59
  <div class="tutor-quiz-builder-row">
60
  <div class="tutor-quiz-builder-col auto-width">
61
  <label>
62
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text" <?php echo $answer_view_format ? checked( 'text', $answer_view_format ) : 'checked'; ?>>
63
  <?php _e( 'Only text', 'tutor' ); ?>
64
  </label>
65
  </div>
66
  <div class="tutor-quiz-builder-col auto-width">
67
  <label>
68
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="image" <?php echo checked( 'image', $answer_view_format ); ?>>
69
  <?php _e( 'Only Image', 'tutor' ); ?>
70
  </label>
71
  </div>
72
  <div class="tutor-quiz-builder-col auto-width">
73
  <label>
74
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text_image" <?php echo checked( 'text_image', $answer_view_format ); ?> >
75
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
76
  </label>
77
  </div>
84
  <h4><?php _e( 'Question Title', 'tutor' ); ?></h4>
85
  <div class="tutor-quiz-builder-row">
86
  <div class="tutor-quiz-builder-col">
87
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
88
  </div>
89
  </div>
90
  <p class="help">
96
  <h4><?php _e( 'Correct Answer(s)', 'tutor' ); ?></h4>
97
  <div class="tutor-quiz-builder-row">
98
  <div class="tutor-quiz-builder-col">
99
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_two_gap_match]" value="<?php echo esc_attr( $answer_two_gap_match ); ?>">
100
  </div>
101
  </div>
102
  <p class="help"><?php _e( 'Separate multiple answer by pipe <b>( | )</b> , 1 answer per variable assigned in question', 'tutor' ); ?></p>
110
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
111
  <div class="tutor-quiz-builder-row">
112
  <div class="tutor-quiz-builder-col">
113
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
114
  </div>
115
  </div>
116
  </div>
118
  <h4><?php _e( 'Matched Answer title', 'tutor' ); ?></h4>
119
  <div class="tutor-quiz-builder-row">
120
  <div class="tutor-quiz-builder-col">
121
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][matched_answer_title]" value="<?php echo esc_attr( $answer_two_gap_match ); ?>"/>
122
  </div>
123
  </div>
124
  </div>
128
  <div class="tutor-quiz-builder-row">
129
  <div class="tutor-quiz-builder-col">
130
  <div class="tutor-media-upload-wrap">
131
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>"/>
132
  <div class="tutor-media-preview">
133
  <a href="javascript:;" class="tutor-media-upload-btn">
134
  <?php
153
  <div class="tutor-quiz-builder-row">
154
  <div class="tutor-quiz-builder-col auto-width">
155
  <label>
156
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text" <?php echo $answer_view_format ? checked( 'text', $answer_view_format ) : 'checked'; ?>>
157
  <?php _e( 'Only text', 'tutor' ); ?>
158
  </label>
159
  </div>
160
  <div class="tutor-quiz-builder-col auto-width">
161
  <label>
162
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="image" <?php echo checked( 'image', $answer_view_format ); ?> >
163
  <?php _e( 'Only Image', 'tutor' ); ?>
164
  </label>
165
  </div>
166
  <div class="tutor-quiz-builder-col auto-width">
167
  <label>
168
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text_image" <?php echo checked( 'text_image', $answer_view_format ); ?> >
169
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
170
  </label>
171
  </div>
181
  <div class="tutor-quiz-builder-row">
182
  <div class="tutor-quiz-builder-col">
183
  <div class="tutor-media-upload-wrap">
184
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>">
185
  <div class="tutor-media-preview">
186
  <a href="javascript:;" class="tutor-media-upload-btn">
187
  <?php
205
  <h4><?php _e( 'Image matched text', 'tutor' ); ?></h4>
206
  <div class="tutor-quiz-builder-row">
207
  <div class="tutor-quiz-builder-col">
208
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
209
  </div>
210
  </div>
211
  </div> <!-- /.tutor-quiz-builder-group -->
218
  <div class="tutor-quiz-builder-row">
219
  <div class="tutor-quiz-builder-col">
220
  <div class="tutor-media-upload-wrap">
221
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="<?php echo esc_attr( $image_id ); ?>">
222
  <div class="tutor-media-preview">
223
  <a href="javascript:;" class="tutor-media-upload-btn">
224
  <?php
242
  <h4><?php _e( 'Answer input value', 'tutor' ); ?></h4>
243
  <div class="tutor-quiz-builder-row">
244
  <div class="tutor-quiz-builder-col">
245
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="<?php echo esc_attr( $answer_title ); ?>">
246
  </div>
247
  </div>
248
  <p class="help"><?php _e( 'The answers that students enter should match with this text. Write in <strong>small caps</strong>', 'tutor' ); ?></p>
views/modal/question_answer_form.php CHANGED
@@ -18,11 +18,11 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
18
  <div class="tutor-quiz-builder-row">
19
  <div class="tutor-quiz-builder-col auto-width">
20
  <label>
21
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][true_false]" value="true" checked="checked">
22
  <?php _e( 'True', 'tutor' ); ?>
23
  </label>
24
  <label>
25
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][true_false]" value="false">
26
  <?php _e( 'False', 'tutor' ); ?>
27
  </label>
28
  </div>
@@ -38,7 +38,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
38
  <div class="tutor-quiz-builder-row">
39
  <div class="tutor-quiz-builder-col">
40
  <div class="quiz-modal-field-wrap">
41
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="">
42
  </div>
43
  </div>
44
  </div>
@@ -50,7 +50,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
50
  <div class="tutor-quiz-builder-row">
51
  <div class="tutor-quiz-builder-col">
52
  <div class="tutor-media-upload-wrap">
53
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="">
54
  <div class="tutor-media-preview">
55
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
56
  </div>
@@ -67,19 +67,19 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
67
  <div class="tutor-quiz-builder-row">
68
  <div class="tutor-quiz-builder-col auto-width">
69
  <label>
70
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text" checked="checked">
71
  <?php _e( 'Only text', 'tutor' ); ?>
72
  </label>
73
  </div>
74
  <div class="tutor-quiz-builder-col auto-width">
75
  <label>
76
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="image">
77
  <?php _e( 'Only Image', 'tutor' ); ?>
78
  </label>
79
  </div>
80
  <div class="tutor-quiz-builder-col auto-width">
81
  <label>
82
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text_image">
83
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
84
  </label>
85
  </div>
@@ -93,7 +93,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
93
  <h4><?php _e( 'Question Title', 'tutor' ); ?></h4>
94
  <div class="tutor-quiz-builder-row">
95
  <div class="tutor-quiz-builder-col">
96
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="">
97
  </div>
98
  </div>
99
  <p class="help"><?php _e( 'Please make sure to use the <strong>{dash}</strong> variable in your question title to show the blanks in your question. You can use multiple <strong>{dash}</strong> variables in one question.', 'tutor' ); ?></p>
@@ -103,7 +103,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
103
  <h4><?php _e( 'Correct Answer(s)', 'tutor' ); ?></h4>
104
  <div class="tutor-quiz-builder-row">
105
  <div class="tutor-quiz-builder-col">
106
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_two_gap_match]" value="">
107
  </div>
108
  </div>
109
  <p class="help"><?php _e( 'Separate multiple answers by a vertical bar <strong>|</strong>. 1 answer per <strong>{dash}</strong> variable is defined in the question. Example: Apple | Banana | Orange', 'tutor' ); ?></p>
@@ -118,7 +118,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
118
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
119
  <div class="tutor-quiz-builder-row">
120
  <div class="tutor-quiz-builder-col">
121
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="">
122
  </div>
123
  </div>
124
  </div> <!-- /.tutor-quiz-builder-group -->
@@ -127,7 +127,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
127
  <h4><?php _e( 'Matched Answer title', 'tutor' ); ?></h4>
128
  <div class="tutor-quiz-builder-row">
129
  <div class="tutor-quiz-builder-col">
130
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][matched_answer_title]" value="">
131
  </div>
132
  </div>
133
  <p class="help"></p>
@@ -141,7 +141,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
141
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
142
  <div class="tutor-quiz-builder-row">
143
  <div class="tutor-quiz-builder-col">
144
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="">
145
  </div>
146
  </div>
147
  <p class="help"></p>
@@ -150,7 +150,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
150
  <h4><?php _e( 'Matched Answer title', 'tutor' ); ?></h4>
151
  <div class="tutor-quiz-builder-row">
152
  <div class="tutor-quiz-builder-col">
153
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][matched_answer_title]" value="">
154
  </div>
155
  </div>
156
  <p class="help"></p>
@@ -161,7 +161,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
161
  <div class="tutor-quiz-builder-row">
162
  <div class="tutor-quiz-builder-col">
163
  <div class="tutor-media-upload-wrap">
164
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="">
165
  <div class="tutor-media-preview">
166
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
167
  </div>
@@ -177,19 +177,19 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
177
  <div class="tutor-quiz-builder-row">
178
  <div class="tutor-quiz-builder-col auto-width">
179
  <label>
180
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text" checked="checked">
181
  <?php _e( 'Only text', 'tutor' ); ?>
182
  </label>
183
  </div>
184
  <div class="tutor-quiz-builder-col auto-width">
185
  <label>
186
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="image">
187
  <?php _e( 'Only Image', 'tutor' ); ?>
188
  </label>
189
  </div>
190
  <div class="tutor-quiz-builder-col auto-width">
191
  <label>
192
- <input type="radio" name="quiz_answer[<?php echo $question_id; ?>][answer_view_format]" value="text_image">
193
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
194
  </label>
195
  </div>
@@ -206,7 +206,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
206
  <div class="tutor-quiz-builder-row">
207
  <div class="tutor-quiz-builder-col">
208
  <div class="tutor-media-upload-wrap">
209
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="">
210
  <div class="tutor-media-preview">
211
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
212
  </div>
@@ -221,7 +221,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
221
  <h4><?php _e( 'Image matched text', 'tutor' ); ?></h4>
222
  <div class="tutor-quiz-builder-row">
223
  <div class="tutor-quiz-builder-col">
224
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="">
225
  </div>
226
  </div>
227
  </div> <!-- /.tutor-quiz-builder-group -->
@@ -236,7 +236,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
236
  <div class="tutor-quiz-builder-row">
237
  <div class="tutor-quiz-builder-col">
238
  <div class="tutor-media-upload-wrap">
239
- <input type="hidden" name="quiz_answer[<?php echo $question_id; ?>][image_id]" value="">
240
  <div class="tutor-media-preview">
241
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
242
  </div>
@@ -252,7 +252,7 @@ if ( $question_type === 'open_ended' || $question_type === 'short_answer' ) {
252
  <h4><?php _e( 'Answer input value', 'tutor' ); ?></h4>
253
  <div class="tutor-quiz-builder-row">
254
  <div class="tutor-quiz-builder-col">
255
- <input type="text" name="quiz_answer[<?php echo $question_id; ?>][answer_title]" value="">
256
  </div>
257
  </div>
258
  <p class="help"><?php _e( 'The answers that students enter should match with this text. Write in <strong>small caps</strong>', 'tutor' ); ?></p>
18
  <div class="tutor-quiz-builder-row">
19
  <div class="tutor-quiz-builder-col auto-width">
20
  <label>
21
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][true_false]" value="true" checked="checked">
22
  <?php _e( 'True', 'tutor' ); ?>
23
  </label>
24
  <label>
25
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][true_false]" value="false">
26
  <?php _e( 'False', 'tutor' ); ?>
27
  </label>
28
  </div>
38
  <div class="tutor-quiz-builder-row">
39
  <div class="tutor-quiz-builder-col">
40
  <div class="quiz-modal-field-wrap">
41
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="">
42
  </div>
43
  </div>
44
  </div>
50
  <div class="tutor-quiz-builder-row">
51
  <div class="tutor-quiz-builder-col">
52
  <div class="tutor-media-upload-wrap">
53
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="">
54
  <div class="tutor-media-preview">
55
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
56
  </div>
67
  <div class="tutor-quiz-builder-row">
68
  <div class="tutor-quiz-builder-col auto-width">
69
  <label>
70
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text" checked="checked">
71
  <?php _e( 'Only text', 'tutor' ); ?>
72
  </label>
73
  </div>
74
  <div class="tutor-quiz-builder-col auto-width">
75
  <label>
76
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="image">
77
  <?php _e( 'Only Image', 'tutor' ); ?>
78
  </label>
79
  </div>
80
  <div class="tutor-quiz-builder-col auto-width">
81
  <label>
82
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text_image">
83
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
84
  </label>
85
  </div>
93
  <h4><?php _e( 'Question Title', 'tutor' ); ?></h4>
94
  <div class="tutor-quiz-builder-row">
95
  <div class="tutor-quiz-builder-col">
96
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="">
97
  </div>
98
  </div>
99
  <p class="help"><?php _e( 'Please make sure to use the <strong>{dash}</strong> variable in your question title to show the blanks in your question. You can use multiple <strong>{dash}</strong> variables in one question.', 'tutor' ); ?></p>
103
  <h4><?php _e( 'Correct Answer(s)', 'tutor' ); ?></h4>
104
  <div class="tutor-quiz-builder-row">
105
  <div class="tutor-quiz-builder-col">
106
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_two_gap_match]" value="">
107
  </div>
108
  </div>
109
  <p class="help"><?php _e( 'Separate multiple answers by a vertical bar <strong>|</strong>. 1 answer per <strong>{dash}</strong> variable is defined in the question. Example: Apple | Banana | Orange', 'tutor' ); ?></p>
118
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
119
  <div class="tutor-quiz-builder-row">
120
  <div class="tutor-quiz-builder-col">
121
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="">
122
  </div>
123
  </div>
124
  </div> <!-- /.tutor-quiz-builder-group -->
127
  <h4><?php _e( 'Matched Answer title', 'tutor' ); ?></h4>
128
  <div class="tutor-quiz-builder-row">
129
  <div class="tutor-quiz-builder-col">
130
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][matched_answer_title]" value="">
131
  </div>
132
  </div>
133
  <p class="help"></p>
141
  <h4><?php _e( 'Answer title', 'tutor' ); ?></h4>
142
  <div class="tutor-quiz-builder-row">
143
  <div class="tutor-quiz-builder-col">
144
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="">
145
  </div>
146
  </div>
147
  <p class="help"></p>
150
  <h4><?php _e( 'Matched Answer title', 'tutor' ); ?></h4>
151
  <div class="tutor-quiz-builder-row">
152
  <div class="tutor-quiz-builder-col">
153
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][matched_answer_title]" value="">
154
  </div>
155
  </div>
156
  <p class="help"></p>
161
  <div class="tutor-quiz-builder-row">
162
  <div class="tutor-quiz-builder-col">
163
  <div class="tutor-media-upload-wrap">
164
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="">
165
  <div class="tutor-media-preview">
166
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
167
  </div>
177
  <div class="tutor-quiz-builder-row">
178
  <div class="tutor-quiz-builder-col auto-width">
179
  <label>
180
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text" checked="checked">
181
  <?php _e( 'Only text', 'tutor' ); ?>
182
  </label>
183
  </div>
184
  <div class="tutor-quiz-builder-col auto-width">
185
  <label>
186
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="image">
187
  <?php _e( 'Only Image', 'tutor' ); ?>
188
  </label>
189
  </div>
190
  <div class="tutor-quiz-builder-col auto-width">
191
  <label>
192
+ <input type="radio" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_view_format]" value="text_image">
193
  <?php _e( 'Text &amp; Image both', 'tutor' ); ?>
194
  </label>
195
  </div>
206
  <div class="tutor-quiz-builder-row">
207
  <div class="tutor-quiz-builder-col">
208
  <div class="tutor-media-upload-wrap">
209
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="">
210
  <div class="tutor-media-preview">
211
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
212
  </div>
221
  <h4><?php _e( 'Image matched text', 'tutor' ); ?></h4>
222
  <div class="tutor-quiz-builder-row">
223
  <div class="tutor-quiz-builder-col">
224
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="">
225
  </div>
226
  </div>
227
  </div> <!-- /.tutor-quiz-builder-group -->
236
  <div class="tutor-quiz-builder-row">
237
  <div class="tutor-quiz-builder-col">
238
  <div class="tutor-media-upload-wrap">
239
+ <input type="hidden" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][image_id]" value="">
240
  <div class="tutor-media-preview">
241
  <a href="javascript:;" class="tutor-media-upload-btn"><i class="tutor-icon-image1"></i></a>
242
  </div>
252
  <h4><?php _e( 'Answer input value', 'tutor' ); ?></h4>
253
  <div class="tutor-quiz-builder-row">
254
  <div class="tutor-quiz-builder-col">
255
+ <input type="text" name="quiz_answer[<?php echo esc_attr( $question_id ); ?>][answer_title]" value="">
256
  </div>
257
  </div>
258
  <p class="help"><?php _e( 'The answers that students enter should match with this text. Write in <strong>small caps</strong>', 'tutor' ); ?></p>
views/modal/question_form.php CHANGED
@@ -20,7 +20,7 @@ $settings = maybe_unserialize( $question->question_settings );
20
  <h4><?php _e( 'Write your question here', 'tutor' ); ?></h4>
21
  <div class="tutor-quiz-builder-row">
22
  <div class="tutor-quiz-builder-col">
23
- <input type="text" name="tutor_quiz_question[<?php echo $question_id; ?>][question_title]" placeholder="<?php esc_attr_e( 'Type your question here', 'tutor' ); ?>" value="<?php echo htmlspecialchars( stripslashes( $question->question_title ) ); ?>">
24
  </div>
25
  </div>
26
  </div>
@@ -33,7 +33,7 @@ $settings = maybe_unserialize( $question->question_settings );
33
  <div class="select-header">
34
  <span class="lead-option"> <i class="tutor-icon-yes-no"></i> <?php _e( 'True or False', 'tutor' ); ?> </span>
35
  <span class="select-dropdown"><i class="tutor-icon-light-down"></i> </span>
36
- <input type="hidden" class="tutor_select_value_holder" name="tutor_quiz_question[<?php echo $question_id; ?>][question_type]" value="" >
37
  </div>
38
 
39
  <?php $question_types = tutor_utils()->get_question_types(); ?>
@@ -67,14 +67,14 @@ $settings = maybe_unserialize( $question->question_settings );
67
  <div class="tutor-quiz-builder-row">
68
  <div class="tutor-quiz-builder-col auto-width">
69
  <label class="btn-switch">
70
- <input type="checkbox" value="1" name="tutor_quiz_question[<?php echo $question_id; ?>][answer_required]" <?php checked( '1', tutor_utils()->avalue_dot( 'answer_required', $settings ) ); ?> />
71
  <div class="btn-slider btn-round"></div>
72
  </label>
73
  <span><?php _e( 'Answer Required', 'tutor' ); ?></span>
74
  </div>
75
  <div class="tutor-quiz-builder-col auto-width">
76
  <label class="btn-switch">
77
- <input type="checkbox" value="1" name="tutor_quiz_question[<?php echo $question_id; ?>][randomize_question]" <?php checked( '1', tutor_utils()->avalue_dot( 'randomize_question', $settings ) ); ?> />
78
  <div class="btn-slider btn-round"></div>
79
  </label>
80
  <span><?php _e( 'Randomize', 'tutor' ); ?></span>
@@ -86,7 +86,7 @@ $settings = maybe_unserialize( $question->question_settings );
86
  <h4><?php _e( 'Point(s) for this answer', 'tutor' ); ?></h4>
87
  <div class="tutor-quiz-builder-row">
88
  <div class="tutor-quiz-builder-col">
89
- <input type="text" name="tutor_quiz_question[<?php echo $question_id; ?>][question_mark]" placeholder="<?php esc_attr_e( 'set the mark ex. 10', 'tutor' ); ?>" value="<?php echo esc_attr( $question->question_mark ); ?>">
90
  </div>
91
  </div>
92
  </div>
@@ -95,7 +95,7 @@ $settings = maybe_unserialize( $question->question_settings );
95
  <div class="tutor-quiz-builder-row">
96
  <div class="tutor-quiz-builder-col auto-width">
97
  <label class="btn-switch">
98
- <input type="checkbox" value="1" name="tutor_quiz_question[<?php echo $question_id; ?>][show_question_mark]" <?php checked( '1', tutor_utils()->avalue_dot( 'show_question_mark', $settings ) ); ?> />
99
  <div class="btn-slider btn-round"></div>
100
  </label>
101
  <span><?php _e( 'Display Points', 'tutor' ); ?></span>
@@ -107,7 +107,7 @@ $settings = maybe_unserialize( $question->question_settings );
107
  <h4><?php _e( 'Description', 'tutor' ); ?> <span>(<?php _e( 'Optional', 'tutor' ); ?>)</span></h4>
108
  <div class="tutor-quiz-builder-row">
109
  <div class="tutor-quiz-builder-col">
110
- <textarea name="tutor_quiz_question[<?php echo $question_id; ?>][question_description]"><?php echo esc_textarea( stripslashes( $question->question_description ) ); ?></textarea>
111
  </div>
112
  </div>
113
  </div>
20
  <h4><?php _e( 'Write your question here', 'tutor' ); ?></h4>
21
  <div class="tutor-quiz-builder-row">
22
  <div class="tutor-quiz-builder-col">
23
+ <input type="text" name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][question_title]" placeholder="<?php esc_attr_e( 'Type your question here', 'tutor' ); ?>" value="<?php echo htmlspecialchars( stripslashes( $question->question_title ) ); ?>">
24
  </div>
25
  </div>
26
  </div>
33
  <div class="select-header">
34
  <span class="lead-option"> <i class="tutor-icon-yes-no"></i> <?php _e( 'True or False', 'tutor' ); ?> </span>
35
  <span class="select-dropdown"><i class="tutor-icon-light-down"></i> </span>
36
+ <input type="hidden" class="tutor_select_value_holder" name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][question_type]" value="" >
37
  </div>
38
 
39
  <?php $question_types = tutor_utils()->get_question_types(); ?>
67
  <div class="tutor-quiz-builder-row">
68
  <div class="tutor-quiz-builder-col auto-width">
69
  <label class="btn-switch">
70
+ <input type="checkbox" value="1" name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][answer_required]" <?php checked( '1', tutor_utils()->avalue_dot( 'answer_required', $settings ) ); ?> />
71
  <div class="btn-slider btn-round"></div>
72
  </label>
73
  <span><?php _e( 'Answer Required', 'tutor' ); ?></span>
74
  </div>
75
  <div class="tutor-quiz-builder-col auto-width">
76
  <label class="btn-switch">
77
+ <input type="checkbox" value="1" name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][randomize_question]" <?php checked( '1', tutor_utils()->avalue_dot( 'randomize_question', $settings ) ); ?> />
78
  <div class="btn-slider btn-round"></div>
79
  </label>
80
  <span><?php _e( 'Randomize', 'tutor' ); ?></span>
86
  <h4><?php _e( 'Point(s) for this answer', 'tutor' ); ?></h4>
87
  <div class="tutor-quiz-builder-row">
88
  <div class="tutor-quiz-builder-col">
89
+ <input type="text" name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][question_mark]" placeholder="<?php esc_attr_e( 'set the mark ex. 10', 'tutor' ); ?>" value="<?php echo esc_attr( $question->question_mark ); ?>">
90
  </div>
91
  </div>
92
  </div>
95
  <div class="tutor-quiz-builder-row">
96
  <div class="tutor-quiz-builder-col auto-width">
97
  <label class="btn-switch">
98
+ <input type="checkbox" value="1" name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][show_question_mark]" <?php checked( '1', tutor_utils()->avalue_dot( 'show_question_mark', $settings ) ); ?> />
99
  <div class="btn-slider btn-round"></div>
100
  </label>
101
  <span><?php _e( 'Display Points', 'tutor' ); ?></span>
107
  <h4><?php _e( 'Description', 'tutor' ); ?> <span>(<?php _e( 'Optional', 'tutor' ); ?>)</span></h4>
108
  <div class="tutor-quiz-builder-row">
109
  <div class="tutor-quiz-builder-col">
110
+ <textarea name="tutor_quiz_question[<?php echo esc_attr( $question_id ); ?>][question_description]"><?php echo esc_textarea( stripslashes( $question->question_description ) ); ?></textarea>
111
  </div>
112
  </div>
113
  </div>
views/pages/view_attempt.php CHANGED
@@ -1,5 +1,5 @@
1
  <?php
2
- $attempt_id = (int) sanitize_text_field( $_GET['attempt_id'] );
3
  $attempt = tutor_utils()->get_attempt( $attempt_id );
4
 
5
  if ( ! $attempt ) {
@@ -104,7 +104,7 @@ $user = get_userdata( $user_id );
104
  $output .= __( $attempt->earned_marks . ' out of ' . $attempt->total_marks, 'tutor' );
105
  $output .= '<span>, ' . $marks_earned_text . ' (' . $earned_percentage . '%)</span>';
106
  }
107
- echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
108
  ?>
109
  </h4>
110
  </div>
@@ -132,49 +132,40 @@ $user = get_userdata( $user_id );
132
  ?>
133
  </h4>
134
  </div>
135
-
136
  </div>
137
-
138
  </div>
139
-
140
  </div>
141
 
142
-
143
  <div class="attempt-review-notice-wrap">
144
  <?php
145
- if ( is_array( $answers ) && count( $answers ) ) {
146
- $question_no = 0;
147
- $required_review = array();
148
-
149
- foreach ( $answers as $answer ) {
150
- $question_no++;
151
- if ( $answer->question_type === 'open_ended' || $answer->question_type === 'short_answer' ) {
152
- $required_review[] = $question_no;
 
153
  }
154
- }
155
 
156
- if ( count( $required_review ) ) {
157
- echo '<p class="attempt-review-notice"> <i class="tutor-icon-warning-2"></i> <strong>' . __( 'Reminder:', 'tutor' ) . ' </strong> ' . sprintf( __( 'Please review answers for question no. %s', 'tutor' ), implode( ', ', $required_review ) ) . '</p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  }
159
- }
160
-
161
-
162
- ?>
163
-
164
- <?php
165
- if ( (bool) $attempt->is_manually_reviewed ) {
166
- ?>
167
- <p class="attempt-review-at">
168
- <span class="circle-arrow">&circlearrowright; </span>
169
- <strong>
170
- <?php _e( 'Manually reviewed at: ', 'tutor' ); ?>
171
- </strong>
172
- <?php echo date_i18n( get_option( 'date_format' ), strtotime( $attempt->manually_reviewed_at ) ) . ' ' . date_i18n( get_option( 'time_format' ), strtotime( $attempt->manually_reviewed_at ) ); ?>
173
- </p>
174
- <?php
175
- }
176
  ?>
177
-
178
  </div>
179
 
180
  <?php
1
  <?php
2
+ $attempt_id = (int) $_GET['attempt_id'];
3
  $attempt = tutor_utils()->get_attempt( $attempt_id );
4
 
5
  if ( ! $attempt ) {
104
  $output .= __( $attempt->earned_marks . ' out of ' . $attempt->total_marks, 'tutor' );
105
  $output .= '<span>, ' . $marks_earned_text . ' (' . $earned_percentage . '%)</span>';
106
  }
107
+ echo $output;
108
  ?>
109
  </h4>
110
  </div>
132
  ?>
133
  </h4>
134
  </div>
 
135
  </div>
 
136
  </div>
 
137
  </div>
138
 
 
139
  <div class="attempt-review-notice-wrap">
140
  <?php
141
+ if ( is_array( $answers ) && count( $answers ) ) {
142
+ $question_no = 0;
143
+ $required_review = array();
144
+
145
+ foreach ( $answers as $answer ) {
146
+ $question_no++;
147
+ if ( $answer->question_type === 'open_ended' || $answer->question_type === 'short_answer' ) {
148
+ $required_review[] = $question_no;
149
+ }
150
  }
 
151
 
152
+ if ( count( $required_review ) ) {
153
+ echo '<p class="attempt-review-notice"> <i class="tutor-icon-warning-2"></i> <strong>' . __( 'Reminder:', 'tutor' ) . ' </strong> ' . sprintf( __( 'Please review answers for question no. %s', 'tutor' ), implode( ', ', $required_review ) ) . '</p>';
154
+ }
155
+ }
156
+
157
+ if ( (bool) $attempt->is_manually_reviewed ) {
158
+ ?>
159
+ <p class="attempt-review-at">
160
+ <span class="circle-arrow">&circlearrowright; </span>
161
+ <strong>
162
+ <?php _e( 'Manually reviewed at: ', 'tutor' ); ?>
163
+ </strong>
164
+ <?php echo date_i18n( get_option( 'date_format' ), strtotime( $attempt->manually_reviewed_at ) ) . ' ' . date_i18n( get_option( 'time_format' ), strtotime( $attempt->manually_reviewed_at ) ); ?>
165
+ </p>
166
+ <?php
167
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  ?>
 
169
  </div>
170
 
171
  <?php