This repository has been archived by the owner on Mar 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
uninstall.php
86 lines (75 loc) · 2.38 KB
/
uninstall.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
/**
* Fired when the plugin is uninstalled.
*
* @package Duplicator
* @author Cory Lamle
* @license GPL-2.0+
* @link http://lifeinthegrid.com
* @copyright 2013 LifeInTheGrid.com
*/
// If uninstall not called from WordPress, then exit
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
exit;
}
require_once 'define.php';
require_once 'classes/settings.php';
require_once 'classes/utility.php';
global $wpdb;
$DUP_Settings = new DUP_Settings();
$table_name = $wpdb->prefix . "duplicator_packages";
$wpdb->query("DROP TABLE `{$table_name}`");
delete_option('duplicator_version_plugin');
//Remvoe entire wp-snapshots directory
if (DUP_Settings::Get('uninstall_files')) {
$ssdir = DUP_Util::SafePath(DUPLICATOR_SSDIR_PATH);
$ssdir_tmp = DUP_Util::SafePath(DUPLICATOR_SSDIR_PATH_TMP);
//Sanity check for strange setup
$check = glob("{$ssdir}/wp-config.php");
if (count($check) == 0) {
//PHP sanity check
foreach (glob("{$ssdir}/*_database.sql") as $file) {
if (strstr($file, '_database.sql'))
@unlink("{$file}");
}
foreach (glob("{$ssdir}/*_installer.php") as $file) {
if (strstr($file, '_installer.php'))
@unlink("{$file}");
}
foreach (glob("{$ssdir}/*_archive.zip") as $file) {
if (strstr($file, '_archive.zip'))
@unlink("{$file}");
}
foreach (glob("{$ssdir}/*_scan.json") as $file) {
if (strstr($file, '_scan.json'))
@unlink("{$file}");
}
foreach (glob("{$ssdir}/*.log") as $file) {
if (strstr($file, '.log'))
@unlink("{$file}");
}
//Check for core files and only continue removing data if the snapshots directory
//has not been edited by 3rd party sources, this helps to keep the system stable
$files = glob("{$ssdir}/*");
if (is_array($files) && count($files) < 6) {
$defaults = array("{$ssdir}/index.php", "{$ssdir}/robots.txt", "{$ssdir}/dtoken.php");
$compare = array_diff($defaults, $files);
//There might be a .htaccess file or index.php/html etc.
if (count($compare) < 3) {
foreach ($defaults as $file) {
@unlink("{$file}");
}
@unlink("{$ssdir}/.htaccess");
@rmdir($ssdir_tmp);
@rmdir($ssdir);
}
}
}
}
//Remove all Settings
if (DUP_Settings::Get('uninstall_settings')) {
DUP_Settings::Delete();
delete_option('duplicator_ui_view_state');
delete_option('duplicator_package_active');
}
?>