Add User Role: Pre-saved in User-Meta [SOLVED]
Question
I am adding an action after user registration to add another user role based off the users meta_value.
When I use:
add_action('um_after_save_registration_details', 'custom_after_new_user_register', 10, 2);
function custom_after_new_user_register($user_id) {
$user = get_user_by('id', $user_id);
if (!in_array('subscriber', $user->roles)) {
$user->add_role(editor);
}}
It successfully adds the role ‘editor’, however, I seem to fail to extract the saved user_meta and make it work dynamically.
Below is what I got to but it’s not working
add_action('um_after_save_registration_details', 'custom_after_new_user_register', 10, 2);
function custom_after_new_user_register($user_id) {
$user = get_user_by('id', $user_id);
$get_portal_number = get_user_meta($user_id, 'portal_number', false);
if (!in_array('subscriber', $user->roles)) {
$user->add_role($get_portal_number);
}}
SOLVED:
$get_portal_number = get_user_meta($user_id, 'meta_key', false);
will return an array and value needs to be a single value, hence it must be set to
$get_portal_number = get_user_meta($user_id, 'meta_key', true);
Alternatively, you can use:
$get_portal_number = get_user_meta($user_id, 'meta_key', false)[0];
if you need to set false in a different case.
Thanks to NightHawk for solving this.
0
php, plugin-development, plugins, user-roles, users
3 years
2020-08-20T18:10:43-05:00
2020-08-20T18:10:43-05:00 0 Answers
49 views
0
Leave an answer