Changeset 12923 for trunk/src/bp-members/bp-members-filters.php
- Timestamp:
- 04/28/2021 11:51:25 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-members/bp-members-filters.php
r12919 r12923 173 173 } 174 174 add_filter( 'bp_user_can', 'bp_members_user_can_filter', 10, 5 ); 175 176 /** 177 * Do not allow the new user to change the email address 178 * if they are accepting a community invitation. 179 * 180 * @since 8.0.0 181 * 182 * @param array $attributes The field attributes. 183 * @param string $name The field name. 184 * 185 * @return array $attributes The field attributes. 186 */ 187 function bp_members_invitations_make_registration_email_input_readonly_if_invite( $attributes, $name ) { 188 if ( 'email' === $name && bp_get_members_invitations_allowed() ) { 189 $invite = bp_get_members_invitation_from_request(); 190 if ( $invite->id ) { 191 $attributes['readonly'] = 'readonly'; 192 } 193 } 194 return $attributes; 195 } 196 add_filter( 'bp_get_form_field_attributes', 'bp_members_invitations_make_registration_email_input_readonly_if_invite', 10, 2 ); 197 198 /** 199 * Provide a more-specific welcome message if the new user 200 * is accepting a network invitation. 201 * 202 * @since 8.0.0 203 * 204 * @return string $message The message text. 205 */ 206 function bp_members_invitations_get_registration_welcome_message() { 207 $message = ''; 208 if ( ! bp_get_members_invitations_allowed() ) { 209 return $message; 210 } 211 $invite = bp_get_members_invitation_from_request(); 212 if ( ! $invite->id || ! $invite->invitee_email ) { 213 return $message; 214 } 215 216 // Check if the user is already a site member. 217 $maybe_user = get_user_by( 'email', $invite->invitee_email ); 218 219 // This user is already a member 220 if ( $maybe_user ) { 221 $message = sprintf( 222 esc_html__( 'Welcome! You are already a member of this site. Please %1$s to continue. ', 'buddypress' ), 223 sprintf( '<a href="%1$s">%2$s</a>', esc_url( wp_login_url( bp_get_root_domain() ) ), esc_html__( 'log in', 'buddypress' ) ) 224 ); 225 // This user can register! 226 } else { 227 228 // Fetch the display names of all inviters to personalize the welcome message. 229 $args = array( 230 'invitee_email' => $invite->invitee_email, 231 'invite_sent' => 'sent', 232 ); 233 $all_invites = bp_members_invitations_get_invites( $all_args ); 234 $inviters = array(); 235 foreach ( $all_invites as $inv ) { 236 $inviters[] = bp_core_get_user_displayname( $inv->inviter_id ); 237 } 238 239 if ( ! empty( $inviters ) ) { 240 $message = sprintf( _n( 'Welcome! You’ve been invited to join the site by the following user: %s. ', 'Welcome! You’ve been invited to join the site by the following users: %s. ', count( $inviters ), 'buddypress' ), implode( ', ', $inviters ) ); 241 } else { 242 $message = __( 'Welcome! You’ve been invited to join the site. ', 'buddypress' ); 243 } 244 } 245 246 return $message; 247 } 248 249 /** 250 * Provide a more-specific "registration is disabled" message 251 * if registration is available by invitation only. 252 * Also provide failure note if new user is trying to accept 253 * a network invitation but there's a problem. 254 * 255 * @since 8.0.0 256 * 257 * @return string $message The message text. 258 */ 259 function bp_members_invitations_get_modified_registration_disabled_message() { 260 $message = ''; 261 if ( bp_get_members_invitations_allowed() ) { 262 263 $invite = bp_get_members_invitation_from_request(); 264 if ( ! $invite->id || ! $invite->invitee_email ) { 265 return $message; 266 } 267 268 // Check if the user is already a site member. 269 $maybe_user = get_user_by( 'email', $invite->invitee_email ); 270 271 if ( ! $maybe_user ) { 272 $message = __( 'Member registration is allowed by invitation only.', 'buddypress' ); 273 // Is the user trying to accept an invitation but something is wrong? 274 if ( ! empty( $_GET['inv'] ) ) { 275 $message .= __( ' It looks like there is a problem with your invitation. Please try again.', 'buddypress' ); 276 } 277 } else if ( 'nouveau' === bp_get_theme_package_id() ) { 278 $message = sprintf( 279 esc_html__( 'Welcome! You are already a member of this site. Please %1$s to continue. If you have forgotten your password, you can %2$s.', 'buddypress' ), 280 sprintf( '<a href="%1$s">%2$s</a>', esc_url( wp_login_url( bp_get_root_domain() ) ), esc_html__( 'log in', 'buddypress' ) ), 281 sprintf( '<a href="%1$s">%2$s</a>', esc_url( wp_lostpassword_url( bp_get_root_domain() ) ), esc_html__( 'reset it', 'buddypress' ) ) 282 ); 283 } 284 } 285 return $message; 286 } 287 175 288 /** 176 289 * Sanitize the invitation property output.
Note: See TracChangeset
for help on using the changeset viewer.