Как это должно работать?
На панели администратора/серверной панели при создании публикации пользователь имеет доступ к двум вкладкам (созданным с помощью ACF). На первой вкладке есть три кнопки переключения (истина/ложь): Fruit_selection, veggies_selection и items_selection. На второй вкладке есть раскрывающееся поле/поле выбора под названием «Платформа». Я хочу избежать предоставления «фиксированного» списка значений. Вместо этого я хотел оставить это на усмотрение пользователя. Поэтому, когда он/она отмечает определенную кнопку, в поле выбора эти значения должны быть видны.
Итак, ЕСЛИ пользователь установит для Fruit_selection значение TRUE, тогда в раскрывающемся списке должны быть доступные значения [значение : label]:
- яблочные связки : микс яблок,
- банановые связки : корзина с бананами,
kiwi-set : Вкусный набор киви.
ЕСЛИ пользователь установит для 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
Мобильная версия