Кто может наглядно показать как собрать массив из данных юзеров и передать его в переменную?
Вообщем на сайте 1000 юзеров, у каждого в таблице wp_usermeta есть поле user_company. По id автора поста я смотрю его user_company
$author_company = get_user_meta( $post->post_author, 'user_company', true );
//получаю $author_company = 'Samsung';
Также у всех юзеров есть поле user_token_bot которое содержит какой-то id
$user_token_bot = get_user_meta( $user->ID, 'user_token_bot', true );
//$user_token_bot = '1111'; например
Теперь мне надо собрать массив всех этих user_token_bot но только у тех юзеров у которых user_company тоже Samsung как и компания автора поста и поместить этот массив в переменную.
$tokens = ['1111','2222','3333','4444'] ///вот в таком виде.
Я тут не буду описывать че я пытался сделать, че я только не делал, и через запросы к базе и через
$query = new WP_Query( array(
'meta_query' => array(
array(
'key' => 'user_company',
'value' => $author_company,
'compare' => '=',
),
)
) );
в итоге ничего не получается даже на этапе сбора, не то что формирования готового результата в новый массив.
Помогите наглядно собрать код из этих условий.
Ответы (1 шт):
если я правильно понял что вам нужно то запрос может должен выглядеть вот так
function get_users_token( $company_name ) {
global $wpdb;
$prepare_query = $wpdb->prepare(
"SELECT um1.meta_value
FROM $wpdb->usermeta AS um1
JOIN $wpdb->usermeta AS um2 ON um1.user_id = um2.user_id
WHERE um1.meta_key = 'user_token_bot' AND um2.meta_key = 'user_company' AND um2.meta_value = %s",
$company_name
);
return wp_list_pluck( $wpdb->get_results( $prepare_query ), 'meta_value' );
}