save_status( UR_Admin_User_Manager::APPROVED, true ); delete_user_meta( $user_id, 'ur_confirm_approval_token' ); delete_user_meta( $user_id, 'ur_confirm_denial_token' ); add_action( 'admin_notices', array( __CLASS__, 'approved_success' ) ); $redirect_url = admin_url() . 'users.php'; wp_redirect( $redirect_url ); exit; } else { add_action( 'admin_notices', array( __CLASS__, 'invalid_approval_token_message' ) ); } } else { return; } } /** * Verify the token and deny the user if the token matches */ public static function deny_user_after_verification() { if ( ! isset( $_GET['ur_denial_token'] ) || empty( $_GET['ur_denial_token'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended return; } elseif ( current_user_can( 'edit_users' ) ) { $ur_denial_token_raw = sanitize_text_field( wp_unslash( $_GET['ur_denial_token'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended $ur_denial_token = str_split( $ur_denial_token_raw, 50 ); $token_string = $ur_denial_token[1]; if ( 2 < count( $ur_denial_token ) ) { unset( $ur_denial_token[0] ); $token_string = join( '', $ur_denial_token ); } $output = crypt_the_string( $token_string, 'd' ); $output = explode( '_', $output ); $user_id = absint( $output[0] ); $form_id = ur_get_form_id_by_userid( $user_id ); $saved_token = get_user_meta( $user_id, 'ur_confirm_denial_token', true ); if ( $ur_denial_token_raw === $saved_token ) { $user_manager = new UR_Admin_User_Manager( $user_id ); $user_manager->save_status( UR_Admin_User_Manager::DENIED, true ); delete_user_meta( $user_id, 'ur_confirm_denial_token' ); delete_user_meta( $user_id, 'ur_confirm_approval_token' ); add_action( 'admin_notices', array( __CLASS__, 'denied_success' ) ); $redirect_url = admin_url() . 'users.php'; wp_redirect( $redirect_url ); exit; } else { add_action( 'admin_notices', array( __CLASS__, 'invalid_approval_token_message' ) ); } } else { return; } } /** * Message to show when user approved successfully */ public static function approved_success() { echo '
' . esc_html__( 'User approved successfully.', 'user-registration' ); } /** * Message to show when user denied successfully */ public static function denied_success() { echo '
' . esc_html__( 'User denied successfully.', 'user-registration' ); } /** * Message to show when passed token doesn't match with stored token */ public static function invalid_approval_token_message() { echo "
" . esc_html__( 'The token is invalid. Please try again.', 'user-registration' ) . '
' . esc_html__( 'Failed to approve user. Email Approval Option is Disabled.', 'user-registration' ) . '
' . esc_html__( 'Failed to deny user. Email Approval Option is Disabled.', 'user-registration' ) . '