58 lines
1.6 KiB
PHP
58 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* Functionality that is executed when Jetpack is uninstalled via built-in WordPress commands.
|
|
*
|
|
* @package automattic/jetpack
|
|
*/
|
|
|
|
use Automattic\Jetpack\Backup\V0005\Helper_Script_Manager;
|
|
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
|
|
use Automattic\Jetpack\Sync\Sender;
|
|
|
|
/**
|
|
* Uninstall script for Jetpack.
|
|
*/
|
|
function jetpack_uninstall() {
|
|
if (
|
|
! defined( 'WP_UNINSTALL_PLUGIN' ) ||
|
|
! WP_UNINSTALL_PLUGIN ||
|
|
dirname( WP_UNINSTALL_PLUGIN ) !== dirname( plugin_basename( __FILE__ ) )
|
|
) {
|
|
status_header( 404 );
|
|
exit( 0 );
|
|
}
|
|
|
|
if ( ! defined( 'JETPACK__PLUGIN_DIR' ) ) {
|
|
define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
|
|
}
|
|
|
|
require JETPACK__PLUGIN_DIR . 'vendor/autoload_packages.php';
|
|
|
|
if ( method_exists( Connection_Manager::class, 'is_ready_for_cleanup' ) && ! Connection_Manager::is_ready_for_cleanup( dirname( plugin_basename( __FILE__ ) ) ) ) {
|
|
// There are other active Jetpack plugins, no need for cleanup.
|
|
return;
|
|
}
|
|
|
|
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.
|
|
Sender::get_instance()->uninstall();
|
|
|
|
// Jetpack Backup: Cleanup any leftover Helper Scripts.
|
|
Helper_Script_Manager::delete_all_helper_scripts();
|
|
}
|
|
|
|
jetpack_uninstall();
|