mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-18 14:13:46 +09:00
Update 1.2.98
This commit is contained in:
+139
@@ -52,6 +52,7 @@ class UM_REST_API {
|
||||
$vars[] = 'type';
|
||||
$vars[] = 'data';
|
||||
$vars[] = 'fields';
|
||||
$vars[] = 'value';
|
||||
$vars[] = 'number';
|
||||
$vars[] = 'id';
|
||||
$vars[] = 'email';
|
||||
@@ -189,6 +190,10 @@ class UM_REST_API {
|
||||
|
||||
switch( $query_mode ) :
|
||||
|
||||
case 'get.stats':
|
||||
$data = $this->get_stats( $args );
|
||||
break;
|
||||
|
||||
case 'get.users':
|
||||
$data = $this->get_users( $args );
|
||||
break;
|
||||
@@ -196,6 +201,14 @@ class UM_REST_API {
|
||||
case 'get.user':
|
||||
$data = $this->get_auser( $args );
|
||||
break;
|
||||
|
||||
case 'update.user':
|
||||
$data = $this->update_user( $args );
|
||||
break;
|
||||
|
||||
case 'delete.user':
|
||||
$data = $this->delete_user( $args );
|
||||
break;
|
||||
|
||||
case 'get.following':
|
||||
$data = $this->get_following( $args );
|
||||
@@ -217,6 +230,100 @@ class UM_REST_API {
|
||||
$this->output();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get some stats
|
||||
*/
|
||||
public function get_stats( $args ) {
|
||||
global $wpdb, $ultimatemember;
|
||||
extract( $args );
|
||||
|
||||
$response = array();
|
||||
$error = array();
|
||||
|
||||
$query = "SELECT COUNT(*) FROM {$wpdb->prefix}users";
|
||||
$count = absint( $wpdb->get_var($query) );
|
||||
$response['stats']['total_users'] = $count;
|
||||
|
||||
include_once um_path . 'admin/core/um-admin-dashboard.php';
|
||||
$pending = $um_dashboard->get_pending_users_count();
|
||||
$response['stats']['pending_users'] = absint( $pending );
|
||||
|
||||
if ( class_exists( 'UM_Notifications_API') ) {
|
||||
$query = "SELECT COUNT(*) FROM {$wpdb->prefix}um_notifications";
|
||||
$total_notifications = absint( $wpdb->get_var( $query ) );
|
||||
$response['stats']['total_notifications'] = $total_notifications;
|
||||
}
|
||||
|
||||
if ( class_exists( 'UM_Messaging_API') ) {
|
||||
$query = "SELECT COUNT(*) FROM {$wpdb->prefix}um_conversations";
|
||||
$total_conversations = absint( $wpdb->get_var( $query ) );
|
||||
$response['stats']['total_conversations'] = $total_conversations;
|
||||
|
||||
$query = "SELECT COUNT(*) FROM {$wpdb->prefix}um_messages";
|
||||
$total_messages = absint( $wpdb->get_var( $query ) );
|
||||
$response['stats']['total_messages'] = $total_messages;
|
||||
}
|
||||
|
||||
if ( class_exists( 'UM_Online_API') ) {
|
||||
global $um_online;
|
||||
$total_online = count( $um_online->get_users() );
|
||||
$response['stats']['total_online'] = $total_online;
|
||||
}
|
||||
|
||||
if ( class_exists( 'UM_Reviews_API') ) {
|
||||
$query = "SELECT COUNT(*) FROM {$wpdb->prefix}posts WHERE post_status='publish' AND post_type='um_review'";
|
||||
$total_reviews = absint( $wpdb->get_var( $query ) );
|
||||
$response['stats']['total_reviews'] = $total_reviews;
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user API query
|
||||
*/
|
||||
public function update_user( $args ) {
|
||||
global $ultimatemember;
|
||||
extract( $args );
|
||||
|
||||
$response = array();
|
||||
$error = array();
|
||||
|
||||
if ( !$id ) {
|
||||
$error['error'] = __('You must provide a user ID','ultimatemember');
|
||||
return $error;
|
||||
}
|
||||
|
||||
if ( !$data ) {
|
||||
$error['error'] = __('You need to provide data to update','ultimatemember');
|
||||
return $error;
|
||||
}
|
||||
|
||||
um_fetch_user( $id );
|
||||
|
||||
switch ( $data ) {
|
||||
case 'status':
|
||||
$ultimatemember->user->set_status( $value );
|
||||
$response['success'] = __('User status has been changed.','ultimatemember');
|
||||
break;
|
||||
case 'role':
|
||||
$ultimatemember->user->set_role( $value );
|
||||
$response['success'] = __('User level has been changed.','ultimatemember');
|
||||
break;
|
||||
case 'wp_role':
|
||||
$wp_user_object = new WP_User( $id );
|
||||
$wp_user_object->set_role( $value );
|
||||
$response['success'] = __('User WordPress role has been changed.','ultimatemember');
|
||||
break;
|
||||
default:
|
||||
update_user_meta( $id, $data, esc_attr( $value ) );
|
||||
$response['success'] = __('User meta has been changed.','ultimatemember');
|
||||
break;
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process Get followers users API Request
|
||||
*/
|
||||
@@ -361,6 +468,35 @@ class UM_REST_API {
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process delete user via API
|
||||
*/
|
||||
public function delete_user( $args ) {
|
||||
global $ultimatemember;
|
||||
extract( $args );
|
||||
|
||||
$response = array();
|
||||
$error = array();
|
||||
|
||||
if ( !isset( $id ) ) {
|
||||
$error['error'] = __('You must provide a user ID','ultimatemember');
|
||||
return $error;
|
||||
}
|
||||
|
||||
$user = get_userdata( $id );
|
||||
if ( !$user ) {
|
||||
$error['error'] = __('Invalid user specified','ultimatemember');
|
||||
return $error;
|
||||
}
|
||||
|
||||
um_fetch_user( $id );
|
||||
$ultimatemember->user->delete();
|
||||
|
||||
$response['success'] = __('User has been successfully deleted.','ultimatemember');
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process Get user API Request
|
||||
*/
|
||||
@@ -489,8 +625,11 @@ class UM_REST_API {
|
||||
$accepted = apply_filters( 'um_api_valid_query_modes', array(
|
||||
'get.users',
|
||||
'get.user',
|
||||
'update.user',
|
||||
'delete.user',
|
||||
'get.following',
|
||||
'get.followers',
|
||||
'get.stats',
|
||||
) );
|
||||
|
||||
$query = isset( $wp_query->query_vars['um-api'] ) ? $wp_query->query_vars['um-api'] : null;
|
||||
|
||||
Reference in New Issue
Block a user