PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 5.4.0.20
MainWP Dashboard: Self-hosted WordPress Management for Agencies v5.4.0.20
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.4.0.20, at mainwp.php

135 lines 4.6 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.4.0.20
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'; // NOSONAR - WP compatible.
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; // NOSONAR - WP compatible.
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'; // NOSONAR -- WP compatible.
118 require_once MAINWP_PLUGIN_DIR . 'includes' . DIRECTORY_SEPARATOR . 'core-functions.php'; // NOSONAR -- WP compatible.
119 require_once MAINWP_PLUGIN_DIR . 'includes' . DIRECTORY_SEPARATOR . 'compatible.php'; // NOSONAR -- WP compatible.
120 require_once MAINWP_PLUGIN_DIR . 'includes' . DIRECTORY_SEPARATOR . 'class-mainwp-includes.php'; // NOSONAR -- WP compatible.
121
122 // Detect if secupress_scanner is running.
123 $mainwp_is_secupress_scanning = false;
124 if ( ! empty( $_GET ) && isset( $_GET['test'] ) && isset( $_GET['action'] ) && 'secupress_scanner' === $_GET['action'] ) { // phpcs:ignore WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized.Recommended
125 $mainwp_is_secupress_scanning = true;
126 }
127
128 // Fix a conflict with SecuPress plugin.
129 if ( ! $mainwp_is_secupress_scanning ) {
130 $mainWP = new MainWP\Dashboard\MainWP_System( WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . plugin_basename( __FILE__ ) );
131 register_activation_hook( __FILE__, array( $mainWP, 'activation' ) );
132 register_deactivation_hook( __FILE__, array( $mainWP, 'deactivation' ) );
133 add_action( 'plugins_loaded', array( $mainWP, 'update_install' ) );
134 }
135