Я работаю над плагином панели мониторинга WordPress, который предназначен для отображения списка подписчиков на панели администратора в таблице WordPress.
Все работает правильно, за исключением того, что все зарегистрированные пользователи отображаются вмассив, когда мне нужны только подписчики.Я создаю массив со следующим кодом ..
<code>function prepare_items() {
$per_page = 5;
$columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
global $wpdb;
$data = $wpdb->get_results("SELECT * FROM $wpdb->users", ARRAY_A);
$i = 0;
foreach($data as $single) {
$meta = $wpdb->get_results(
"SELECT meta_value
FROM $wpdb->usermeta
WHERE user_id = $single[ID]
AND (meta_key = 'first_name' OR meta_key = 'last_name' OR meta_key = 'wp_user_level')
ORDER BY meta_key",
ARRAY_A
);
$data[$i]['first_name'] = $meta[0]['meta_value'];
$data[$i]['last_name'] = $meta[1]['meta_value'];
$data[$i]['wp_user_level'] = $meta[2]['meta_value'];
$i++;
}
echo '<pre>';
print_r($data2);
echo '
';
Используя print_r, я вижу, что две таблицы wp_users и wp_usermeta правильно соединены и все необходимые мне данные возвращаются в массив.
Что мне теперь нужносделать, это использовать своего рода array_filter, чтобы вернуть только те записи, которые имеют wp_user_level 0 (подписчик).
Я пробовал следующее ....
$data = array_filter($data, 'filter_subscribers');
function filter_subscribers()
{
return $data2['wp_user_level'] == '0';
}
Но это не работаетдля меня кто-нибудь может предложить что-нибудь?