Кто может наглядно показать как собрать массив из данных юзеров и передать его в переменную?

Вообщем на сайте 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 шт):

Автор решения: Darth KYL

если я правильно понял что вам нужно то запрос может должен выглядеть вот так

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' );
}
→ Ссылка