92 lines
2.7 KiB
PHP
92 lines
2.7 KiB
PHP
<?php
|
|
/**
|
|
* Media Library Assistant Uninstall
|
|
*
|
|
* Uninstalling (deleting) Media Library Assistant deletes option settings.
|
|
*
|
|
* @package Media Library Assistant
|
|
* @since 2.25
|
|
*/
|
|
|
|
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Provides path information to the plugin root in file system format, including the trailing slash.
|
|
*/
|
|
define( 'MLA_PLUGIN_PATH', rtrim( dirname( __FILE__ ), '/\\' ) . '/' );
|
|
|
|
if ( ! defined( 'MLA_BACKUP_DIR' ) ) {
|
|
/**
|
|
* Provides the absolute path to the MLA backup directory, including the trailing slash.
|
|
* This constant can be overriden by defining it in the wp_config.php file.
|
|
*/
|
|
$content_dir = ( defined('WP_CONTENT_DIR') ) ? WP_CONTENT_DIR : ABSPATH . 'wp-content';
|
|
define( 'MLA_BACKUP_DIR', $content_dir . '/mla-backup/' );
|
|
unset( $content_dir );
|
|
}
|
|
|
|
if ( ! defined('MLA_OPTION_PREFIX') ) {
|
|
/**
|
|
* Gives a unique prefix for plugin options; can be set in wp-config.php
|
|
*/
|
|
define('MLA_OPTION_PREFIX', 'mla_');
|
|
}
|
|
|
|
/*
|
|
* Load the MLA Options table to get the option settings list
|
|
*/
|
|
require_once( MLA_PLUGIN_PATH . 'includes/class-mla-core-options.php' );
|
|
MLACoreOptions::mla_localize_option_definitions_array();
|
|
|
|
/**
|
|
* Class MLA (Media Library Assistant) Uninstall deletes the data associated with the MLA plugin
|
|
*
|
|
* @package Media Library Assistant
|
|
* @since 2.25
|
|
*/
|
|
class MLAUninstall {
|
|
/**
|
|
* Delete option settings and/or backup directory, if the appropriate MLA General options are set
|
|
*
|
|
* @since 2.25
|
|
*/
|
|
public static function process_uninstall( ) {
|
|
$delete_option_settings = 'checked' === get_option( MLA_OPTION_PREFIX . MLACoreOptions::MLA_DELETE_OPTION_SETTINGS, false );
|
|
$delete_option_backups = 'checked' === get_option( MLA_OPTION_PREFIX . MLACoreOptions::MLA_DELETE_OPTION_BACKUPS, false );
|
|
|
|
/*
|
|
* Delete saved settings
|
|
*/
|
|
if ( $delete_option_settings ) {
|
|
foreach ( MLACoreOptions::$mla_option_definitions as $key => $value ) {
|
|
if ( in_array( $value['type'], array( 'header', 'subheader' ) ) ) {
|
|
continue;
|
|
} else {
|
|
$result = delete_option( MLA_OPTION_PREFIX .$key );
|
|
}
|
|
}
|
|
} // $delete_option_settings
|
|
|
|
/*
|
|
* Delete backup files and directory (best efforts)
|
|
*/
|
|
if ( $delete_option_backups && file_exists( MLA_BACKUP_DIR ) ) {
|
|
$files = @scandir( MLA_BACKUP_DIR, SCANDIR_SORT_NONE );
|
|
if ( is_array( $files ) ) {
|
|
foreach ( $files as $file ) {
|
|
if ( 0 === strpos( $file, '.' ) ) {
|
|
continue;
|
|
}
|
|
|
|
@unlink( MLA_BACKUP_DIR . $file );
|
|
}
|
|
} // is_array
|
|
|
|
@rmdir( MLA_BACKUP_DIR );
|
|
} // $delete_option_backups
|
|
} // process_uninstall
|
|
} // class MLAUninstall
|
|
MLAUninstall::process_uninstall();
|
|
?>
|