*/ class UsersWP_Account { public function __construct() { add_action( 'uwp_account_form_display', array( $this, 'display_form' ), 10, 1 ); add_action( 'init', array( $this, 'submit_handler' ) ); add_filter( 'uwp_get_account_deletion_message', array( $this, 'get_deletion_message' ), 10, 2 ); add_action( 'uwp_send_account_deletion_emails', array( $this, 'send_account_deletion_emails' ), 10, 2 ); } /** * Displays the account form * * @since 1.0.0 * * @param array $type Type of the form * */ public function display_form( $type ) { if ( $type == 'account' ) { $design_style = uwp_get_option( 'design_style', 'bootstrap' ); $bs_btn_class = $design_style ? 'btn btn-primary btn-block text-uppercase' : ''; ?>
data->user_pass, $user->ID ) ) { $uwp_notices[] = array( 'account' => aui()->alert( array( 'type' => 'error', 'content' => __( 'Error: Incorrect password.', 'userswp' ), ) ), ); return; } $errors = apply_filters( 'uwp_delete_account_validate', $user ); if ( ! empty( $errors->get_error_code() ) ) { $uwp_notices[] = array( 'account' => aui()->alert( array( 'type' => 'error', 'content' => $errors->get_error_message(), ) ), ); return; } $ms_delete = apply_filters( 'uwp_delete_delete_from_network', true ); $num_blogs_of_user = is_multisite() ? count( get_blogs_of_user( $user_id ) ) : 1; $delete_from_network = ( is_multisite() && ( $ms_delete == true || $num_blogs_of_user == 1 ) ) ? true : false; include_once ABSPATH . 'wp-admin/includes/user.php'; if ( is_multisite() ) { include_once ABSPATH . WPINC . '/ms-functions.php'; include_once ABSPATH . 'wp-admin/includes/ms.php'; } $message = $this->get_deletion_message( '', $user ); if ( $delete_from_network ) { if ( in_array( $user->user_login, get_super_admins(), true ) ) { $uwp_notices[] = array( 'account' => aui()->alert( array( 'type' => 'error', 'content' => __( 'Error: Super Administrators cannot be deleted.', 'userswp' ), ) ), ); return; } $deleted = wpmu_delete_user( $user_id ); } else { $deleted = wp_delete_user( $user_id ); } if ( $deleted ) { $this->send_account_deletion_emails( $user, $message ); } do_action( 'uwp_after_delete_account', $user_id, $deleted ); wp_logout(); wp_safe_redirect( home_url() ); exit(); } /** * Generate the account deletion message. * * @since 1.2.28 * @param string $message The initial message (empty by default). * @param WP_User $user The user being deleted. * @return string The formatted deletion message. */ public function get_deletion_message( $message, $user ) { $message_parts = array( 'header' => '' . esc_html__( 'Deleted user information:', 'userswp' ) . '
', 'first_name' => '' . esc_html__( 'First Name:', 'userswp' ) . ' ' . esc_html( $user->first_name ) . '
', 'last_name' => '' . esc_html__( 'Last Name:', 'userswp' ) . ' ' . esc_html( $user->last_name ) . '
', 'username' => '' . esc_html__( 'Username:', 'userswp' ) . ' ' . esc_html( $user->user_login ) . '
', 'email' => '' . esc_html__( 'Email:', 'userswp' ) . ' ' . esc_html( $user->user_email ) . '
', ); /** * Filters the account deletion message parts. * * @since 1.2.28 * @param array $message_parts The message parts. * @param WP_User $user The user being deleted. */ $message_parts = apply_filters( 'uwp_account_deletion_message_parts', $message_parts, $user ); $message .= implode( '', $message_parts ); /** * Filters the final account deletion message. * * @since 1.2.28 * @param string $message The deletion message. * @param WP_User $user The user being deleted. */ return apply_filters( 'uwp_account_deletion_message', $message, $user ); } /** * Sends account deletion emails. * * @since 1.2.28 * @param WP_User $user The user being deleted. * @param string $message The deletion message. */ public function send_account_deletion_emails( $user, $message ) { $email_vars = array( 'login_details' => $message, 'user_name' => ! empty( $user->display_name ) ? esc_attr( $user->display_name ) : '', ); do_action( 'uwp_before_account_delete_email', $user, $email_vars ); UsersWP_Mails::send( $user->user_email, 'account_delete', $email_vars ); UsersWP_Mails::send( get_bloginfo( 'admin_email' ), 'account_delete', $email_vars, true ); do_action( 'uwp_after_account_delete_email', $user, $email_vars ); } } new UsersWP_Account();