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 +114 -26 6.475.88 View file →
@@ -4,9 +4,9 @@
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: 6.47
8 +Version: 5.88
9 9 Network: True
10 10 License: GPLv2 or later
11 11 License URI: [http://www.gnu.org/licenses/gpl-2.0.html](http://www.gnu.org/licenses/gpl-2.0.html)
12 12 */
@@ -39,9 +39,8 @@
39 39 require_once dirname( __FILE__ ) . '/wp_actions.php';
40 40 require_once dirname( __FILE__ ) . '/info.php';
41 41 require_once dirname( __FILE__ ) . '/account.php';
42 42 require_once dirname( __FILE__ ) . '/helper.php';
43 -require_once dirname( __FILE__ ) . '/wp_file_system.php';
44 43 require_once dirname( __FILE__ ) . '/wp_2fa/wp_2fa.php';
45 44
46 45 require_once dirname( __FILE__ ) . '/wp_login_whitelabel.php';
47 46
@@ -83,10 +82,8 @@
83 82 add_action('admin_menu', array($wpadmin, 'menu'));
84 83 }
85 84 add_filter('plugin_action_links', array($wpadmin, 'settingsLink'), 10, 2);
86 85 add_action('admin_head', array($wpadmin, 'removeAdminNotices'), 3);
87 -
88 - ##MG_AJAX_ACTIONS##
89 86 ##POPUP_ON_DEACTIVATION##
90 87 add_action('admin_notices', array($wpadmin, 'activateWarning'));
91 88 add_action('admin_enqueue_scripts', array($wpadmin, 'wprsecAdminMenu'));
92 89 ##ALPURGECACHEFUNCTION##
@@ -112,38 +109,130 @@
112 109 $actlog = new BVWPActLog($bvdb, $bvsettings, $bvinfo, $bvconfig['activity_log']);
113 110 $actlog->init();
114 111 }
115 112
116 - ##MAINTENANCEMODULE##
113 + if ($bvinfo->isServiceActive('maintenance_mode')) {
114 + require_once dirname( __FILE__ ). '/maintenance/wp_maintenance.php';
115 + $bvconfig = $bvinfo->config;
116 + $maintenance = new BVWPMaintenance($bvconfig['maintenance_mode']);
117 + $maintenance->init();
118 + }
119 +
117 120 }
118 121
119 -if (WPRHelper::getRawParam('REQUEST', 'bvplugname') == "wpremote") {
122 +if ((array_key_exists('bvplugname', $_REQUEST)) && ($_REQUEST['bvplugname'] == "wpremote")) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
120 123 require_once dirname( __FILE__ ) . '/callback/base.php';
121 124 require_once dirname( __FILE__ ) . '/callback/response.php';
122 125 require_once dirname( __FILE__ ) . '/callback/request.php';
123 126 require_once dirname( __FILE__ ) . '/recover.php';
124 127
125 - $pubkey = WPRHelper::getRawParam('REQUEST', 'pubkey');
126 - $pubkey = isset($pubkey) ? WPRAccount::sanitizeKey($pubkey) : '';
127 - $rcvracc = WPRHelper::getRawParam('REQUEST', 'rcvracc');
128 + // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Recommended
129 + $pubkey = isset($_REQUEST['pubkey']) ? WPRAccount::sanitizeKey(wp_unslash($_REQUEST['pubkey'])) : '';
128 130
129 - if (isset($rcvracc)) {
131 + if (array_key_exists('rcvracc', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
130 132 $account = WPRRecover::find($bvsettings, $pubkey);
131 133 } else {
132 134 $account = WPRAccount::find($bvsettings, $pubkey);
133 135 }
134 136
135 - $request = new WPRCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
136 - $response = new WPRCallbackResponse($request->bvb64cksize);
137 + $request = new BVCallbackRequest($account, $_REQUEST, $bvsettings); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
138 + $response = new BVCallbackResponse($request->bvb64cksize);
137 139
138 140 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();
141 + if (array_key_exists('bv_ignr_frm_cptch', $_REQUEST)) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
142 + #handling of Contact Forms 7
143 + add_filter('wpcf7_skip_spam_check', '__return_true', PHP_INT_MAX, 2);
144 144
145 - } else {
145 + #handling of Formidable plugin
146 + add_filter('frm_is_field_hidden', '__return_true', PHP_INT_MAX, 3);
147 +
148 + #handling of WP Forms plugin
149 + add_filter('wpforms_process_bypass_captcha', '__return_true', PHP_INT_MAX, 3);
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
146 235 define('WPRBASEPATH', plugin_dir_path(__FILE__));
147 236
148 237
149 238 require_once dirname( __FILE__ ) . '/callback/handler.php';
@@ -152,9 +241,9 @@
152 241 if ($params === false) {
153 242 $response->terminate($request->corruptedParamsResp());
154 243 }
155 244 $request->params = $params;
156 - $callback_handler = new WPRCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
245 + $callback_handler = new BVCallbackHandler($bvdb, $bvsettings, $bvsiteinfo, $request, $account, $response);
157 246 if ($request->is_afterload) {
158 247 add_action('wp_loaded', array($callback_handler, 'execute'));
159 248 } else if ($request->is_admin_ajax) {
160 249 add_action('wp_ajax_bvadm', array($callback_handler, 'bvAdmExecuteWithUser'));
@@ -170,16 +259,16 @@
170 259 if ($bvinfo->hasValidDBVersion()) {
171 260 if ($bvinfo->isProtectModuleEnabled()) {
172 261 require_once dirname( __FILE__ ) . '/protect/protect.php';
173 262 //For backward compatibility.
174 - WPRProtect_V647::$settings = new WPRWPSettings();
175 - WPRProtect_V647::$db = new WPRWPDb();
176 - WPRProtect_V647::$info = new WPRInfo(WPRProtect_V647::$settings);
263 + WPRProtect_V588::$settings = new WPRWPSettings();
264 + WPRProtect_V588::$db = new WPRWPDb();
265 + WPRProtect_V588::$info = new WPRInfo(WPRProtect_V588::$settings);
177 266
178 - add_action('wpr_clear_pt_config', array('WPRProtect_V647', 'uninstall'));
267 + add_action('wpr_clear_pt_config', array('WPRProtect_V588', 'uninstall'));
179 268
180 269 if ($bvinfo->isActivePlugin()) {
181 - WPRProtect_V647::init(WPRProtect_V647::MODE_WP);
270 + WPRProtect_V588::init(WPRProtect_V588::MODE_WP);
182 271 }
183 272 }
184 273
185 274 if ($bvinfo->isDynSyncModuleEnabled()) {
@@ -227,6 +316,5 @@
227 316 $wp_login_whitelabel = new WPRWPLoginWhitelabel();
228 317 $wp_login_whitelabel->init();
229 318 }
230 319
231 -add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));
232 -##PLUGIN_LOADED_MODULE##
320 +add_action('wpr_clear_wp_2fa_config', array($wp_action, 'clear_wp_2fa_config'));