Addons.php
4 years ago
Admin.php
4 years ago
Ajax.php
4 years ago
Assets.php
4 years ago
Course.php
4 years ago
Course_Filter.php
4 years ago
Course_Settings_Tabs.php
5 years ago
Course_Widget.php
5 years ago
Custom_Validation.php
5 years ago
Dashboard.php
5 years ago
Email.php
5 years ago
FormHandler.php
5 years ago
Frontend.php
5 years ago
Gutenberg.php
4 years ago
Instructor.php
4 years ago
Instructors_List.php
4 years ago
Lesson.php
4 years ago
Options.php
4 years ago
Post_types.php
4 years ago
Private_Course_Access.php
5 years ago
Q_and_A.php
5 years ago
Question_Answers_List.php
4 years ago
Quiz.php
4 years ago
Quiz_Attempts_List.php
4 years ago
RestAPI.php
5 years ago
Rewrite_Rules.php
4 years ago
Shortcode.php
4 years ago
Student.php
4 years ago
Students_List.php
4 years ago
Taxonomies.php
5 years ago
Template.php
4 years ago
Theme_Compatibility.php
5 years ago
Tools.php
5 years ago
Tutor.php
4 years ago
TutorEDD.php
5 years ago
Tutor_Base.php
5 years ago
Tutor_List_Table.php
4 years ago
Tutor_Setup.php
4 years ago
Upgrader.php
5 years ago
User.php
4 years ago
Utils.php
4 years ago
Video_Stream.php
5 years ago
Withdraw.php
5 years ago
Withdraw_Requests_List.php
4 years ago
WooCommerce.php
4 years ago
Course_Settings_Tabs.php
119 lines
| 1 | <?php |
| 2 | namespace TUTOR; |
| 3 | |
| 4 | if ( ! defined( 'ABSPATH' ) ) |
| 5 | exit; |
| 6 | |
| 7 | class Course_Settings_Tabs{ |
| 8 | |
| 9 | public $course_post_type = ''; |
| 10 | public $is_gutenberg_enable = false; |
| 11 | public $args = array(); |
| 12 | public $settings_meta = null; |
| 13 | |
| 14 | public function __construct() { |
| 15 | $this->course_post_type = tutor()->course_post_type; |
| 16 | $isGutenberg = apply_filters( 'use_block_editor_for_post_type', true, 'courses' ); |
| 17 | $this->is_gutenberg_enable = $isGutenberg; |
| 18 | |
| 19 | if ($isGutenberg){ |
| 20 | //MetaBox |
| 21 | add_action( 'add_meta_boxes', array($this, 'register_meta_box') ); |
| 22 | }else{ |
| 23 | add_action( 'edit_form_after_editor', array($this, 'display'), 10, 0 ); |
| 24 | } |
| 25 | add_action( 'tutor/frontend_course_edit/after/description', array($this, 'display'), 10, 0 ); |
| 26 | |
| 27 | add_action('tutor_save_course', array($this, 'save_course'), 10, 2); |
| 28 | } |
| 29 | |
| 30 | public function register_meta_box(){ |
| 31 | add_meta_box( 'course-settings', __( 'Course Settings', 'tutor' ), array($this, 'display'), $this->course_post_type, 'advanced', 'high' ); |
| 32 | } |
| 33 | |
| 34 | public function get_default_args(){ |
| 35 | $args = array( |
| 36 | 'general' => array( |
| 37 | 'label' => __('General', 'tutor'), |
| 38 | 'desc' => __('General Settings', 'tutor'), |
| 39 | 'icon_class' => ' tutor-icon-settings-1', |
| 40 | 'callback' => '', |
| 41 | 'fields' => array( |
| 42 | 'maximum_students' => array( |
| 43 | 'type' => 'number', |
| 44 | 'label' => __('Maximum Students', 'tutor'), |
| 45 | 'label_title' => __('Enable', 'tutor'), |
| 46 | 'default' => '0', |
| 47 | 'desc' => __('Number of students that can enrol in this course. Set 0 for no limits.', 'tutor'), |
| 48 | ), |
| 49 | ), |
| 50 | ), |
| 51 | ); |
| 52 | |
| 53 | return apply_filters('tutor_course_settings_tabs', $args); |
| 54 | } |
| 55 | |
| 56 | public function display(){ |
| 57 | global $post; |
| 58 | $this->args = $this->get_default_args(); |
| 59 | |
| 60 | $settings_meta = get_post_meta(get_the_ID(), '_tutor_course_settings', true); |
| 61 | $this->settings_meta = (array) maybe_unserialize($settings_meta); |
| 62 | |
| 63 | if (tutils()->count($this->args) && $post->post_type === $this->course_post_type) { |
| 64 | include tutor()->path . "views/metabox/course/settings-tabs.php"; |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | public function generate_field($fields = array()){ |
| 69 | if (tutils()->count($fields)){ |
| 70 | foreach ($fields as $field_key => $field){ |
| 71 | $type = tutils()->array_get('type', $field); |
| 72 | ?> |
| 73 | <div class="tutor-option-field-row tutor-field-row-<?php echo $type; ?>"> |
| 74 | <?php |
| 75 | if (isset($field['label'])){ |
| 76 | ?> |
| 77 | <div class="tutor-option-field-label"> |
| 78 | <label for=""><?php echo $field['label']; ?></label> |
| 79 | </div> |
| 80 | <?php |
| 81 | } |
| 82 | ?> |
| 83 | <div class="tutor-option-field tutor-field-<?php echo $type; ?>"> |
| 84 | <?php |
| 85 | $field['field_key'] = $field_key; |
| 86 | $this->field_type($field); |
| 87 | if (isset($field['desc'])){ |
| 88 | echo "<p class='desc'>{$field['desc']}</p>"; |
| 89 | } |
| 90 | ?> |
| 91 | </div> |
| 92 | </div> |
| 93 | <?php |
| 94 | } |
| 95 | } |
| 96 | } |
| 97 | |
| 98 | public function field_type($field = array()){ |
| 99 | include tutor()->path."views/metabox/course/field-types/{$field['type']}.php"; |
| 100 | } |
| 101 | |
| 102 | public function get($key = null, $default = false){ |
| 103 | return tutils()->array_get($key, $this->settings_meta, $default); |
| 104 | } |
| 105 | |
| 106 | /** |
| 107 | * @param $post_ID |
| 108 | * @param $post |
| 109 | * |
| 110 | * Fire when course saving... |
| 111 | */ |
| 112 | public function save_course($post_ID, $post){ |
| 113 | $_tutor_course_settings = tutils()->array_get('_tutor_course_settings', $_POST); |
| 114 | if (tutils()->count($_tutor_course_settings)){ |
| 115 | update_post_meta($post_ID, '_tutor_course_settings', $_tutor_course_settings); |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | } |