next_run_time = -1; $activeSchedule->save(); } } public static function unistall() { \DUP_PRO_Migration::renameInstallersPhpFiles(); do_action('duplicator_unistall'); } public static function removePluginVersion() { delete_option(\DUP_PRO_Plugin_Upgrade::DUP_VERSION_OPT_KEY); } public static function removePackages() { $global = \DUP_PRO_Global_Entity::get_instance(); if (!$global->uninstall_packages) { return; } $tableName = $GLOBALS['wpdb']->base_prefix . 'duplicator_pro_packages'; $GLOBALS['wpdb']->query('DROP TABLE IF EXISTS ' . $tableName); $ssdir = \DupProSnapLibIOU::safePath(DUPLICATOR_PRO_SSDIR_PATH); //Sanity check for strange setup $check = glob("{$ssdir}/wp-config.php"); if (count($check) == 0) { \DupProSnapLibIOU::rrmdir($ssdir, true); } } public static function removeSettings() { $global = \DUP_PRO_Global_Entity::get_instance(); if (!$global->uninstall_settings) { return; } $tableName = $GLOBALS['wpdb']->base_prefix . \DUP_PRO_JSON_Entity_Base::DEFAULT_TABLE_NAME; $GLOBALS['wpdb']->query('DROP TABLE IF EXISTS ' . $tableName); $optionsTableName = $GLOBALS['wpdb']->base_prefix . "options"; $dupOptionNames = $GLOBALS['wpdb']->get_col("SELECT `option_name` FROM `{$optionsTableName}` WHERE `option_name` REGEXP '^duplicator_pro_'"); foreach ($dupOptionNames as $dupOptionName) { delete_option($dupOptionName); } $dupOptionTransientNames = $GLOBALS['wpdb']->get_col("SELECT `option_name` FROM `{$optionsTableName}` WHERE `option_name` REGEXP '^_transient_duplicator_pro'"); foreach ($dupOptionTransientNames as $dupOptionTransientName) { delete_transient(str_replace("_transient_", "", $dupOptionTransientName)); } } }