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