wp_ajax_destroy_sessions

函数
wp_ajax_destroy_sessions ( No parameters )

wp_ajax_destroy_sessions。这个WordPress函数用于通过AJAX销毁所有用户会话。它处理销毁所有用户会话的服务器端处理,包括检查正确的用户认证和权限,并向客户端的JavaScript返回一个成功或错误的响应。

用于销毁一个用户的多个开放会话的Ajax处理程序。

function wp_ajax_destroy_sessions() {
	$user = get_userdata( (int) $_POST['user_id'] );

	if ( $user ) {
		if ( ! current_user_can( 'edit_user', $user->ID ) ) {
			$user = false;
		} elseif ( ! wp_verify_nonce( $_POST['nonce'], 'update-user_' . $user->ID ) ) {
			$user = false;
		}
	}

	if ( ! $user ) {
		wp_send_json_error(
			array(
				'message' => __( 'Could not log out user sessions. Please try again.' ),
			)
		);
	}

	$sessions = WP_Session_Tokens::get_instance( $user->ID );

	if ( get_current_user_id() === $user->ID ) {
		$sessions->destroy_others( wp_get_session_token() );
		$message = __( 'You are now logged out everywhere else.' );
	} else {
		$sessions->destroy_all();
		/* translators: %s: User's display name. */
		$message = sprintf( __( '%s has been logged out.' ), $user->display_name );
	}

	wp_send_json_success( array( 'message' => $message ) );
}

常见问题

FAQs
查看更多 >