Addons.php
1 day ago
Admin.php
1 day ago
Ajax.php
1 day ago
Announcements.php
1 day ago
Assets.php
1 day ago
Backend_Page_Trait.php
1 year ago
BaseController.php
1 year ago
Config.php
1 day ago
Container.php
11 months ago
Course.php
1 day ago
Course_Embed.php
3 years ago
Course_Filter.php
1 day ago
Course_List.php
1 day ago
Course_Settings_Tabs.php
1 day ago
Course_Widget.php
1 year ago
Custom_Validation.php
1 day ago
Dashboard.php
1 day ago
Earnings.php
9 months ago
FormHandler.php
1 day ago
Frontend.php
1 day ago
Gutenberg.php
1 year ago
Icon.php
1 day ago
Input.php
1 day ago
Instructor.php
1 day ago
Instructors_List.php
1 day ago
Lesson.php
1 day ago
Options_V2.php
1 day ago
Permalink.php
1 day ago
Post_types.php
2 days ago
Private_Course_Access.php
1 day ago
Q_And_A.php
1 day ago
Question_Answers_List.php
11 months ago
Quiz.php
1 day ago
QuizBuilder.php
1 day ago
Quiz_Attempts_List.php
1 day ago
RestAPI.php
2 years ago
Reviews.php
1 day ago
Rewrite_Rules.php
2 years ago
SampleCourse.php
1 day ago
Shortcode.php
1 day ago
Singleton.php
1 year ago
Student.php
1 day ago
Students_List.php
1 year ago
Taxonomies.php
1 year ago
Template.php
1 day ago
Theme_Compatibility.php
3 years ago
Tools.php
1 year ago
Tools_V2.php
4 weeks ago
Tutor.php
1 day ago
TutorEDD.php
1 day ago
Tutor_Base.php
2 years ago
Tutor_Setup.php
1 day ago
Upgrader.php
1 day ago
User.php
1 day ago
UserPreference.php
1 day ago
Utils.php
1 day ago
Video_Stream.php
3 years ago
WhatsNew.php
10 months ago
Withdraw.php
1 day ago
Withdraw_Requests_List.php
11 months ago
WooCommerce.php
1 day ago
Config.php
129 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Tutor Config |
| 4 | * |
| 5 | * @package Tutor |
| 6 | * @author Themeum <support@themeum.com> |
| 7 | * @link https://themeum.com |
| 8 | * @since 3.7.0 |
| 9 | */ |
| 10 | |
| 11 | namespace TUTOR; |
| 12 | |
| 13 | defined( 'ABSPATH' ) || exit; |
| 14 | |
| 15 | /** |
| 16 | * Config Class |
| 17 | * |
| 18 | * @since 3.7.0 |
| 19 | * |
| 20 | * @property string $path Plugin file path. |
| 21 | * @property string $url Plugin url. |
| 22 | * @property string $basename Plugin base name. |
| 23 | * @property string $basepath Plugin base path. |
| 24 | * @property string $version Plugin version. |
| 25 | * @property string $assets_url Assets url. |
| 26 | * @property string $template_path Template path. |
| 27 | * @property string $icon_dir Icons dir. |
| 28 | * @property string $v2_img_dir Version 2 images dir. |
| 29 | * @property string $current_url Current url. |
| 30 | * @property string $nonce_action Nonce action. |
| 31 | * @property string $nonce Nonce. |
| 32 | * @property bool $has_pro Has pro plugin. |
| 33 | * @property string $course_post_type Course post type. |
| 34 | * @property string $bundle_post_type Bundle post type. |
| 35 | * @property string $lesson_post_type Lesson post type. |
| 36 | * @property string $instructor_role Instructor role. |
| 37 | * @property string $topics_post_type Topics post type. |
| 38 | * @property string $announcement_post_type Announcement post type. |
| 39 | * @property string $assignment_post_type Assignment post type. |
| 40 | * @property string $enrollment_post_type Enrollment post type. |
| 41 | * @property string $quiz_post_type Quiz post type. |
| 42 | * @property string $zoom_post_type Zoom post type. |
| 43 | * @property string $meet_post_type Meet post type. |
| 44 | */ |
| 45 | class Config extends Singleton { |
| 46 | /** |
| 47 | * All settings. |
| 48 | * |
| 49 | * @since 3.7.0 |
| 50 | * |
| 51 | * @var array |
| 52 | */ |
| 53 | private array $settings = array(); |
| 54 | |
| 55 | /** |
| 56 | * Constructor function |
| 57 | * |
| 58 | * @since 3.7.0 |
| 59 | */ |
| 60 | public function __construct() { |
| 61 | $path = plugin_dir_path( TUTOR_FILE ); |
| 62 | $has_pro = defined( 'TUTOR_PRO_VERSION' ); |
| 63 | |
| 64 | // Prepare the basepath. |
| 65 | $home_url = get_home_url(); |
| 66 | $parsed = parse_url( $home_url ); |
| 67 | $base_path = ( is_array( $parsed ) && isset( $parsed['path'] ) ) ? $parsed['path'] : '/'; |
| 68 | $base_path = rtrim( $base_path, '/' ) . '/'; |
| 69 | // Get current URL. |
| 70 | $current_url = trailingslashit( $home_url ) . substr( $_SERVER['REQUEST_URI'], strlen( $base_path ) );//phpcs:ignore |
| 71 | |
| 72 | $this->settings = array( |
| 73 | 'path' => $path, |
| 74 | 'url' => plugin_dir_url( TUTOR_FILE ), |
| 75 | 'assets_url' => plugin_dir_url( TUTOR_FILE ) . 'assets/', |
| 76 | 'icon_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/icons/', |
| 77 | 'v2_img_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/', |
| 78 | 'current_url' => $current_url, |
| 79 | 'basename' => plugin_basename( TUTOR_FILE ), |
| 80 | 'basepath' => $base_path, |
| 81 | 'version' => TUTOR_VERSION, |
| 82 | 'nonce_action' => 'tutor_nonce_action', |
| 83 | 'nonce' => '_tutor_nonce', |
| 84 | 'course_post_type' => apply_filters( 'tutor_course_post_type', 'courses' ), |
| 85 | 'bundle_post_type' => apply_filters( 'tutor_bundle_post_type', 'course-bundle' ), |
| 86 | 'lesson_post_type' => apply_filters( 'tutor_lesson_post_type', 'lesson' ), |
| 87 | 'instructor_role' => apply_filters( 'tutor_instructor_role', 'tutor_instructor' ), |
| 88 | 'template_path' => apply_filters( 'tutor_template_path', 'tutor/' ), |
| 89 | 'has_pro' => apply_filters( 'tutor_has_pro', $has_pro ), |
| 90 | // @since v2.0.6. |
| 91 | 'topics_post_type' => apply_filters( 'tutor_topics_post_type', 'topics' ), |
| 92 | 'announcement_post_type' => apply_filters( 'tutor_announcement_post_type', 'tutor_announcements' ), |
| 93 | 'assignment_post_type' => apply_filters( 'tutor_assignment_post_type', 'tutor_assignments' ), |
| 94 | 'enrollment_post_type' => apply_filters( 'tutor_enrollment_post_type', 'tutor_enrolled' ), |
| 95 | 'quiz_post_type' => apply_filters( 'tutor_quiz_post_type', 'tutor_quiz' ), |
| 96 | 'zoom_post_type' => apply_filters( 'tutor_zoom_meeting_post_type', 'tutor_zoom_meeting' ), |
| 97 | 'meet_post_type' => apply_filters( 'tutor_google_meeting_post_type', 'tutor-google-meet' ), |
| 98 | ); |
| 99 | } |
| 100 | |
| 101 | /** |
| 102 | * Get a config value as property. |
| 103 | * |
| 104 | * @since 3.7.0 |
| 105 | * |
| 106 | * @param string $key key. |
| 107 | * |
| 108 | * @return mixed |
| 109 | */ |
| 110 | public function __get( string $key ) { |
| 111 | if ( ! array_key_exists( $key, $this->settings ) ) { |
| 112 | tutor_log( "Warning: Config property {$key} does not exist." ); |
| 113 | return null; |
| 114 | } |
| 115 | return $this->settings[ $key ]; |
| 116 | } |
| 117 | |
| 118 | /** |
| 119 | * Get all settings |
| 120 | * |
| 121 | * @since 3.7.0 |
| 122 | * |
| 123 | * @return array |
| 124 | */ |
| 125 | public function all(): array { |
| 126 | return $this->settings; |
| 127 | } |
| 128 | } |
| 129 |