BP_Notifications_Notification::get( array $args = array() )

Get notifications, based on provided filter parameters.


Parameters Parameters

$args

(array) (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()


    Top ↑

    Return Return

    (array) Located notifications.


    Source 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;
    	}
    


    Top ↑

    Changelog Changelog

    Changelog
    Version Description
    1.9.0 Introduced.

    Top ↑

    User Contributed Notes User Contributed Notes

    You must log in before being able to contribute a note or feedback.