Как добавить значение в поле carbonfields типа association который в поле типа complex
Вот инициализация
Field::make( 'complex', 'fieldname', 'Курсы' )
->add_fields( array(
Field::make('association', 'item', 'Курс')
->set_types([['type'=>'post','post_type'=>'courses']])
->set_max( 1 ),
Field::make('date_time', 'expiration', 'Дата окончания доступа (бессрочно если пусто)')
) )
Как добавить новое значение в поле, которое complex — новый блок в котором поле item ассоциативного типа?
В документации раз 15 все перерыл и не нашел примера обновления. Гугл выдал https://github.com/htmlburger/carbon-fields/issues/697 но там пример с постом и для пользователя такое не сработало
К слову это поле в профиле пользователя и если для постов есть carbon_set_post_meta но для профиля нету подобной функции в духе carbon_set_user_meta и пользуюсь стандартной update_usermeta Может в этом вся проблема...
Ответы (1 шт):
Залез в ядро carbon fields https://github.com/htmlburger/carbon-fields/blob/46e9b60c30061e869fca66227e50dfc009afe194/core/functions.php думал посмотреть как вообще работает функция обновления, чтобы понимать что ей можно слать. И наткнулся на "carbon_set_user_meta" именно SET ее в документации нет.
В итоге рабочий код
carbon_set_user_meta(get_current_user_id(), 'fieldname', [
[
"item" => [
[
'value' => 'post:courses:56',
'id' => 56,
'type' => 'post',
'subtype' => 'courses'
]
]
]
]);
Где 56 это id записи в ВП subtype это тип это записи
И я почти уверен, что обновления подобного поля можно просто выгрузив все значения (оно будет в виде массива https://wp-kama.ru/plugin/carbon-fields/fields#association ) исправить и обратно все закинуть по примеру выше