PluginProbe
The WP Remote WordPress Plugin / 6.44
The WP Remote WordPress Plugin v6.44
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 6.44, at plugin.php

232 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: 6.44
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
88 ##MG_AJAX_ACTIONS##
89 ##POPUP_ON_DEACTIVATION##
90 add_action('admin_notices', array($wpadmin, 'activateWarning'));
91 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
92 ##ALPURGECACHEFUNCTION##
93 ##ALADMINMENU##
94 }
95
96 if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
97 $_REQUEST = array_merge($_GET, $_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
98 }
99
100 #Service active check
101 if ($bvinfo->config != false) {
102 add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
103 }
104
105 require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
106 WPRWPPHPErrorMonitoring::init();
107
108 if ($bvinfo->hasValidDBVersion()) {
109 if ($bvinfo->isServiceActive('activity_log')) {
110 require_once dirname( __FILE__ ) . '/wp_actlog.php';
111 $bvconfig = $bvinfo->config;
112 $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
113 $actlog->init();
114 }
115
116 ##MAINTENANCEMODULE##
117 }
118
119 if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
120 require_once dirname( __FILE__ ) . '/callback/base.php';
121 require_once dirname( __FILE__ ) . '/callback/response.php';
122 require_once dirname( __FILE__ ) . '/callback/request.php';
123 require_once dirname( __FILE__ ) . '/recover.php';
124
125 $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
126 $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
127 $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
128
129 if (isset($rcvracc)) {
130 $account = WPRRecover::find($bvsettings, $pubkey);
131 } else {
132 $account = WPRAccount::find($bvsettings, $pubkey);
133 }
134
135 $request = new WPRCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
136 $response = new WPRCallbackResponse($request->bvb64cksize);
137
138 if ($request->authenticate() === 1) {
139 $bv_frm_tstng = WPRHelper::getRawParam('REQUEST', 'bv_frm_tstng');
140 if (isset($bv_frm_tstng)) {
141 require_once dirname(__FILE__) . '/form_testing/form_testing.php';
142 $form_testing = new BVFormTesting($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
143 $form_testing->init();
144
145 } else {
146 define('WPRBASEPATH', plugin_dir_path(__FILE__));
147
148
149 require_once dirname( __FILE__ ) . '/callback/handler.php';
150
151 $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
152 if ($params === false) {
153 $response->terminate($request->corruptedParamsResp());
154 }
155 $request->params = $params;
156 $callback_handler = new WPRCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
157 if ($request->is_afterload) {
158 add_action('wp_loaded', array($callback_handler, 'execute'));
159 } else if ($request->is_admin_ajax) {
160 add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
161 add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
162 } else {
163 $callback_handler->execute();
164 }
165 }
166 } else {
167 $response->terminate($request->authFailedResp());
168 }
169 } else {
170 if ($bvinfo->hasValidDBVersion()) {
171 if ($bvinfo->isProtectModuleEnabled()) {
172 require_once dirname( __FILE__ ) . '/protect/protect.php';
173 //For backward compatibility.
174 WPRProtect_V644::$settings = new WPRWPSettings();
175 WPRProtect_V644::$db = new WPRWPDb();
176 WPRProtect_V644::$info = new WPRInfo(WPRProtect_V644::$settings);
177
178 add_action('wpr_clear_pt_config', array('WPRProtect_V644', 'uninstall'));
179
180 if ($bvinfo->isActivePlugin()) {
181 WPRProtect_V644::init(WPRProtect_V644::MODE_WP);
182 }
183 }
184
185 if ($bvinfo->isDynSyncModuleEnabled()) {
186 require_once dirname( __FILE__ ) . '/wp_dynsync.php';
187 $bvconfig = $bvinfo->config;
188 $dynsync = new BVWPDynSync($bvdb, $bvsettings, $bvconfig['dynsync']);
189 $dynsync->init();
190 }
191
192 }
193 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
194 if (isset($bv_site_settings)) {
195 if (isset($bv_site_settings['wp_auto_updates'])) {
196 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
197 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
198 add_filter('auto_update_core', '__return_false' );
199 }
200 if (array_key_exists('block_auto_update_theme', $wp_auto_updates)) {
201 add_filter('auto_update_theme', '__return_false' );
202 add_filter('themes_auto_update_enabled', '__return_false' );
203 }
204 if (array_key_exists('block_auto_update_plugin', $wp_auto_updates)) {
205 add_filter('auto_update_plugin', '__return_false' );
206 add_filter('plugins_auto_update_enabled', '__return_false' );
207 }
208 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
209 add_filter('auto_update_translation', '__return_false' );
210 }
211 }
212 }
213
214 if (is_admin()) {
215 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
216 }
217
218 ##THIRDPARTYCACHINGMODULE##
219 }
220
221 if (WPRWP2FA::isEnabled($bvsettings)) {
222 $wp_2fa = new WPRWP2FA();
223 $wp_2fa->init();
224 }
225
226 if (!empty($bvinfo->getLPWhitelabelInfo())) {
227 $wp_login_whitelabel = new WPRWPLoginWhitelabel();
228 $wp_login_whitelabel->init();
229 }
230
231 add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));
232 ##PLUGIN_LOADED_MODULE##