BP_Notifications_Notification::get( array $args = array() )
Get notifications, based on provided filter parameters.
Description
Parameters
- $args
-
(Optional) Associative array of arguments. All arguments but $page and $per_page can be treated as filter values for get_where_sql() and get_query_clauses(). All items are optional.
- 'id'
(int|array) ID of notification being updated. Can be an array of IDs. - 'user_id'
(int|array) ID of user being queried. Can be an array of user IDs. - 'item_id'
(int|array) ID of associated item. Can be an array of multiple item IDs. - 'secondary_item_id'
(int|array) ID of secondary associated item. Can be an array of multiple IDs. - 'component_name'
(string|array) Name of the component to filter by. Can be an array of component names. - 'component_action'
(string|array) Name of the action to filter by. Can be an array of actions. - 'is_new'
(bool) Whether to limit to new notifications. True returns only new notifications, false returns only non-new notifications. 'both' returns all. Default: true. - 'search_terms'
(string) Term to match against component_name or component_action fields. - 'order_by'
(string) Database column to order notifications by. - 'sort_order'
(string) Either 'ASC' or 'DESC'. - 'order_by'
(string) Field to order results by. - 'sort_order'
(string) ASC or DESC. - 'page'
(int) Number of the current page of results. Default: false (no pagination - all items). - 'per_page'
(int) Number of items to show per page. Default: false (no pagination - all items). - 'meta_query'
(array) Array of meta_query conditions. See WP_Meta_Query::queries. - 'date_query'
(array) Array of date_query conditions. See first parameter of WP_Date_Query::__construct(). - 'update_meta_cache'
(bool) Whether to update meta cache. Default: true.
Default value: array()
- 'id'
Return
(array) Located notifications.
Source
File: bp-notifications/classes/class-bp-notifications-notification.php
public static function get( $args = array() ) {
global $wpdb;
// Parse the arguments.
$r = self::parse_args( $args );
// Get BuddyPress.
$bp = buddypress();
// METADATA.
$meta_query_sql = self::get_meta_query_sql( $r['meta_query'] );
// SELECT.
$select_sql = "SELECT *";
// FROM.
$from_sql = "FROM {$bp->notifications->table_name} n ";
// JOIN.
$join_sql = $meta_query_sql['join'];
// WHERE.
$where_sql = self::get_where_sql( array(
'id' => $r['id'],
'user_id' => $r['user_id'],
'item_id' => $r['item_id'],
'secondary_item_id' => $r['secondary_item_id'],
'component_name' => $r['component_name'],
'component_action' => $r['component_action'],
'is_new' => $r['is_new'],
'search_terms' => $r['search_terms'],
'date_query' => $r['date_query']
), $select_sql, $from_sql, $join_sql, $meta_query_sql );
// ORDER BY.
$order_sql = self::get_order_by_sql( array(
'order_by' => $r['order_by'],
'sort_order' => $r['sort_order']
) );
// LIMIT %d, %d.
$pag_sql = self::get_paged_sql( array(
'page' => $r['page'],
'per_page' => $r['per_page']
) );
// Concatenate query parts.
$sql = "{$select_sql} {$from_sql} {$join_sql} {$where_sql} {$order_sql} {$pag_sql}";
$results = $wpdb->get_results( $sql );
// Integer casting.
foreach ( $results as $key => $result ) {
$results[$key]->id = (int) $results[$key]->id;
$results[$key]->user_id = (int) $results[$key]->user_id;
$results[$key]->item_id = (int) $results[$key]->item_id;
$results[$key]->secondary_item_id = (int) $results[$key]->secondary_item_id;
$results[$key]->is_new = (int) $results[$key]->is_new;
}
// Update meta cache.
if ( true === $r['update_meta_cache'] ) {
bp_notifications_update_meta_cache( wp_list_pluck( $results, 'id' ) );
}
return $results;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.9.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.