PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 3.1.0
Defender Security – Malware Scanner, Login Security & Firewall v3.1.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / uninstall.php

uninstall.php in Defender Security – Malware Scanner, Login Security & Firewall 3.1.0, at uninstall.php

98 lines 4.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // Exit if uninstall is not called from WordPress.
3 if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
4 exit();
5 }
6
7 if ( version_compare( PHP_VERSION, '5.3', '<' ) ) {
8 // php 5.2 does not need uninstall.
9 return;
10 }
11
12 /**
13 * Drop custom tables.
14 *
15 * @since 2.4
16 */
17 function defender_drop_custom_tables() {
18 global $wpdb;
19
20 $wpdb->hide_errors();
21
22 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}defender_email_log" );
23 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}defender_scan_item" );
24 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}defender_scan" );
25 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}defender_lockout_log" );
26 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}defender_lockout" );
27 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}defender_audit_log" );
28 }
29
30 include_once __DIR__ . DIRECTORY_SEPARATOR . 'wp-defender.php';
31 $settings = wd_di()->get( \WP_Defender\Model\Setting\Main_Setting::class );
32 $uninstall_data = isset( $settings->uninstall_data ) && 'remove' === $settings->uninstall_data;
33 $uninstall_settings = isset( $settings->uninstall_settings ) && 'reset' === $settings->uninstall_settings;
34
35 if ( $uninstall_settings || $uninstall_data ) {
36 // Turn off Audit_Logging so that hooks are not processed after deleting the table or resetting settings.
37 $audit = wd_di()->get( \WP_Defender\Model\Setting\Audit_Logging::class );
38 $audit->enabled = false;
39 $audit->save();
40 $advanced_tools = wd_di()->get( \WP_Defender\Controller\Advanced_Tools::class );
41 }
42 // Only Settings.
43 if ( $uninstall_settings ) {
44 $advanced_tools->remove_settings();
45 wd_di()->get( \WP_Defender\Controller\Audit_Logging::class )->remove_settings();
46 wd_di()->get( \WP_Defender\Controller\Dashboard::class )->remove_settings();
47 wd_di()->get( \WP_Defender\Controller\Security_Tweaks::class )->remove_settings();
48 wd_di()->get( \WP_Defender\Controller\Scan::class )->remove_settings();
49 wd_di()->get( \WP_Defender\Controller\Firewall::class )->remove_settings();
50 wd_di()->get( \WP_Defender\Controller\Firewall_Logs::class )->remove_settings();
51 wd_di()->get( \WP_Defender\Controller\Login_Lockout::class )->remove_settings();
52 wd_di()->get( \WP_Defender\Controller\Nf_Lockout::class )->remove_settings();
53 wd_di()->get( \WP_Defender\Controller\Mask_Login::class )->remove_settings();
54 wd_di()->get( \WP_Defender\Controller\Tutorial::class )->remove_settings();
55 wd_di()->get( \WP_Defender\Controller\Notification::class )->remove_settings();
56 wd_di()->get( \WP_Defender\Controller\Two_Factor::class )->remove_settings();
57 wd_di()->get( \WP_Defender\Controller\Blocklist_Monitor::class )->remove_settings();
58 wd_di()->get( \WP_Defender\Controller\Main_Setting::class )->remove_settings();
59 // Delete plugin options.
60 delete_option( 'wp_defender' );
61 delete_site_option( 'wp_defender' );
62 delete_option( 'wd_db_version' );
63 delete_site_option( 'wd_db_version' );
64 delete_site_option( 'wpdefender_config_clear_active_tag' );
65 delete_site_option( 'wpdefender_preset_configs_transient_time' );
66 delete_site_option( 'wp_defender_config_default' );
67 // Because not call remove_settings from WAF and Onboard controllers.
68 delete_site_transient( 'def_waf_status' );
69 delete_site_option( 'wp_defender_is_activated' );
70 }
71 // Only Data.
72 if ( $uninstall_data ) {
73 wd_di()->get( \WP_Defender\Controller\Audit_Logging::class )->remove_data();
74 wd_di()->get( \WP_Defender\Controller\Dashboard::class )->remove_data();
75 wd_di()->get( \WP_Defender\Controller\Security_Tweaks::class )->remove_data();
76 wd_di()->get( \WP_Defender\Controller\Scan::class )->remove_data();
77 wd_di()->get( \WP_Defender\Controller\Firewall::class )->remove_data();
78 wd_di()->get( \WP_Defender\Controller\Firewall_Logs::class )->remove_data();
79 wd_di()->get( \WP_Defender\Controller\Login_Lockout::class )->remove_data();
80 wd_di()->get( \WP_Defender\Controller\Nf_Lockout::class )->remove_data();
81 wd_di()->get( \WP_Defender\Controller\Mask_Login::class )->remove_data();
82 wd_di()->get( \WP_Defender\Controller\Notification::class )->remove_data();
83 wd_di()->get( \WP_Defender\Controller\Tutorial::class )->remove_data();
84 wd_di()->get( \WP_Defender\Controller\Two_Factor::class )->remove_data();
85 wd_di()->get( \WP_Defender\Controller\Webauthn::class )->remove_data();
86 wd_di()->get( \WP_Defender\Component\Backup_Settings::class )->clear_configs();
87 $advanced_tools->remove_data();
88 defender_drop_custom_tables();
89 }
90 // Complete cleaning.
91 if ( $uninstall_settings && $uninstall_data ) {
92 delete_site_option( 'wd_nofresh_install' );
93 }
94 // Remains from old versions.
95 delete_site_option( 'wd_audit_cached' );
96 // Remove BF notice.
97 delete_site_option( 'wp_defender_show_black_friday' );
98