首先,我发现了这个问题:generate unique number when registering a user
这几乎正是我需要的,除了我需要生成的数字是自动递增的,而不是随机的。我希望第一个数字是4位数,然后从那里自动递增。理想情况下,它的长度永远不会超过6位数,然后将第一个数字替换为一个字母,但也许这是不可能的?
该号码需要在管理区域的用户列表中显示和搜索
//create unique id for decal on new user creation
add_action( \'user_register\', \'my_on_user_register\' );
function my_on_user_register( $user_id ) {
$unique_id = 1000 + $user_id;
update_user_meta( $user_id, \'my_unique_id\', $unique_id );
}
//display decal code on profile
add_action(\'show_user_profile\', \'my_extra_user_profile_fields\');
add_action(\'edit_user_profile\', \'my_extra_user_profile_fields\');
function my_extra_user_profile_fields($user){
$unique_number = get_the_author_meta(\'my_unique_id\', $user->ID);
?>
<h3><?php _e(\'Decal Info\'); ?></h3>
<table class="form-table">
<tr>
<th><label for="address"><?php _e(\'Code:\'); ?></label></th>
<td><?php echo $unique_number; ?></td>
</tr>
</table>
<?php
}
//send email with decal code to admin on new user
function registration_email_alert($user_id) {
$message = strip_tags($_POST[\'user_login\']). \' - \' . strip_tags($_POST[\'user_email\']) . \' Decal Code: \' . strip_tags($user_id[\'my_unique_id\']) . \' Has Registered To Your Website\';
wp_mail( \'[email protected]\', \'New Teen Has Been Registered\', $message );
}
add_action(\'user_register\', \'registration_email_alert\');
//add decal code to user list
function new_modify_user_table( $column ) {
$column[\'my_unique_id\'] = \'Decal Code\';
return $column;
}
add_filter( \'manage_users_columns\', \'new_modify_user_table\' );
function new_modify_user_table_row( $val, $column_name, $user_id ) {
$user = get_userdata( $user_id );
switch ($column_name) {
case \'my_unique_id\' :
return get_the_author_meta( \'my_unique_id\', $user_id );
break;
default:
}
return $return;
}
add_filter( \'manage_users_custom_column\', \'new_modify_user_table_row\', 10, 3 );
最合适的回答,由SO网友:kovshenin 整理而成
您可以使用您提到的链接中描述的相同方法,但只需使用创建的用户ID并添加1000,即可获得四位数。因此user\\u id=5获得1005的元数。
add_action( \'user_register\', \'my_on_user_register\' );
function my_on_user_register( $user_id ) {
$unique_id = 1000 + $user_id;
update_user_meta( $user_id, \'my_unique_id\', $unique_id );
}
希望有帮助!