PluginProbe
The WP Remote WordPress Plugin / 5.92
The WP Remote WordPress Plugin v5.92
6.72 6.69 6.65 6.62 6.48 6.47 4.87 4.97 5.05 5.09 5.16 5.22 5.24 5.25 5.38 5.41 5.42 5.45 5.47 5.53 5.56 5.65 5.68 5.72 5.73 All 53 releases
wpremote / plugin.php

plugin.php in The WP Remote WordPress Plugin 5.92, at plugin.php

229 lines 8.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: WP Remote
4 Plugin URI: https://wpremote.com
5 Description: Manage your WordPress site with <a href="https://wpremote.com/">WP Remote</a>.
6 Author: WP Remote
7 Author URI: https://wpremote.com
8 Version: 5.92
9 Network: True
10 License: GPLv2 or later
11 License URI: [http://www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html)
12 */
13
14 /* Copyright 2017 WP Remote (email : support@wpremote.com)
15
16 This program is free software; you can redistribute it and/or modify
17 it under the terms of the GNU General Public License, version 2, as
18 published by the Free Software Foundation.
19
20 This program is distributed in the hope that it will be useful,
21 but WITHOUT ANY WARRANTY; without even the implied warranty of
22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 GNU General Public License for more details.
24
25 You should have received a copy of the GNU General Public License
26 along with this program; if not, write to the Free Software
27 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */
29
30 /* Global response array */
31
32 if (!defined('ABSPATH')) exit;
33 ##OLDWPR##
34
35 require_once dirname( __FILE__ ) . '/wp_settings.php';
36 require_once dirname( __FILE__ ) . '/wp_site_info.php';
37 require_once dirname( __FILE__ ) . '/wp_db.php';
38 require_once dirname( __FILE__ ) . '/wp_api.php';
39 require_once dirname( __FILE__ ) . '/wp_actions.php';
40 require_once dirname( __FILE__ ) . '/info.php';
41 require_once dirname( __FILE__ ) . '/account.php';
42 require_once dirname( __FILE__ ) . '/helper.php';
43 require_once dirname( __FILE__ ) . '/wp_file_system.php';
44 require_once dirname( __FILE__ ) . '/wp_2fa/wp_2fa.php';
45
46 require_once dirname( __FILE__ ) . '/wp_login_whitelabel.php';
47
48 ##WPCACHEMODULE##
49
50
51 $bvsettings = new WPRWPSettings();
52 $bvsiteinfo = new WPRWPSiteInfo();
53 $bvdb = new WPRWPDb();
54
55
56 $bvapi = new WPRWPAPI($bvsettings);
57 $bvinfo = new WPRInfo($bvsettings);
58 $wp_action = new WPRWPAction($bvsettings, $bvsiteinfo, $bvapi);
59
60 register_uninstall_hook(__FILE__, array('WPRWPAction', 'uninstall'));
61 register_activation_hook(__FILE__, array($wp_action, 'activate'));
62 register_deactivation_hook(__FILE__, array($wp_action, 'deactivate'));
63
64
65 add_action('wp_footer', array($wp_action, 'footerHandler'), 100);
66 add_action('wpr_clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
67
68 ##SOADDUNINSTALLACTION##
69
70 ##DISABLE_OTHER_OPTIMIZATION_PLUGINS##
71
72 ##WPCLIMODULE##
73 if (is_admin()) {
74 require_once dirname( __FILE__ ) . '/wp_admin.php';
75 $wpadmin = new WPRWPAdmin($bvsettings, $bvsiteinfo);
76 add_action('admin_init', array($wpadmin, 'initHandler'));
77 add_filter('all_plugins', array($wpadmin, 'initWhitelabel'));
78 add_filter('plugin_row_meta', array($wpadmin, 'hidePluginDetails'), 10, 2);
79 add_filter('debug_information', array($wpadmin, 'handlePluginHealthInfo'), 10, 1);
80 if ($bvsiteinfo->isMultisite()) {
81 add_action('network_admin_menu', array($wpadmin, 'menu'));
82 } else {
83 add_action('admin_menu', array($wpadmin, 'menu'));
84 }
85 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
86 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
87 ##POPUP_ON_DEACTIVATION##
88 add_action('admin_notices', array($wpadmin, 'activateWarning'));
89 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
90 ##ALPURGECACHEFUNCTION##
91 ##ALADMINMENU##
92 }
93
94 if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
95 $_REQUEST = array_merge($_GET, $_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
96 }
97
98 #Service active check
99 if ($bvinfo->config != false) {
100 add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
101 }
102
103 require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
104 WPRWPPHPErrorMonitoring::init();
105
106 if ($bvinfo->hasValidDBVersion()) {
107 if ($bvinfo->isServiceActive('activity_log')) {
108 require_once dirname( __FILE__ ) . '/wp_actlog.php';
109 $bvconfig = $bvinfo->config;
110 $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
111 $actlog->init();
112 }
113
114 ##MAINTENANCEMODULE##
115 }
116
117 if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
118 require_once dirname( __FILE__ ) . '/callback/base.php';
119 require_once dirname( __FILE__ ) . '/callback/response.php';
120 require_once dirname( __FILE__ ) . '/callback/request.php';
121 require_once dirname( __FILE__ ) . '/recover.php';
122
123 $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
124 $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
125 $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
126
127 if (isset($rcvracc)) {
128 $account = WPRRecover::find($bvsettings, $pubkey);
129 } else {
130 $account = WPRAccount::find($bvsettings, $pubkey);
131 }
132
133 $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
134 $response = new BVCallbackResponse($request->bvb64cksize);
135
136 if ($request->authenticate() === 1) {
137 $bv_frm_tstng = WPRHelper::getRawParam('REQUEST', 'bv_frm_tstng');
138 if (isset($bv_frm_tstng)) {
139 require_once dirname(__FILE__) . '/form_testing/form_testing.php';
140 $form_testing = new BVFormTesting($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
141 $form_testing->init();
142
143 } else {
144 define('WPRBASEPATH', plugin_dir_path(__FILE__));
145
146
147 require_once dirname( __FILE__ ) . '/callback/handler.php';
148
149 $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
150 if ($params === false) {
151 $response->terminate($request->corruptedParamsResp());
152 }
153 $request->params = $params;
154 $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
155 if ($request->is_afterload) {
156 add_action('wp_loaded', array($callback_handler, 'execute'));
157 } else if ($request->is_admin_ajax) {
158 add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
159 add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
160 } else {
161 $callback_handler->execute();
162 }
163 }
164 } else {
165 $response->terminate($request->authFailedResp());
166 }
167 } else {
168 if ($bvinfo->hasValidDBVersion()) {
169 if ($bvinfo->isProtectModuleEnabled()) {
170 require_once dirname( __FILE__ ) . '/protect/protect.php';
171 //For backward compatibility.
172 WPRProtect_V592::$settings = new WPRWPSettings();
173 WPRProtect_V592::$db = new WPRWPDb();
174 WPRProtect_V592::$info = new WPRInfo(WPRProtect_V592::$settings);
175
176 add_action('wpr_clear_pt_config', array('WPRProtect_V592', 'uninstall'));
177
178 if ($bvinfo->isActivePlugin()) {
179 WPRProtect_V592::init(WPRProtect_V592::MODE_WP);
180 }
181 }
182
183 if ($bvinfo->isDynSyncModuleEnabled()) {
184 require_once dirname( __FILE__ ) . '/wp_dynsync.php';
185 $bvconfig = $bvinfo->config;
186 $dynsync = new BVWPDynSync($bvdb, $bvsettings, $bvconfig['dynsync']);
187 $dynsync->init();
188 }
189
190 }
191 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
192 if (isset($bv_site_settings)) {
193 if (isset($bv_site_settings['wp_auto_updates'])) {
194 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
195 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
196 add_filter('auto_update_core', '__return_false' );
197 }
198 if (array_key_exists('block_auto_update_theme', $wp_auto_updates)) {
199 add_filter('auto_update_theme', '__return_false' );
200 add_filter('themes_auto_update_enabled', '__return_false' );
201 }
202 if (array_key_exists('block_auto_update_plugin', $wp_auto_updates)) {
203 add_filter('auto_update_plugin', '__return_false' );
204 add_filter('plugins_auto_update_enabled', '__return_false' );
205 }
206 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
207 add_filter('auto_update_translation', '__return_false' );
208 }
209 }
210 }
211
212 if (is_admin()) {
213 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
214 }
215
216 ##THIRDPARTYCACHINGMODULE##
217 }
218
219 if (WPRWP2FA::isEnabled($bvsettings)) {
220 $wp_2fa = new WPRWP2FA();
221 $wp_2fa->init();
222 }
223
224 if (!empty($bvinfo->getLPWhitelabelInfo())) {
225 $wp_login_whitelabel = new WPRWPLoginWhitelabel();
226 $wp_login_whitelabel->init();
227 }
228
229 add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));