PluginProbe ʕ •ᴥ•ʔ
BackWPup – WordPress Backup & Restore Plugin / 5.6.11
BackWPup – WordPress Backup & Restore Plugin v5.6.11
5.6.11 5.6.10 trunk 0.5.0 0.5.5 0.6.0 0.6.1 0.6.2 0.6.3 0.6.4 0.6.5 0.7.0 0.7.2 0.8.0 0.8.1 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4.1 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.1 3.0.10 3.0.11 3.0.12 3.0.13 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.5.0 3.5.1 3.6.0 3.6.1 3.6.10 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.2.2 5.2.3 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.5 5.6.6 5.6.7 5.6.8 5.6.9
backwpup / uninstall.php
backwpup Last commit date
assets 2 days ago components 6 days ago config 6 days ago inc 6 days ago languages 2 days ago pages 6 days ago parts 6 days ago src 6 days ago vendor 2 days ago views 6 days ago .htaccess 9 years ago LICENSE 6 years ago backwpup.php 2 days ago changelog.txt 2 days ago cloud-auth-endpoint.php 2 months ago readme.txt 2 days ago uninstall.php 6 days ago
uninstall.php
112 lines
1 <?php
2 /**
3 * BackWPup uninstall cleanup.
4 */
5
6 // If uninstall not called from WordPress, exit.
7 if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
8 exit();
9 }
10
11 /**
12 * WordPress database access.
13 *
14 * @var wpdb $wpdb
15 */
16 global $wpdb;
17
18 // Only uninstall if no BackWPup Version active.
19 if ( ! class_exists( \BackWPup::class ) ) {
20 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Base.php';
21 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Column.php';
22 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Schema.php';
23 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Query.php';
24 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Row.php';
25 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Table.php';
26 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Queries/Meta.php';
27 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Queries/Date.php';
28 require_once __DIR__ . '/vendor/berlindb/core/src/Database/Queries/Compare.php';
29 require_once __DIR__ . '/src/Common/Database/TableInterface.php';
30 require_once __DIR__ . '/src/Common/Database/Tables/AbstractTable.php';
31 require_once __DIR__ . '/src/Backup/Database/Tables/Backup.php';
32
33 $tables = [
34 new \WPMedia\BackWPup\Backup\Database\Tables\Backup(),
35 ];
36 backwpup_remove_tables( $tables );
37
38 // Delete plugin options.
39 if ( is_multisite() ) {
40 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Uninstall cleanup.
41 $wpdb->query( 'DELETE FROM ' . $wpdb->sitemeta . " WHERE meta_key LIKE '%backwpup_%' " );
42 } else {
43 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Uninstall cleanup.
44 $wpdb->query( 'DELETE FROM ' . $wpdb->options . " WHERE option_name LIKE '%backwpup_%' " );
45 }
46
47 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
48 $wpdb->query( 'DELETE FROM ' . $wpdb->usermeta . " WHERE meta_key LIKE '%backwpup_%' " );
49
50 // Delete Backwpup user roles.
51 // Special handling for multisite when network-activated.
52 if ( is_multisite() ) {
53 $sites = get_sites(
54 [
55 'fields' => 'ids',
56 ]
57 );
58 $current_site_id = get_current_blog_id();
59
60 foreach ( $sites as $site ) {
61 switch_to_blog( $site );
62 backwpup_remove_roles();
63 backwpup_remove_tables( $tables );
64 }
65
66 switch_to_blog( $current_site_id );
67 } else {
68 backwpup_remove_roles();
69 }
70 }
71
72 /**
73 * Removes BackWPup roles and capabilities.
74 */
75 function backwpup_remove_roles() {
76 remove_role( 'backwpup_admin' );
77 remove_role( 'backwpup_helper' );
78 remove_role( 'backwpup_check' );
79
80 // Remove capabilities from the administrator role.
81 $role = get_role( 'administrator' );
82 if ( is_object( $role ) && method_exists( $role, 'remove_cap' ) ) {
83 $role->remove_cap( 'backwpup' );
84 $role->remove_cap( 'backwpup_jobs' );
85 $role->remove_cap( 'backwpup_jobs_edit' );
86 $role->remove_cap( 'backwpup_jobs_start' );
87 $role->remove_cap( 'backwpup_backups' );
88 $role->remove_cap( 'backwpup_backups_download' );
89 $role->remove_cap( 'backwpup_backups_delete' );
90 $role->remove_cap( 'backwpup_logs' );
91 $role->remove_cap( 'backwpup_logs_delete' );
92 $role->remove_cap( 'backwpup_settings' );
93 $role->remove_cap( 'backwpup_restore' );
94 }
95 }
96
97 /**
98 * Remove available database tables.
99 *
100 * @param array $tables Database tables objects.
101 *
102 * @return void
103 */
104 function backwpup_remove_tables( $tables ) {
105 foreach ( $tables as $table ) {
106 if ( ! $table->exists() ) {
107 continue;
108 }
109 $table->uninstall();
110 }
111 }
112