<?php
/**
* Uninstall process for the plugin.
*
* @link http://wpmudev.com
* @since 3.3.5
*
* @author Joel James <joel@incsub.com>
* @package Beehive\Uninstall
*/
use Beehive\Core\Controllers\Cleanup;
use Beehive\Core\Controllers\Settings;
// If uninstall not called from WordPress exit.
defined( 'WP_UNINSTALL_PLUGIN' ) || exit();
// Include autoloader.
require_once plugin_dir_path( __FILE__ ) . '/core/utils/autoloader.php';
// Check if it's a multisite.
$multisite = is_multisite();
// Get cleanup flag.
$keep = Settings::instance()->get( 'settings', 'data', $multisite );
// No need to clean anything.
if ( $keep ) {
return;
}
// Delete all custom options.
Cleanup::clean_settings( $multisite );
// Delete all transients.
Cleanup::clean_transients( $multisite );
// Additional cleanup for subsites.
if ( $multisite ) {
$offset = 0;
$limit = 100;
global $wpdb;
// Get all blog ids and do cleanup.
// phpcs:ignore
while ( $blogs = $wpdb->get_results( "SELECT blog_id FROM {$wpdb->blogs} LIMIT $offset, $limit" ) ) {
if ( $blogs ) {
foreach ( $blogs as $blog ) {
// Switch to blog.
switch_to_blog( $blog->blog_id );
// Delete all custom options.
Cleanup::clean_settings();
// Delete all transients.
Cleanup::clean_transients();
}
// Restore old site.
restore_current_blog();
}
// Update the offset.
$offset += $limit;
}
}