user.php
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
class CPAC_Storage_Model_User extends CPAC_Storage_Model {
/**
* Constructor
*
* @since 2.0
*/
function __construct() {
$this->key = 'wp-users';
$this->label = __( 'Users' );
$this->singular_label = __( 'User' );
$this->type = 'user';
$this->meta_type = 'user';
$this->page = 'users';
$this->menu_type = 'other';
// headings
add_filter( "manage_{$this->page}_columns", array( $this, 'add_headings' ), 100 );
// values
add_filter( 'manage_users_custom_column', array( $this, 'manage_value_callback' ), 100, 3 );
parent::__construct();
}
/**
* @since 2.4.7
*/
public function get_original_column_value( $column, $id ) {
// Remove Admin Columns action for this column's value
remove_action( "manage_users_custom_column", array( $this, 'manage_value_callback' ), 100, 3 );
ob_start();
do_action( "manage_users_custom_column", $column, $id );
$contents = ob_get_clean();
// Add removed Admin Columns action for this column's value
add_action( "manage_users_custom_column", array( $this, 'manage_value_callback' ), 100, 3 );
return $contents;
}
/**
* Get WP default supported admin columns per post type.
*
* @see CPAC_Type::get_default_columns()
* @since 1.0
*
* @return array
*/
public function get_default_columns() {
if ( ! function_exists('_get_list_table') ) {
return array();
}
// You can use this filter to add third_party columns by hooking into this.
do_action( "cac/columns/default/storage_key={$this->key}" );
// get columns
$table = _get_list_table( 'WP_Users_List_Table', array( 'screen' => 'users' ) );
$columns = (array) $table->get_columns();
if ( $this->is_settings_page() ) {
$columns = array_merge( get_column_headers( 'users' ), $columns );
}
return $columns;
}
/**
* Get original columns
*
* @since 2.4.4
*/
public function get_default_column_names() {
return array( 'cb', 'username', 'name', 'email', 'role', 'posts' );
}
/**
* Manage value
*
* @since 2.0.2
*
* @param string $column_name
* @param int $user_id
* @param string $value
*/
public function manage_value( $column_name, $user_id, $value = '' ) {
if ( ! ( $column = $this->get_column_by_name( $column_name ) ) ) {
return $value;
}
// get value
$custom_value = $column->get_value( $user_id );
// make sure it absolutely empty and check for (string) 0
if ( ! empty( $custom_value ) || '0' === $custom_value ) {
$value = $custom_value;
}
// filters
$value = apply_filters( "cac/column/value", $value, $user_id, $column, $this->key );
$value = apply_filters( "cac/column/value/{$this->type}", $value, $user_id, $column, $this->key );
return $value;
}
/**
* Callback Manage value
*
* @since 2.0.2
*
* @param string $value
* @param string $column_name
* @param int $user_id
*/
public function manage_value_callback( $value, $column_name, $user_id ) {
return $this->manage_value( $column_name, $user_id, $value );
}
/**
* Get Meta
*
* @see CPAC_Columns::get_meta_keys()
* @since 2.0
*
* @return array
*/
public function get_meta() {
global $wpdb;
return $wpdb->get_results( "SELECT DISTINCT meta_key FROM {$wpdb->usermeta} ORDER BY 1", ARRAY_N );
}
}