Dashboard
PHP:
8.0.30
OS:
Linux
User:
hoozgot
/
/
home
/
hoozgot
/
www
/
mountainpassions
/
blog
/
wp-content
/
plugins
/
wp-spamshield
📤 Upload
📝 New File
📁 New Folder
Close
Editing: uninstall.php
<?php /** * WP-SpamShield - uninstall.php * Version: 1.9.20 * * This script uninstalls WP-SpamShield and removes all options and traces of its existence. */ if( !defined( 'ABSPATH' ) || !defined( 'WP_UNINSTALL_PLUGIN' ) ) { if( !headers_sent() ) { @header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden',TRUE,403); @header('X-Robots-Tag: noindex',TRUE); } die( 'ERROR: This plugin requires WordPress and will not function if called directly.' ); } if( !defined( 'WPSS_DEBUG' ) ) { define( 'WPSS_DEBUG', FALSE ); } if( !defined( 'WPSS_CONTENT_DIR_PATH' ) ) { define( 'WPSS_CONTENT_DIR_PATH', WP_CONTENT_DIR ); } if( !defined( 'WPSS_PLUGIN_PATH' ) ) { define( 'WPSS_PLUGIN_PATH', untrailingslashit( plugin_dir_path( __FILE__ ) ) ); } if( !defined( 'WPSS_DS' ) ) { $wpss_ds = ( defined( 'DIRECTORY_SEPARATOR' ) && ( '/' === DIRECTORY_SEPARATOR || '\\' === DIRECTORY_SEPARATOR ) ) ? DIRECTORY_SEPARATOR : rs_wpss_un_ds(); define( 'WPSS_DS', $wpss_ds ); } function rs_wpss_uninstall_plugin() { /* Delete Options */ $del_options = array( 'wp_spamshield_version', 'spamshield_options', 'spamshield_widget_settings', 'spamshield_last_admin', 'spamshield_admins', 'spamshield_admin_notices', 'spamshield_count', 'spamshield_reg_count', 'spamshield_procdat', 'spamshield_install_status', 'spamshield_warning_status', 'spamshield_regalert_status', 'spamshield_nonces', 'spamshield_wpssmid_cache', 'spamshield_ubl_cache', 'spamshield_ubl_cache_disable', 'spamshield_ip_ban_disable', 'spamshield_ip_ban', 'spamshield_whitelist_keys', 'ak_count_pre', 'spamshield_init_user_approve_run' ); foreach( $del_options as $i => $option ) { delete_option( $option ); } /* TO DO: When Network Activation enabled, add Multisite - delete_site_option() */ /* Delete Transients */ $del_trans = array( 'wpss_iswpv_check', ); foreach( $del_trans as $i => $transient ) { delete_transient( $transient ); delete_site_transient( $transient ); } /* Unregister Widgets */ $unreg_widgets = array( 'WP_SpamShield_Counter_LG', 'WP_SpamShield_Counter_CG', 'WP_SpamShield_End_Blog_Spam' ); foreach( $unreg_widgets as $i => $widget ) { unregister_widget( $widget ); } /* Clean Up Widget Options */ $all_widgets = get_option('sidebars_widgets'); foreach( $all_widgets as $i => $s ) { if( is_array( $s ) ) { foreach( $s as $k => $v ) { if( FALSE !== strpos( $v, 'spamshield' ) ) { unset( $all_widgets[$i][$k] ); } } $all_widgets[$i] = array_values( $all_widgets[$i] ); } } update_option( 'sidebars_widgets', $all_widgets ); /* Delete Orphaned Options */ $all_options = wp_load_alloptions(); foreach( $all_options as $option => $value ) { if( FALSE !== strpos( $option, 'spamshield' ) ) { delete_option( $option ); } /* TO DO: When Network Activation enabled, add Multisite - delete_site_option() */ } /* Delete User Meta */ $del_user_meta = array( 'wpss_user_ip', 'wpss_admin_status', 'wpss_new_user_approved', 'wpss_new_user_email_sent', 'wpss_cpn_status', 'wpss_cpn_notices', 'wpss_nag_status', 'wpss_nag_notices', ); $user_ids = get_users( array( 'blog_id' => '', 'fields' => 'ID' ) ); foreach ( $user_ids as $user_id ) { foreach( $del_user_meta as $i => $key ) { delete_user_meta( $user_id, $key ); } } /* Clear Banned IP Info */ rs_wpss_uninstall_ip_ban_htaccess(); } function rs_wpss_un_ds() { global $is_IIS; return !empty( $is_IIS ) ? '\\' : '/'; } function rs_wpss_uninstall_ip_ban_htaccess() { /** * Clear banned IP info from .htaccess during uninstall. */ $hta_bak_dir = WPSS_CONTENT_DIR_PATH.WPSS_DS.'backup'; $hta_wpss_bak_dir = $hta_bak_dir.WPSS_DS.'wp-spamshield'; $hta_file = ABSPATH.WPSS_DS.'.htaccess'; $hta_bak_file = $hta_wpss_bak_dir.WPSS_DS.'original.htaccess'; $wpss_index_file = WPSS_PLUGIN_PATH.WPSS_DS.'index.php'; $bak_dir_hta_file = WPSS_PLUGIN_PATH.WPSS_DS.'lib'.WPSS_DS.'sec'.WPSS_DS.'.htaccess'; $wpss_dirs = array( $hta_wpss_bak_dir.WPSS_DS.'' ); foreach( $wpss_dirs as $d => $dir ) { if( @is_dir( $wpss_dirs[$d] ) ) { $filelist = rs_wpss_un_scandir( $wpss_dirs[$d] ); foreach( $filelist as $f => $filename ) { $file = $wpss_dirs[$d].$filename; if( @is_file( $file ) ){ rs_wpss_un_chmod( $file, 775 ); @unlink( $file ); if( @file_exists( $file ) ) { rs_wpss_un_chmod( $file, 644 ); @unlink( $file ); } } } rs_wpss_un_chmod( $wpss_dirs[$d], 775 ); @rmdir( $wpss_dirs[$d] ); if( @file_exists( $wpss_dirs[$d] ) ) { rs_wpss_un_chmod( $wpss_dirs[$d], 755 ); @rmdir( $wpss_dirs[$d] ); } } } $wpss_files = array( $hta_bak_dir.WPSS_DS.'.htaccess', $hta_bak_dir.WPSS_DS.'index.php', WPMU_PLUGIN_DIR.WPSS_DS.'am-integrity-scanner.php' ); foreach( $wpss_files as $f => $file ) { if( @is_file( $file ) ){ rs_wpss_un_chmod( $file, 775 ); @unlink( $file ); if( @file_exists( $file ) ) { rs_wpss_un_chmod( $file, 644 ); @unlink( $file ); } } } $hta_contents = @file_get_contents( $hta_file ); if( FALSE !== strpos( $hta_contents, '# BEGIN WP-SpamShield' ) && FALSE !== strpos( $hta_contents, '# END WP-SpamShield' ) ) { $hta_contents_mod = @preg_replace( "~".PHP_EOL."#\ BEGIN\ WP-SpamShield[\w\W]+#\ END\ WP-SpamShield".PHP_EOL."~i", '', $hta_contents ); if( $hta_contents_mod !== $hta_contents ) { @file_put_contents( $hta_file, $hta_contents_mod, LOCK_EX ); } } } function rs_wpss_un_scandir( $dir ) { if( empty( $dir ) || ! @is_string( $dir ) ) { return $dir; } @clearstatcache(); $dot_files = array( '..', '.' ); $dir_listr = (array) @scandir( $dir ); $dir_list = array_values( array_diff( $dir_listr, $dot_files ) ); return $dir_list; } function rs_wpss_un_chmod( $file, $mode ) { @chmod( $file, octdec( $mode ) ); } function rs_wpss_un_filter_null( $str ) { return str_replace( chr(0), '', $str ); } function rs_wpss_un_append_log_data( $str = NULL, $rsds_only = FALSE ) { if ( TRUE === WP_DEBUG && TRUE === WPSS_DEBUG ) { $wpss_log_str = 'WP-SpamShield UN DEBUG: '; @error_log( rs_wpss_un_filter_null( $wpss_log_str ), 0 ); } } rs_wpss_uninstall_plugin(); /** * "...Then it's time I disappear..." */
Save
Cancel