я найти решение без использования этого крючка. Просто поместите ниже упомянутый код на регистр-form.php как:
<p>
<label for="role<?php $template->the_instance(); ?>"><?php _e('Role', 'theme-my-login') ?></label>
<select id="role<?php $template->the_instance(); ?>" name="role">
<option value="author">Author</option>
<option value="subscriber">Subscriber</option>
</select>
</p>
затем поместить функцию в function.php как:
function set_role_on_registration($user_id) {
//$role = sanitize_text_field($_POST['role']);
$role = $_POST['role'];
if (in_array($role, array($role, 'bprofessional')))
add_user_meta($user_id, 'pending_role', $role);
}
add_action('tml_new_user_registered', 'set_role_on_registration');
затем перейти к плагинам/тема-моему-вход/модулей /user-moderation/admin/user-moderation-admin.php и найдите функцию approve_user. Затем замените эту строку кода:
$approval_role = apply_filters('tml_approval_role', get_option('default_role'), $user->ID);
По этой линии:
$approval_role = apply_filters('tml_approval_role', get_user_meta($user->ID, 'pending_role', true), $user->ID);
Теперь пользователь будет назначен роль вашего выбора после утверждения администратора.
Надеюсь, этот код поможет кому-то.
Thanks Sunil