本文整理汇总了PHP中BP_Groups_Member::check_for_membership_request方法的典型用法代码示例。如果您正苦于以下问题:PHP BP_Groups_Member::check_for_membership_request方法的具体用法?PHP BP_Groups_Member::check_for_membership_request怎么用?PHP BP_Groups_Member::check_for_membership_request使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BP_Groups_Member
的用法示例。
在下文中一共展示了BP_Groups_Member::check_for_membership_request方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: groups_check_for_membership_request
/**
* Check whether a user has an outstanding membership request for a given group.
*
* @param int $user_id ID of the user.
* @param int $group_id ID of the group.
*
* @return int|null ID of the membership if found, otherwise false.
*/
function groups_check_for_membership_request($user_id, $group_id)
{
return BP_Groups_Member::check_for_membership_request($user_id, $group_id);
}
示例2: bp_legacy_theme_ajax_invite_user
/**
* Invites a friend to join a group via a POST request.
*
* @since BuddyPress (1.2)
* @todo Audit return types
*/
function bp_legacy_theme_ajax_invite_user()
{
// Bail if not a POST action
if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
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;
}
if (!friends_check_friendship(bp_loggedin_user_id(), $_POST['friend_id'])) {
return;
}
$group_id = (int) $_POST['group_id'];
$friend_id = (int) $_POST['friend_id'];
if ('invite' == $_POST['friend_action']) {
$group = groups_get_group($group_id);
// Users who have previously requested membership do not need
// another invitation created for them
if (BP_Groups_Member::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;
}
}
示例3: populate
/**
* Set up data about the current group.
*/
public function populate()
{
global $wpdb;
// Get BuddyPress.
$bp = buddypress();
// Check cache for group data.
$group = wp_cache_get($this->id, 'bp_groups');
// Cache missed, so query the DB.
if (false === $group) {
$group = $wpdb->get_row($wpdb->prepare("SELECT g.* FROM {$bp->groups->table_name} g WHERE g.id = %d", $this->id));
wp_cache_set($this->id, $group, 'bp_groups');
}
// No group found so set the ID and bail.
if (empty($group) || is_wp_error($group)) {
$this->id = 0;
return;
}
// Group found so setup the object variables.
$this->id = $group->id;
$this->creator_id = $group->creator_id;
$this->name = stripslashes($group->name);
$this->slug = $group->slug;
$this->description = stripslashes($group->description);
$this->status = $group->status;
$this->enable_forum = $group->enable_forum;
$this->date_created = $group->date_created;
// Are we getting extra group data?
if (!empty($this->args['populate_extras'])) {
/**
* Filters the SQL prepared statement used to fetch group admins and mods.
*
* @since 1.5.0
*
* @param string $value SQL select statement used to fetch admins and mods.
*/
$admin_mods = $wpdb->get_results(apply_filters('bp_group_admin_mods_user_join_filter', $wpdb->prepare("SELECT u.ID as user_id, u.user_login, u.user_email, u.user_nicename, m.is_admin, m.is_mod FROM {$wpdb->users} u, {$bp->groups->table_name_members} m WHERE u.ID = m.user_id AND m.group_id = %d AND ( m.is_admin = 1 OR m.is_mod = 1 )", $this->id)));
// Add admins and moderators to their respective arrays.
foreach ((array) $admin_mods as $user) {
if (!empty($user->is_admin)) {
$this->admins[] = $user;
} else {
$this->mods[] = $user;
}
}
// Set up some specific group vars from meta. Excluded
// from the bp_groups cache because it's cached independently.
$this->last_activity = groups_get_groupmeta($this->id, 'last_activity');
$this->total_member_count = groups_get_groupmeta($this->id, 'total_member_count');
// Set user-specific data.
$user_id = bp_loggedin_user_id();
$this->is_member = BP_Groups_Member::check_is_member($user_id, $this->id);
$this->is_invited = BP_Groups_Member::check_has_invite($user_id, $this->id);
$this->is_pending = BP_Groups_Member::check_for_membership_request($user_id, $this->id);
// If this is a private or hidden group, does the current user have access?
if ('private' === $this->status || 'hidden' === $this->status) {
// Assume user does not have access to hidden/private groups.
$this->user_has_access = false;
// Group members or community moderators have access.
if ($this->is_member && is_user_logged_in() || bp_current_user_can('bp_moderate')) {
$this->user_has_access = true;
}
} else {
$this->user_has_access = true;
}
}
}
示例4: groups_remove_group_invite
/**
* Process group invitation removal requests.
*
* Note that this function is only used when JS is disabled. Normally, clicking
* Remove Invite removes the invitation via AJAX.
*
* @since 2.0.0
*/
function groups_remove_group_invite()
{
if (!bp_is_group_invites()) {
return;
}
if (!bp_is_action_variable('remove', 0) || !is_numeric(bp_action_variable(1))) {
return;
}
if (!check_admin_referer('groups_invite_uninvite_user')) {
return false;
}
$friend_id = intval(bp_action_variable(1));
$group_id = bp_get_current_group_id();
$message = __('Invite successfully removed', 'buddypress');
$redirect = wp_get_referer();
$error = false;
if (!bp_groups_user_can_send_invites($group_id)) {
$message = __('You are not allowed to send or remove invites', 'buddypress');
$error = 'error';
} elseif (BP_Groups_Member::check_for_membership_request($friend_id, $group_id)) {
$message = __('The member requested to join the group', 'buddypress');
$error = 'error';
} elseif (!groups_uninvite_user($friend_id, $group_id)) {
$message = __('There was an error removing the invite', 'buddypress');
$error = 'error';
}
bp_core_add_message($message, $error);
bp_core_redirect($redirect);
}
示例5: groups_accept_invite
/**
* Process the acceptance of a group invitation.
*
* Returns true if a user is already a member of the group.
*
* @since 1.0.0
*
* @param int $user_id ID of the user.
* @param int $group_id ID of the group.
* @return bool True when the user is a member of the group, otherwise false.
*/
function groups_accept_invite($user_id, $group_id)
{
// If the user is already a member (because BP at one point allowed two invitations to
// slip through), delete all existing invitations/requests and return true.
if (groups_is_user_member($user_id, $group_id)) {
if (groups_check_user_has_invite($user_id, $group_id)) {
groups_delete_invite($user_id, $group_id);
}
if (groups_check_for_membership_request($user_id, $group_id)) {
groups_delete_membership_request(null, $user_id, $group_id);
}
return true;
}
$member = new BP_Groups_Member($user_id, $group_id);
$member->accept_invite();
if (!$member->save()) {
return false;
}
// Remove request to join.
if ($member->check_for_membership_request($user_id, $group_id)) {
$member->delete_request($user_id, $group_id);
}
// Modify group meta.
groups_update_groupmeta($group_id, 'last_activity', bp_core_current_time());
/**
* Fires after a user has accepted a group invite.
*
* @since 1.0.0
*
* @param int $user_id ID of the user who accepted the group invite.
* @param int $group_id ID of the group being accepted to.
*/
do_action('groups_accept_invite', $user_id, $group_id);
return true;
}