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.