From 17b4d608ed26a41ce29d7fdbd1b59ce1dfb847ba Mon Sep 17 00:00:00 2001 From: Robert Harm Date: Tue, 25 Mar 2014 13:25:08 +0100 Subject: [PATCH] expand uninstall.php to also delete transient, options, custom database tables and files --- plugin-name/uninstall.php | 60 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/plugin-name/uninstall.php b/plugin-name/uninstall.php index ac1add1..8227ec2 100644 --- a/plugin-name/uninstall.php +++ b/plugin-name/uninstall.php @@ -13,5 +13,61 @@ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit; } - -// @TODO: Define uninstall functionality here +if (is_multisite()) { + global $wpdb; + $blogs = $wpdb->get_results("SELECT blog_id FROM {$wpdb->blogs}", ARRAY_A); + /* @TODO: delete all transient, options and files you may have added + delete_transient( 'TRANSIENT_NAME' ); + delete_option('OPTION_NAME'); + //info: remove custom file directory for main site + $upload_dir = wp_upload_dir(); + $directory = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . "CUSTOM_DIRECTORY_NAME" . DIRECTORY_SEPARATOR; + if (is_dir($directory)) { + foreach(glob($directory.'*.*') as $v){ + unlink($v); + } + rmdir($directory); + } + */ + if ($blogs) { + foreach($blogs as $blog) { + switch_to_blog($blog['blog_id']); + /* @TODO: delete all transient, options and files you may have added + delete_transient( 'TRANSIENT_NAME' ); + delete_option('OPTION_NAME'); + //info: remove custom file directory for main site + $upload_dir = wp_upload_dir(); + $directory = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . "CUSTOM_DIRECTORY_NAME" . DIRECTORY_SEPARATOR; + if (is_dir($directory)) { + foreach(glob($directory.'*.*') as $v){ + unlink($v); + } + rmdir($directory); + } + //info: remove and optimize tables + $GLOBALS['wpdb']->query("DROP TABLE `".$GLOBALS['wpdb']->prefix."TABLE_NAME`"); + $GLOBALS['wpdb']->query("OPTIMIZE TABLE `" .$GLOBALS['wpdb']->prefix."options`"); + */ + restore_current_blog(); + } + } +} +else +{ + /* @TODO: delete all transient, options and files you may have added + delete_transient( 'TRANSIENT_NAME' ); + delete_option('OPTION_NAME'); + //info: remove custom file directory for main site + $upload_dir = wp_upload_dir(); + $directory = $upload_dir['basedir'] . DIRECTORY_SEPARATOR . "CUSTOM_DIRECTORY_NAME" . DIRECTORY_SEPARATOR; + if (is_dir($directory)) { + foreach(glob($directory.'*.*') as $v){ + unlink($v); + } + rmdir($directory); + } + //info: remove and optimize tables + $GLOBALS['wpdb']->query("DROP TABLE `".$GLOBALS['wpdb']->prefix."TABLE_NAME`"); + $GLOBALS['wpdb']->query("OPTIMIZE TABLE `" .$GLOBALS['wpdb']->prefix."options`"); + */ +} \ No newline at end of file