PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 5.0.3.2
MainWP Dashboard: Self-hosted WordPress Management for Agencies v5.0.3.2
6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1 6.0.12 6.0.11 4.6.0.1 5.0 5.0.1 5.0.2 5.0.3 5.0.3.1 5.0.3.2 5.1 5.1.1 5.2 5.2.1 5.2.2 5.3 5.3.1 All 152 releases
mainwp / mainwp.php

mainwp.php in MainWP Dashboard: Self-hosted WordPress Management for Agencies 5.0.3.2, at mainwp.php

134 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: MainWP Dashboard
4 *
5 * Description: Manage all of your WP sites, even those on different servers, from one central dashboard that runs off of your own self-hosted WordPress install.
6 *
7 * Author: MainWP
8 * Author URI: https://mainwp.com
9 * Plugin URI: https://mainwp.com/
10 * Text Domain: mainwp
11 * Version: 5.0.3.2
12 *
13 * @package MainWP/Dashboard
14 *
15 * @uses \MainWP\Dashboard\MainWP_System
16 */
17
18 if ( ! defined( 'MAINWP_PLUGIN_FILE' ) ) {
19
20 /**
21 * Define MainWP Dashboard Plugin absolute full path and filename of this file.
22 *
23 * @const ( string ) Defined MainWP dashboard file path.
24 * @source https://github.com/mainwp/mainwp/blob/master/mainwp.php
25 */
26 define( 'MAINWP_PLUGIN_FILE', __FILE__ );
27 }
28
29 if ( ! defined( 'MAINWP_PLUGIN_DIR' ) ) {
30 /**
31 * Define MainWP Dashboard Plugin Directory.
32 *
33 * @const ( string ) Defined MainWP Dashboard Plugin Directory.
34 * @source https://github.com/mainwp/mainwp/blob/master/mainwp.php
35 */
36 define( 'MAINWP_PLUGIN_DIR', plugin_dir_path( MAINWP_PLUGIN_FILE ) );
37 }
38
39 if ( ! defined( 'MAINWP_PLUGIN_URL' ) ) {
40 /**
41 * Define MainWP Child Dashboard URL.
42 *
43 * @const ( string ) Defined MainWP Dashboard Plugin URL.
44 * @source https://github.com/mainwp/mainwp/blob/master/mainwp.php
45 */
46 define( 'MAINWP_PLUGIN_URL', plugin_dir_url( MAINWP_PLUGIN_FILE ) );
47 }
48
49
50 if ( ! defined( 'MAINWP_MODULES_DIR' ) ) {
51 define( 'MAINWP_MODULES_DIR', MAINWP_PLUGIN_DIR . 'modules' . DIRECTORY_SEPARATOR );
52 }
53
54 if ( ! defined( 'MAINWP_MODULES_URL' ) ) {
55 define( 'MAINWP_MODULES_URL', MAINWP_PLUGIN_URL . 'modules/' );
56 }
57
58
59 /**
60 * Define enable Log Module.
61 */
62 if ( ! defined( 'MAINWP_MODULE_LOG_ENABLED' ) ) {
63 define( 'MAINWP_MODULE_LOG_ENABLED', true );
64 }
65
66 if ( ! defined( 'MAINWP_MODULE_COST_TRACKER_ENABLED' ) ) {
67 define( 'MAINWP_MODULE_COST_TRACKER_ENABLED', true );
68 }
69
70 if ( ! defined( 'MAINWP_MODULE_API_BACKUPS_ENABLED' ) ) {
71 define( 'MAINWP_MODULE_API_BACKUPS_ENABLED', true );
72 }
73
74
75 // Version information from WordPress.
76 require_once ABSPATH . 'wp-includes' . DIRECTORY_SEPARATOR . 'version.php';
77
78 if ( ! function_exists( 'mainwp_autoload' ) ) {
79
80 /**
81 * Autoloader for all classes, pages & widgets
82 *
83 * @param string $class_name Folder name class|pages|widgets.
84 * @return require_once $autoload_path;
85 */
86 function mainwp_autoload( $class_name ) {
87
88 if ( 0 === strpos( $class_name, 'MainWP\Dashboard' ) ) {
89 // trip the namespace prefix: MainWP\Dashboard\ .
90 $class_name = substr( $class_name, 17 );
91 }
92
93 if ( 0 !== strpos( $class_name, 'MainWP_' ) ) {
94 return;
95 }
96
97 $autoload_types = array(
98 'class' => 'class',
99 'pages' => 'page',
100 'widgets' => 'widget',
101 );
102
103 foreach ( $autoload_types as $type => $prefix ) {
104 $autoload_dir = \trailingslashit( __DIR__ . DIRECTORY_SEPARATOR . $type );
105 $autoload_path = sprintf( '%s%s-%s.php', $autoload_dir, $prefix, strtolower( str_replace( '_', '-', $class_name ) ) );
106
107 if ( file_exists( $autoload_path ) ) {
108 require_once $autoload_path;
109 break;
110 }
111 }
112 }
113 }
114
115 spl_autoload_register( 'mainwp_autoload' );
116
117 require_once MAINWP_PLUGIN_DIR . 'includes' . DIRECTORY_SEPARATOR . 'functions.php';
118 require_once MAINWP_PLUGIN_DIR . 'includes' . DIRECTORY_SEPARATOR . 'compatible.php';
119 require_once MAINWP_PLUGIN_DIR . 'includes' . DIRECTORY_SEPARATOR . 'class-mainwp-includes.php';
120
121 // Detect if secupress_scanner is running.
122 $mainwp_is_secupress_scanning = false;
123 if ( ! empty( $_GET ) && isset( $_GET['test'] ) && isset( $_GET['action'] ) && 'secupress_scanner' === $_GET['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized.Recommended
124 $mainwp_is_secupress_scanning = true;
125 }
126
127 // Fix a conflict with SecuPress plugin.
128 if ( ! $mainwp_is_secupress_scanning ) {
129 $mainWP = new MainWP\Dashboard\MainWP_System( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . plugin_basename( __FILE__ ) );
130 register_activation_hook( __FILE__, array( $mainWP, 'activation' ) );
131 register_deactivation_hook( __FILE__, array( $mainWP, 'deactivation' ) );
132 add_action( 'plugins_loaded', array( $mainWP, 'update_install' ) );
133 }
134