bp_legacy_theme_ajax_invite_user()
Invites a friend to join a group via a POST request.
Description Description
Source Source
File: bp-templates/bp-legacy/buddypress-functions.php
function bp_legacy_theme_ajax_invite_user() {
if ( ! bp_is_post_request() ) {
return;
}
check_ajax_referer( 'groups_invite_uninvite_user' );
if ( ! $_POST['friend_id'] || ! $_POST['friend_action'] || ! $_POST['group_id'] )
return;
if ( ! bp_groups_user_can_send_invites( $_POST['group_id'] ) )
return;
$group_id = (int) $_POST['group_id'];
$friend_id = (int) $_POST['friend_id'];
if ( 'invite' == $_POST['friend_action'] ) {
if ( ! friends_check_friendship( bp_loggedin_user_id(), $_POST['friend_id'] ) ) {
return;
}
$group = groups_get_group( $group_id );
// Users who have previously requested membership do not need
// another invitation created for them.
if ( groups_check_for_membership_request( $friend_id, $group_id ) ) {
$user_status = 'is_pending';
// Create the user invitation.
} elseif ( groups_invite_user( array( 'user_id' => $friend_id, 'group_id' => $group_id ) ) ) {
$user_status = 'is_invited';
// Miscellaneous failure.
} else {
return;
}
$user = new BP_Core_User( $friend_id );
$uninvite_url = bp_is_current_action( 'create' )
? bp_get_groups_directory_permalink() . 'create/step/group-invites/?user_id=' . $friend_id
: bp_get_group_permalink( $group ) . 'send-invites/remove/' . $friend_id;
echo '<li id="uid-' . esc_attr( $user->id ) . '">';
echo $user->avatar_thumb;
echo '<h4>' . $user->user_link . '</h4>';
echo '<span class="activity">' . esc_attr( $user->last_active ) . '</span>';
echo '<div class="action">
<a class="button remove" href="' . wp_nonce_url( $uninvite_url, 'groups_invite_uninvite_user' ) . '" id="uid-' . esc_attr( $user->id ) . '">' . __( 'Remove Invite', 'buddypress' ) . '</a>
</div>';
if ( 'is_pending' == $user_status ) {
echo '<p class="description">' . sprintf( __( '%s has previously requested to join this group. Sending an invitation will automatically add the member to the group.', 'buddypress' ), $user->user_link ) . '</p>';
}
echo '</li>';
exit;
} elseif ( 'uninvite' == $_POST['friend_action'] ) {
// Users who have previously requested membership should not
// have their requests deleted on the "uninvite" action.
if ( BP_Groups_Member::check_for_membership_request( $friend_id, $group_id ) ) {
return;
}
// Remove the unsent invitation.
if ( ! groups_uninvite_user( $friend_id, $group_id ) ) {
return;
}
exit;
} else {
return;
}
}
Changelog Changelog
| Version | Description |
|---|---|
| 1.2.0 | Introduced. |