День добрый!
Есть ли хуки для добавления полей (не 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'];
//сохраняем полученные данные своего поля
}