function bp_get_group_join_button($group = false) { global $groups_template; if (empty($group)) { $group =& $groups_template->group; } if (!is_user_logged_in() || bp_group_is_user_banned($group)) { return false; } // Group creation was not completed or status is unknown if (!$group->status) { return false; } // Already a member if (isset($group->is_member) && $group->is_member) { // Stop sole admins from abandoning their group $group_admins = groups_get_group_admins($group->id); if (1 == count($group_admins) && $group_admins[0]->user_id == bp_loggedin_user_id()) { return false; } $button = array('id' => 'leave_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group'), 'link_text' => __('Leave Group', 'buddypress'), 'link_title' => __('Leave Group', 'buddypress'), 'link_class' => 'group-button leave-group'); // Not a member } else { // Show different buttons based on group status switch ($group->status) { case 'hidden': return false; break; case 'public': $button = array('id' => 'join_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group'), 'link_text' => __('Join Group', 'buddypress'), 'link_title' => __('Join Group', 'buddypress'), 'link_class' => 'group-button join-group'); break; case 'private': // Member has outstanding invitation - // show an "Accept Invitation" button if ($group->is_invited) { $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)), 'link_text' => __('Accept Invitation', 'buddypress'), 'link_title' => __('Accept Invitation', 'buddypress'), 'link_class' => 'group-button accept-invite'); // Member has requested membership but request is pending - // show a "Request Sent" button } elseif ($group->is_pending) { $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button pending ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => bp_get_group_permalink($group), 'link_text' => __('Request Sent', 'buddypress'), 'link_title' => __('Request Sent', 'buddypress'), 'link_class' => 'group-button pending membership-requested'); // Member has not requested membership yet - // show a "Request Membership" button } else { $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'buddypress'), 'link_title' => __('Request Membership', 'buddypress'), 'link_class' => 'group-button request-membership'); } break; } } // Filter and return the HTML button return bp_get_button(apply_filters('bp_get_group_join_button', $button)); }
/** * Return button to join a group. * * @since 1.0.0 * * @param object|bool $group Single group object. * @return mixed */ function bp_get_group_join_button($group = false) { global $groups_template; // Set group to current loop group if none passed. if (empty($group)) { $group =& $groups_template->group; } // Don't show button if not logged in or previously banned. if (!is_user_logged_in() || bp_group_is_user_banned($group)) { return false; } // Group creation was not completed or status is unknown. if (empty($group->status)) { return false; } // Already a member. if (!empty($group->is_member)) { // Stop sole admins from abandoning their group. $group_admins = groups_get_group_admins($group->id); if (1 == count($group_admins) && bp_loggedin_user_id() === (int) $group_admins[0]->user_id) { return false; } // Setup button attributes. $button = array('id' => 'leave_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group'), 'link_text' => __('Leave Group', 'buddypress'), 'link_title' => __('Leave Group', 'buddypress'), 'link_class' => 'group-button leave-group'); // Not a member. } else { // Show different buttons based on group status. switch ($group->status) { case 'hidden': return false; case 'public': $button = array('id' => 'join_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group'), 'link_text' => __('Join Group', 'buddypress'), 'link_title' => __('Join Group', 'buddypress'), 'link_class' => 'group-button join-group'); break; case 'private': // Member has outstanding invitation - // show an "Accept Invitation" button. if ($group->is_invited) { $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)), 'link_text' => __('Accept Invitation', 'buddypress'), 'link_title' => __('Accept Invitation', 'buddypress'), 'link_class' => 'group-button accept-invite'); // Member has requested membership but request is pending - // show a "Request Sent" button. } elseif ($group->is_pending) { $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button pending ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => bp_get_group_permalink($group), 'link_text' => __('Request Sent', 'buddypress'), 'link_title' => __('Request Sent', 'buddypress'), 'link_class' => 'group-button pending membership-requested'); // Member has not requested membership yet - // show a "Request Membership" button. } else { $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'buddypress'), 'link_title' => __('Request Membership', 'buddypress'), 'link_class' => 'group-button request-membership'); } break; } } /** * Filters the HTML button for joining a group. * * @since 1.2.6 * @since 2.4.0 Added $group parameter to filter args. * * @param string $button HTML button for joining a group. * @param object $group BuddyPress group object */ return bp_get_button(apply_filters('bp_get_group_join_button', $button, $group)); }
function bp_group_accept_invite_link() { echo bp_get_group_accept_invite_link(); }
function bp_legacy_theme_ajax_get_user_joinleave_group_status_a($group, $my_current_user_id) { // Not a member if (!groups_is_user_member(bp_loggedin_user_id(), $group->id)) { if ('public' == $group->status) { //check_ajax_referer( 'groups_join_group' ); //if ( ! groups_join_group( $group->id ) ) { // _e( 'Error joining group', 'buddypress' ); //} else { return '<div class="generic-button group-button public" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button join-group" rel="join" title="' . __('Join Group', 'buddypress') . '" href="' . wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group') . '">' . __('Join Group', 'buddypress') . '</a>' . '</div>'; //echo '<a id="group-' . esc_attr( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; //} } elseif ('private' == $group->status) { // If the user has already been invited, then this is // an Accept Invitation button if (groups_check_user_has_invite($my_current_user_id, $group->id)) { //check_ajax_referer( 'groups_accept_invite' ); //if ( ! groups_accept_invite( bp_loggedin_user_id(), $group->id ) ) { // _e( 'Error requesting membership', 'buddypress' ); //} else { return '<div class="generic-button group-button private" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button accept-invite" rel="accept-invite" title="' . __('Accept Invitation', 'buddypress') . '" href="' . add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)) . '">' . __('Accept Invitation', 'buddypress') . '</a>' . '</div>'; //} // The user requested membership and the request is pending } else { if ($group->is_pending) { return '<div class="generic-button group-button pending private" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button membership-requested" rel="membership-requested" title="' . __('Membership Requested', 'buddypress') . '" href="' . bp_get_group_permalink($group) . '">' . __('Membership Requested', 'buddypress') . '</a>' . '</div>'; // Otherwise, the user hasn't requested membership yet } else { //check_ajax_referer( 'groups_request_membership' ); //if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { // _e( 'Error requesting membership', 'buddypress' ); //} else { return '<div class="generic-button group-button private" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button request-membership" rel="request-membership" title="' . __('Request Membership', 'buddypress') . '" href="' . wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership') . '">' . __('Request Membership', 'buddypress') . '</a>' . '</div>'; //} } } } } else { // The user is a member //check_ajax_referer( 'groups_leave_group' ); $myclasstoadd = ""; //if ( ! groups_leave_group( $group->id ) ) { // _e( 'Error leaving group', 'buddypress' ); //} elseif ( 'public' == $group->status ) { //echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; return '<div class="generic-button group-button ' . $group->status . '" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button leave-group" rel="leave" title="' . __('Leave Group', 'buddypress') . '" href="' . wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group') . '">' . __('Leave Group', 'buddypress') . '</a>'; //} elseif ( 'private' == $group->status ) { // echo '<a id="group-' . esc_attr( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; //} } //exit; }
function bp_group_accept_invite_link($deprecated = false) { echo bp_get_group_accept_invite_link(); }
/** * Eventually change the group action buttons */ public function join_button($button) { global $groups_template; if (empty($groups_template->group->need_request) || 'leave_group' == $button['id']) { return $button; } // Difficult to filter BuddyPress ajax functions, so disabling them. if ($groups_template->group->is_invited) { $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'no-ajax ' . $groups_template->group->status, 'wrapper_id' => 'groupbutton-' . $groups_template->group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($groups_template->group), bp_get_group_accept_invite_link($groups_template->group)), 'link_text' => __('Accept Invitation', 'altctrl-public-group'), 'link_title' => __('Accept Invitation', 'altctrl-public-group'), 'link_class' => 'group-button accept-invite'); } elseif ($groups_template->group->is_pending) { $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'no-ajax pending ' . $groups_template->group->status, 'wrapper_id' => 'groupbutton-' . $groups_template->group->id, 'link_href' => bp_get_group_permalink($groups_template->group), 'link_text' => __('Request Sent', 'altctrl-public-group'), 'link_title' => __('Request Sent', 'altctrl-public-group'), 'link_class' => 'group-button pending membership-requested'); } elseif (!is_super_admin()) { $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'no-ajax ' . $groups_template->group->status, 'wrapper_id' => 'groupbutton-' . $groups_template->group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($groups_template->group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'altctrl-public-group'), 'link_title' => __('Request Membership', 'altctrl-public-group'), 'link_class' => 'group-button request-membership'); } return $button; }