mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
Version 1.0.51
This commit is contained in:
@@ -17,9 +17,7 @@
|
||||
.um-admin.post-type-um_role .manage-column.column-count {width: 150px}
|
||||
.um-admin.post-type-um_role .manage-column.column-core {width: 150px}
|
||||
|
||||
.um-admin.users-php .manage-column.column-username {width: 200px}
|
||||
.um-admin.users-php .manage-column.column-role {width: 140px}
|
||||
.um-admin.users-php .manage-column.column-name {width: 140px}
|
||||
.um-admin.users-php .manage-column.column-username {width: 300px}
|
||||
.um-admin.users-php .manage-column.column-um_role {width: 140px}
|
||||
.um-admin.users-php .manage-column.column-um_status {width: 160px}
|
||||
|
||||
@@ -55,7 +53,7 @@
|
||||
}
|
||||
.um-admin-tag.small {font-size: 13px;height:28px;line-height: 28px;display:inline;padding: 4px 10px;background: transparent;color: #666;border-radius:0;}
|
||||
.um-admin-tag.approved {border-left: 2px solid #7ACF58}
|
||||
.um-admin-tag.pending {border-left: 2px solid #b76767}
|
||||
.um-admin-tag.pending {border-left: 2px solid #C74A4A}
|
||||
|
||||
.um-admin-txtspace {margin: 0 0 0 10px;}
|
||||
|
||||
@@ -68,6 +66,6 @@
|
||||
color: #7ACF58;
|
||||
}
|
||||
|
||||
.um-adm-ico.inactive {color: #b76767}
|
||||
.um-adm-ico.inactive {color: #C74A4A}
|
||||
|
||||
.um-adm-ico.pointer {cursor: pointer}
|
||||
@@ -1,12 +1,19 @@
|
||||
.wrap h2 {
|
||||
font-size: 23px;
|
||||
font-weight: 400;
|
||||
padding: 9px 15px 4px 0px;
|
||||
line-height: 29px;
|
||||
}
|
||||
|
||||
.wrap h2 sup {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.wrap a.red,
|
||||
.wrap span.red {color:#b76767}
|
||||
|
||||
.wrap a.red, .wrap span.red {color:#C74A4A}
|
||||
.wrap span.ok {color:#7ACF58}
|
||||
|
||||
/* Misc */
|
||||
|
||||
.um-admin-dash-review {
|
||||
text-decoration: none !important;
|
||||
font-size: 16px;
|
||||
@@ -15,11 +22,57 @@
|
||||
right: 4px;
|
||||
}
|
||||
|
||||
.um-admin-dash-content h4 {
|
||||
margin: 10px 0 3px 0;
|
||||
padding: 0;
|
||||
/* Dashboard widgets */
|
||||
|
||||
.um-metabox-holder p.sub {
|
||||
padding: 0 4px 2px 4px;
|
||||
margin: 0 0 8px 0;
|
||||
color: #8F8F8F;
|
||||
font-size: 14px;
|
||||
border-bottom: 1px solid #ECECEC;
|
||||
}
|
||||
|
||||
.um-metabox-holder .table {
|
||||
float: left;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.um-metabox-holder a.warning {
|
||||
color: #C74A4A !important;
|
||||
background: transparent !important;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.um-metabox-holder .table_right {
|
||||
float: right;
|
||||
width: 45%;
|
||||
}
|
||||
|
||||
.um-metabox-holder td.b {
|
||||
padding-right: 6px;
|
||||
text-align: right;
|
||||
font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif;
|
||||
font-size: 14px;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.um-metabox-holder td.b {
|
||||
text-align: right;
|
||||
font-family: Georgia,"Times New Roman","Bitstream Charter",Times,serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.um-metabox-holder table td {
|
||||
white-space: nowrap;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.um-metabox-holder td.b a {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
/* Share bar */
|
||||
|
||||
.um-admin-dash-share {
|
||||
margin-top: 11px !important;
|
||||
float: left;
|
||||
@@ -33,75 +86,4 @@
|
||||
color: #777 !important;
|
||||
font-size: 22px !important;
|
||||
}
|
||||
.um-admin-dash-share a:hover {color: #3ba1da !important}
|
||||
|
||||
.um-admin-dash-four-col .um-admin-dash-col {
|
||||
float: left;
|
||||
width: 25%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.um-admin-dash-three-col {border-bottom: 1px solid #ddd;padding-bottom: 25px}
|
||||
|
||||
.um-admin-dash-three-col .um-admin-dash-col {
|
||||
float: left;
|
||||
width: 33%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.um-admin-dash-two-col .um-admin-dash-col {
|
||||
display: inline-block;
|
||||
width: 46%;
|
||||
margin-right: 3%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.um-admin-dash-col a:hover {text-decoration: underline}
|
||||
.um-admin-dash-col a {text-decoration: none}
|
||||
|
||||
.um-admin-dash-item {
|
||||
padding: 5px 0;
|
||||
vertical-align: middle;
|
||||
border-top: 1px solid #eee;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.um-admin-dash-item * {vertical-align: middle}
|
||||
|
||||
.um-admin-dash-thumb {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.um-admin-dash-thumb a,
|
||||
.um-admin-dash-thumb img {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
border-radius: 999px;
|
||||
}
|
||||
|
||||
.um-admin-dash-info {
|
||||
display: inline-block;
|
||||
width: 130px;
|
||||
margin-right: 6px;
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-word;
|
||||
word-wrap: break-word;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
.um-admin-dash-meta {
|
||||
display: inline-block;
|
||||
width: 100px;
|
||||
margin-right: 6px;
|
||||
position: relative;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
.um-admin-dash-more {
|
||||
display: inline-block;
|
||||
color: #aaa;
|
||||
line-height: 14px;
|
||||
}
|
||||
.um-admin-dash-share a:hover {color: #3ba1da !important}
|
||||
@@ -245,8 +245,10 @@ jQuery(document).ready(function() {
|
||||
/**
|
||||
fire new modal
|
||||
**/
|
||||
jQuery(document).on('click', 'a[data-modal^="UM_"], span[data-modal^="UM_"]', function(){
|
||||
jQuery(document).on('click', 'a[data-modal^="UM_"], span[data-modal^="UM_"]', function(e){
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
var modal_id = jQuery(this).attr('data-modal');
|
||||
|
||||
if ( jQuery(this).attr('data-back') ) {
|
||||
@@ -265,6 +267,8 @@ jQuery(document).ready(function() {
|
||||
} else {
|
||||
um_admin_new_modal( modal_id );
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -56,13 +56,11 @@ class UM_Admin_Dashboard {
|
||||
wp_enqueue_script('wp-lists');
|
||||
wp_enqueue_script('postbox');
|
||||
|
||||
add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );
|
||||
|
||||
/** custom metaboxes for dashboard defined here **/
|
||||
|
||||
add_meta_box('um-metaboxes-contentbox-1', __('Users Overview','ultimatemember'), array(&$this, 'users_overview'), $this->pagehook, 'normal', 'core');
|
||||
add_meta_box('um-metaboxes-contentbox-1', __('Users Overview','ultimatemember'), array(&$this, 'users_overview'), $this->pagehook, 'core', 'core');
|
||||
|
||||
add_meta_box('um-metaboxes-sidebox-1', __('Purge Temp Files','ultimatemember'), array(&$this, 'purge_temp'), $this->pagehook, 'side', 'core');
|
||||
add_meta_box('um-metaboxes-mainbox-1', __('Purge Temp Files','ultimatemember'), array(&$this, 'purge_temp'), $this->pagehook, 'normal', 'core');
|
||||
|
||||
if ( $this->language_avaialable_not_installed() ) {
|
||||
add_meta_box('um-metaboxes-sidebox-2', __('Language','ultimatemember'), array(&$this, 'dl_language'), $this->pagehook, 'side', 'core');
|
||||
@@ -163,27 +161,25 @@ class UM_Admin_Dashboard {
|
||||
<div id="um-metaboxes-general" class="wrap">
|
||||
|
||||
<h2>Ultimate Member <sup><?php echo ultimatemember_version; ?></sup></h2>
|
||||
|
||||
<form action="admin-post.php" method="post">
|
||||
|
||||
|
||||
<?php wp_nonce_field('um-metaboxes-general'); ?>
|
||||
<?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
|
||||
<?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
|
||||
|
||||
<input type="hidden" name="action" value="save_um_metaboxes_general" />
|
||||
|
||||
<div id="poststuff">
|
||||
<div id="dashboard-widgets-wrap">
|
||||
|
||||
<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
|
||||
<div id="dashboard-widgets" class="metabox-holder um-metabox-holder">
|
||||
|
||||
<div id="postbox-container-2" class="postbox-container"><?php do_meta_boxes($this->pagehook,'normal',null); ?></div>
|
||||
<div id="postbox-container-1" class="postbox-container"><?php do_meta_boxes($this->pagehook,'side',null); ?></div>
|
||||
<div id="postbox-container-1" class="postbox-container"><?php do_meta_boxes($this->pagehook,'core',null); ?></div>
|
||||
<div id="postbox-container-2" class="postbox-container"><?php do_meta_boxes($this->pagehook,'normal',null); ?></div>
|
||||
<div id="postbox-container-3" class="postbox-container"><?php do_meta_boxes($this->pagehook,'side',null); ?></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div><div class="um-admin-clear"></div>
|
||||
|
||||
<div class="um-admin-dash-share"><?php global $reduxConfig; foreach ( $reduxConfig->args['share_icons'] as $k => $arr ) { ?><a href="<?php echo $arr['url']; ?>" class="um-about-icon um-admin-tipsy-n" title="<?php echo $arr['title']; ?>" target="_blank"><i class="<?php echo $arr['icon']; ?>"></i></a><?php } ?>
|
||||
|
||||
@@ -26,7 +26,7 @@ class UM_Admin_Metabox {
|
||||
if ( ! wp_is_post_revision( $post_id ) ) {
|
||||
|
||||
if ( get_post_meta($post_id, '_um_core', true) ) {
|
||||
delete_option('um_flush_rules'); // so they reset rewrite rules
|
||||
flush_rewrite_rules( true ); // so they reset rewrite rules
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ class UM_Admin_Users {
|
||||
|
||||
add_filter('views_users', array(&$this, 'views_users') );
|
||||
|
||||
add_filter('pre_user_query', array(&$this, 'um_role_filter') );
|
||||
add_filter('pre_user_query', array(&$this, 'custom_users_filter') );
|
||||
|
||||
add_filter('user_row_actions', array(&$this, 'user_row_actions'), 10, 2);
|
||||
|
||||
@@ -27,21 +27,28 @@ class UM_Admin_Users {
|
||||
***/
|
||||
function user_row_actions($actions, $user_object) {
|
||||
|
||||
um_fetch_user( $user_object->ID );
|
||||
$user_id = $user_object->ID;
|
||||
um_fetch_user( $user_id );
|
||||
|
||||
$actions = array();
|
||||
|
||||
$actions['backend_profile'] = "<a class='' href='" . admin_url('user-edit.php?user_id='. $user_object->ID ) . "'>" . __( 'Edit','ultimatemember' ) . "</a>";
|
||||
$actions['backend_profile'] = "<a class='' href='" . admin_url('user-edit.php?user_id='. $user_id ) . "'>" . __( 'Edit','ultimatemember' ) . "</a>";
|
||||
$actions['frontend_profile'] = "<a class='' href='" . um_user_profile_url() . "'>" . __( 'Edit in frontend','ultimatemember') . "</a>";
|
||||
|
||||
if ( um_user('submitted') ) {
|
||||
|
||||
$actions['view_info'] = '<a href="#" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration">' . __('Info','ultimatemember') . '</a>';
|
||||
|
||||
}
|
||||
|
||||
return $actions;
|
||||
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Custom role filter
|
||||
*** @custom users filter
|
||||
***/
|
||||
function um_role_filter( $query ){
|
||||
function custom_users_filter( $query ){
|
||||
global $pagenow;
|
||||
|
||||
if ( is_admin() && $pagenow=='users.php' && isset($_GET[ $this->custom_role ]) && $_GET[ $this->custom_role ] != '') {
|
||||
@@ -60,6 +67,23 @@ class UM_Admin_Users {
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
if ( is_admin() && $pagenow=='users.php' && isset($_GET[ 'status' ]) && $_GET[ 'status' ] != '') {
|
||||
|
||||
$query->status = urldecode($_GET[ 'status' ]);
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$query->query_where =
|
||||
str_replace('WHERE 1=1',
|
||||
"WHERE 1=1 AND {$wpdb->users}.ID IN (
|
||||
SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta
|
||||
WHERE {$wpdb->usermeta}.meta_key = 'account_status'
|
||||
AND {$wpdb->usermeta}.meta_value = '{$query->status}')",
|
||||
$query->query_where
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
return $query;
|
||||
|
||||
@@ -71,24 +95,32 @@ class UM_Admin_Users {
|
||||
function views_users( $views ) {
|
||||
global $ultimatemember, $query;
|
||||
|
||||
remove_filter('pre_user_query', array(&$this, 'um_role_filter') );
|
||||
remove_filter('pre_user_query', array(&$this, 'custom_users_filter') );
|
||||
|
||||
$views = array();
|
||||
|
||||
if ( !isset($_REQUEST[ $this->custom_role ]) ) {
|
||||
$views['all'] = '<a href="'.admin_url('users.php').'" class="current">All <span class="count">('.$ultimatemember->query->count_users().')</span></a>';
|
||||
if ( !isset($_REQUEST[ $this->custom_role ]) && !isset($_REQUEST['status']) ) {
|
||||
$views['all'] = '<a href="'.admin_url('users.php').'" class="current">All <span class="count">('.$ultimatemember->query->count_users().')</span></a>';
|
||||
} else {
|
||||
$views['all'] = '<a href="'.admin_url('users.php').'">All <span class="count">('.$ultimatemember->query->count_users().')</span></a>';
|
||||
$views['all'] = '<a href="'.admin_url('users.php').'">All <span class="count">('.$ultimatemember->query->count_users().')</span></a>';
|
||||
}
|
||||
|
||||
$roles = $ultimatemember->query->get_roles();
|
||||
$status = array(
|
||||
'approved' => __('Approved','ultimatemember'),
|
||||
'awaiting_admin_review' => __('Pending review','ultimatemember'),
|
||||
'awaiting_email_confirmation' => __('Waiting e-mail confirmation','ultimatemember'),
|
||||
'inactive' => __('Inactive','ultimatemember'),
|
||||
'rejected' => __('Rejected','ultimatemember'),
|
||||
);
|
||||
|
||||
foreach($roles as $role => $role_name){
|
||||
if ( isset($_REQUEST[ $this->custom_role ]) && $_REQUEST[ $this->custom_role ] == $role) {
|
||||
$views[ $role ] = '<a href="'.admin_url('users.php').'?'.$this->custom_role.'='.$role.'" class="current">'.$role_name.' <span class="count">('. $ultimatemember->query->count_users_by_role($role) .')</span></a>';
|
||||
foreach( $status as $k => $v ) {
|
||||
if ( isset($_REQUEST['status']) && $_REQUEST['status'] == $k ) {
|
||||
$current = 'class="current"';
|
||||
} else {
|
||||
$views[ $role ] = '<a href="'.admin_url('users.php').'?'.$this->custom_role.'='.$role.'">'.$role_name.' <span class="count">('. $ultimatemember->query->count_users_by_role($role) . ')</span></a>';
|
||||
$current = '';
|
||||
}
|
||||
|
||||
$views[ $k ] = '<a href="'.admin_url('users.php').'?status='.$k.'" ' . $current . '>'. $v . ' <span class="count">('.$ultimatemember->query->count_users_by_status( $k ).')</span></a>';
|
||||
}
|
||||
|
||||
return $views;
|
||||
@@ -140,8 +172,13 @@ class UM_Admin_Users {
|
||||
|
||||
}
|
||||
|
||||
// filter by user role
|
||||
if ( isset($_REQUEST['um_filter_role']) ) {
|
||||
exit( wp_redirect( admin_url('users.php?um_role=' . $_REQUEST['um_filter_role'] ) ) );
|
||||
}
|
||||
|
||||
// bulk edit users
|
||||
if (isset($_REQUEST['users']) && is_array($_REQUEST['users']) && isset($_REQUEST['um_bulkedit']) && $_REQUEST['um_bulkedit'] != '' && isset($_REQUEST['um_bulk_action']) && !empty($_REQUEST['um_bulk_action']) ){
|
||||
if ( isset($_REQUEST['users']) && is_array($_REQUEST['users']) && isset($_REQUEST['um_bulkedit']) && $_REQUEST['um_bulkedit'] != '' && isset($_REQUEST['um_bulk_action']) && !empty($_REQUEST['um_bulk_action']) ){
|
||||
|
||||
if ( ! current_user_can( 'edit_users' ) )
|
||||
wp_die( __( 'You do not have enough permissions to do that.','ultimatemember') );
|
||||
@@ -189,6 +226,22 @@ class UM_Admin_Users {
|
||||
global $ultimatemember;
|
||||
?>
|
||||
|
||||
<div class="actions">
|
||||
|
||||
<label class="screen-reader-text" for="um_filter_role"><?php _e('Filter by','ultimatemember'); ?></label>
|
||||
<select name="um_filter_role" id="um_filter_role" class="umaf-selectjs" style="width: 120px">
|
||||
<option value="0"><?php _e('Filter by','ultimatemember'); ?></option>
|
||||
<?php
|
||||
$roles = $ultimatemember->query->get_roles();
|
||||
foreach( $roles as $role => $role_name ) { ?>
|
||||
<option value="<?php echo $role; ?>"><?php echo $role_name; ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
|
||||
<input name="um_role" id="um_role" class="button" value="<?php _e('Filter'); ?>" type="submit" />
|
||||
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
|
||||
<label class="screen-reader-text" for="um_bulk_action"><?php _e('Take Action','ultimatemember'); ?></label>
|
||||
|
||||
@@ -1,162 +1,45 @@
|
||||
<div class="um-admin-dash-content">
|
||||
<div class="table">
|
||||
|
||||
<div class="um-admin-dash-two-col">
|
||||
<table>
|
||||
|
||||
<div class="um-admin-dash-col">
|
||||
<tr class="first">
|
||||
<td class="first b"><a href="<?php echo admin_url('users.php'); ?>"><?php echo $ultimatemember->query->count_users(); ?></a></td>
|
||||
<td class="t"><a href="<?php echo admin_url('users.php'); ?>"><?php _e('Users','ultimatemember'); ?></a></td>
|
||||
</tr>
|
||||
|
||||
<h4><?php _e('Recent Members','ultimatemember'); ?></h4>
|
||||
<tr>
|
||||
<td class="first b"><a href="<?php echo admin_url('users.php?status=approved'); ?>"><?php echo $ultimatemember->query->count_users_by_status('approved'); ?></a></td>
|
||||
<td class="t"><a href="<?php echo admin_url('users.php?status=approved'); ?>"><?php _e('Approved','ultimatemember'); ?></a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="first b"><a href="<?php echo admin_url('users.php?status=rejected'); ?>"><?php echo $ultimatemember->query->count_users_by_status('rejected'); ?></a></td>
|
||||
<td class="t"><a href="<?php echo admin_url('users.php?status=rejected'); ?>"><?php _e('Rejected','ultimatemember'); ?></a></td>
|
||||
</tr>
|
||||
|
||||
<?php foreach( $ultimatemember->query->get_users_by_status('approved') as $user_id ) { um_fetch_user( $user_id ); ?>
|
||||
</table>
|
||||
|
||||
<div class="um-admin-dash-item">
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-thumb">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
|
||||
</div>
|
||||
<div class="table table_right">
|
||||
|
||||
<div class="um-admin-dash-info">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
|
||||
</div>
|
||||
<table>
|
||||
|
||||
<div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?>
|
||||
<tr class="first">
|
||||
<td class="b"><a href="<?php echo admin_url('users.php?status=awaiting_admin_review'); ?>"><?php echo $ultimatemember->query->count_users_by_status('awaiting_admin_review'); ?></a></td>
|
||||
<td class="last t"><a href="<?php echo admin_url('users.php?status=awaiting_admin_review'); ?>" class="warning"><?php _e('Pending Review','ultimatemember'); ?></a></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
<tr>
|
||||
<td class="b"><a href="<?php echo admin_url('users.php?status=awaiting_email_confirmation'); ?>"><?php echo $ultimatemember->query->count_users_by_status('awaiting_email_confirmation'); ?></a></td>
|
||||
<td class="last t"><a href="<?php echo admin_url('users.php?status=awaiting_email_confirmation'); ?>" class="warning"><?php _e('Awaiting E-mail Confirmation','ultimatemember'); ?></a></td>
|
||||
</tr>
|
||||
|
||||
if ( um_user('submitted') ) {
|
||||
<tr>
|
||||
<td class="first b"><a href="<?php echo admin_url('users.php?status=inactive'); ?>"><?php echo $ultimatemember->query->count_users_by_status('inactive'); ?></a></td>
|
||||
<td class="t"><a href="<?php echo admin_url('users.php?status=inactive'); ?>"><?php _e('Inactive','ultimatemember'); ?></a></td>
|
||||
</tr>
|
||||
|
||||
echo '<a href="#" class="um-admin-dash-review um-admin-tipsy-n" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration" title="Review registration info"><i class="um-icon-information-circled"></i></a>';
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-more">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php um_reset_user(); } ?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-col">
|
||||
|
||||
<?php $users = $ultimatemember->query->get_users_by_status('awaiting_admin_review'); ?>
|
||||
<h4><?php _e('Users Awaiting Review','ultimatemember'); ?></h4>
|
||||
|
||||
<?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
|
||||
|
||||
<div class="um-admin-dash-item">
|
||||
|
||||
<div class="um-admin-dash-thumb">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-info">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?>
|
||||
|
||||
<?php
|
||||
|
||||
if ( um_user('submitted') ) {
|
||||
|
||||
echo '<a href="#" class="um-admin-dash-review um-admin-tipsy-n" data-modal="UM_preview_registration" data-modal-size="smaller" data-dynamic-content="um_admin_review_registration" data-arg1="'.$user_id.'" data-arg2="edit_registration" title="Review registration info"><i class="um-icon-information-circled"></i></a>';
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-more">
|
||||
<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_approve_membership'); ?>" class="ok">Approve</a> | <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_reject_membership'); ?>" class="red">Reject</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php um_reset_user(); } ?>
|
||||
|
||||
<?php if ( !$users ) { ?>
|
||||
<div class="um-admin-dash-item"><?php _e('No users are awaiting manual verification so far.','ultimatemember'); ?></div>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-two-col">
|
||||
|
||||
<div class="um-admin-dash-col">
|
||||
|
||||
<?php $users = $ultimatemember->query->get_users_by_status('awaiting_email_confirmation'); ?>
|
||||
<h4><?php _e('Pending e-mail confirmation','ultimatemember'); ?></h4>
|
||||
|
||||
<?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
|
||||
|
||||
<div class="um-admin-dash-item">
|
||||
|
||||
<div class="um-admin-dash-thumb">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-info">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?></div>
|
||||
|
||||
<div class="um-admin-dash-more">
|
||||
<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_resend_activation'); ?>" class="ok">Resend Email</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php um_reset_user(); } ?>
|
||||
|
||||
<?php if ( !$users ) { ?>
|
||||
<div class="um-admin-dash-item"><?php _e('No users are awaiting e-mail validation yet.','ultimatemember'); ?></div>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-col">
|
||||
|
||||
<?php $users = $ultimatemember->query->get_users_by_status('inactive'); ?>
|
||||
<h4><?php _e('Recently Deactivated','ultimatemember'); ?></h4>
|
||||
|
||||
<?php foreach( $users as $user_id ) { um_fetch_user( $user_id ); ?>
|
||||
|
||||
<div class="um-admin-dash-item">
|
||||
|
||||
<div class="um-admin-dash-thumb">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('profile_photo', 30 ); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-info">
|
||||
<a href="<?php echo um_user_profile_url(); ?>" target="_blank"><?php echo um_user('display_name'); ?></a>
|
||||
</div>
|
||||
|
||||
<div class="um-admin-dash-meta"><?php echo date( "j M H:i", strtotime( um_user('user_registered') ) ); ?></div>
|
||||
|
||||
<div class="um-admin-dash-more">
|
||||
<a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_reenable'); ?>" class="ok">Re-activate</a> | <a href="<?php echo $ultimatemember->permalinks->admin_act_url('user_action','um_delete'); ?>" class="red">Delete</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<?php um_reset_user(); } ?>
|
||||
|
||||
<?php if ( !$users ) { ?>
|
||||
<div class="um-admin-dash-item"><?php _e('No users have been deactivated recently.','ultimatemember'); ?></div>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</table>
|
||||
|
||||
</div><div class="um-admin-clear"></div>
|
||||
@@ -266,6 +266,10 @@ p.um-notice.err {
|
||||
padding: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.um-field-b{
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
.um-field.um-is-conditional {
|
||||
display: none;
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -323,7 +323,7 @@
|
||||
$tabs[300]['privacy']['icon'] = 'um-faicon-lock';
|
||||
$tabs[300]['privacy']['title'] = __('Privacy','ultimatemember');
|
||||
|
||||
$tabs[400]['notifications']['icon'] = 'um-icon-ios-bell';
|
||||
$tabs[400]['notifications']['icon'] = 'um-faicon-bell';
|
||||
$tabs[400]['notifications']['title'] = __('Notifications','ultimatemember');
|
||||
|
||||
$tabs[500]['delete']['icon'] = 'um-faicon-trash-o';
|
||||
|
||||
@@ -78,6 +78,10 @@
|
||||
if ( isset( $args['submitted']['description'] ) ) {
|
||||
$to_update['description'] = $ultimatemember->validation->remove_html( $args['submitted']['description'] );
|
||||
}
|
||||
|
||||
if ( isset( $args['submitted']['role'] ) && !empty( $args['submitted']['role'] ) ) {
|
||||
$to_update['role'] = $args['submitted']['role'];
|
||||
}
|
||||
|
||||
if ( is_array( $to_update ) ) {
|
||||
$ultimatemember->user->update_profile( $to_update );
|
||||
|
||||
@@ -38,6 +38,11 @@ class UM_Enqueue {
|
||||
|
||||
global $ultimatemember;
|
||||
|
||||
$exclude_home = um_get_option('js_css_exlcude_home');
|
||||
if ( $exclude_home && ( is_home() || is_front_page() ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$exclude = um_get_option('js_css_exclude');
|
||||
if ( $exclude && !is_admin() && is_array( $exclude ) ) {
|
||||
|
||||
|
||||
@@ -424,6 +424,10 @@ class UM_Fields {
|
||||
|
||||
if ( um_user( $key ) && $this->editing == true ) {
|
||||
|
||||
if ( strstr($key, 'role_') ) {
|
||||
$key = 'role';
|
||||
}
|
||||
|
||||
if ( um_user( $key ) == $value ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -33,29 +33,9 @@
|
||||
if ( isset( $data ) && isset( $data['html'] ) && $data['html'] == 1 )
|
||||
return $value;
|
||||
|
||||
$value = preg_replace(
|
||||
array(
|
||||
'/(?(?=<a[^>]*>.+<\/a>)
|
||||
(?:<a[^>]*>.+<\/a>)
|
||||
|
|
||||
([^="\']?)((?:https?|ftp|bf2|):\/\/[^<> \n\r]+)
|
||||
)/iex',
|
||||
'/<a([^>]*)target="?[^"\']+"?/i',
|
||||
'/<a([^>]+)>/i',
|
||||
'/(^|\s)(www.[^<> \n\r]+)/iex',
|
||||
'/(([_A-Za-z0-9-]+)(\\.[_A-Za-z0-9-]+)*@([A-Za-z0-9-]+)
|
||||
(\\.[A-Za-z0-9-]+)*)/iex'
|
||||
),
|
||||
array(
|
||||
"stripslashes((strlen('\\2')>0?'\\1<a rel=\"nofollow\" href=\"\\2\">\\2</a>\\3':'\\0'))",
|
||||
'<a\\1',
|
||||
'<a\\1 target="_blank">',
|
||||
"stripslashes((strlen('\\2')>0?'\\1<a rel=\"nofollow\" href=\"http://\\2\">\\2</a>\\3':'\\0'))",
|
||||
"stripslashes((strlen('\\2')>0?'<a rel=\"nofollow\" href=\"mailto:\\0\">\\0</a>':'\\0'))"
|
||||
),
|
||||
$value
|
||||
);
|
||||
|
||||
$value = preg_replace('$(https?://[a-z0-9_./?=&#-]+)(?![^<>]*>)$i', ' <a href="$1" target="_blank">$1</a> ', $value." ");
|
||||
$value = preg_replace('$(www\.[a-z0-9_./?=&#-]+)(?![^<>]*>)$i', '<a target="_blank" href="http://$1">$1</a> ', $value." ");
|
||||
|
||||
$value = wpautop($value);
|
||||
return $value;
|
||||
}
|
||||
|
||||
+13
-3
@@ -62,9 +62,19 @@ class UM_Query {
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Get users by meta
|
||||
*** @Count users by status
|
||||
***/
|
||||
function get_users_by_status($rule, $number = 5){
|
||||
function count_users_by_status( $status ) {
|
||||
$args = array( 'fields' => 'ID', 'number' => 0 );
|
||||
$args['meta_query'][] = array(array('key' => 'account_status','value' => $status,'compare' => '='));
|
||||
$users = new WP_User_Query( $args );
|
||||
return count($users->results);
|
||||
}
|
||||
|
||||
/***
|
||||
*** @Get users by status
|
||||
***/
|
||||
function get_users_by_status($status, $number = 5){
|
||||
global $wpdb;
|
||||
|
||||
$args = array( 'fields' => 'ID', 'number' => $number, 'orderby' => 'user_registered', 'order' => 'desc' );
|
||||
@@ -72,7 +82,7 @@ class UM_Query {
|
||||
$args['meta_query'][] = array(
|
||||
array(
|
||||
'key' => 'account_status',
|
||||
'value' => $rule,
|
||||
'value' => $status,
|
||||
'compare' => '='
|
||||
)
|
||||
);
|
||||
|
||||
+12
-1
@@ -125,7 +125,18 @@ class UM_Rewrite {
|
||||
} else if ( um_is_core_page('user') ) { // just base64_decode
|
||||
|
||||
if ( is_user_logged_in() ) { // just redirect to their profile
|
||||
exit( wp_redirect( um_user_profile_url() ) );
|
||||
|
||||
$query = $ultimatemember->permalinks->get_query_array();
|
||||
|
||||
$url = um_user_profile_url();
|
||||
|
||||
if ( $query ) {
|
||||
foreach( $query as $key => $val ) {
|
||||
$url = add_query_arg($key, $val, $url);
|
||||
}
|
||||
}
|
||||
|
||||
exit( wp_redirect( $url ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -295,7 +295,6 @@ class UM_User {
|
||||
function reject(){
|
||||
global $ultimatemember;
|
||||
$this->set_status('rejected');
|
||||
$this->delete( false );
|
||||
$ultimatemember->mail->send( um_user('user_email'), 'rejected_email' );
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Plugin Name: Ultimate Member
|
||||
Plugin URI: http://ultimatemember.com/
|
||||
Description: Ultimate Member is a powerful community and membership plugin that allows you to create beautiful community and membership sites with WordPress
|
||||
Version: 1.0.50
|
||||
Version: 1.0.51
|
||||
Author: Ultimate Member
|
||||
Author URI: http://ultimatemember.com/
|
||||
*/
|
||||
|
||||
+13
-1
@@ -7,7 +7,7 @@ Tags: access control, author, authors, author profile, comments, community, comm
|
||||
Requires at least: 4.1
|
||||
Tested up to: 4.1
|
||||
|
||||
Stable Tag: 1.0.50
|
||||
Stable Tag: 1.0.51
|
||||
|
||||
License: GNU Version 2 or Any Later Version
|
||||
|
||||
@@ -186,6 +186,18 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 1.0.51: February 13, 2015 =
|
||||
|
||||
* New: show registration info for each user in users backend
|
||||
* New: show user stats at a glance in plugin dashboard
|
||||
* New: sort users in backend by account status
|
||||
* New: sort users in backend by user role
|
||||
* New: added option to disable plugin css and js on homepage
|
||||
* Tweak: updated language and translations files
|
||||
* Fixed: issue with changing user role from Profile page
|
||||
* Fixed: php bug with user description that has links
|
||||
* Fixed: small issue with rewrite rules
|
||||
|
||||
= 1.0.50: February 12, 2015 =
|
||||
|
||||
* New: added option to include plugin js/css only on specific pages (user suggestion)
|
||||
|
||||
@@ -1693,6 +1693,16 @@ $this->sections[] = array(
|
||||
'off' => __('Off','ultimatemember'),
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'js_css_exlcude_home',
|
||||
'type' => 'switch',
|
||||
'title' => __( 'Never load plugin JS and CSS on homepage?','ultimatemember' ),
|
||||
'default' => 0,
|
||||
'desc' => __('This can disable loading plugin js and css files on home page.','ultimatemember'),
|
||||
'on' => __('On','ultimatemember'),
|
||||
'off' => __('Off','ultimatemember'),
|
||||
),
|
||||
|
||||
array(
|
||||
'id' => 'js_css_exclude',
|
||||
'type' => 'multi_text',
|
||||
|
||||
Reference in New Issue
Block a user