PluginProbe ʕ •ᴥ•ʔ
WPFront Scroll Top / trunk
WPFront Scroll Top vtrunk
1.5 1.6 1.6.1 1.6.2 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1 2.1.1 2.2 3.0.0 3.0.1 trunk 1.0 1.0.1 1.1 1.1.1 1.2 1.3 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5
wpfront-scroll-top / uninstall.php
wpfront-scroll-top Last commit date
includes 9 months ago languages 9 months ago index.php 1 year ago license.txt 11 years ago readme.txt 1 month ago uninstall.php 1 year ago wpfront-scroll-top.php 9 months ago
uninstall.php
82 lines
1 <?php
2 /**
3 * Uninstall script for the plugin.
4 *
5 * @package wpfront-scroll-top
6 */
7
8 defined( 'WP_UNINSTALL_PLUGIN' ) || exit;
9
10 /**
11 * Remove a directory and all its contents.
12 *
13 * @param string $dir Directory path to remove.
14 * @return bool
15 */
16 function wpfront_scroll_top_remove_directory( $dir ) {
17 if ( ! file_exists( $dir ) || ! is_dir( $dir ) ) {
18 return false;
19 }
20
21 $files = array_diff( scandir( $dir ), array( '.', '..' ) );
22 foreach ( $files as $file ) {
23 is_dir( "$dir/$file" ) ? wpfront_scroll_top_remove_directory( "$dir/$file" ) : @unlink( "$dir/$file" ); // @phpcs:ignore
24 }
25
26 return @rmdir( $dir ); // @phpcs:ignore
27 }
28
29 /**
30 * Remove the plugin options and files.
31 *
32 * @return void
33 */
34 function wpfront_scroll_top_remove() {
35 delete_option( 'wpfront-scroll-top-options' );
36
37 $upload_dir = wp_upload_dir();
38
39 if ( $upload_dir['error'] ) {
40 return;
41 }
42
43 $base_dir = $upload_dir['basedir'];
44
45 wpfront_scroll_top_remove_directory( $base_dir . '/wpfront-scroll-top' );
46 }
47
48 /**
49 * Uninstall function for the WPFront Scroll Top plugin.
50 *
51 * @return void
52 */
53 function wpfront_scroll_top_uninstall() {
54 if ( is_multisite() ) {
55 /**
56 * WPDB
57 *
58 * @var \wpdb $wpdb
59 */
60 global $wpdb;
61 $blog_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); // @phpcs:ignore
62
63 foreach ( $blog_ids as $blog_id ) {
64 if ( ! is_scalar( $blog_id ) ) {
65 continue;
66 }
67
68 $blog_id = (int) $blog_id;
69
70 switch_to_blog( $blog_id );
71
72 wpfront_scroll_top_remove();
73
74 restore_current_blog();
75 }
76 } else {
77 wpfront_scroll_top_remove();
78 }
79 }
80
81 wpfront_scroll_top_uninstall();
82