Changeset 9210 for trunk/src/bp-members/bp-members-admin.php
- Timestamp:
- 12/04/2014 01:47:49 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-members/bp-members-admin.php
r9190 r9210 186 186 // Add user row actions for single site 187 187 add_filter( 'user_row_actions', array( $this, 'row_actions' ), 10, 2 ); 188 189 // Process changes to member type. 190 add_action( 'bp_members_admin_load', array( $this, 'process_member_type_update' ) ); 188 191 189 192 /** Signups ***********************************************************/ … … 720 723 ); 721 724 725 // Member Type metabox. Only added if member types have been registered. 726 $member_types = bp_get_member_types(); 727 if ( ! empty( $member_types ) ) { 728 add_meta_box( 729 'bp_members_admin_member_type', 730 _x( 'Member Type', 'members user-admin edit screen', 'buddypress' ), 731 array( $this, 'user_admin_member_type_metabox' ), 732 get_current_screen()->id, 733 'side', 734 'core' 735 ); 736 } 737 722 738 /** 723 739 * Custom metabox ? … … 996 1012 997 1013 <?php 1014 } 1015 1016 /** 1017 * Render the Member Type metabox. 1018 * 1019 * @since BuddyPress (2.2.0) 1020 * @access public 1021 * 1022 * @param WP_User $user The WP_User object to be edited. 1023 */ 1024 public function user_admin_member_type_metabox( $user = null ) { 1025 1026 // Bail if no user ID. 1027 if ( empty( $user->ID ) ) { 1028 return; 1029 } 1030 1031 $types = bp_get_member_types( array(), 'objects' ); 1032 $current_type = bp_get_member_type( $user->ID ); 1033 1034 /* translators: no option picked in select box */ 1035 $null_option = __( '----', 'buddypress' ); 1036 1037 ?> 1038 <select name="bp-members-profile-member-type"> 1039 <option value="" <?php selected( '', $current_type ); ?>><?php esc_attr_e( $null_option ) ?></option> 1040 <?php foreach ( $types as $type ) : ?> 1041 <option value="<?php echo esc_attr( $type->name ) ?>" <?php selected( $type->name, $current_type ) ?>><?php echo esc_html( $type->labels['singular_name'] ) ?></option> 1042 <?php endforeach; ?> 1043 </select> 1044 1045 <?php 1046 1047 wp_nonce_field( 'bp-member-type-change-' . $user->ID, 'bp-member-type-nonce' ); 1048 } 1049 1050 /** 1051 * Process changes from the Member Type metabox. 1052 * 1053 * @since BuddyPress (2.2.0) 1054 * @access public 1055 */ 1056 public function process_member_type_update() { 1057 if ( ! isset( $_POST['bp-member-type-nonce'] ) || ! isset( $_POST['bp-members-profile-member-type'] ) ) { 1058 return; 1059 } 1060 1061 $user_id = $this->get_user_id(); 1062 1063 check_admin_referer( 'bp-member-type-change-' . $user_id, 'bp-member-type-nonce' ); 1064 1065 // Permission check. 1066 if ( ! current_user_can( 'bp_moderate' ) && $user_id != bp_loggedin_user_id() ) { 1067 return; 1068 } 1069 1070 // Member type string must either reference a valid member type, or be empty. 1071 $member_type = stripslashes( $_POST['bp-members-profile-member-type'] ); 1072 if ( ! empty( $member_type ) && ! bp_get_member_type_object( $member_type ) ) { 1073 return; 1074 } 1075 1076 /* 1077 * If an invalid member type is passed, someone's doing something 1078 * fishy with the POST request, so we can fail silently. 1079 */ 1080 if ( bp_set_member_type( $user_id, $member_type ) ) { 1081 // @todo Success messages can't be posted because other stuff happens on the pageload. 1082 } 998 1083 } 999 1084
Note: See TracChangeset
for help on using the changeset viewer.