Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Есть ли хуки для добавления полей (не wp-recall, а собственных) в форму ЛК, для обработки добавленных полей?
5ответ(ов) в теме
AndrewIOOO
не в сети 4 года
На сайте с 08.05.2017
Участник
Тем 16
Сообщения 63
1
08:27
Версия WP-Recall: 16.17.15

День добрый!
Есть ли хуки для добавления полей (не wp-recall, а собственных) в форму ЛК, для обработки добавленных полей?

Поясню: в разрабатываемом адд-он'е есть необходимость хранить данные аддона в отдельной таблице, но привязанными к учётным записям. Соответственно, при выводе формы личного кабинета, требуется на-лету вытащить из "той" таблицы данные и вывести их в доп. поле для редактирования, в общую форму ЛК. А при сохранении формы, соответственно, эти поля обработать и сохранить в "ту" таблицу. Можно такие обработчики добавить средствами API?

0
Вова (Otshelnik-Fm)
не в сети 11 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
2
10:48

Здравствуйте.

Вот я воспользовался фильтром rcl_public_form и добавил селект

Вы не можете просматривать опубликованные ссылки

Но вам я думаю надо будет еще отлавливать post-запрос и самостоятельно из того что вы добавили написать функцию обработчик на сохранение этих данных куда вам нужно. Но там это чистый php и апи вордпресс. Это вне рамок поддержки по плагину.
Как расширить форму вне ее настроек я вам подсказал.

1
Андрей CS
не в сети 11 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16854
3
11:14

Можно. Достаточно легко.
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'];

	//сохраняем полученные данные своего поля
}

1
AndrewIOOO
не в сети 4 года
На сайте с 08.05.2017
Участник
Тем 16
Сообщения 63
4
16:35

Спасибо, коллеги, это ценная информация.

Но я, видимо, был не точен в постановке проблемы. Под "формой ЛК" я предполагал "Форму Профиль пользователя". Вот в форму "Профиль пользователя" можно аналогичным образом поле добавить?

0
Вова (Otshelnik-Fm)
не в сети 11 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18642
5
16:37

Фильтр profile_options_rcl

Похожий вопрос на форуме

Вы не можете просматривать опубликованные ссылки
1
Вы не имеете права на публикацию сообщений в этой теме