Version 1.0.51

This commit is contained in:
ultimatemember
2015-02-13 02:05:04 +02:00
parent 3af48d0466
commit 7fc3d3c1bd
20 changed files with 249 additions and 294 deletions
+3 -5
View File
@@ -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}
+60 -78
View File
@@ -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}
+5 -1
View File
@@ -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;
});
+9 -13
View File
@@ -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 } ?>
+1 -1
View File
@@ -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
}
}
+68 -15
View File
@@ -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>
+32 -149
View File
@@ -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>&nbsp;&nbsp;|&nbsp;&nbsp;<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>&nbsp;&nbsp;|&nbsp;&nbsp;<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>