Skip to content

Instantly share code, notes, and snippets.

@moui72
Created June 7, 2017 23:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moui72/cc1a32a39630a67596610cdadb84893a to your computer and use it in GitHub Desktop.
Save moui72/cc1a32a39630a67596610cdadb84893a to your computer and use it in GitHub Desktop.
function groups_meta_filter($query_string, $object){
parse_str($object, $n_object);
if( $object != 'groups' && $n_object['type'] != 'groups' )
return $query_string;
$args = wp_parse_args( $query_string, array(
'action' => false,
'type' => false,
'user_id' => false,
'page' => 1
) );
if( bp_is_user() )
$args['user_id'] = bp_displayed_user_id();
$args['meta_query'] = array(
'relation' => 'AND', // Optional, defaults to "AND"
);
if(isset($n_object['student_level'])){
$slq = array('relation' => 'OR');
foreach($n_object['student_level'] as $sl){
$slq[] = array(
'key' => 'e2e_student_level',
'value' => $sl,
'compare' => 'LIKE'
);
}
$args['meta_query'][] = $slq;
}
if(
isset($n_object['year']) ||
isset($n_object['semester'])
){
$start_date = $n_object['year'][0].'-'.$this->get_semester_ordinal($n_object['semester'][0]);
$end_date = $n_object['year'][1].'-'.$this->get_semester_ordinal($n_object['semester'][1]);
$this->debug($start_date, '$start_date');
$this->debug($end_date, '$end_date');
$timeframe_meta_query = ['relation' => 'OR',
[
'key' => 'e2e_semester_order',
'value' => [$start_date, $end_date],
'compare' => 'BETWEEN'
]
];
$args['meta_query'][] = $timeframe_meta_query;
}
$n_query_string = empty( $args ) ? $query_string : $args;
$this->debug($n_query_string,'$n_query_string');
return apply_filters( 'bp_plugin_group_querystring_filter', $n_query_string, $query_string );
}
add_filter( 'bp_ajax_querystring', 'groups_meta_filter', 60, 2 );
<?php if ( bp_has_groups( bp_ajax_querystring( http_build_query($_GET) ) ) ) : ?>
...
<?php endif; ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment