День добрый!
Есть ли хуки для добавления полей (не wp-recall, а собственных) в форму ЛК, для обработки добавленных полей?
Поясню: в разрабатываемом адд-он'е есть необходимость хранить данные аддона в отдельной таблице, но привязанными к учётным записям. Соответственно, при выводе формы личного кабинета, требуется на-лету вытащить из "той" таблицы данные и вывести их в доп. поле для редактирования, в общую форму ЛК. А при сохранении формы, соответственно, эти поля обработать и сохранить в "ту" таблицу. Можно такие обработчики добавить средствами API?
Здравствуйте.
Вот я воспользовался фильтром rcl_public_form
и добавил селект
Но вам я думаю надо будет еще отлавливать post-запрос и самостоятельно из того что вы добавили написать функцию обработчик на сохранение этих данных куда вам нужно. Но там это чистый php и апи вордпресс. Это вне рамок поддержки по плагину.
Как расширить форму вне ее настроек я вам подсказал.
Можно. Достаточно легко.
1. Добавляем свое поле в форму публикации
add_filter( 'rcl_public_form_fields', 'add_custom_public_form_fields', 10, 3 ); function add_custom_public_form_fields( $fields, $formData, $class ) { if ( $formData->post_type != 'post' ) //форма не для публикации типа post return $fields; $fields[] = array( 'type' => 'select', 'slug' => 'my_field', 'title' => __( 'Заголовок поля' ), 'notice' => __( 'пояснение к полю' ), 'required' => true, 'values' => array( __('Один'), __('Два'), __('Три') ) ); return $fields; }
Поле добавляется массивом согласно API произвольных полей плагина, подробнее тут
2. Обрабатываем данные со своего поля
add_action( 'update_post_rcl', 'save_data_custom_field', 10, 3 ); function save_data_custom_field( $post_id, $postData, $update ) { if ( $postData['post_type'] != 'post' ) return false; $data_field = $_POST['my_field']; //сохраняем полученные данные своего поля }