コード例 #1
0
/**
 * Reject a pending group membership request.
 *
 * @param int $membership_id ID of the membership object.
 * @param int $user_id       Optional. ID of the user who requested membership.
 *                           Provide this value along with $group_id to override
 *                           $membership_id.
 * @param int $group_id      Optional. ID of the group to which membership is being
 *                           requested. Provide this value along with $user_id to
 *                           override $membership_id.
 *
 * @return bool True on success, false on failure.
 */
function groups_reject_membership_request($membership_id, $user_id = 0, $group_id = 0)
{
    if (!($membership = groups_delete_membership_request($membership_id, $user_id, $group_id))) {
        return false;
    }
    /**
     * Fires after a group membership request has been rejected.
     *
     * @since 1.0.0
     *
     * @param int  $user_id  ID of the user who rejected membership.
     * @param int  $group_id ID of the group that was rejected membership to.
     * @param bool $value    If membership was accepted.
     */
    do_action('groups_membership_rejected', $membership->user_id, $membership->group_id, false);
    return true;
}
コード例 #2
0
function groups_reject_membership_request($membership_id, $user_id = 0, $group_id = 0)
{
    if (!($membership = groups_delete_membership_request($membership_id, $user_id, $group_id))) {
        return false;
    }
    // Send a notification to the user.
    groups_notification_membership_request_completed($membership->user_id, $membership->group_id, false);
    do_action('groups_membership_rejected', $membership->user_id, $membership->group_id);
    return true;
}
コード例 #3
0
 /**
  * @group groups_delete_membership_request
  * @group group_membership_requests
  * @group group_membership
  */
 public function test_bp_groups_delete_membership_request_leave_invites_intact()
 {
     $u1 = $this->factory->user->create();
     $u2 = $this->factory->user->create();
     $g = $this->factory->group->create(array('status' => 'private'));
     $time = time() - 60;
     $this->add_user_to_group($u1, $g, array('date_modified' => date('Y-m-d H:i:s', $time)));
     // Outstanding invitations should be left intact.
     self::invite_user_to_group($u2, $g, $u1);
     groups_delete_membership_request(null, $u2, $g);
     $u2_has_invite = groups_check_user_has_invite($u2, $g);
     $this->assertTrue(is_numeric($u2_has_invite) && $u2_has_invite > 0);
 }
コード例 #4
0
/**
 * Reject a pending group membership request.
 *
 * @param int $membership_id ID of the membership object.
 * @param int $user_id Optional. ID of the user who requested membership.
 *        Provide this value along with $group_id to override $membership_id.
 * @param int $group_id Optional. ID of the group to which membership is being
 *        requested. Provide this value along with $user_id to override
 *        $membership_id.
 * @return bool True on success, false on failure.
 */
function groups_reject_membership_request($membership_id, $user_id = 0, $group_id = 0)
{
    if (!($membership = groups_delete_membership_request($membership_id, $user_id, $group_id))) {
        return false;
    }
    do_action('groups_membership_rejected', $membership->user_id, $membership->group_id, false);
    return true;
}
コード例 #5
0
ファイル: bp-groups.php プロジェクト: n-sane/zaroka
function groups_reject_membership_request( $membership_id, $user_id = false, $group_id = false ) {
	if ( !$membership = groups_delete_membership_request( $membership_id, $user_id, $group_id ) )
		return false;

	// Send a notification to the user.
	require_once ( BP_PLUGIN_DIR . '/bp-groups/bp-groups-notifications.php' );
	groups_notification_membership_request_completed( $membership->user_id, $membership->group_id, false );

	do_action( 'groups_membership_rejected', $membership->user_id, $membership->group_id );

	return true;
}
コード例 #6
0
function bp_group_management_join_group($group_id, $user_id = false)
{
    global $bp;
    if (!$user_id) {
        $user_id = $bp->loggedin_user->id;
    }
    /* Check if the user has an outstanding invite, is so delete it. */
    if (groups_check_user_has_invite($user_id, $group_id)) {
        groups_delete_invite($user_id, $group_id);
    }
    /* Check if the user has an outstanding request, is so delete it. */
    if (groups_check_for_membership_request($user_id, $group_id)) {
        groups_delete_membership_request($user_id, $group_id);
    }
    /* User is already a member, just return true */
    if (groups_is_user_member($user_id, $group_id)) {
        return true;
    }
    if (!$bp->groups->current_group) {
        $bp->groups->current_group = new BP_Groups_Group($group_id);
    }
    $new_member = new BP_Groups_Member();
    $new_member->group_id = $group_id;
    $new_member->user_id = $user_id;
    $new_member->inviter_id = 0;
    $new_member->is_admin = 0;
    $new_member->user_title = '';
    $new_member->date_modified = gmdate("Y-m-d H:i:s");
    $new_member->is_confirmed = 1;
    if (!$new_member->save()) {
        return false;
    }
    /* Record this in activity streams */
    groups_record_activity(array('user_id' => $user_id, 'action' => apply_filters('groups_activity_joined_group', sprintf(__('%s joined the group %s', 'bp-group-management'), bp_core_get_userlink($user_id), '<a href="' . bp_get_group_permalink($bp->groups->current_group) . '">' . esc_html($bp->groups->current_group->name) . '</a>')), 'type' => 'joined_group', 'item_id' => $group_id));
    /* Modify group meta */
    groups_update_groupmeta($group_id, 'total_member_count', (int) groups_get_groupmeta($group_id, 'total_member_count') + 1);
    groups_update_groupmeta($group_id, 'last_activity', gmdate("Y-m-d H:i:s"));
    do_action('groups_join_group', $group_id, $user_id);
    return true;
}