File "uninstall.php"

Full Path: /home/vantageo/public_html/wp-admin/.wp-cli/wp-content/plugins/scripts-to-footerphp/uninstall.php
File size: 2.4 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Scripts to Footer Uninstall File
 *
 * @package    Scripts_To_Footer
 * @subpackage Uninstall
 * @author     Joshua David Nelson <josh@joshuadnelson.com>
 * @copyright  Copyright (c) 2023, Joshua David Nelson
 * @license    http://www.opensource.org/licenses/gpl-license.php GPL-2.0+
 * @link       https://github.com/joshuadavidnelson/scripts-to-footer
 * @since      0.2.0
 **/

/**
 * Prevent direct access to this file.
 *
 * @since 0.2
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit( 'You are not allowed to access this file directly.' );
}

/**
 * If uninstall not called from WordPress, exit.
 *
 * @since 0.2
 *
 * @uses  WP_UNINSTALL_PLUGIN
 */
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
	header( 'Status: 403 Forbidden' );
	header( 'HTTP/1.1 403 Forbidden' );
	exit();
}

/**
 * Various user checks.
 *
 * @since 0.2
 *
 * @uses  is_user_logged_in()
 * @uses  current_user_can()
 * @uses  wp_die()
 */
// @codingStandardsIgnoreStart
if ( ! is_user_logged_in() ) {
	wp_die(
		__( 'You must be logged in to run this script.', 'stf' ),
		__( 'Scripts To Footer', 'stf' ),
		array( 'back_link' => true )
	);
}

if ( ! current_user_can( 'install_plugins' ) ) {
	wp_die(
		__( 'You do not have permission to run this script.', 'stf' ),
		__( 'Scripts To Footer', 'stf' ),
		array( 'back_link' => true )
	);
}
// @codingStandardsIgnoreEnd

/**
 * Delete options array (settings field) from the database.
 *    Note: Respects Multisite setups and single installs.
 *
 * @since 0.2
 *
 * @uses  switch_to_blog()
 * @uses  restore_current_blog()
 *
 * @param array $blogs
 * @param int   $blog
 *
 * @global $wpdb
 */
// First, check for Multisite, if yes, delete options on a per site basis.
if ( is_multisite() ) {
	global $wpdb;

	// Get array of Site/Blog IDs from the database.
	$blogs = $wpdb->get_results( "SELECT blog_id FROM {$wpdb->blogs}", ARRAY_A ); // phpcs:ignore

	if ( $blogs ) {
		foreach ( $blogs as $blog ) {

			// Repeat for every Site ID.
			switch_to_blog( $blog['blog_id'] );

			// Delete plugin options.
			delete_option( 'scripts-to-footer' );
			delete_option( 'stf_version' );

			// Delete all post meta.
			delete_post_meta_by_key( 'stf_exclude' );
		}
		restore_current_blog();
	}
} else { // Otherwise, delete options from main options table.
	// Delete plugin options.
	delete_option( 'scripts-to-footer' );
	delete_option( 'stf_version' );

	// Delete all post meta.
	delete_post_meta_by_key( 'stf_exclude' );
}