Доброго времени суток!
Подскажите, пожалуйста, как можно реализовать условную логику произвольных полей профиля на PHP?
Воспользовался плагином a-fixator-functions, поля профиля вывелись в личном кабинете, но все сразу...
А мне нужна условная логика if: Если в первом поле выбирается первое значение, - то появляется один набор полей, а если второе, - то другой.
function add_profile_fields($fields)
{
{$fields[] = array
('type' => 'select', 'slug' => 'a',
'title' => __ ( 'aaa?' ),
'values' => array(
__ ( '1' ),
__ ( '2' ),
__ ( '3' )
), 'notice' => __ ( 'выберите одно из значений' ),
$val = {RCL-UM:gender}$value = get_field( "text_field", 1);
if ($val="") {$fields[] = array(
'type' => 'select',
'slug' => 'wait',
'title' => __ ( 'yyy?' ),
'values' => array(
__ ( 'Да' ),
__ ( 'Нет' ),
__ ( 'Возможно' )),'notice' => __ ( 'выберите одно из значений' )),
function ($val);
$val = {RCL-UM:wait}
return $val;if ($val=("Да"));
{
$fields[] = array(
'type' => 'hidden',
'slug' => 'my_form_submit',
'value' => 1
),
}
else$fields[] = array(
'type' => 'runner',
'slug' => 'w',
'title' => __ ( 'xxx?' ),
'value_min' => 1,
'value_max' => 100,
'default' => 1)
);
return $fields;
}
Так не работает?
Я думал сделать как здесь:
Только с полями, но какой синтаксис правильный для if в PHP тут был бы? Так не парсит:
$fields[] = array(
'type' => 'select',
'slug' => 'wait',
'title' => __ ( 'aaa?' ),
'values' => array(
__ ( 'Да' ),
__ ( 'Нет' ),
__ ( 'Возможно' )),function ($val) {
$val = {RCL-UM:wait}
$val = get_field( "values", 2 );
return $val; }if ($val=("Да"));
{$fields[] = array(
'type' => 'runner',
'slug' => 'week',
'title' => __ ( 'xxx?' ),
'value_min' => 1,
'value_max' => 41,
'default' => 1)
);
return $fields;
}
Т.е., если выбирает "Да", то показывает следующий вопрос.
И что писать в ajax тогда? Это a-fixator-front-js ?
Вы пишите условия в коде, при этом что введет юзер - вам не известно, так что ваш подход не будет работать. Вам надо писать js который будет проверять что юзер указал и слать запрос на сервер с этими данными и тогда уже определяться какие поля нужно добавить и возвращать их браузеру и с помощью js вставлять.