无法使用更改某些用户元字段edit_user_profile_update
钩子,因为它被触发了before 正在处理表单中的数据。所以,您将用户的元保存到数据库中,然后处理编辑表单,WP覆盖您的值。每次编辑轮廓后,都会触发此挂钩。
您应该使用insert_user_meta
过滤器(自WP v4.4起提供)以更改或添加用户的元。过滤器在创建/更新用户后应用,但元数据尚未保存到数据库。
add_action( \'insert_user_meta\', \'se329613_insert_user_meta\', 30, 3);
/**
* @param array $meta {
* Default meta values and keys for the user.
*
* @type string $nickname
* @type string $first_name
* @type string $last_name
* @type string $description
* @type bool $rich_editing
* @type bool $syntax_highlighting
* @type bool $comment_shortcuts
* @type string $admin_color
* @type int|bool $use_ssl
* @type bool $show_admin_bar_front
* }
* @param WP_User $user
* @param bool $update
*/
function se329613_insert_user_meta( $meta, $user, $update )
{
// set only when adding a new user
if ( !$update ) {
$meta[\'last_name\'] = \'Smith\';
$meta[\'dogs_name\'] = \'Sam\';
}
return $meta;
}
您可以使用
user_register
执行其他操作的操作。连接到的函数
user_register
当所有内容都已保存时执行。
add_action( \'user_register\' , \'se329613_user_register\' );
function se329613_user_register( $user_id )
{
/* some code */
}