edit_user_profile

最后更新于:2021-11-26 09:08:45

do_action( ‘edit_user_profile’, GC_User $profileuser )

Fires after the ‘About the User’ settings table on the ‘Edit User’ screen.

参数

$profileuser

(GC_User)
The current GC_User object.

源文件

文件: gc-admin/user-edit.php

View on Trac

function userMetaBirthdayForm(GC_User $user) {
?>
<h2>Birthday</h2>
	<table class="form-table">
		<tr>
			<th><label for="user_birthday">Birthday</label></th>
			<td>
				<input
					type="date"
					value="<?php echo esc_attr(get_user_meta($user->ID, 'birthday', true)); ?>"
					name="user_birthday"
					id="user_birthday"
				>
				<span class="description">Some description to the input</span>
			</td>
		</tr>
	</table>
<?php
}
add_action('show_user_profile', 'userMetaBirthdayForm'); // editing your own profile
add_action('edit_user_profile', 'userMetaBirthdayForm'); // editing another user
add_action('user_new_form', 'userMetaBirthdayForm'); // creating a new user

function userMetaBirthdaySave($userId) {
	if (!current_user_can('edit_user', $userId)) {
		return;
	}

	update_user_meta($userId, 'birthday', $_REQUEST['user_birthday']);
}
add_action('personal_options_update', 'userMetaBirthdaySave');
add_action('edit_user_profile_update', 'userMetaBirthdaySave');
add_action('user_register', 'userMetaBirthdaySave');

/**
 * Show custom user profile fields
 * 
 * @param  object $profileuser A GC_User object
 * @return void
 */
function custom_user_profile_fields( $profileuser ) {
?>
	<table class="form-table">
		<tr>
			<th>
				<label for="user_location"><?php esc_html_e( 'Location' ); ?></label>
			</th>
			<td>
				<input type="text" name="user_location" id="user_location" value="<?php echo esc_attr( get_the_author_meta( 'user_location', $profileuser->ID ) ); ?>" class="regular-text" />
				<br><span class="description"><?php esc_html_e( 'Your location.', 'text-domain' ); ?></span>
			</td>
		</tr>
	</table>
<?php
}
add_action( 'show_user_profile', 'custom_user_profile_fields', 10, 1 );
add_action( 'edit_user_profile', 'custom_user_profile_fields', 10, 1 );