Try this: function assignuserid($user_id) { $user_meta = get_userdata($user_id); $user_roles = $user_meta->roles; if (in_array("subscriber", $user_roles)){ global $wpdb; $latestid=$wpdb->get_var("SELECT meta_value from $wpdb->usermeta where meta_key='member_id' order by meta_value DESC limit 1;"); update_user_meta( $user_id, 'member_id', $latestid+1 ); } } add_action( 'user_register', 'assignuserid');