mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
Merge remote-tracking branch 'remotes/origin/feature/additional_search_filters_for_members' into release/2.0.26
This commit is contained in:
@@ -78,6 +78,15 @@
|
|||||||
'add_text' => __( 'Add New Custom Field','ultimate-member' ),
|
'add_text' => __( 'Add New Custom Field','ultimate-member' ),
|
||||||
'show_default_number' => 1,
|
'show_default_number' => 1,
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'id' => '_um_search_filters',
|
||||||
|
'type' => 'text',
|
||||||
|
'label' => __( 'Additional search filters', 'ultimate-member' ),
|
||||||
|
'tooltip' => __( 'Additional search filters like URL parameters' ),
|
||||||
|
'value' => UM()->query()->get_meta_value('_um_search_filters', null, '' ),
|
||||||
|
'conditional' => array( '_um_search', '=', 1 ),
|
||||||
|
'placeholder' => 'field1=val1&field2=val2'
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
'id' => '_um_directory_header',
|
'id' => '_um_directory_header',
|
||||||
'type' => 'text',
|
'type' => 'text',
|
||||||
@@ -104,6 +113,6 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
) )->render_form(); ?>
|
) )->render_form(); ?>
|
||||||
|
|
||||||
<div class="um-admin-clear"></div>
|
<div class="um-admin-clear"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -149,6 +149,7 @@ if ( ! class_exists( 'um\Config' ) ) {
|
|||||||
'_um_profile_photo' => '1',
|
'_um_profile_photo' => '1',
|
||||||
'_um_cover_photos' => '1',
|
'_um_cover_photos' => '1',
|
||||||
'_um_show_name' => '1',
|
'_um_show_name' => '1',
|
||||||
|
'_um_search_filters' => '',
|
||||||
'_um_directory_header' => __('{total_users} Members','ultimate-member'),
|
'_um_directory_header' => __('{total_users} Members','ultimate-member'),
|
||||||
'_um_directory_header_single' => __('{total_users} Member','ultimate-member'),
|
'_um_directory_header_single' => __('{total_users} Member','ultimate-member'),
|
||||||
'_um_directory_no_users' => __('We are sorry. We cannot find any users who match your search criteria.','ultimate-member'),
|
'_um_directory_no_users' => __('We are sorry. We cannot find any users who match your search criteria.','ultimate-member'),
|
||||||
|
|||||||
@@ -100,6 +100,8 @@ add_filter( 'um_prepare_user_query_args', 'um_remove_special_users_from_list', 9
|
|||||||
/**
|
/**
|
||||||
* Adds search parameters
|
* Adds search parameters
|
||||||
*
|
*
|
||||||
|
* @hooked 'um_prepare_user_query_args'
|
||||||
|
*
|
||||||
* @param $query_args
|
* @param $query_args
|
||||||
* @param $args
|
* @param $args
|
||||||
*
|
*
|
||||||
@@ -108,10 +110,21 @@ add_filter( 'um_prepare_user_query_args', 'um_remove_special_users_from_list', 9
|
|||||||
function um_add_search_to_query( $query_args, $args ){
|
function um_add_search_to_query( $query_args, $args ){
|
||||||
extract( $args );
|
extract( $args );
|
||||||
|
|
||||||
|
if( !empty( $args['search_filters'] ) ){
|
||||||
|
$_REQUEST['um_search'] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if ( isset( $_REQUEST['um_search'] ) ) {
|
if ( isset( $_REQUEST['um_search'] ) ) {
|
||||||
|
|
||||||
$query = UM()->permalinks()->get_query_array();
|
$query = UM()->permalinks()->get_query_array();
|
||||||
|
|
||||||
|
if( !empty( $args['search_filters'] ) ){
|
||||||
|
parse_str( $args['search_filters'], $search_filters );
|
||||||
|
if( $search_filters && is_array( $search_filters ) ){
|
||||||
|
$query = array_merge( $search_filters, $query );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if searching
|
// if searching
|
||||||
if ( isset( $query['search'] ) ) {
|
if ( isset( $query['search'] ) ) {
|
||||||
$query_args['search'] = '*' . um_filter_search( $query['search'] ) . '*';
|
$query_args['search'] = '*' . um_filter_search( $query['search'] ) . '*';
|
||||||
@@ -154,7 +167,7 @@ function um_add_search_to_query( $query_args, $args ){
|
|||||||
) );
|
) );
|
||||||
|
|
||||||
if ( in_array( $filter_data['attrs']['type'], $types ) ) {
|
if ( in_array( $filter_data['attrs']['type'], $types ) ) {
|
||||||
|
|
||||||
$arr_meta_query = array(
|
$arr_meta_query = array(
|
||||||
array(
|
array(
|
||||||
'key' => $field,
|
'key' => $field,
|
||||||
@@ -383,7 +396,7 @@ function um_prepare_user_query_args( $query_args, $args ) {
|
|||||||
$sortby = str_replace('_asc','',$sortby);
|
$sortby = str_replace('_asc','',$sortby);
|
||||||
$order = 'ASC';
|
$order = 'ASC';
|
||||||
}
|
}
|
||||||
|
|
||||||
$query_args['orderby'] = $sortby;
|
$query_args['orderby'] = $sortby;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -469,14 +482,14 @@ function um_modify_sortby_randomly( $query ) {
|
|||||||
if( isset( $_SESSION['seed'] ) ) {
|
if( isset( $_SESSION['seed'] ) ) {
|
||||||
$seed = $_SESSION['seed'];
|
$seed = $_SESSION['seed'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set new seed if none exists
|
// Set new seed if none exists
|
||||||
if ( ! $seed ) {
|
if ( ! $seed ) {
|
||||||
$seed = rand();
|
$seed = rand();
|
||||||
$_SESSION['seed'] = $seed;
|
$_SESSION['seed'] = $seed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$query->query_orderby = 'ORDER by RAND('. $seed.')';
|
$query->query_orderby = 'ORDER by RAND('. $seed.')';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -498,7 +511,7 @@ function um_prepare_user_results_array( $result ) {
|
|||||||
} else {
|
} else {
|
||||||
$result['no_users'] = 0;
|
$result['no_users'] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
add_filter( 'um_prepare_user_results_array', 'um_prepare_user_results_array', 50, 2 );
|
add_filter( 'um_prepare_user_results_array', 'um_prepare_user_results_array', 50, 2 );
|
||||||
|
|||||||
Reference in New Issue
Block a user