diff --git a/includes/admin/class-secure.php b/includes/admin/class-secure.php index ef282792..9d8eaa02 100644 --- a/includes/admin/class-secure.php +++ b/includes/admin/class-secure.php @@ -43,7 +43,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) { public function __construct() { add_action( 'admin_init', array( $this, 'admin_init' ) ); add_filter( 'um_settings_structure', array( $this, 'add_settings' ) ); - add_filter( 'manage_users_custom_column', array( $this, 'add_restore_account' ), 10, 3 ); + add_filter( 'manage_users_custom_column', array( $this, 'add_restore_account' ), 9999, 3 ); add_action( 'um_settings_before_save', array( $this, 'check_secure_changes' ) ); add_action( 'um_settings_save', array( $this, 'on_settings_save' ) ); @@ -128,6 +128,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) { wp_die( esc_html__( 'Invalid user.', 'ultimate-member' ) ); } + um_fetch_user( $user_id ); $metadata = get_user_meta( $user_id, 'um_user_blocked__metadata', true ); $user->update_user_level_from_caps(); @@ -155,6 +156,7 @@ if ( ! class_exists( 'um\admin\Secure' ) ) { // Clear Cache. UM()->user()->remove_cache( $user_id ); + um_reset_user(); wp_safe_redirect( add_query_arg( 'update', 'um_secure_restore', wp_get_referer() ) ); exit; } diff --git a/includes/common/class-secure.php b/includes/common/class-secure.php index 85f9c4bf..4577d574 100644 --- a/includes/common/class-secure.php +++ b/includes/common/class-secure.php @@ -211,19 +211,22 @@ if ( ! class_exists( 'um\common\Secure' ) ) { } elseif ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) { $user_agent = sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); } + + um_fetch_user( $user->ID ); + // Capture details. $captured = array( 'capabilities' => $user->allcaps, 'submitted' => ! empty( UM()->form()->post_form ) ? UM()->form()->post_form : '', 'roles' => $user->roles, 'user_agent' => $user_agent, - 'account_status' => get_user_meta( $user->ID, 'account_status', true ), + 'account_status' => um_user( 'status' ), ); update_user_meta( $user->ID, 'um_user_blocked__metadata', $captured ); $user->remove_all_caps(); $user->update_user_level_from_caps(); - um_fetch_user( $user->ID ); + if ( is_user_logged_in() ) { UM()->user()->set_status( 'inactive' ); } else {