PluginProbe ʕ •ᴥ•ʔ
Smush – Image Optimization, Compression, Lazy Load, WebP & CDN / 3.12.6
Smush – Image Optimization, Compression, Lazy Load, WebP & CDN v3.12.6
4.1.0 4.0.3 4.0.2 2.8.1 2.9.1 3.0.0 3.0.1 3.0.2 3.1.1 3.10.1 3.10.2 3.10.3 3.11.1 3.12.3 3.12.4 3.12.5 3.12.6 3.13.0 3.13.1 3.13.2 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.2 3.16.4 3.16.5 3.16.6 3.17.0 3.17.1 3.18.0 3.18.1 3.2.0.1 3.2.1 3.2.2.1 3.2.4 3.20.0 3.21.1 3.22.1 3.22.3 3.23.0 3.23.1 3.23.2 3.23.3 3.23.4 3.24.0 3.24.0-beta.2 3.3.0 3.3.1 3.3.2 3.4.1 3.4.2 3.6.1 3.6.3 3.7.0 3.7.1 3.7.2 3.7.3 3.8.2 3.8.3 3.8.4 3.8.5 3.8.7 3.8.8 3.9.0 3.9.1 3.9.11 3.9.2 3.9.4 3.9.5 3.9.8 3.9.9 trunk 1.0.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.2 1.2.1 1.2.10 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.5.1 1.6.5.2 1.6.5.3 1.6.5.4 1.7 1.7.1 1.7.1.1 2.0 2.0.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.6.2 2.0.6.3 2.0.6.5 2.0.7 2.0.7.1 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.2 2.3 2.3.1 2.4 2.4.2 2.4.3 2.4.4 2.4.5 2.5.2 2.5.3 2.6.1 2.6.2 2.6.3 2.7 2.7.1 2.7.4 2.7.4.1 2.7.5 2.7.6 2.7.8 2.7.8.1 2.7.9.1 2.8.0 2.8.0.1
wp-smushit / uninstall.php
wp-smushit Last commit date
_src 3 years ago app 3 years ago core 3 years ago languages 3 years ago vendor 3 years ago readme.txt 3 years ago uninstall.php 3 years ago wp-smush.php 3 years ago
uninstall.php
187 lines
1 <?php
2 /**
3 * Remove plugin settings data.
4 *
5 * @since 1.7
6 * @package Smush
7 */
8
9 use Smush\Core\Settings;
10
11 // If uninstall not called from WordPress exit.
12 if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
13 exit();
14 }
15
16 if ( ! class_exists( '\\Smush\\Core\\Settings' ) ) {
17 /* @noinspection PhpIncludeInspection */
18 include_once plugin_dir_path( __FILE__ ) . '/core/class-settings.php';
19 }
20 $keep_data = Settings::get_instance()->get( 'keep_data' );
21
22 // Check if someone want to keep the stats and settings.
23 if ( ( defined( 'WP_SMUSH_PRESERVE_STATS' ) && WP_SMUSH_PRESERVE_STATS ) || true === $keep_data ) {
24 return;
25 }
26
27 global $wpdb;
28
29 $smushit_keys = array(
30 'wp-smush-resmush-list',
31 'wp-smush-nextgen-resmush-list',
32 'wp-smush-resize_sizes',
33 'wp-smush-transparent_png',
34 'wp-smush-image_sizes',
35 'wp-smush-super_smushed',
36 'wp-smush-super_smushed_nextgen',
37 'wp-smush-settings_updated',
38 'wp-smush-hide_update_info',
39 'wp-smush-install-type',
40 'wp-smush-version',
41 'wp-smush-scan',
42 'wp-smush-settings',
43 'wp-smush-cdn_status',
44 'wp-smush-lazy_load',
45 'wp-smush-last_run_sync',
46 'wp-smush-networkwide',
47 'wp-smush-cron_update_running',
48 'wp-smush-dismissed-notices',
49 'wp-smush-show_upgrade_modal',
50 'wp-smush-preset_configs',
51 'wp-smush-webp_hide_wizard',
52 'wp-smush-hide-tutorials',
53 'wp-smush-hide_tutorials_from_bulk_smush', // Possible leftover from 3.8.4.
54 );
55
56 $db_keys = array(
57 'skip-smush-setup',
58 'smush_global_stats',
59 'wp_smush_stats_nextgen',
60 );
61
62 // Cache Keys.
63 $cache_smush_group = array(
64 'exceeding_items',
65 'wp-smush-resize_count',
66 'wp-smush-resize_savings',
67 'wp-smush-pngjpg_savings',
68 'wp-smush-smushed_ids',
69 'media_attachments',
70 'skipped_images',
71 'images_with_backups',
72 'wp-smush-dir_total_stats',
73 );
74
75 $cache_nextgen_group = array(
76 'wp_smush_images',
77 'wp_smush_images_smushed',
78 'wp_smush_images_unsmushed',
79 'wp_smush_stats_nextgen',
80 );
81
82 if ( ! is_multisite() ) {
83 // Delete Options.
84 foreach ( $smushit_keys as $key ) {
85 delete_option( $key );
86 delete_site_option( $key );
87 }
88
89 foreach ( $db_keys as $key ) {
90 delete_option( $key );
91 delete_site_option( $key );
92 }
93
94 // Delete Cache data.
95 foreach ( $cache_smush_group as $s_key ) {
96 wp_cache_delete( $s_key, 'wp-smush' );
97 }
98
99 foreach ( $cache_nextgen_group as $n_key ) {
100 wp_cache_delete( $n_key, 'nextgen' );
101 }
102
103 wp_cache_delete( 'get_image_sizes', 'smush_image_sizes' );
104
105 delete_transient( 'wp-smush-conflict_check' );
106 }
107
108 // Delete Directory Smush stats.
109 delete_option( 'dir_smush_stats' );
110 delete_option( 'wp_smush_scan' );
111 delete_option( 'wp_smush_api_auth' );
112 delete_site_option( 'wp_smush_api_auth' );
113
114 // Delete Post meta.
115 $meta_type = 'post';
116 $meta_key = 'wp-smpro-smush-data';
117 $meta_value = '';
118 $delete_all = true;
119
120 if ( is_multisite() ) {
121 $offset = 0;
122 $limit = 100;
123 while ( $blogs = $wpdb->get_results( "SELECT blog_id FROM {$wpdb->blogs} LIMIT $offset, $limit", ARRAY_A ) ) {
124 if ( $blogs ) {
125 foreach ( $blogs as $blog ) {
126 switch_to_blog( $blog['blog_id'] );
127 delete_metadata( $meta_type, null, $meta_key, $meta_value, $delete_all );
128 delete_metadata( $meta_type, null, 'wp-smush-lossy', '', $delete_all );
129 delete_metadata( $meta_type, null, 'wp-smush-resize_savings', '', $delete_all );
130 delete_metadata( $meta_type, null, 'wp-smush-original_file', '', $delete_all );
131 delete_metadata( $meta_type, null, 'wp-smush-pngjpg_savings', '', $delete_all );
132
133 foreach ( $smushit_keys as $key ) {
134 delete_option( $key );
135 delete_site_option( $key );
136 }
137
138 foreach ( $db_keys as $key ) {
139 delete_option( $key );
140 delete_site_option( $key );
141 }
142
143 // Delete Cache data.
144 foreach ( $cache_smush_group as $s_key ) {
145 wp_cache_delete( $s_key, 'wp-smush' );
146 }
147
148 foreach ( $cache_nextgen_group as $n_key ) {
149 wp_cache_delete( $n_key, 'nextgen' );
150 }
151
152 wp_cache_delete( 'get_image_sizes', 'smush_image_sizes' );
153 }
154 restore_current_blog();
155 }
156 $offset += $limit;
157 }
158 } else {
159 delete_metadata( $meta_type, null, $meta_key, $meta_value, $delete_all );
160 delete_metadata( $meta_type, null, 'wp-smush-lossy', '', $delete_all );
161 delete_metadata( $meta_type, null, 'wp-smush-resize_savings', '', $delete_all );
162 delete_metadata( $meta_type, null, 'wp-smush-original_file', '', $delete_all );
163 delete_metadata( $meta_type, null, 'wp-smush-pngjpg_savings', '', $delete_all );
164 }
165 // Delete Directory smush table.
166 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->base_prefix}smush_dir_images" );
167
168 // Delete directory scan data.
169 delete_option( 'wp-smush-scan-step' );
170
171 // Delete all WebP images.
172 global $wp_filesystem;
173 if ( is_null( $wp_filesystem ) ) {
174 WP_Filesystem();
175 }
176
177 $upload_dir = wp_get_upload_dir();
178 $webp_dir = dirname( $upload_dir['basedir'] ) . '/smush-webp';
179 $wp_filesystem->delete( $webp_dir, true );
180
181 // Delete WebP test image.
182 $webp_img = $upload_dir['basedir'] . '/smush-webp-test.png';
183 $wp_filesystem->delete( $webp_img );
184
185 // TODO: Add procedure to delete backup files
186 // TODO: Update NextGen Metadata to remove Smush stats on plugin deletion.
187