summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/uninstall.php')
-rw-r--r--plugins/jetpack/uninstall.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/plugins/jetpack/uninstall.php b/plugins/jetpack/uninstall.php
new file mode 100644
index 00000000..366e62d1
--- /dev/null
+++ b/plugins/jetpack/uninstall.php
@@ -0,0 +1,36 @@
+<?php
+
+if (
+ !defined( 'WP_UNINSTALL_PLUGIN' )
+ ||
+ !WP_UNINSTALL_PLUGIN
+ ||
+ dirname( WP_UNINSTALL_PLUGIN ) != dirname( plugin_basename( __FILE__ ) )
+) {
+ status_header( 404 );
+ exit;
+}
+
+if ( ! defined( 'JETPACK__PLUGIN_DIR' ) ) {
+ define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
+}
+require_once JETPACK__PLUGIN_DIR . 'class.jetpack-options.php';
+
+Jetpack_Options::delete_all_known_options();
+
+// Delete all legacy options
+delete_option( 'jetpack_was_activated' );
+delete_option( 'jetpack_auto_installed' );
+delete_option( 'jetpack_register' );
+delete_transient( 'jetpack_register' );
+
+// Delete sync options
+//
+// Do not initialize any listeners.
+// Since all the files will be deleted.
+// No need to try to sync anything.
+add_filter( 'jetpack_sync_modules', '__return_empty_array', 100 );
+
+// Jetpack Sync
+require_once JETPACK__PLUGIN_DIR . 'sync/class.jetpack-sync-sender.php';
+Jetpack_Sync_Sender::get_instance()->uninstall();