bp_nouveau_ajax_button( $output = '', $button = null, $before = '', $after = '', $r = array() )
Output ajax button for action (e.g. request connection with member, join group, leave group, follow member, etc.)
Description
Return
(string)
Source
File: bp-templates/bp-nouveau/includes/functions.php
function bp_nouveau_ajax_button( $output = '', $button = null, $before = '', $after = '', $r = array() ) {
if ( empty( $button->component ) ) {
return $output;
}
// Custom data attribute.
$r['button_attr']['data-bp-btn-action'] = $button->id;
$reset_ids = array(
'member_friendship' => true,
'member_follow' => true,
'group_membership' => true,
);
if ( ! empty( $reset_ids[ $button->id ] ) ) {
$parse_class = array_map( 'sanitize_html_class', explode( ' ', $r['button_attr']['class'] ) );
if ( false === $parse_class ) {
return $output;
}
$find_id = array_intersect( $parse_class, array(
'pending_friend',
'is_friend',
'not_friends',
'leave-group',
'join-group',
'accept-invite',
'membership-requested',
'request-membership',
'not_following',
'following',
) );
if ( 1 !== count( $find_id ) ) {
return $output;
}
$data_attribute = reset( $find_id );
if ( 'pending_friend' === $data_attribute ) {
$data_attribute = str_replace( '_friend', '', $data_attribute );
} elseif ( 'group_membership' === $button->id ) {
$data_attribute = str_replace( '-', '_', $data_attribute );
}
$r['button_attr']['data-bp-btn-action'] = $data_attribute;
}
// Re-render the button with our custom data attribute.
$output = new BP_Core_HTML_Element( array(
'element' => $r['button_element'],
'attr' => $r['button_attr'],
'inner_html' => ! empty( $r['link_text'] ) ? $r['link_text'] : ''
) );
$output = $output->contents();
// Add span bp-screen-reader-text class
return $before . $output . $after;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 3.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.