HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/insiders/wp-load/wp-content/plugins/internal-links/includes/uninstall.php
<?php

use ILJ\Cache\Transient_Cache;
use ILJ\Core\Options;
use ILJ\Database\Linkindex;
use ILJ\Database\LinkindexTemp;
use ILJ\Database\Postmeta;
use ILJ\Database\Usermeta;

/**
 * Responsible for removing database stuff on plugin uninstall
 *
 * @since 1.2.2
 */
function ilj_remove_db_data() {
	// Delete all ilj transients
	Transient_Cache::delete_all();

	$keep_settings = Options::getOption(\ILJ\Core\Options\KeepSettings::getKey());

	if ($keep_settings) {
		return;
	}

	Options::removeAllOptions();
	Postmeta::removeAllLinkDefinitions();
	Usermeta::removeAllUsermeta();

	
}

/**
 * Responsible for deleting the database tables
 *
 * @return void
 */
function ilj_uninstall_db() {
	global $wpdb;
	$query_linkindex = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . Linkindex::ILJ_DATABASE_TABLE_LINKINDEX . ';';
	// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared -- Direct query is necessary for table deletion, and caching is not applicable.
	$wpdb->query($query_linkindex);

	$fs_accounts = get_option('fs_accounts', array());

	unset($fs_accounts['id_slug_type_path_map'][ILJ_FREEMIUS_PLUGIN_ID]);
	unset($fs_accounts['plugin_data']['internal-links']);
	unset($fs_accounts['file_slug_map']['internal-links/wp-internal-linkjuicer.php']);
	unset($fs_accounts['file_slug_map']['internal-links-premium/wp-internal-linkjuicer.php']);
	unset($fs_accounts['plugins']['[internal-links']);
	unset($fs_accounts['sites']['internal-links']);
	unset($fs_accounts['plans']['internal-links']);
	unset($fs_accounts['user_id_license_ids_map'][ILJ_FREEMIUS_PLUGIN_ID]);
	unset($fs_accounts['all_licenses'][ILJ_FREEMIUS_PLUGIN_ID]);

	update_option('fs_accounts', $fs_accounts);
}

/**
 * This function performs tasks such as deleting database tables,
 * and any other uninstall related procedures.
 *
 * @return void
 */
function ilj_plugin_uninstall(){
	if (is_multisite()) {
		$site_ids = get_sites(array('fields' => 'ids'));
		foreach ($site_ids as $site_id) {
			switch_to_blog($site_id);
			ilj_uninstall_db();
			ilj_remove_db_data();
			restore_current_blog();
		}
		return;
	}
	ilj_uninstall_db();
	ilj_remove_db_data();
}

/**
 * Uninstall actions.
 */
\ILJ\ilj_fs()->add_action('after_uninstall', '\\ilj_plugin_uninstall');