Replies: 2
Previously I had a function written that would update a users role to member when an administrator would approve a membership.
Code looked like this:
add_action('um_after_user_is_approved', 'approved_um_and_wp_role', 99 );
function approved_um_and_wp_role( $user_id ) {
// Set UM role
update_user_meta( $user_id, 'role', 'member' );
$role = get_user_meta( $user_id, 'role', true);
// Set WordPress role for same user
if ( $role == 'member' ) {
$wp_user_object = new WP_User( $user_id );
$wp_user_object->set_role( 'volunteer' );
}
}
// Set user role on deactivate
add_action('um_after_user_is_inactive', 'deactivated_um_and_wp_role', 99 );
function deactivated_um_and_wp_role( $user_id ) {
// Set UM role
update_user_meta( $user_id, 'role', 'deactivated' );
$role = get_user_meta( $user_id, 'role', true);
// Set WordPress role for same user
if ( $role == 'deactivated' ) {
$wp_user_object = new WP_User( $user_id );
$wp_user_object->set_role( 'none' );
}
}
With 2.0 however, it no longer cares about the “role” field and everything is dictated by the status and the _capabilities row in user_meta. How can I modify this so that, when I approve a membership it updates their community/user role? I currently have the default role after registration set to “Needs Approval” so that I can categorize potential members. Then I approve their membership and change their role to “Volunteer”. The database entry looks like _capabilities : a:1:{s:12:”um_volunteer”;b:1;}