BP_Invitation::get_where_sql( array $args = array() )
Assemble the WHERE clause of a get() SQL statement.
Description
Used by BP_Invitation::get() to create its WHERE clause.
Parameters
- $args
-
(Optional) See BP_Invitation::get() for more details.
Default value: array()
Return
(string) WHERE clause.
Source
File: bp-core/classes/class-bp-invitation.php
protected static function get_where_sql( $args = array() ) { global $wpdb; $where_conditions = array(); $where = ''; // id if ( false !== $args['id'] ) { $id_in = implode( ',', wp_parse_id_list( $args['id'] ) ); $where_conditions['id'] = "id IN ({$id_in})"; } // user_id if ( ! empty( $args['user_id'] ) ) { $user_id_in = implode( ',', wp_parse_id_list( $args['user_id'] ) ); $where_conditions['user_id'] = "user_id IN ({$user_id_in})"; } // inviter_id. 0 can be meaningful, in the case of requests. if ( ! empty( $args['inviter_id'] ) || 0 === $args['inviter_id'] ) { $inviter_id_in = implode( ',', wp_parse_id_list( $args['inviter_id'] ) ); $where_conditions['inviter_id'] = "inviter_id IN ({$inviter_id_in})"; } // invitee_email if ( ! empty( $args['invitee_email'] ) ) { if ( ! is_array( $args['invitee_email'] ) ) { $invitee_emails = explode( ',', $args['invitee_email'] ); } else { $invitee_emails = $args['invitee_email']; } $email_clean = array(); foreach ( $invitee_emails as $email ) { $email_clean[] = $wpdb->prepare( '%s', $email ); } $invitee_email_in = implode( ',', $email_clean ); $where_conditions['invitee_email'] = "invitee_email IN ({$invitee_email_in})"; } // class if ( ! empty( $args['class'] ) ) { if ( ! is_array( $args['class'] ) ) { $class_names = explode( ',', $args['class'] ); } else { $class_names = $args['class']; } $cn_clean = array(); foreach ( $class_names as $cn ) { $cn_clean[] = $wpdb->prepare( '%s', sanitize_key( $cn ) ); } $cn_in = implode( ',', $cn_clean ); $where_conditions['class'] = "class IN ({$cn_in})"; } // item_id if ( ! empty( $args['item_id'] ) ) { $item_id_in = implode( ',', wp_parse_id_list( $args['item_id'] ) ); $where_conditions['item_id'] = "item_id IN ({$item_id_in})"; } // secondary_item_id if ( ! empty( $args['secondary_item_id'] ) ) { $secondary_item_id_in = implode( ',', wp_parse_id_list( $args['secondary_item_id'] ) ); $where_conditions['secondary_item_id'] = "secondary_item_id IN ({$secondary_item_id_in})"; } // type if ( ! empty( $args['type'] ) && 'all' !== $args['type'] ) { if ( 'invite' == $args['type'] || 'request' == $args['type'] ) { $type_clean = $wpdb->prepare( '%s', $args['type'] ); $where_conditions['type'] = "type = {$type_clean}"; } } /** * invite_sent * Only create a where statement if something less than "all" has been * specifically requested. */ if ( ! empty( $args['invite_sent'] ) && 'all' !== $args['invite_sent'] ) { if ( $args['invite_sent'] == 'draft' ) { $where_conditions['invite_sent'] = "invite_sent = 0"; } else if ( $args['invite_sent'] == 'sent' ) { $where_conditions['invite_sent'] = "invite_sent = 1"; } } // accepted if ( ! empty( $args['accepted'] ) && 'all' !== $args['accepted'] ) { if ( $args['accepted'] == 'pending' ) { $where_conditions['accepted'] = "accepted = 0"; } else if ( $args['accepted'] == 'accepted' ) { $where_conditions['accepted'] = "accepted = 1"; } } // search_terms if ( ! empty( $args['search_terms'] ) ) { $search_terms_like = '%' . bp_esc_like( $args['search_terms'] ) . '%'; $where_conditions['search_terms'] = $wpdb->prepare( "( class LIKE %s )", $search_terms_like, $search_terms_like ); } // Custom WHERE if ( ! empty( $where_conditions ) ) { $where = 'WHERE ' . implode( ' AND ', $where_conditions ); } return $where; }
Changelog
Version | Description |
---|---|
BuddyBoss 1.3.5 | 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.