Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Условная логика произвольных полей профиля
5 ответ(ов) в теме
DjAga
не в сети 3 месяца
На сайте с 08.01.2020
Участник
Тем 1
Сообщения 6
1
01:41
Версия WP-Recall: 16.18.20

Доброго времени суток!

Подскажите, пожалуйста, как можно реализовать условную логику произвольных полей профиля на 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;
}

Так не работает?

Редакции сообщения
07.06.2020 01:44DjAgaПричина: не указано
07.06.2020 01:44DjAgaПричина: не указано
0
Андрей CS
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 14778
2
07:52

по-умолчанию, такого функционала нет, сторонние плагины тут не помогут, только хардкор на php и ajax

0
DjAga
не в сети 3 месяца
На сайте с 08.01.2020
Участник
Тем 1
Сообщения 6
3
13:35

Я думал сделать как здесь:

Вы не можете просматривать опубликованные ссылки

Только с полями, но какой синтаксис правильный для 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 ?

Редакции сообщения
07.06.2020 13:36DjAgaПричина: не указано
0
Preci
не в сети 9 часов
На сайте с 11.11.2014
Участник
Тем 66
Сообщения 1004
4
14:07

Вы пишите условия в коде, при этом что введет юзер - вам не известно, так что ваш подход не будет работать. Вам надо писать js который будет проверять что юзер указал и слать запрос на сервер с этими данными и тогда уже определяться какие поля нужно добавить и возвращать их браузеру и с помощью js вставлять.

0
DjAga
не в сети 3 месяца
На сайте с 08.01.2020
Участник
Тем 1
Сообщения 6
5
16:37

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

Редакции сообщения
07.06.2020 18:51DjAgaПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме