Дополнительные поля в профиле WordPress

Статья-инструкция о том как реализовать дополнительные поля в профиле пользователей WordPress

Как реализовать:

1. Для реализации дополнительных полей мы создадим свой плагин, для этого создайте в папке с вашим шаблоном пустой php файл, и назовите его к примеру add_fields.php, затем поместите в него следующий код:

<?php
/*
Plugin Name: Дополнительные поля для профиля
Description: Добавляет новые поля в профиль пользователя.
Version: 1.0
*/

### дополнительные данные на странице профиля
add_action('show_user_profile', 'my_profile_new_fields_add');
add_action('edit_user_profile', 'my_profile_new_fields_add');

add_action('personal_options_update', 'my_profile_new_fields_update');
add_action('edit_user_profile_update', 'my_profile_new_fields_update');

function my_profile_new_fields_add(){ 
	global $user_ID;
	
	$accaunt = get_user_meta( $user_ID, "user_accaunt", 1 );
	
	?>
	<h3>Дополнительные данные</h3>
	<table class="form-table">
		<tr>
			<th><label for="user_fb_txt">Банковский счет</label></th>
			<td>
				<input type="text" name="user_accaunt" value="<?php echo $accaunt ?>"><br>
			</td>
		</tr>
	</table>
	<?php            
}

// обновление
function my_profile_new_fields_update(){
	global $user_ID;
	
	update_user_meta( $user_ID, "user_accaunt", $_1POST['user_accaunt'] );
}

P.S При создании плагина просьба убрать вот здесь единичку:

$_1POST

И вот что мы получили — страница редактирования профиля в панели администратора:

Дополнительные поля в профиле WordPress

Также мы можем добавить дополнительные поля с контактными данными, для этого добавляем в самый конец созданного нами файла добавляем следующий код:

function modify_contact_methods( $contact_fields ) {
	// Новые поля
	$contact_fields['twitter']  = 'Twitter Username';
	$contact_fields['facebook'] = 'Facebook URL';
	$contact_fields['gplus']    = 'Google+ URL';
	
	// удаляем имеющиеся
	unset( $contact_fields['jabber'] );

	return $contact_fields;
}
add_filter('user_contactmethods', 'modify_contact_methods');

И вот что мы получили:

Дополнительные поля в профиле WordPress

Для того, чтобы получить новые поля в шаблоне для вывода, используйте такую функцию

get_the_author_meta():

Вот так

$twitterHandle = get_the_author_meta('twitter');

Готово.

delux

Предлагаю делиться опытом в сфере сайтостроения!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.