PluginProbe
The WP Remote WordPress Plugin / 5.88
The WP Remote WordPress Plugin v5.88
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
← All changes | plugin.php +98 -16 5.725.88 View file →
@@ -4,10 +4,12 @@
4 4 Plugin URI: https://wpremote.com
5 5 Description: Manage your WordPress site with <a href="https://wpremote.com/">WP Remote</a>.
6 6 Author: WP Remote
7 7 Author URI: https://wpremote.com
8 -Version: 5.72
8 +Version: 5.88
9 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)
10 12 */
11 13
12 14 /* Copyright 2017 WP Remote (email : support@wpremote.com)
13 15
@@ -39,8 +41,10 @@
39 41 require_once dirname( __FILE__ ) . '/account.php';
40 42 require_once dirname( __FILE__ ) . '/helper.php';
41 43 require_once dirname( __FILE__ ) . '/wp_2fa/wp_2fa.php';
42 44
45 +require_once dirname( __FILE__ ) . '/wp_login_whitelabel.php';
46 +
43 47 ##WPCACHEMODULE##
44 48
45 49
46 50 $bvsettings = new WPRWPSettings();
@@ -55,10 +59,12 @@
55 59 register_uninstall_hook(__FILE__, array('WPRWPAction', 'uninstall'));
56 60 register_activation_hook(__FILE__, array($wp_action, 'activate'));
57 61 register_deactivation_hook(__FILE__, array($wp_action, 'deactivate'));
58 62
63 +
59 64 add_action('wp_footer', array($wp_action, 'footerHandler'), 100);
60 65 add_action('wpr_clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
66 +
61 67 ##SOADDUNINSTALLACTION##
62 68
63 69 ##DISABLE_OTHER_OPTIMIZATION_PLUGINS##
64 70
@@ -76,8 +82,9 @@
76 82 add_action('admin_menu', array($wpadmin, 'menu'));
77 83 }
78 84 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
79 85 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
86 + ##POPUP_ON_DEACTIVATION##
80 87 add_action('admin_notices', array($wpadmin, 'activateWarning'));
81 88 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
82 89 ##ALPURGECACHEFUNCTION##
83 90 ##ALADMINMENU##
@@ -82,10 +89,10 @@
82 89 ##ALPURGECACHEFUNCTION##
83 90 ##ALADMINMENU##
84 91 }
85 92
86 -if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
87 - $_REQUEST = array_merge($_GET, $_POST);
93 +if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) { // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
94 + $_REQUEST = array_merge($_GET, $_POST); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
88 95 }
89 96
90 97 #Service active check
91 98 if ($bvinfo->config != false) {
@@ -111,27 +118,28 @@
111 118 }
112 119
113 120 }
114 121
115 -if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) {
122 +if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
116 123 require_once dirname( __FILE__ ) . '/callback/base.php';
117 124 require_once dirname( __FILE__ ) . '/callback/response.php';
118 125 require_once dirname( __FILE__ ) . '/callback/request.php';
119 126 require_once dirname( __FILE__ ) . '/recover.php';
120 127
121 - $pubkey = WPRAccount::sanitizeKey($_REQUEST['pubkey']);
128 + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Recommended
129 + $pubkey = isset($_REQUEST['pubkey']) ? WPRAccount::sanitizeKey(wp_unslash($_REQUEST['pubkey'])) : '';
122 130
123 - if (array_key_exists('rcvracc', $_REQUEST)) {
131 + if (array_key_exists('rcvracc', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
124 132 $account = WPRRecover::find($bvsettings, $pubkey);
125 133 } else {
126 134 $account = WPRAccount::find($bvsettings, $pubkey);
127 135 }
128 136
129 - $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings);
137 + $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
130 138 $response = new BVCallbackResponse($request->bvb64cksize);
131 139
132 140 if ($request->authenticate() === 1) {
133 - if (array_key_exists('bv_ignr_frm_cptch', $_REQUEST)) {
141 + if (array_key_exists('bv_ignr_frm_cptch', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
134 142 #handling of Contact Forms 7
135 143 add_filter('wpcf7_skip_spam_check', '__return_true', PHP_INT_MAX, 2);
136 144
137 145 #handling of Formidable plugin
@@ -160,15 +168,77 @@
160 168 if (isset($apbct) && is_object($apbct)) {
161 169 $apbct->settings['forms__contact_forms_test'] = 0;
162 170 }
163 171 });
164 - } else {
172 +
173 + #handling of Akismet plugin
174 + add_filter('akismet_get_api_key', function($api_key) { return null; }, PHP_INT_MAX);
175 +
176 + #handling of Formidable Antispam
177 + add_filter('frm_validate_entry', function($errors, $values, $args) {
178 + unset($errors['spam']); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
179 + return $errors;
180 + }, PHP_INT_MAX, 3);
181 +
182 + #handling of Gravity Form plugin
183 + if (isset($_REQUEST['form_id'])) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
184 + $form_id = sanitize_text_field(wp_unslash($_REQUEST['form_id'])); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
185 + add_filter('gform_pre_validation_' . $form_id, function($form) {
186 + foreach ($form['fields'] as &$field) {
187 + if ($field['type'] === 'captcha') {
188 + $field->visibility = 'hidden';
189 + }
190 + }
191 + return $form;
192 + }, PHP_INT_MAX, 1);
193 + }
194 +
195 + #handling of Ninja Form plugin
196 + add_filter('ninja_forms_pre_validate_field_settings', function($field_settings) {
197 + if (isset($field_settings['type']) && in_array($field_settings['type'], array('recaptcha', 'spam'), true)) {
198 + $field_settings['type'] = null;
199 + }
200 +
201 + return $field_settings;
202 + }, PHP_INT_MAX, 1);
203 +
204 + add_filter('ninja_forms_run_action_type_recaptcha', '__return_false', PHP_INT_MAX);
205 + }
206 +
207 + if (array_key_exists('bv_ignr_eml', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
208 + #handling of Gravity Form's Email
209 + add_filter('gform_pre_send_email', function($email_data) {
210 + $email_data['abort_email'] = true;
211 + return $email_data;
212 + }, PHP_INT_MAX, 1);
213 +
214 + #handling of Ninja Form's Email
215 + add_filter('ninja_forms_action_email_send', '__return_true', PHP_INT_MAX);
216 +
217 + #handling of Contact Form 7's Email
218 + add_action('wpcf7_before_send_mail', function($contact_form, &$abort) { $abort = true; }, PHP_INT_MAX, 2);
219 +
220 + #handling of WP Form's Email
221 + add_filter('wpforms_entry_email', '__return_false', PHP_INT_MAX);
222 +
223 + #handling of Formidable Form's Email
224 + add_filter('frm_send_email', '__return_false', PHP_INT_MAX);
225 +
226 + #handling of Forminator Form's Email
227 + foreach (['poll', 'quiz', 'form'] as $type) {
228 + add_filter("forminator_{$type}_get_admin_email_recipients", function() {
229 + return [];
230 + }, PHP_INT_MAX);
231 + }
232 + }
233 +
234 + if (!array_key_exists('bv_ignr_frm_cptch', $_REQUEST) && !array_key_exists('bv_ignr_eml', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
165 235 define('WPRBASEPATH', plugin_dir_path(__FILE__));
166 236
167 237
168 238 require_once dirname( __FILE__ ) . '/callback/handler.php';
169 239
170 - $params = $request->processParams($_REQUEST);
240 + $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
171 241 if ($params === false) {
172 242 $response->terminate($request->corruptedParamsResp());
173 243 }
174 244 $request->params = $params;
@@ -189,16 +259,16 @@
189 259 if ($bvinfo->hasValidDBVersion()) {
190 260 if ($bvinfo->isProtectModuleEnabled()) {
191 261 require_once dirname( __FILE__ ) . '/protect/protect.php';
192 262 //For backward compatibility.
193 - WPRProtect_V572::$settings = new WPRWPSettings();
194 - WPRProtect_V572::$db = new WPRWPDb();
195 - WPRProtect_V572::$info = new WPRInfo(WPRProtect_V572::$settings);
263 + WPRProtect_V588::$settings = new WPRWPSettings();
264 + WPRProtect_V588::$db = new WPRWPDb();
265 + WPRProtect_V588::$info = new WPRInfo(WPRProtect_V588::$settings);
196 266
197 - add_action('wpr_clear_pt_config', array('WPRProtect_V572', 'uninstall'));
267 + add_action('wpr_clear_pt_config', array('WPRProtect_V588', 'uninstall'));
198 268
199 269 if ($bvinfo->isActivePlugin()) {
200 - WPRProtect_V572::init(WPRProtect_V572::MODE_WP);
270 + WPRProtect_V588::init(WPRProtect_V588::MODE_WP);
201 271 }
202 272 }
203 273
204 274 if ($bvinfo->isDynSyncModuleEnabled()) {
@@ -234,5 +304,17 @@
234 304 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
235 305 }
236 306
237 307 ##THIRDPARTYCACHINGMODULE##
238 -}
308 +}
309 +
310 +if (WPRWP2FA::isEnabled($bvsettings)) {
311 + $wp_2fa = new WPRWP2FA();
312 + $wp_2fa->init();
313 +}
314 +
315 +if (!empty($bvinfo->getLPWhitelabelInfo())) {
316 + $wp_login_whitelabel = new WPRWPLoginWhitelabel();
317 + $wp_login_whitelabel->init();
318 +}
319 +
320 +add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));