В случае регистрации код должен выглядеть примерно так:
function updateUser( $user_id) {
// print_r($_POST) just to make sure that all our data is received.
if ( isset( $_POST['<YOUR_USER_ROLE_FIELD_NAME>']) ) {
update_user_meta($user_id, 'role', sanitize_text_field($_POST['<YOUR_USER_ROLE_FIELD_NAME>']));
}
}
add_action('user_register', 'updateUser', 10, 1);
Если при перехвате регистрации пользователя произошло переопределение из-за buddypress или любого другого плагина, который вы, возможно, установили, ваш пользовательрегистрационный хук может быть другим,