mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
- changed wp-admin > Users page;
* updated filters by status, avoid slow queries for getting users count; * updated bulk-actions for changing statuses (moved to WP native dropdown) * separate handlers for changing user statuses on wp-admin and frontend (partially implemented); * created class UM()->common()->users() to handle user statuses in more clear format; * deprecated old hooks and old functions
This commit is contained in:
@@ -23,6 +23,7 @@ if ( ! class_exists( 'um\ajax\Init' ) ) {
|
||||
$this->forms();
|
||||
$this->pages();
|
||||
$this->secure();
|
||||
$this->users();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -60,5 +61,17 @@ if ( ! class_exists( 'um\ajax\Init' ) ) {
|
||||
}
|
||||
return UM()->classes['um\ajax\secure'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 2.8.7
|
||||
*
|
||||
* @return Users
|
||||
*/
|
||||
public function users() {
|
||||
if ( empty( UM()->classes['um\ajax\users'] ) ) {
|
||||
UM()->classes['um\ajax\users'] = new Users();
|
||||
}
|
||||
return UM()->classes['um\ajax\users'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
namespace um\ajax;
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Class Users
|
||||
*
|
||||
* @package um\ajax
|
||||
*/
|
||||
class Users {
|
||||
|
||||
public function __construct() {
|
||||
add_action( 'wp_ajax_um_get_users', array( $this, 'get_users' ) );
|
||||
}
|
||||
|
||||
public function get_users() {
|
||||
UM()->admin()->check_ajax_nonce();
|
||||
|
||||
$search_request = ! empty( $_REQUEST['search'] ) ? sanitize_text_field( $_REQUEST['search'] ) : '';
|
||||
$page = ! empty( $_REQUEST['page'] ) ? absint( $_REQUEST['page'] ) : 1;
|
||||
$per_page = 20;
|
||||
|
||||
$args = array(
|
||||
'fields' => array( 'ID', 'user_login' ),
|
||||
'paged' => $page,
|
||||
'number' => $per_page,
|
||||
);
|
||||
|
||||
if ( ! empty( $search_request ) ) {
|
||||
$args['search'] = '*' . $search_request . '*';
|
||||
}
|
||||
|
||||
$args = apply_filters( 'um_get_users_list_ajax_args', $args );
|
||||
|
||||
$users_query = new \WP_User_Query( $args );
|
||||
$users = $users_query->get_results();
|
||||
$total_count = $users_query->get_total();
|
||||
|
||||
if ( ! empty( $_REQUEST['avatar'] ) ) {
|
||||
foreach ( $users as $key => $user ) {
|
||||
$url = get_avatar_url( $user->ID );
|
||||
$users[ $key ]->img = $url;
|
||||
}
|
||||
}
|
||||
|
||||
wp_send_json_success(
|
||||
array(
|
||||
'users' => $users,
|
||||
'total_count' => $total_count,
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user