Как составить запрос на обработку custom fields (checkbox) php

ig-07

Новичок
Приветствую форумчане.

Не хватает знаний для составления запроса на извлечение данных из custom fields (checkbox), содержащего более 1 значения.($gorod)

Конечная цель - осуществить запрос для извлечения user с учетом значений 'key' , 'value' (custom fields) равных в профиле и записях.

Исхожу из того, что необходимые произвольные поля и их значения (в профиле и постах ) уже существуют и известны.

Пример:

$region = get_post_meta( $post_ID, 'region, true ); - выпадающий список
$gorod = get_post_meta( $post_ID, 'gorod', true ); - checkbox

$users = get_users ($args);

$args = array(
'meta_query' => array(
array( 'key' => 'region_100', 'value' => $region ),
array( 'key' => 'gorod_100', 'value' => $gorod ),
),
);

Проблема возникает в том, что не получается составить правильно переменную $gorod.

Практичной информации загуглить не удалось.
Буду благодарен за любой вид помощи (ссылка на материал, пример, решение)
 

ig-07

Новичок
Существуют произвольные поля gorod и gorod_100 ( являются checkbox). В профиле =>'gorod_100', в постах => 'gorod' , но значения одинаковые. Планирую составить форму уведомления пользователей c помощью wp-mail и для этой цели осуществляю мета-запрос для поиска одинаковых значений этих произвольных полей в профиле и в постах. Аналогичным образом поступаю с произвольными полями region и region_100 (выпадающий список). С выпадающим списком проблем нет. Запрос сравнивает установленные значения и если они совпадает выводят список пользователей. Но с checkbox так не получается, т.к. там по сути множественный выбор, и как я понял к функции get_post_meta (с учетом того, что key=> 'gorod' является checkbox) необходимо дописать дополнительные условия, как запрос будет сравнивать значения в профиле и постах. Как это сделать я не знаю.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок

ig-07

Новичок
ГДЕ они существуют?…

Не вижу проблемы. `field` IN (array) никто не отменял.
Поля сформированы ранее и выведены в профиле и постах. Идея привязки к ним оповещения пришла позже и сейчас просто прописываю необходимые функции. Необходимых знаний нет, поэтому познаю в процессе
Спасибо. погуглю
 

fixxxer

К.О.
Партнер клуба
То, что речь о вордпрессе и каких-то его функциях, всем присутствующим предлагается догадаться, да? (Не, ну я догадался, но только из-за wp-mail).

Советую обратиться на какой-нибудь форум специалистов по wordpress.
 

ig-07

Новичок
Ясно. Я предположил, что мой вопрос относится чисто к правилам php (составление массива). В целом у меня получилось положительно обработать запросы и осуществить уведомление нужным user, но только с полями выпадающего списка, где сравнение происходит по первому и единственному выбранному значению. С checkbox надо иначе составить массив его содержащий, но нигде не нашел более или менее понятного для себя примера.
 

WMix

герр M:)ller
Партнер клуба
начни с простого, есть массив типа [a=>b, c=>d] есть другой массив типа .... нужно получить .....
 

ig-07

Новичок
начни с простого, есть массив типа [a=>b, c=>d] есть другой массив типа .... нужно получить .....
В моем случае это не вопрос простого или сложного, а вопрос как в принципе составить массив содержащий поле checkbox

Пробовал разложить массив на составляющие

$region = get_post_meta( $post_ID, 'region, true ); // - выпадающий список
$gorod = get_post_meta($post_ID, $gorod1, true ); //- checkbox
$gorod1 = array(['Москва'],['СПБ']);
list($go1, $go2) = $gorod1;

и получить

$users = get_users ($args);

$args = array(
'meta_query' => array(
array( 'key' => 'region_100', 'value' => $region ), // - выпадающий список. с ним проблем нет
array( 'key' => 'kat_46', 'value' => array ($go1, $go2,),'compare' => '=') // - запрос не видит значения 'value' ни в каком варианте
)
);

Можно какой-нибудь похожий пример, чтобы я уже предметно разбирался?
 

ig-07

Новичок
$gorod1 = array(['Москва'],['СПБ']); заменил на $gorod1 = array('Москва' , 'СПБ');
манипулировал с 'сompare' в 'meta_query' . Все равно никак.
Единственный вариант хоть какого отзыва на работу поля через функцию
if( get_post_meta( $post_ID, 'gorod', true ) )
return;
но не тот который ожидался
 
Сверху