oont-contents/plugins/wp-staging/uninstall.php
2025-02-10 13:57:45 +01:00

143 lines
6.1 KiB
PHP

<?php
namespace WPStaging\Backend;
use WPStaging\Backup\BackupScheduler;
/**
* Uninstall WP-Staging
*
* @package WPSTG
* @subpackage Uninstall
* @copyright Copyright (c) 2015, René Hermenau
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
* @since 0.9.0
*/
// No direct access
if (!defined('WP_UNINSTALL_PLUGIN')) {
exit;
}
class uninstall
{
public function __construct()
{
$this->init();
}
private function init()
{
$options = json_decode(json_encode(get_option("wpstg_settings", [])));
/**
* @todo Write a query that delete all the options from option table where option_name like (wpstg_* or wpstgpro_*)
* but not in (wpstg_existing_clones, wpstg_existing_clones_beta, wpstg_staging_sites, wpstg_connection)
* but there will be not need of this condition once we add a routine that deletes staging sites
*/
if (isset($options->unInstallOnDelete) && $options->unInstallOnDelete === '1') {
// Options
delete_option("wpstg_version_upgraded_from");
delete_option("wpstg_version");
delete_transient("wpstg_login_link_settings");
delete_option("wpstgpro_version_upgraded_from");
delete_option("wpstgpro_version");
// @see \WPStaging\Backend\Pro\Upgrade\Upgrade::OPTION_UPGRADE_DATE
delete_option("wpstgpro_upgrade_date");
// @see \WPStaging\Backend\Upgrade\Upgrade::OPTION_UPGRADE_DATE
delete_option("wpstg_free_upgrade_date");
delete_option("wpstg_installDate"); // @deprecated
// @see \WPStaging\Backend\Upgrade\Upgrade::OPTION_INSTALL_DATE
delete_option("wpstg_free_install_date");
// @see \WPStaging\Backend\Pro\Upgrade\Upgrade::OPTION_INSTALL_DATE
delete_option("wpstgpro_install_date");
delete_option("wpstg_firsttime"); // @deprecated
delete_option("wpstg_is_staging_site");
delete_option("wpstg_settings");
delete_option("wpstg_rmpermalinks_executed");
delete_option("wpstg_activation_redirect");
delete_option("wpstg_disabled_items_notice"); // @deprecated
delete_option("wpstg_clone_settings");
delete_option("wpstg_clone_excluded_files_list");
delete_option("wpstg_different_prefix_backup_notice");
/* @see \WPStaging\Pro\Notices\EntireNetworkCloneServerConfigNotice::OPTION_NAME */
delete_option("wpstg_entire_network_clone_notice");
// Old notice used for display cache on staging site.
delete_option("wpstg_disabled_cache_notice"); // @deprecated
// Old option, now moved inside wpstg_clone_settings
delete_option("wpstg_emails_disabled"); // @deprecated
delete_option("wpstg_disabled_mail_notice"); // @deprecated
// Option related to staging sites shifting from one db option to another
delete_option("wpstg_structure_updated"); // @deprecated
// Store the latest WP STAGING PRO version
delete_option("wpstg_version_latest");
// Option that hold the old snapshots
delete_option("wpstg_snapshots"); // @deprecated
delete_option("wpstg_access_token");
delete_option("wpstg_backups");
delete_option("wpstg_old_staging_sites_backup"); // @deprecated
delete_option("wpstg_staging_sites_backup");
delete_option("wpstg_missing_cloneName_routine_executed");
delete_option('wpstg_googledrive');
delete_option('wpstg_amazons3');
delete_option('wpstg_sftp');
delete_option('wpstg_digitalocean');
delete_option('wpstg_wasabi');
delete_option('wpstg_dropbox');
delete_option('wpstg_one-drive');
delete_option('wpstg_free_backup_notice_dismissed');
delete_option('wpstg_first_backup_speed_index');
delete_option('wpstg_backup_speed_index');
delete_option('wpstg_backup_speed_modal_shown');
delete_option('wpstg_backup_notice_is_closed');
delete_option('wpstg_backup_notice_remind_me');
delete_option('wpstg_resave_permalinks_executed');
// @see \WPStaging\Backup\BackupScheduler::OPTION_BACKUP_SCHEDULES
delete_option('wpstg_backup_schedules');
/**
* @see \WPStaging\Framework\Security\UniqueIdentifier::IDENTIFIER_OPTION_NAME;
*/
delete_option("wpstg_unique_identifier");
/* Do not delete these fields without actually deleting the staging site
* @create a delete routine which deletes the staging sites first
*/
//delete_option( "wpstg_existing_clones" );
//delete_option( "wpstg_existing_clones_beta" );
//delete_option( "wpstg_staging_sites" );
//delete_option( "wpstg_connection" );
// Old wpstg 1.3 options for admin notices
delete_option("wpstg_start_poll");
delete_option("wpstg_hide_beta");
delete_option("wpstg_RatingDiv");
// New 2.x options for admin notices
delete_option("wpstg_poll");
delete_option("wpstg_rating");
delete_option("wpstg_beta");
/* @see \WPStaging\Staging\FirstRun::FIRST_RUN_KEY */
delete_option('wpstg_execute');
/* @see \WPStaging\Framework\BackgroundProcessing\Queue::QUEUE_TABLE_VERSION_KEY */
delete_option('wpstg_queue_table_version');
/** @see \WPStaging\Framework\BackgroundProcessing\Queue::QUEUE_TABLE_STRUCTURE_VERSION_KEY */
delete_option('wpstg_queue_table_structure_version');
/** @see \WPStaging\Framework\Notices\WarningsNotice::OPTION_NAME */
delete_option('wpstg_warnings_notice');
// Delete events
wp_clear_scheduled_hook('wpstg_weekly_event');
// Transients
delete_transient("wpstg_issue_report_submitted");
}
}
}
new uninstall();