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