PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 3.7.1
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v3.7.1
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
wp-optimize / includes / class-wpo-uninstall.php

class-wpo-uninstall.php in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 3.7.1, at includes/class-wpo-uninstall.php

83 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if (!defined('ABSPATH')) die('Access denied.');
3
4 if (!class_exists('WPO_Uninstall')) :
5
6 class WPO_Uninstall {
7
8 /**
9 * Actions to be performed upon plugin uninstallation
10 */
11 public static function actions() {
12 WP_Optimize()->get_gzip_compression()->disable();
13 WP_Optimize()->get_browser_cache()->disable();
14 WP_Optimize()->get_options()->delete_all_options();
15 WP_Optimize()->get_minify()->plugin_uninstall();
16 WP_Optimize()->get_options()->wipe_settings();
17 WP_Optimize()->delete_transients_and_semaphores();
18 Updraft_Tasks_Activation::uninstall(WPO_PLUGIN_SLUG);
19 self::delete_wpo_folder();
20
21 $htaccess_file = self::get_upload_basedir() . '.htaccess';
22 if (is_file($htaccess_file) && 0 === filesize($htaccess_file)) {
23 unlink($htaccess_file);
24 }
25
26 wp_clear_scheduled_hook('process_smush_tasks');
27 WP_Optimize()->wpo_cron_deactivate();
28 }
29
30 /**
31 * Returns absolute path to uploads folder
32 *
33 * @return string
34 */
35 private static function get_upload_basedir() {
36 $upload_dir = wp_get_upload_dir();
37 return trailingslashit($upload_dir['basedir']);
38 }
39
40 /**
41 * Returns an array of sub folders in `uploads/wpo` folder
42 *
43 * @return array
44 */
45 private static function get_wpo_sub_folders() {
46 $sub_folders = array(
47 'add-type',
48 'content-digest',
49 'crash-tester',
50 'directory-index',
51 'header-set',
52 'images',
53 'module-loaded',
54 'rewrite',
55 'server-signature',
56 'logs',
57 );
58 return apply_filters('wpo_uploads_sub_folders', $sub_folders);
59 }
60
61 /**
62 * Delete `uploads/wpo` sub folders and if it is empty delete the folder itself
63 */
64 public static function delete_wpo_folder() {
65 $wpo_folder = self::get_upload_basedir() . trailingslashit('wpo');
66 require_once WPO_PLUGIN_MAIN_PATH . 'cache/file-based-page-cache-functions.php';
67 if (is_dir($wpo_folder)) {
68 $wpo_sub_folders = self::get_wpo_sub_folders();
69 foreach ($wpo_sub_folders as $folder) {
70 wpo_delete_files($wpo_folder . $folder);
71 }
72
73 $files = @scandir($wpo_folder); // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- suppress warning if it arises due to race condition
74 if (false === $files) return;
75 if (2 === count($files)) {
76 @rmdir($wpo_folder); // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged -- suppress error due to file permission issues
77 }
78 }
79 }
80 }
81
82 endif;
83