PluginProbe
LoginPress | wp-login Custom Login Page Customizer / trunk
LoginPress | wp-login Custom Login Page Customizer vtrunk
6.2.5 6.2.4 6.2.3 6.2.2 6.2.1 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.3 1.0.4 All 118 releases
loginpress / include / uninstall.php

uninstall.php in LoginPress | wp-login Custom Login Page Customizer trunk, at include/uninstall.php

118 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * LoginPress Uninstall Functions.
4 *
5 * This file contains functions to uninstall LoginPress.
6 * Purpose of this file is to clean up plugin data when the plugin is uninstalled.
7 *
8 * @package LoginPress
9 * @since 1.1.9
10 * @version 6.2.0
11 */
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 $loginpress_setting = get_option( 'loginpress_setting' );
18 $loginpress_uninstall = isset( $loginpress_setting['loginpress_uninstall'] ) ? $loginpress_setting['loginpress_uninstall'] : 'off';
19 if ( 'on' !== $loginpress_uninstall ) {
20 return;
21 }
22
23 // Array of Plugin's Option.
24 $loginpress_uninstall_options = array(
25 'loginpress_customization',
26 'loginpress_setting',
27 'loginpress_addon_active_time',
28 'loginpress_addon_dismiss_1',
29 'loginpress_review_dismiss',
30 'loginpress_active_time',
31 '_loginpress_optin',
32 'loginpress_friday_sale_active_time',
33 'loginpress_friday_sale_dismiss',
34 'loginpress_friday_21_sale_dismiss',
35 '_transient_timeout_loginpress_rdn_fetch_notifications',
36 '_transient_loginpress_rdn_fetch_notifications',
37 'loginpress_pro_intro_dismiss',
38 'loginpress_premium',
39 'loginpress_autologin',
40 'loginpress_hidelogin',
41 'loginpress_limit_login_attempts',
42 'loginpress_login_redirects',
43 'loginpress_social_logins',
44 'wpb_sdk_module_id',
45 'wpb_sdk_loginpress',
46 'wpb_sdk_loginpress_fallback_verify_token',
47 'wpb_sdk_loginpress_initial_log_sent',
48 'wpb_sdk_loginpress_legacy_upgrade_optin',
49 'wpb_sdk_loginpress_uninstall_manifest',
50 'wpb_sdk_module_slug',
51 '_transient_loginpress_pro_pop_up',
52 );
53
54 if ( ! is_multisite() ) {
55 // Handle the delete loginpress force rest password for all users.
56 loginpress_force_reset_password_remove();
57
58 // Delete all plugin Options.
59 foreach ( $loginpress_uninstall_options as $loginpress_option ) {
60 delete_option( $loginpress_option );
61 }
62 } else {
63
64 global $wpdb;
65 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching -- Required for multisite uninstall to get all blog IDs.
66 $loginpress_blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );
67
68 foreach ( $loginpress_blog_ids as $loginpress_blog_id ) {
69
70 switch_to_blog( $loginpress_blog_id );
71
72 // Handle the delete loginpress force rest password for all users.
73 loginpress_force_reset_password_remove();
74
75 // Pull the LoginPress page from options.
76 $loginpress = new LoginPress();
77 $loginpress_page = $loginpress->get_loginpress_page();
78 $loginpress_page_id = $loginpress_page->ID;
79
80 wp_trash_post( $loginpress_page_id );
81
82 // Delete all plugin Options.
83 foreach ( $loginpress_uninstall_options as $loginpress_option ) {
84 delete_option( $loginpress_option );
85 }
86
87 restore_current_blog();
88 }
89 }
90
91
92 /**
93 * Handle the delete loginpress force reset password for all users.
94 *
95 * @since 3.0.0
96 * @return void
97 */
98 function loginpress_force_reset_password_remove() {
99
100 $args = array(
101 // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query -- Required for uninstall to find users with password reset meta.
102 'meta_query' => array(
103 array(
104 'key' => 'loginpress_password_reset_limit',
105 ),
106 ),
107 'fields' => 'ID',
108 );
109
110 $blog_users = get_users( $args );
111
112 if ( $blog_users ) {
113 foreach ( $blog_users as $users ) {
114 delete_user_meta( $users->ID, 'loginpress_password_reset_limit' );
115 }
116 }
117 }
118