HEX
Server: Apache
System: Linux d5123.usc1.stableserver.net 5.14.0-570.17.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Sat May 24 12:53:17 EDT 2025 x86_64
User: d5123 (1001)
PHP: 8.4.21
Disabled: NONE
Upload Files
File: /home/d5123/myboofola_com/wp-content/plugins/amazon-auto-links/uninstall.php
<?php
/**
 * Cleans up the plugin options, custom post type posts, and custom database tables.
 *    
 * @copyright    Copyright (c) 2013-2022, <Michael Uno>
 * @author       Michael Uno
 * @authorurl    http://michaeluno.jp
 * @since        3
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
    exit;
}

/**
 * Plugin specific constant. 
 * We are going to load the main file to get the registry class. And in the main file, 
 * if this constant is set, it will return after declaring the registry class.
 */
if ( ! defined( 'DOING_PLUGIN_UNINSTALL' ) ) {
    define( 'DOING_PLUGIN_UNINSTALL', true  );
}

/**
 * Set the main plugin file name here.
 */
$_sMainPluginFileName  = 'amazon-auto-links.php';
if ( file_exists( dirname( __FILE__ ). '/' . $_sMainPluginFileName ) ) {
   include( $_sMainPluginFileName );
}

if ( ! class_exists( 'AmazonAutoLinks_Registry' ) ) {
    return;
}

// Delete the plugin temporary directory
$_aTempDirPaths = array(
    AmazonAutoLinks_Registry::getPluginSiteTempDirPath(),
    untrailingslashit( wp_normalize_path( sys_get_temp_dir() ) ) . '/WPAAL', // old deprecated one
);
foreach( $_aTempDirPaths as $_sDirPath ) {
    if ( AmazonAutoLinks_Utility::doesDirectoryExist( $_sDirPath ) ) {
        AmazonAutoLinks_Utility::removeDirectoryRecursive( $_sDirPath );
    }
}

// Delete transients
$_aPrefixes = array(
    AmazonAutoLinks_Registry::TRANSIENT_PREFIX, // the plugin transients
    'apf_',      // the admin page framework transients
);
foreach( $_aPrefixes as $_sPrefix ) {
    if ( ! $_sPrefix ) { 
        continue; 
    }
    $GLOBALS[ 'wpdb' ]->query( "DELETE FROM `" . $GLOBALS[ 'table_prefix' ] . "options` WHERE `option_name` LIKE ( '_transient_%{$_sPrefix}%' )" );
    $GLOBALS[ 'wpdb' ]->query( "DELETE FROM `" . $GLOBALS[ 'table_prefix' ] . "options` WHERE `option_name` LIKE ( '_transient_timeout_%{$_sPrefix}%' )" );
}

// Delete options
$_aOptions = get_option( AmazonAutoLinks_Registry::$aOptionKeys[ 'main' ], array() );
$_bDelete  = isset( $_aOptions[ 'reset_settings' ][ 'reset_on_uninstall' ] ) 
    ? $_aOptions[ 'reset_settings' ][ 'reset_on_uninstall' ]
    : false;
if ( ! $_bDelete ) {
    return;
}

// Delete Pages
$_aDisclosurePage   = AmazonAutoLinks_WPUtility::getPostByGUID( 'https://aal-affiliate-disclosure-page', 'ID' );
$_iDisclosurePageID = AmazonAutoLinks_WPUtility::getElement( $_aDisclosurePage, 'ID' );
if ( $_iDisclosurePageID ) {
    wp_delete_post( $_iDisclosurePageID, true );
}

// User Meta
foreach( AmazonAutoLinks_Registry::$aUserMeta as $_sUserMetaKey ) {
    delete_metadata(
        'user',        // the meta type
        0,              // this doesn't actually matter in this call
        $_sUserMetaKey,         // the meta key to be removed everywhere
        '',            // this also doesn't actually matter in this call
        true            // tells the function "yes, please remove them all"
    );
}

array_walk_recursive( 
    AmazonAutoLinks_Registry::$aOptionKeys, // subject array
    'delete_option'   // function name
);

// Delete tables
$_oTables = new AmazonAutoLinks_DatabaseTables();
$_oTables->uninstallAll();

// [3.6.6+] Delete Custom Post Type Posts
foreach( AmazonAutoLinks_Registry::$aPostTypes as $_sKey => $_sPostTypeSlug ) {
    _deleteAmazonAutoLinksPosts( $_sPostTypeSlug );
}

/**
 * @param string $sPostTypeSlug
 * @since 3.6.6
 */
function _deleteAmazonAutoLinksPosts( $sPostTypeSlug ) {
    $_oResults   = new WP_Query(
        array(
            'post_type'      => $sPostTypeSlug,
            'posts_per_page' => -1,     // `-1` for all
            'fields'         => 'ids',  // return only post IDs by default.
        )
    );
    foreach( $_oResults->posts as $_iPostID ) {
        wp_delete_post( $_iPostID, true );
    }
}