Last active
October 18, 2023 16:05
-
-
Save KaineLabs/1934ebaea7a273ee2c8c5aae30bd6791 to your computer and use it in GitHub Desktop.
Link Member Types and User Roles.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Get Linked Member Types and User Roles. | |
*/ | |
function yzc_get_linked_member_types_and_user_roles() { | |
// Set Member Type Name => User Role | |
return array( | |
'student' => 'subscriber', | |
'teacher' => 'editor' | |
); | |
} | |
/** | |
* Sync Member Type => User Role. | |
*/ | |
function yzc_link_member_type_to_user_role( $user_id, $member_types ) { | |
// Get Member Types and their Users Roles | |
$user_roles = yzc_get_linked_member_types_and_user_roles(); | |
$user = new WP_User( $user_id ); | |
foreach($member_types as $member_type) { | |
if ( isset( $user_roles[ $member_type ] ) ) { | |
$user->set_role( $user_roles[ $member_type ] ); | |
} | |
} | |
} | |
add_action( 'bp_set_member_type', 'yzc_link_member_type_to_user_role', 10, 2 ); | |
/** | |
* Sync User Role => Member Type. | |
*/ | |
function yzc_link_user_role_to_member_type( $user_id, $role ) { | |
// Get Member Types and their Users Roles | |
$member_types = yzc_get_linked_member_types_and_user_roles(); | |
// Switch Array Order. | |
$member_types = array_flip( $member_types ); | |
if ( isset( $member_types[ $role ] ) ) { | |
bp_set_member_type( $user_id, $member_types[ $role ] ); | |
} | |
} | |
add_action( 'set_user_role', 'yzc_link_user_role_to_member_type', 10, 2 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This doesn't seem to work anymore. It was working but after the latest updates every time I try to sync user member types it throws an error.