我试图将用户注册时的显示名称设置为他们的名字。
以下功能仅在用户登录时有效,而不是在用户首次注册时有效(如果他们注销并再次登录,则此功能生效):
function force_pretty_displaynames($user_login, $user) {
$outcome = trim(get_user_meta($user->ID, 'first_name', true));
if (!empty($outcome) && ($user->data->display_name!=$outcome)) {
wp_update_user( array ('ID' => $user->ID, 'display_name' => $outcome));
}
}
add_action('wp_login','force_pretty_displaynames',10,2);
如果我将钩子从 更改wp_login为user_register,则会由于参数太少而出现错误:
function force_pretty_displaynames($user_login, $user) {
$outcome = trim(get_user_meta($user->ID, 'first_name', true));
if (!empty($outcome) && ($user->data->display_name!=$outcome)) {
wp_update_user( array ('ID' => $user->ID, 'display_name' => $outcome));
}
}
add_action('user_register','force_pretty_displaynames',10,2);
因此,如果我删除如下参数之一,它不会出错,但也不起作用:
function force_pretty_displaynames($user) {
$outcome = trim(get_user_meta($user->ID, 'first_name', true));
if (!empty($outcome) && ($user->data->display_name!=$outcome)) {
wp_update_user( array ('ID' => $user->ID, 'display_name' => $outcome));
}
}
add_action('user_register','force_pretty_displaynames',10,2);
如何将注册时的显示名称设置为名字?
我有这个功能可以在注册时将用户名设置为完整的电子邮件地址,我可以以某种方式将其添加到此中吗?
add_filter( 'pre_user_login' , 'cfw_set_username_to_email' );
function cfw_set_username_to_email( $user_login ) {
if( isset($_POST['billing_email'] ) ) {
$user_login = $_POST['billing_email'];
}
if( isset($_POST['email'] ) ) {
$user_login = $_POST['email'];
}
return $user_login;
}
不负相思意
收到一只叮咚