Files
wordpress-preseed/wp-content/plugins/media-library-assistant/mla-uninstall.php
2019-10-24 00:12:05 +02:00

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();
?>