178
* Handles the checkbox column output.
183
* @param WP_User $user The current WP_User object.
185
public function column_cb( $user ) {
187
<label class="screen-reader-text" for="blog_<?php echo $user->ID; ?>"><?php echo sprintf( __( 'Select %s' ), $user->user_login ); ?></label>
188
<input type="checkbox" id="blog_<?php echo $user->ID ?>" name="allusers[]" value="<?php echo esc_attr( $user->ID ) ?>" />
193
* Handles the username column output.
198
* @param WP_User $user The current WP_User object.
200
public function column_username( $user ) {
201
$super_admins = get_super_admins();
202
$avatar = get_avatar( $user->user_email, 32 );
203
$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user->ID ) ) );
207
?><strong><a href="<?php echo $edit_link; ?>" class="edit"><?php echo $user->user_login; ?></a><?php
208
if ( in_array( $user->user_login, $super_admins ) ) {
209
echo ' - ' . __( 'Super Admin' );
216
* Handles the name column output.
221
* @param WP_User $user The current WP_User object.
223
public function column_name( $user ) {
224
echo "$user->first_name $user->last_name";
228
* Handles the email column output.
233
* @param WP_User $user The current WP_User object.
235
public function column_email( $user ) {
236
echo "<a href='mailto:$user->user_email'>$user->user_email</a>";
240
* Handles the registered date column output.
245
* @global string $mode
247
* @param WP_User $user The current WP_User object.
249
public function column_registered( $user ) {
251
if ( 'list' == $mode ) {
252
$date = __( 'Y/m/d' );
254
$date = __( 'Y/m/d g:i:s a' );
256
echo mysql2date( $date, $user->user_registered );
263
* @param WP_User $user
264
* @param string $classes
265
* @param string $data
266
* @param string $primary
268
protected function _column_blogs( $user, $classes, $data, $primary ) {
269
echo '<td class="', $classes, ' has-row-actions" ', $data, '>';
270
echo $this->column_blogs( $user );
271
echo $this->handle_row_actions( $user, 'blogs', $primary );
276
* Handles the blogs/sites column output.
281
* @param WP_User $user The current WP_User object.
283
public function column_blogs( $user ) {
284
$blogs = get_blogs_of_user( $user->ID, true );
285
if ( ! is_array( $blogs ) ) {
289
foreach ( $blogs as $val ) {
290
if ( ! can_edit_network( $val->site_id ) ) {
294
$path = ( $val->path == '/' ) ? '' : $val->path;
295
echo '<span class="site-' . $val->site_id . '" >';
296
echo '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . str_replace( '.' . get_current_site()->domain, '', $val->domain . $path ) . '</a>';
297
echo ' <small class="row-actions">';
299
$actions['edit'] = '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . __( 'Edit' ) . '</a>';
302
if ( $val->spam == 1 ) {
303
$class .= 'site-spammed ';
305
if ( $val->mature == 1 ) {
306
$class .= 'site-mature ';
308
if ( $val->deleted == 1 ) {
309
$class .= 'site-deleted ';
311
if ( $val->archived == 1 ) {
312
$class .= 'site-archived ';
315
$actions['view'] = '<a class="' . $class . '" href="' . esc_url( get_home_url( $val->userblog_id ) ) . '">' . __( 'View' ) . '</a>';
318
* Filter the action links displayed next the sites a user belongs to
319
* in the Network Admin Users list table.
323
* @param array $actions An array of action links to be displayed.
324
* Default 'Edit', 'View'.
325
* @param int $userblog_id The site ID.
327
$actions = apply_filters( 'ms_user_list_site_actions', $actions, $val->userblog_id );
330
$action_count = count( $actions );
331
foreach ( $actions as $action => $link ) {
333
$sep = ( $i == $action_count ) ? '' : ' | ';
334
echo "<span class='$action'>$link$sep</span>";
336
echo '</small></span><br/>';
341
* Handles the default column output.
346
* @param WP_User $user The current WP_User object.
347
* @param string $column_name The current column name.
349
public function column_default( $user, $column_name ) {
350
/** This filter is documented in wp-admin/includes/class-wp-users-list-table.php */
351
echo apply_filters( 'manage_users_custom_column', '', $column_name, $user->ID );
149
354
public function display_rows() {
152
$super_admins = get_super_admins();
153
355
foreach ( $this->items as $user ) {
156
358
$status_list = array( 'spam' => 'site-spammed', 'deleted' => 'site-deleted' );
158
360
foreach ( $status_list as $status => $col ) {
159
if ( $user->$status )
361
if ( $user->$status ) {
160
362
$class .= " $col";
164
367
<tr class="<?php echo trim( $class ); ?>">
167
list( $columns, $hidden ) = $this->get_column_info();
169
foreach ( $columns as $column_name => $column_display_name ) :
170
$class = "class='$column_name column-$column_name'";
173
if ( in_array( $column_name, $hidden ) )
174
$style = ' style="display:none;"';
176
$attributes = "$class$style";
178
switch ( $column_name ) {
180
<th scope="row" class="check-column">
181
<label class="screen-reader-text" for="blog_<?php echo $user->ID; ?>"><?php echo sprintf( __( 'Select %s' ), $user->user_login ); ?></label>
182
<input type="checkbox" id="blog_<?php echo $user->ID ?>" name="allusers[]" value="<?php echo esc_attr( $user->ID ) ?>" />
188
$avatar = get_avatar( $user->user_email, 32 );
189
$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user->ID ) ) );
191
echo "<td $attributes>"; ?>
192
<?php echo $avatar; ?><strong><a href="<?php echo $edit_link; ?>" class="edit"><?php echo $user->user_login; ?></a><?php
193
if ( in_array( $user->user_login, $super_admins ) )
194
echo ' - ' . __( 'Super Admin' );
199
$actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>';
201
if ( current_user_can( 'delete_user', $user->ID ) && ! in_array( $user->user_login, $super_admins ) ) {
202
$actions['delete'] = '<a href="' . $delete = esc_url( network_admin_url( add_query_arg( '_wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'users.php', 'deleteuser' ) . '&action=deleteuser&id=' . $user->ID ) ) ) . '" class="delete">' . __( 'Delete' ) . '</a>';
206
* Filter the action links displayed under each user
207
* in the Network Admin Users list table.
211
* @param array $actions An array of action links to be displayed.
212
* Default 'Edit', 'Delete'.
213
* @param WP_User $user WP_User object.
215
$actions = apply_filters( 'ms_user_row_actions', $actions, $user );
216
echo $this->row_actions( $actions );
223
echo "<td $attributes>$user->first_name $user->last_name</td>";
227
echo "<td $attributes><a href='mailto:$user->user_email'>$user->user_email</a></td>";
231
if ( 'list' == $mode )
232
$date = __( 'Y/m/d' );
234
$date = __( 'Y/m/d g:i:s a' );
236
echo "<td $attributes>" . mysql2date( $date, $user->user_registered ) . "</td>";
240
$blogs = get_blogs_of_user( $user->ID, true );
241
echo "<td $attributes>";
242
if ( is_array( $blogs ) ) {
243
foreach ( (array) $blogs as $key => $val ) {
244
if ( !can_edit_network( $val->site_id ) )
247
$path = ( $val->path == '/' ) ? '' : $val->path;
248
echo '<span class="site-' . $val->site_id . '" >';
249
echo '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . str_replace( '.' . get_current_site()->domain, '', $val->domain . $path ) . '</a>';
250
echo ' <small class="row-actions">';
252
$actions['edit'] = '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . __( 'Edit' ) . '</a>';
255
if ( get_blog_status( $val->userblog_id, 'spam' ) == 1 )
256
$class .= 'site-spammed ';
257
if ( get_blog_status( $val->userblog_id, 'mature' ) == 1 )
258
$class .= 'site-mature ';
259
if ( get_blog_status( $val->userblog_id, 'deleted' ) == 1 )
260
$class .= 'site-deleted ';
261
if ( get_blog_status( $val->userblog_id, 'archived' ) == 1 )
262
$class .= 'site-archived ';
264
$actions['view'] = '<a class="' . $class . '" href="' . esc_url( get_home_url( $val->userblog_id ) ) . '">' . __( 'View' ) . '</a>';
267
* Filter the action links displayed next the sites a user belongs to
268
* in the Network Admin Users list table.
272
* @param array $actions An array of action links to be displayed.
273
* Default 'Edit', 'View'.
274
* @param int $userblog_id The site ID.
276
$actions = apply_filters( 'ms_user_list_site_actions', $actions, $val->userblog_id );
279
$action_count = count( $actions );
280
foreach ( $actions as $action => $link ) {
282
( $i == $action_count ) ? $sep = '' : $sep = ' | ';
283
echo "<span class='$action'>$link$sep</span>";
285
echo '</small></span><br/>';
294
echo "<td $attributes>";
295
/** This filter is documented in wp-admin/includes/class-wp-users-list-table.php */
296
echo apply_filters( 'manage_users_custom_column', '', $column_name, $user->ID );
368
<?php $this->single_row_columns( $user ); ?>
375
* Gets the name of the default primary column.
380
* @return string Name of the default primary column, in this case, 'username'.
382
protected function get_default_primary_column_name() {
387
* Generates and displays row action links.
392
* @param object $user User being acted upon.
393
* @param string $column_name Current column name.
394
* @param string $primary Primary column name.
395
* @return string Row actions output for users in Multisite.
397
protected function handle_row_actions( $user, $column_name, $primary ) {
398
if ( $primary !== $column_name ) {
402
$super_admins = get_super_admins();
403
$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user->ID ) ) );
406
$actions['edit'] = '<a href="' . $edit_link . '">' . __( 'Edit' ) . '</a>';
408
if ( current_user_can( 'delete_user', $user->ID ) && ! in_array( $user->user_login, $super_admins ) ) {
409
$actions['delete'] = '<a href="' . $delete = esc_url( network_admin_url( add_query_arg( '_wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'users.php', 'deleteuser' ) . '&action=deleteuser&id=' . $user->ID ) ) ) . '" class="delete">' . __( 'Delete' ) . '</a>';
413
* Filter the action links displayed under each user in the Network Admin Users list table.
417
* @param array $actions An array of action links to be displayed.
418
* Default 'Edit', 'Delete'.
419
* @param WP_User $user WP_User object.
421
$actions = apply_filters( 'ms_user_row_actions', $actions, $user );
422
return $this->row_actions( $actions );