Значения поля выбора/раскрывающегося списка ACF на основе других полей true/falsePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Значения поля выбора/раскрывающегося списка ACF на основе других полей true/false

Сообщение Anonymous »

Мне немного сложно создать фрагмент кода, который повлияет на расширенные настраиваемые поля в моем экземпляре WordPress.
Как это должно работать?
На панели администратора/серверной панели при создании публикации пользователь имеет доступ к двум вкладкам (созданным с помощью ACF). На первой вкладке есть три кнопки переключения (истина/ложь): Fruit_selection, veggies_selection и items_selection. На второй вкладке есть раскрывающееся поле/поле выбора под названием «Платформа». Я хочу избежать предоставления «фиксированного» списка значений. Вместо этого я хотел оставить это на усмотрение пользователя. Поэтому, когда он/она отмечает определенную кнопку, в поле выбора эти значения должны быть видны.
Итак, ЕСЛИ пользователь установит для Fruit_selection значение TRUE, тогда в раскрывающемся списке должны быть доступные значения [значение : label]:
  • яблочные связки : микс яблок,
  • банановые связки : корзина с бананами,
    kiwi-set : Вкусный набор киви.
ЕСЛИ пользователь установит для veggies_selection значение TRUE, то раскрывающийся список должен иметь доступное значение: картофель-мешок: мешок картофеля 10 фунтов
ЕСЛИ пользователь установит для items_selection значение TRUE, то в раскрывающемся списке должно быть доступное значение: корзина: деревянная корзина
Очевидно, что чем больше кнопок имеют значение true, тем больше значений будет доступно в поле выбора.
Это мой текущий код:
function acf_load_platform_field_choices( $field ) {

// reset choices
$field['choices'] = array();
$choices = array();

$fruits = get_field('fruits_selection');
$veggies = get_field('veggies_selection');
$items = get_field('items_selection');

if( $fruits ) {
$choices = array_push('apple-bundles : Mix of apples', 'banana-bundles : Bananas basket', 'kiwi-set : Tasty kiwi set');
}

if( $veggies ) {
$choices = array_push('potato-bag : 10lbs Potato Bag');
}

if( $items ) {
$choices = array_push('basket : Wooden basket');
}

// loop through array and add to field 'choices'
if( is_array($choices) ) {

foreach( $choices as $choice ) {

$field['choices'][ $choice ] = $choice;

}

}

// return the field
return $field;

}

add_filter('acf/load_field/name=platform', 'acf_load_platform_field_choices');

К сожалению, мой текущий код не работает. Он всегда делает раскрывающийся список пустым (без значений) независимо от выбора кнопки (истина/ложь). Кроме того, при попытке сохранить я получаю информацию Обновление не удалось. Ответ не является допустимым ответом JSON.
Так что же я делаю не так?


Подробнее здесь: https://stackoverflow.com/questions/746 ... lse-fields
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»