PluginProbe
The WP Remote WordPress Plugin / 6.76
The WP Remote WordPress Plugin v6.76
6.76 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 All 54 releases
← All changes | callback/wings/manage.php +303 -68 5.426.76 View file →
@@ -1,14 +1,14 @@
1 1 <?php
2 2
3 3 if (!defined('ABSPATH')) exit;
4 -if (!class_exists('BVManageCallback')) :
5 -class BVManageCallback extends BVCallbackBase {
4 +if (!class_exists('WPRManageCallback')) :
5 +class WPRManageCallback extends WPRCallbackBase {
6 6 public $settings;
7 7 public $skin;
8 8 public $bvinfo;
9 9
10 - const MANAGE_WING_VERSION = 1.4;
10 + const MANAGE_WING_VERSION = 2.0;
11 11
12 12 public function __construct($callback_handler) {
13 13 $this->settings = $callback_handler->settings;
14 14 $this->bvinfo = new WPRInfo($this->settings);
@@ -33,23 +33,30 @@
33 33 return true;
34 34 }
35 35 }
36 36
37 + /**
38 + * Load a file with require_once only if it exists, so missing files don't fatal the script.
39 + */
40 + function safe_require_once($path) {
41 + if ($path && file_exists($path)) {
42 + require_once $path;
43 + }
44 + }
45 +
37 46 function include_files() {
38 - @include_once ABSPATH.'wp-admin/includes/file.php';
39 - @include_once ABSPATH.'wp-admin/includes/plugin.php';
40 - @include_once ABSPATH.'wp-admin/includes/theme.php';
41 - @include_once ABSPATH.'wp-admin/includes/misc.php';
42 - @include_once ABSPATH.'wp-admin/includes/template.php';
43 - @include_once ABSPATH.'wp-includes/pluggable.php';
44 - @include_once ABSPATH.'wp-admin/includes/class-wp-upgrader.php';
45 - @include_once ABSPATH.'wp-admin/includes/class-theme-upgrader.php';
46 - @include_once ABSPATH.'wp-admin/includes/class-plugin-upgrader.php';
47 - @include_once ABSPATH.'wp-admin/includes/user.php';
48 - @include_once ABSPATH.'wp-includes/registration.php';
49 - @include_once ABSPATH.'wp-admin/includes/upgrade.php';
50 - @include_once ABSPATH.'wp-admin/includes/update.php';
51 - @require_once ABSPATH.'wp-admin/includes/update-core.php';
47 + $this->safe_require_once(ABSPATH.'wp-admin/includes/file.php');
48 + $this->safe_require_once(ABSPATH.'wp-admin/includes/plugin.php');
49 + $this->safe_require_once(ABSPATH.'wp-admin/includes/theme.php');
50 + $this->safe_require_once(ABSPATH.'wp-admin/includes/misc.php');
51 + $this->safe_require_once(ABSPATH.'wp-admin/includes/template.php');
52 + $this->safe_require_once(ABSPATH.'wp-includes/pluggable.php');
53 + $this->safe_require_once(ABSPATH.'wp-admin/includes/class-wp-upgrader.php');
54 + $this->safe_require_once(ABSPATH.'wp-admin/includes/class-theme-upgrader.php');
55 + $this->safe_require_once(ABSPATH.'wp-admin/includes/class-plugin-upgrader.php');
56 + $this->safe_require_once(ABSPATH.'wp-admin/includes/user.php');
57 + $this->safe_require_once(ABSPATH.'wp-admin/includes/upgrade.php');
58 + $this->safe_require_once(ABSPATH.'wp-admin/includes/update.php');
52 59 }
53 60
54 61 function edit($args) {
55 62 $result = array();
@@ -242,9 +249,9 @@
242 249 if (!empty($valid_updates)) {
243 250 if (class_exists('Language_Pack_Upgrader')) {
244 251 if ($has_bv_skin) {
245 252 require_once( "bv_upgrader_skin.php" );
246 - $skin = new BVUpgraderSkin("upgrade_translations");
253 + $skin = new WPRUpgraderSkin("upgrade_translations");
247 254 $this->skin = $skin;
248 255 } else {
249 256 $skin = new Language_Pack_Upgrader_Skin(array());
250 257 }
@@ -265,15 +272,54 @@
265 272 }
266 273
267 274 function upgradeCore($args) {
268 275 global $wp_filesystem, $wp_version;
269 - $core = $this->settings->getTransient('update_core');
270 - $core_update_index = intval($args['coreupdateindex']);
271 - if (isset($core->updates) && !empty($core->updates)) {
272 - $to_update = $core->updates[$core_update_index];
276 + $to_update = null;
277 +
278 + // Prefer validated update data from server (BlogVault), then site transient.
279 + // This protects upgrades from poisoned/overridden transients.
280 + $validated = null;
281 + if (isset($args['core_validated_update']) && !empty($args['core_validated_update'])) {
282 + $validated = $args['core_validated_update'];
283 + }
284 +
285 + if (!empty($validated) && is_array($validated) &&
286 + isset($validated['version']) && !empty($validated['version']) &&
287 + isset($validated['response']) && ($validated['response'] === 'upgrade')) {
288 + $to_update = new stdClass();
289 + $to_update->version = $validated['version'];
290 + $to_update->response = $validated['response'];
291 + $to_update->download = isset($validated['download']) ? $validated['download'] : '';
292 +
293 + // Preserve all packages keys if provided; Core_Upgrader expects packages-like data.
294 + if (isset($validated['packages']) && is_array($validated['packages'])) {
295 + $to_update->packages = (object)$validated['packages'];
296 + } else {
297 + $to_update->packages = new stdClass();
298 + }
299 +
300 + // WordPress uses either ->package or ->packages->full depending on path/version.
301 + if (isset($to_update->packages->full) && !empty($to_update->packages->full)) {
302 + $to_update->package = $to_update->packages->full;
303 + } else {
304 + $to_update->package = $to_update->download;
305 + $to_update->packages->full = $to_update->download;
306 + }
273 307 } else {
308 + // Fallback to transient-based approach
309 + $core = $this->settings->getTransient('update_core');
310 + $core_update_index = intval($args['coreupdateindex']);
311 + if (isset($core->updates) && !empty($core->updates)) {
312 + $to_update = $core->updates[$core_update_index];
313 + } else {
314 + return array('status' => "Error", "message" => "Updates not available");
315 + }
316 + }
317 +
318 + if (!$to_update) {
274 319 return array('status' => "Error", "message" => "Updates not available");
275 320 }
321 +
276 322 $resp = array("Core_Upgrader", class_exists('Core_Upgrader'));
277 323 if (version_compare($wp_version, '3.1.9', '>')) {
278 324 $core = new Core_Upgrader();
279 325 $result = $core->upgrade($to_update);
@@ -282,18 +328,8 @@
282 328 } else {
283 329 return array('status' => 'Done');
284 330 }
285 331 } else {
286 - $resp = array("wp_update_core", function_exists('wp_update_core'));
287 - if (function_exists('wp_update_core')) {
288 - $result = wp_update_core($to_update);
289 - if (is_wp_error($result)) {
290 - return array('status' => "Error", "message" => $this->getError($result));
291 - } else {
292 - return array('status' => 'Done');
293 - }
294 - }
295 -
296 332 $resp = array("WP_Upgrader", class_exists('WP_Upgrader'));
297 333 if (class_exists('WP_Upgrader')) {
298 334 $upgrader = new WP_Upgrader();
299 335
@@ -331,8 +367,9 @@
331 367 }
332 368
333 369 $wp_filesystem->chmod($wp_dir.'wp-admin/includes/update-core.php', FS_CHMOD_FILE);
334 370
371 + $this->safe_require_once(ABSPATH.'wp-admin/includes/update-core.php');
335 372 $result = update_core($working_dir, $wp_dir);
336 373
337 374 if (is_wp_error($result)) {
338 375 return array('status' => "Error", "message" => $this->getError($result));
@@ -342,9 +379,11 @@
342 379 }
343 380 }
344 381
345 382 function bv_plugin_bulk_upgrade($upgrader, $_plugins) {
383 + global $wp_version;
346 384 $plugins = array_keys($_plugins);
385 + $current = get_site_transient('update_plugins');
347 386 $args = array();
348 387 $defaults = array(
349 388 'clear_update_cache' => true,
350 389 );
@@ -373,20 +412,60 @@
373 412 foreach($plugins as $plugin) {
374 413 $upgrader->update_current++;
375 414 $upgrader->skin->plugin_info = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin, false, true);
376 415 $upgrader->skin->plugin_active = is_plugin_active($plugin);
377 - $result = $upgrader->run(
378 - array(
379 - 'package' => $_plugins[$plugin],
380 - 'destination' => WP_PLUGIN_DIR,
381 - 'clear_destination' => true,
382 - 'clear_working' => true,
383 - 'is_multi' => true,
384 - 'hook_extra' => array(
385 - 'plugin' => $plugin,
386 - ),
387 - )
388 - );
416 + $plugin_upgrade_data = $_plugins[$plugin];
417 + if (isset($current->response[$plugin])) {
418 + if (isset($current->response[$plugin]->requires)) {
419 + $plugin_upgrade_data['requires'] = $current->response[$plugin]->requires;
420 + }
421 + if (isset($current->response[$plugin]->requires_php)) {
422 + $plugin_upgrade_data['requires_php'] = $current->response[$plugin]->requires_php;
423 + }
424 + }
425 + if ( isset( $plugin_upgrade_data['requires'] ) && function_exists('is_wp_version_compatible') && !is_wp_version_compatible( $plugin_upgrade_data['requires'] ) ) {
426 + $result = new WP_Error(
427 + 'incompatible_wp_required_version',
428 + sprintf(
429 + __( 'Your WordPress version is %1$s, however the new plugin version requires %2$s.' ),
430 + $wp_version,
431 + $plugin_upgrade_data['requires']
432 + )
433 + );
434 +
435 + $upgrader->skin->before( $result );
436 + $upgrader->skin->error( $result );
437 + $upgrader->skin->after();
438 + } elseif ( isset( $plugin_upgrade_data['requires_php'] ) && function_exists('is_php_version_compatible') && !is_php_version_compatible( $plugin_upgrade_data['requires_php'] ) ) {
439 +
440 + $result = new WP_Error(
441 + 'incompatible_php_required_version',
442 + sprintf(
443 + __( 'The PHP version on your server is %1$s, however the new plugin version requires %2$s.' ),
444 + PHP_VERSION,
445 + $plugin_upgrade_data['requires_php']
446 + )
447 + );
448 +
449 + $upgrader->skin->before( $result );
450 + $upgrader->skin->error( $result );
451 + $upgrader->skin->after();
452 + } else {
453 + add_filter('upgrader_source_selection', array($upgrader, 'check_package'));
454 + $result = $upgrader->run(
455 + array(
456 + 'package' => $_plugins[$plugin]['package'],
457 + 'destination' => WP_PLUGIN_DIR,
458 + 'clear_destination' => true,
459 + 'clear_working' => true,
460 + 'is_multi' => true,
461 + 'hook_extra' => array(
462 + 'plugin' => $plugin,
463 + ),
464 + )
465 + );
466 + remove_filter('upgrader_source_selection', array($upgrader, 'check_package'));
467 + }
389 468 $results[$plugin] = $result;
390 469 if (false === $result) {
391 470 break;
392 471 }
@@ -421,9 +500,18 @@
421 500 $result = array();
422 501 $_plugins = array();
423 502 $plugins_by_name = array();
424 503 foreach ($plugins as $plugin) {
425 - $_plugins[$plugin['file']] = $plugin['package'];
504 + $_plugins[$plugin['file']] = [
505 + 'package' => $plugin['package']
506 + ];
507 + if (isset($plugin['requires'])) {
508 + $_plugins[$plugin['file']]['requires'] = $plugin['requires'];
509 + }
510 +
511 + if (isset($plugin['requires_php'])) {
512 + $_plugins[$plugin['file']]['requires_php'] = $plugin['requires_php'];
513 + }
426 514 $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin['file'], false, true);
427 515 $plugins_by_name[$plugin_data['Name']] = $plugin['file'];
428 516 }
429 517 if (empty(array_keys($_plugins))) {
@@ -431,9 +519,9 @@
431 519 }
432 520 if (class_exists('Plugin_Upgrader')) {
433 521 if ($has_bv_skin) {
434 522 require_once( "bv_upgrader_skin.php" );
435 - $skin = new BVUpgraderSkin("plugin_upgrade", $plugins_by_name);
523 + $skin = new WPRUpgraderSkin("plugin_upgrade", $plugins_by_name);
436 524 $this->skin = $skin;
437 525 } else {
438 526 $skin = new Bulk_Plugin_Upgrader_Skin();
439 527 }
@@ -443,8 +531,11 @@
443 531 $result = $this->bv_plugin_bulk_upgrade($upgrader, $_plugins);
444 532 } else {
445 533 $result = $upgrader->bulk_upgrade(array_keys($_plugins));
446 534 }
535 + if (!is_array($result)) {
536 + return array('status' => "Error", 'message' =>'result is not an array');
537 + }
447 538 foreach (array_keys($_plugins) as $file) {
448 539 if (!array_key_exists($file, $result)) {
449 540 $result[$file] = array('status' => "Error");
450 541 } else {
@@ -460,9 +551,11 @@
460 551 return $result;
461 552 }
462 553
463 554 function bv_theme_bulk_upgrade($upgrader, $_themes) {
555 + global $wp_version;
464 556 $themes = array_keys($_themes);
557 + $current = get_site_transient('update_themes');
465 558 $args = array();
466 559 $defaults = array(
467 560 'clear_update_cache' => true,
468 561 );
@@ -492,21 +585,59 @@
492 585 $upgrader->update_current = 0;
493 586 foreach ($themes as $theme) {
494 587 $upgrader->update_current++;
495 588 $upgrader->skin->theme_info = $upgrader->theme_info($theme);
496 - $result = $upgrader->run(
497 - array(
498 - 'package' => $_themes[$theme],
499 - 'destination' => get_theme_root($theme),
500 - 'clear_destination' => true,
501 - 'clear_working' => true,
502 - 'is_multi' => true,
503 - 'hook_extra' => array(
504 - 'theme' => $theme,
505 - ),
506 - )
507 - );
589 + $theme_upgrade_data = $_themes[$theme];
590 + if (isset($current->response[$theme])) {
591 + if (isset($current->response[$theme]['requires'])) {
592 + $theme_upgrade_data['requires'] = $current->response[$theme]['requires'];
593 + }
594 + if (isset($current->response[$theme]['requires_php'])) {
595 + $theme_upgrade_data['requires_php'] = $current->response[$theme]['requires_php'];
596 + }
597 + }
598 + if ( isset( $theme_upgrade_data['requires'] ) && function_exists('is_wp_version_compatible') && !is_wp_version_compatible( $theme_upgrade_data['requires'] ) ) {
599 + $result = new WP_Error(
600 + 'incompatible_wp_required_version',
601 + sprintf(
602 + __( 'Your WordPress version is %1$s, however the new theme version requires %2$s.' ),
603 + $wp_version,
604 + $theme_upgrade_data['requires']
605 + )
606 + );
508 607
608 + $upgrader->skin->before( $result );
609 + $upgrader->skin->error( $result );
610 + $upgrader->skin->after();
611 + } elseif ( isset( $theme_upgrade_data['requires_php'] ) && function_exists('is_php_version_compatible') && !is_php_version_compatible( $theme_upgrade_data['requires_php'] ) ) {
612 + $result = new WP_Error(
613 + 'incompatible_php_required_version',
614 + sprintf(
615 + __( 'The PHP version on your server is %1$s, however the new theme version requires %2$s.' ),
616 + PHP_VERSION,
617 + $theme_upgrade_data['requires_php']
618 + )
619 + );
620 +
621 + $upgrader->skin->before( $result );
622 + $upgrader->skin->error( $result );
623 + $upgrader->skin->after();
624 + } else {
625 + add_filter('upgrader_source_selection', array($upgrader, 'check_package'));
626 + $result = $upgrader->run(
627 + array(
628 + 'package' => $_themes[$theme]['package'],
629 + 'destination' => get_theme_root($theme),
630 + 'clear_destination' => true,
631 + 'clear_working' => true,
632 + 'is_multi' => true,
633 + 'hook_extra' => array(
634 + 'theme' => $theme,
635 + ),
636 + )
637 + );
638 + remove_filter('upgrader_source_selection', array($upgrader, 'check_package'));
639 + }
509 640 $results[$theme] = $result;
510 641 if (false === $result) {
511 642 break;
512 643 }
@@ -542,9 +673,17 @@
542 673 function upgradeThemes($themes, $has_bv_skin = false, $bv_bulk_upgrade = false) {
543 674 $result = array();
544 675 $_themes = array();
545 676 foreach ($themes as $theme) {
546 - $_themes[$theme['stylesheet']] = $theme['package'];
677 + $_themes[$theme['stylesheet']] = [
678 + 'package' => $theme['package']
679 + ];
680 + if (isset($theme['requires'])) {
681 + $_themes[$theme['stylesheet']]['requires'] = $theme['requires'];
682 + }
683 + if (isset($theme['requires_php'])) {
684 + $_themes[$theme['stylesheet']]['requires_php'] = $theme['requires_php'];
685 + }
547 686 }
548 687 if (empty(array_keys($_themes))) {
549 688 return $result;
550 689 }
@@ -550,9 +689,9 @@
550 689 }
551 690 if (class_exists('Theme_Upgrader')) {
552 691 if ($has_bv_skin) {
553 692 require_once( "bv_upgrader_skin.php" );
554 - $skin = new BVUpgraderSkin("theme_upgrade");
693 + $skin = new WPRUpgraderSkin("theme_upgrade");
555 694 $this->skin = $skin;
556 695 } else {
557 696 $skin = new Bulk_Theme_Upgrader_Skin();
558 697 }
@@ -561,8 +700,11 @@
561 700 $result = $this->bv_theme_bulk_upgrade($upgrader, $_themes);
562 701 } else {
563 702 $result = $upgrader->bulk_upgrade(array_keys($_themes));
564 703 }
704 + if (!is_array($result)) {
705 + return array('status' => "Error", 'message' =>'result is not an array');
706 + }
565 707 foreach (array_keys($_themes) as $stylesheet) {
566 708 if (!array_key_exists($stylesheet, $result)) {
567 709 $result[$stylesheet] = array('status' => "Error");
568 710 } else {
@@ -614,9 +756,9 @@
614 756 return array('status' => "Error", 'message' => "Invalid package domain");
615 757 }
616 758 if ($has_bv_skin) {
617 759 require_once( "bv_upgrader_skin.php" );
618 - $skin = new BVUpgraderSkin("installer", array(), $params['package']);
760 + $skin = new WPRUpgraderSkin("installer", array(), $params['package']);
619 761 $this->skin = $skin;
620 762 } else {
621 763 $skin = new WP_Upgrader_Skin();
622 764 }
@@ -630,10 +772,14 @@
630 772 $upgrader->init();
631 773 $destination = $params['dest'];
632 774 $clear_destination = isset($params['cleardest']) ? $params['cleardest'] : false;
633 775 $package_url = $params['package'];
776 + $is_parent_theme_install_disabled = isset($params['is_parent_theme_install_disabled']) ? $params['is_parent_theme_install_disabled'] : false;
634 777 $key = basename($package_url);
635 778 add_filter('upgrader_source_selection', array($upgrader, 'check_package'));
779 + if ("theme" === $type && false === $is_parent_theme_install_disabled) {
780 + add_filter('upgrader_post_install', array($upgrader, 'check_parent_theme_filter'), 10, 3);
781 + }
636 782 $res = $upgrader->run(
637 783 array(
638 784 'package' => $package_url,
639 785 'destination' => $destination,
@@ -645,8 +791,11 @@
645 791 ),
646 792 )
647 793 );
648 794 remove_filter('upgrader_source_selection', array($upgrader, 'check_package'));
795 + if ("theme" === $type && false === $is_parent_theme_install_disabled) {
796 + remove_filter('upgrader_post_install', array($upgrader, 'check_parent_theme_filter'), 10);
797 + }
649 798 if (is_wp_error($res)) {
650 799 $res = array('status' => "Error", 'message' => $this->getError($res));
651 800 } else {
652 801 $res = array( 'status' => "Done");
@@ -661,9 +810,17 @@
661 810 function getPremiumUpgradesInfo() {
662 811 return apply_filters( 'mwp_premium_perform_update', array() );
663 812 }
664 813
665 - function autoLogin($username, $isHttps) {
814 + function autoLogin($username, $isHttps, $auto_login_token = null) {
815 + # Validate nonce if provided (other plugin compatibility: allow login if token missing)
816 + if ($auto_login_token !== null && $auto_login_token !== '') {
817 + $validation_result = $this->validateAutoLoginToken($auto_login_token);
818 + if ($validation_result !== true) {
819 + return $validation_result;
820 + }
821 + }
822 +
666 823 $user = get_user_by('login', $username);
667 824 if ($user != FALSE) {
668 825 wp_set_current_user( $user->ID );
669 826 if ($isHttps) {
@@ -678,8 +835,41 @@
678 835 exit;
679 836 }
680 837 }
681 838
839 + private function validateAutoLoginToken($auto_login_token) {
840 + # Get plugin name for transient key prefix
841 + $plugname = $this->bvinfo->plugname;
842 + if (empty($plugname)) {
843 + return array(
844 + 'status' => 'Error',
845 + 'message' => 'PLUGIN_NAME_NOT_FOUND',
846 + 'error_code' => 'PLUGIN_NAME_ERROR'
847 + );
848 + }
849 +
850 + # Construct transient key: {plugname}_auto_login_tk_{token}
851 + $transient_key = $plugname . '_auto_login_tk_' . $auto_login_token;
852 +
853 + # Check if token has already been used
854 + $used_token = $this->settings->getTransient($transient_key);
855 + if ($used_token !== false) {
856 + # Token already used - prevent replay attack
857 + return array(
858 + 'status' => 'Error',
859 + 'message' => 'AUTO_LOGIN_TOKEN_ALREADY_USED',
860 + 'error_code' => 'AUTO_LOGIN_TOKEN_ERROR'
861 + );
862 + }
863 +
864 + # Store token as used for 24 hours to prevent reuse
865 + # WordPress will automatically clean up expired transients
866 + $this->settings->setTransient($transient_key, true, DAY_IN_SECONDS);
867 +
868 + # Token is valid and has been marked as used
869 + return true;
870 + }
871 +
682 872 public function refreshPluginUpdates() {
683 873 global $wp_current_filter;
684 874 $wp_current_filter[] = 'load-update-core.php';
685 875
@@ -704,12 +894,52 @@
704 894
705 895 return true;
706 896 }
707 897
898 + function upgradeElementorDB($file) {
899 + try {
900 + $managerClass = $file === "elementor/elementor.php" ? '\Elementor\Core\Upgrade\Manager' : '\ElementorPro\Core\Upgrade\Manager';
901 +
902 + if (!class_exists($managerClass)) {
903 + return array('status' => 'Error', 'error' => 'Elementor plugin not found or disabled', 'source' => 'BV');
904 + }
905 +
906 + $manager = new $managerClass();
907 + $required_methods = array('get_task_runner', 'should_upgrade', 'on_runner_complete',
908 + 'get_current_version', 'get_new_version');
909 + foreach ($required_methods as $method) {
910 + if (!method_exists($manager, $method)) {
911 + return array('status' => 'Error', 'error' => 'Required methods are missing', 'source' => 'BV');
912 + }
913 + }
914 +
915 + $updateInfo = array(
916 + 'from' => $manager->get_current_version(),
917 + 'to' => $manager->get_new_version(),
918 + );
919 +
920 + if ($manager->should_upgrade()) {
921 + $callbacks = $manager->get_upgrade_callbacks();
922 +
923 + if (!empty($callbacks)) {
924 + $manager->get_task_runner()->handle_immediately($callbacks);
925 + $manager->on_runner_complete(true);
926 + }
927 + } else {
928 + return array('status' => 'Error', 'error' => 'Database Update is not available currently',
929 + 'update_info' => $updateInfo, 'source' => 'BV');
930 + }
931 +
932 + return array('status' => 'Done', 'update_info' => $updateInfo);
933 + } catch (Exception $e) {
934 + return array('status' => 'Error', 'error' => $e->getMessage());
935 + }
936 + }
937 +
708 938 function upgradeWoocommerceDb() {
709 939 try {
710 940 if (!defined('WC_ABSPATH')) {
711 - return array('status' => 'Error', 'error' => 'WC not found');
941 + return array('status' => 'Error', 'error' => 'WC not found', 'source' => 'BV');
712 942 }
713 943
714 944 if (file_exists(WC_ABSPATH . 'includes/class-wc-install.php')) {
715 945 include_once WC_ABSPATH . 'includes/class-wc-install.php';
@@ -720,19 +950,19 @@
720 950 }
721 951
722 952 if (!class_exists('WC_Install') || !method_exists('WC_Install', 'needs_db_update') ||
723 953 !method_exists('WC_Install', 'get_db_update_callbacks')) {
724 - return array('status' => 'Error', 'error' => 'WC files missing or corrupted');
954 + return array('status' => 'Error', 'error' => 'WC files missing or corrupted', 'source' => 'BV');
725 955 }
726 956
727 957 $current_db_version = $this->settings->getOption('woocommerce_db_version');
728 958 if (!$current_db_version) {
729 - return array('status' => 'Error', 'error' => 'Current WC DB version not available');
959 + return array('status' => 'Error', 'error' => 'Current WC DB version not available', 'source' => 'BV');
730 960 }
731 961
732 962 $latest_db_version = $this->bvinfo->getLatestWooCommerceDBVersion();
733 963 if ($current_db_version >= $latest_db_version) {
734 - return array('status' => 'Error', 'error' => 'WC DB update not available');
964 + return array('status' => 'Error', 'error' => 'WC DB update not available', 'source' => 'BV');
735 965 }
736 966
737 967 $db_update_callbacks = WC_Install::get_db_update_callbacks();
738 968
@@ -832,9 +1062,10 @@
832 1062 case "atolgn":
833 1063 $isHttps = false;
834 1064 if (array_key_exists('https', $params))
835 1065 $isHttps = true;
836 - $resp = array("autologin" => $this->autoLogin($params['username'], $isHttps));
1066 + $auto_login_token = array_key_exists('auto_login_token', $params) ? $params['auto_login_token'] : null;
1067 + $resp = array("autologin" => $this->autoLogin($params['username'], $isHttps, $auto_login_token));
837 1068 break;
838 1069 case "updatedb":
839 1070 $resp = array("status" => $this->upgrade_db());
840 1071 break;
@@ -846,8 +1077,12 @@
846 1077 switch ($file) {
847 1078 case "woocommerce/woocommerce.php":
848 1079 $resp[$file] = $this->upgradeWoocommerceDb();
849 1080 break;
1081 + case "elementor/elementor.php":
1082 + case "elementor-pro/elementor-pro.php":
1083 + $resp[$file] = $this->upgradeElementorDB($file);
1084 + break;
850 1085 }
851 1086 }
852 1087
853 1088 break;
@@ -859,5 +1094,5 @@
859 1094 }
860 1095 return $resp;
861 1096 }
862 1097 }
863 -endif;
1098 +endif;