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 +135 -15 5.455.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.45
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
@@ -37,8 +39,12 @@
37 39 require_once dirname( __FILE__ ) . '/wp_actions.php';
38 40 require_once dirname( __FILE__ ) . '/info.php';
39 41 require_once dirname( __FILE__ ) . '/account.php';
40 42 require_once dirname( __FILE__ ) . '/helper.php';
43 +require_once dirname( __FILE__ ) . '/wp_2fa/wp_2fa.php';
44 +
45 +require_once dirname( __FILE__ ) . '/wp_login_whitelabel.php';
46 +
41 47 ##WPCACHEMODULE##
42 48
43 49
44 50 $bvsettings = new WPRWPSettings();
@@ -53,10 +59,12 @@
53 59 register_uninstall_hook(__FILE__, array('WPRWPAction', 'uninstall'));
54 60 register_activation_hook(__FILE__, array($wp_action, 'activate'));
55 61 register_deactivation_hook(__FILE__, array($wp_action, 'deactivate'));
56 62
63 +
57 64 add_action('wp_footer', array($wp_action, 'footerHandler'), 100);
58 -add_action('clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
65 +add_action('wpr_clear_bv_services_config', array($wp_action, 'clear_bv_services_config'));
66 +
59 67 ##SOADDUNINSTALLACTION##
60 68
61 69 ##DISABLE_OTHER_OPTIMIZATION_PLUGINS##
62 70
@@ -74,8 +82,9 @@
74 82 add_action('admin_menu', array($wpadmin, 'menu'));
75 83 }
76 84 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
77 85 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
86 + ##POPUP_ON_DEACTIVATION##
78 87 add_action('admin_notices', array($wpadmin, 'activateWarning'));
79 88 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
80 89 ##ALPURGECACHEFUNCTION##
81 90 ##ALADMINMENU##
@@ -80,12 +89,20 @@
80 89 ##ALPURGECACHEFUNCTION##
81 90 ##ALADMINMENU##
82 91 }
83 92
84 -if ((array_key_exists('bvreqmerge', $_POST)) || (array_key_exists('bvreqmerge', $_GET))) {
85 - $_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
86 95 }
87 96
97 +#Service active check
98 +if ($bvinfo->config != false) {
99 + add_action('wpr_remove_bv_preload_include', array($wp_action, 'removeBVPreload'));
100 +}
101 +
102 +require_once dirname( __FILE__ ) . '/php_error_monitoring/monitoring.php';
103 +WPRWPPHPErrorMonitoring::init();
104 +
88 105 if ($bvinfo->hasValidDBVersion()) {
89 106 if ($bvinfo->isServiceActive('activity_log')) {
90 107 require_once dirname( __FILE__ ) . '/wp_actlog.php';
91 108 $bvconfig = $bvinfo->config;
@@ -101,27 +118,28 @@
101 118 }
102 119
103 120 }
104 121
105 -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
106 123 require_once dirname( __FILE__ ) . '/callback/base.php';
107 124 require_once dirname( __FILE__ ) . '/callback/response.php';
108 125 require_once dirname( __FILE__ ) . '/callback/request.php';
109 126 require_once dirname( __FILE__ ) . '/recover.php';
110 127
111 - $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'])) : '';
112 130
113 - if (array_key_exists('rcvracc', $_REQUEST)) {
131 + if (array_key_exists('rcvracc', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
114 132 $account = WPRRecover::find($bvsettings, $pubkey);
115 133 } else {
116 134 $account = WPRAccount::find($bvsettings, $pubkey);
117 135 }
118 136
119 - $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings);
137 + $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
120 138 $response = new BVCallbackResponse($request->bvb64cksize);
121 139
122 140 if ($request->authenticate() === 1) {
123 - 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
124 142 #handling of Contact Forms 7
125 143 add_filter('wpcf7_skip_spam_check', '__return_true', PHP_INT_MAX, 2);
126 144
127 145 #handling of Formidable plugin
@@ -128,15 +146,99 @@
128 146 add_filter('frm_is_field_hidden', '__return_true', PHP_INT_MAX, 3);
129 147
130 148 #handling of WP Forms plugin
131 149 add_filter('wpforms_process_bypass_captcha', '__return_true', PHP_INT_MAX, 3);
132 - } else {
150 +
151 + #handling of Forminator plugin
152 + if (defined('WP_PLUGIN_DIR')) {
153 + $abstractFrontActionFilePath = WP_PLUGIN_DIR . '/forminator/library/abstracts/abstract-class-front-action.php';
154 + $frontActionFilePath = WP_PLUGIN_DIR . '/forminator/library/modules/custom-forms/front/front-action.php';
155 +
156 + if (file_exists($abstractFrontActionFilePath) && file_exists($frontActionFilePath)) {
157 + require_once $abstractFrontActionFilePath;
158 + require_once $frontActionFilePath;
159 + if (class_exists('Forminator_CForm_Front_Action')) {
160 + Forminator_CForm_Front_Action::$hidden_fields[] = "bv-stripe-";
161 + }
162 + }
163 + }
164 +
165 + #handling of CleanTalk Antispam plugin
166 + add_action('init', function() {
167 + global $apbct;
168 + if (isset($apbct) && is_object($apbct)) {
169 + $apbct->settings['forms__contact_forms_test'] = 0;
170 + }
171 + });
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
133 235 define('WPRBASEPATH', plugin_dir_path(__FILE__));
134 236
135 237
136 238 require_once dirname( __FILE__ ) . '/callback/handler.php';
137 239
138 - $params = $request->processParams($_REQUEST);
240 + $params = $request->processParams($_REQUEST); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
139 241 if ($params === false) {
140 242 $response->terminate($request->corruptedParamsResp());
141 243 }
142 244 $request->params = $params;
@@ -156,11 +258,17 @@
156 258 } else {
157 259 if ($bvinfo->hasValidDBVersion()) {
158 260 if ($bvinfo->isProtectModuleEnabled()) {
159 261 require_once dirname( __FILE__ ) . '/protect/protect.php';
160 - add_action('clear_pt_config', array('WPRProtect_V545', 'uninstall'));
161 - if ($bvinfo->isActivePlugin() && !(defined( 'WP_CLI' ) && WP_CLI)) {
162 - WPRProtect_V545::init(WPRProtect_V545::MODE_WP);
262 + //For backward compatibility.
263 + WPRProtect_V588::$settings = new WPRWPSettings();
264 + WPRProtect_V588::$db = new WPRWPDb();
265 + WPRProtect_V588::$info = new WPRInfo(WPRProtect_V588::$settings);
266 +
267 + add_action('wpr_clear_pt_config', array('WPRProtect_V588', 'uninstall'));
268 +
269 + if ($bvinfo->isActivePlugin()) {
270 + WPRProtect_V588::init(WPRProtect_V588::MODE_WP);
163 271 }
164 272 }
165 273
166 274 if ($bvinfo->isDynSyncModuleEnabled()) {
@@ -196,5 +304,17 @@
196 304 add_filter('site_transient_update_plugins', array($wpadmin, 'hidePluginUpdate'));
197 305 }
198 306
199 307 ##THIRDPARTYCACHINGMODULE##
200 -}
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'));