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