PluginProbe
The WP Remote WordPress Plugin / 4.86
The WP Remote WordPress Plugin v4.86
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 4.86, at plugin.php

193 lines 6.8 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: 4.86
9 Network: True
10 */
11
12 /* Copyright 2017 WP Remote (email : support@wpremote.com)
13
14 This program is free software; you can redistribute it and/or modify
15 it under the terms of the GNU General Public License, version 2, as
16 published by the Free Software Foundation.
17
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, write to the Free Software
25 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 */
27
28 /* Global response array */
29
30 if (!defined('ABSPATH')) exit;
31 ##OLDWPR##
32
33 require_once dirname( __FILE__ ) . '/wp_settings.php';
34 require_once dirname( __FILE__ ) . '/wp_site_info.php';
35 require_once dirname( __FILE__ ) . '/wp_db.php';
36 require_once dirname( __FILE__ ) . '/wp_api.php';
37 require_once dirname( __FILE__ ) . '/wp_actions.php';
38 require_once dirname( __FILE__ ) . '/info.php';
39 require_once dirname( __FILE__ ) . '/account.php';
40 ##WPCACHEMODULE##
41
42
43 $bvsettings = new WPRWPSettings();
44 $bvsiteinfo = new WPRWPSiteInfo();
45 $bvdb = new WPRWPDb();
46
47
48 $bvapi = new WPRWPAPI($bvsettings);
49 $bvinfo = new WPRInfo($bvsettings);
50 $wp_action = new WPRWPAction($bvsettings, $bvsiteinfo, $bvapi);
51
52 register_uninstall_hook(__FILE__, array('WPRWPAction', 'uninstall'));
53 register_activation_hook(__FILE__, array($wp_action, 'activate'));
54 register_deactivation_hook(__FILE__, array($wp_action, 'deactivate'));
55
56 add_action('wp_footer', array($wp_action, 'footerHandler'), 100);
57 add_action('clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
58 ##SOADDUNINSTALLACTION##
59
60 ##WPCLIMODULE##
61 if (is_admin()) {
62 require_once dirname( __FILE__ ) . '/wp_admin.php';
63 $wpadmin = new WPRWPAdmin($bvsettings, $bvsiteinfo);
64 add_action('admin_init', array($wpadmin, 'initHandler'));
65 add_filter('all_plugins', array($wpadmin, 'initBranding'));
66 add_filter('plugin_row_meta', array($wpadmin, 'hidePluginDetails'), 10, 2);
67 add_filter('debug_information', array($wpadmin, 'handlePluginHealthInfo'), 10, 1);
68 if ($bvsiteinfo->isMultisite()) {
69 add_action('network_admin_menu', array($wpadmin, 'menu'));
70 } else {
71 add_action('admin_menu', array($wpadmin, 'menu'));
72 }
73 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
74 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
75 add_action('admin_notices', array($wpadmin, 'activateWarning'));
76 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
77 ##ALPURGECACHEFUNCTION##
78 ##ALADMINMENU##
79 }
80
81 if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
82 $_REQUEST = array_merge($_GET, $_POST);
83 }
84
85 if ($bvinfo->hasValidDBVersion()) {
86 if ($bvinfo->isServiceActive('activity_log')) {
87 require_once dirname( __FILE__ ) . '/wp_actlog.php';
88 $bvconfig = $bvinfo->config;
89 $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
90 $actlog->init();
91 }
92
93 }
94
95 if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) {
96 require_once dirname( __FILE__ ) . '/callback/base.php';
97 require_once dirname( __FILE__ ) . '/callback/response.php';
98 require_once dirname( __FILE__ ) . '/callback/request.php';
99 require_once dirname( __FILE__ ) . '/recover.php';
100
101 $pubkey = WPRAccount::sanitizeKey($_REQUEST['pubkey']);
102
103 if (array_key_exists('rcvracc', $_REQUEST)) {
104 $account = WPRRecover::find($bvsettings, $pubkey);
105 } else {
106 $account = WPRAccount::find($bvsettings, $pubkey);
107 }
108
109 $request = new BVCallbackRequest($account, $_REQUEST);
110 $response = new BVCallbackResponse($request->bvb64cksize);
111
112 if ($account && (1 === $account->authenticate($request))) {
113 define('WPRBASEPATH', plugin_dir_path(__FILE__));
114
115
116 require_once dirname( __FILE__ ) . '/callback/handler.php';
117
118 $params = $request->processParams($_REQUEST);
119 if ($params === false) {
120 $resp = array(
121 "account_info" => $account->info(),
122 "request_info" => $request->info(),
123 "bvinfo" => $bvinfo->info(),
124 "statusmsg" => "BVPRMS_CORRUPTED"
125 );
126 $response->terminate($resp);
127 }
128 $request->params = $params;
129 $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
130 if ($request->is_afterload) {
131 add_action('wp_loaded', array($callback_handler, 'execute'));
132 } else if ($request->is_admin_ajax) {
133 add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
134 add_action('wp_ajax_nopriv_bvadm', array($callback_handler, 'bvAdmExecuteWithoutUser'));
135 } else {
136 $callback_handler->execute();
137 }
138 } else {
139 $resp = array(
140 "account_info" => $account ? $account->info() : array("error" => "ACCOUNT_NOT_FOUND"),
141 "request_info" => $request->info(),
142 "bvinfo" => $bvinfo->info(),
143 "statusmsg" => "FAILED_AUTH",
144 "api_pubkey" => substr(WPRAccount::getApiPublicKey($bvsettings), 0, 8),
145 "def_sigmatch" => substr(WPRAccount::getSigMatch($request, WPRRecover::getDefaultSecret($bvsettings)), 0, 8)
146 );
147 $response->terminate($resp);
148 }
149 } else {
150 if ($bvinfo->hasValidDBVersion()) {
151 if ($bvinfo->isProtectModuleEnabled()) {
152 require_once dirname( __FILE__ ) . '/protect/wp/protect.php';
153 $bvprotect = new BVProtect($bvdb, $bvsettings);
154 $bvprotect->init();
155 if ($bvinfo->isActivePlugin() && !(defined( 'WP_CLI' ) && WP_CLI)) {
156 $bvprotect->run();
157 }
158 }
159
160 if ($bvinfo->isDynSyncModuleEnabled()) {
161 require_once dirname( __FILE__ ) . '/wp_dynsync.php';
162 $bvconfig = $bvinfo->config;
163 $dynsync = new BVWPDynSync($bvdb, $bvsettings, $bvconfig['dynsync']);
164 $dynsync->init();
165 }
166
167 }
168 $bv_site_settings = $bvsettings->getOption('bv_site_settings');
169 if (isset($bv_site_settings)) {
170 if (isset($bv_site_settings['wp_auto_updates'])) {
171 $wp_auto_updates = $bv_site_settings['wp_auto_updates'];
172 if (array_key_exists('block_auto_update_core', $wp_auto_updates)) {
173 add_filter('auto_update_core', '__return_false' );
174 }
175 if (array_key_exists('block_auto_update_theme', $wp_auto_updates)) {
176 add_filter('auto_update_theme', '__return_false' );
177 add_filter('themes_auto_update_enabled', '__return_false' );
178 }
179 if (array_key_exists('block_auto_update_plugin', $wp_auto_updates)) {
180 add_filter('auto_update_plugin', '__return_false' );
181 add_filter('plugins_auto_update_enabled', '__return_false' );
182 }
183 if (array_key_exists('block_auto_update_translation', $wp_auto_updates)) {
184 add_filter('auto_update_translation', '__return_false' );
185 }
186 }
187 }
188
189 if (is_admin()) {
190 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
191 }
192
193 }