Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4. * Get Linked Member Types and User Roles.
  5. */
  6. function yzc_get_linked_member_types_and_user_roles() {
  7.  
  8. // Set Member Type Name => User Role
  9. return array(
  10. 'student' => 'subscriber',
  11. 'teacher' => 'editor'
  12. );
  13.  
  14. }
  15.  
  16. /**
  17. * Sync Member Type => User Role.
  18. */
  19. function yzc_link_member_type_to_user_role( $user_id, $member_type ) {
  20.  
  21. // Get Member Types and their Users Roles
  22. $user_roles = yzc_get_linked_member_types_and_user_roles();
  23.  
  24. $user = new WP_User( $user_id );
  25.  
  26. if ( isset( $user_roles[ $member_type ] ) ) {
  27. $user->set_role( $user_roles[ $member_type ] );
  28. }
  29.  
  30. }
  31.  
  32. add_action( 'bp_set_member_type', 'yzc_link_member_type_to_user_role', 10, 2 );
  33.  
  34. /**
  35. * Sync User Role => Member Type.
  36. */
  37. function yzc_link_user_role_to_member_type( $user_id, $role ) {
  38.  
  39. // Get Member Types and their Users Roles
  40. $member_types = yzc_get_linked_member_types_and_user_roles();
  41.  
  42. // Switch Array Order.
  43. $member_types = array_flip( $member_types );
  44.  
  45. if ( isset( $member_types[ $role ] ) ) {
  46. bp_set_member_type( $user_id, $member_types[ $role ] );
  47. }
  48.  
  49. }
  50.  
  51. add_action( 'set_user_role', 'yzc_link_user_role_to_member_type', 10, 2 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement