766 changes: 287 additions & 479 deletions includes/core/class-member-directory-meta.php

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions includes/core/class-member-directory.php
Original file line number Diff line number Diff line change
Expand Up @@ -1252,20 +1252,20 @@ function general_search() {
$meta_query = array(
'relation' => 'OR',
array(
'value' => trim( $_POST['search'] ),
'value' => trim( stripslashes( $_POST['search'] ) ),
'compare' => '=',
),
array(
'value' => trim( $_POST['search'] ),
'value' => trim( stripslashes( $_POST['search'] ) ),
'compare' => 'LIKE',
),
array(
'value' => trim( serialize( strval( $_POST['search'] ) ) ),
'value' => trim( serialize( strval( stripslashes( $_POST['search'] ) ) ) ),
'compare' => 'LIKE',
),
);

$meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, $_POST['search'] );
$meta_query = apply_filters( 'um_member_directory_general_search_meta_query', $meta_query, stripslashes( $_POST['search'] ) );

$this->query_args['meta_query'][] = $meta_query;

Expand All @@ -1290,7 +1290,7 @@ function general_search() {
function change_meta_sql( $sql, $queries, $type, $primary_table, $primary_id_column, $context ) {
if ( ! empty( $_POST['search'] ) ) {
global $wpdb;
$search = trim( $_POST['search'] );
$search = trim( stripslashes( $_POST['search'] ) );
if ( ! empty( $search ) ) {

$meta_value = '%' . $wpdb->esc_like( $search ) . '%';
Expand Down Expand Up @@ -1870,15 +1870,15 @@ function default_filters( $directory_data ) {
*
*
* @param array $directory_data
* @param \WP_User_Query $result
* @param int $total_users
*
* @return array
*/
function calculate_pagination( $directory_data, $result ) {
function calculate_pagination( $directory_data, $total_users ) {

$current_page = ! empty( $_POST['page'] ) ? $_POST['page'] : 1;

$total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $result->total_users ) ? $directory_data['max_users'] : $result->total_users;
$total_users = ( ! empty( $directory_data['max_users'] ) && $directory_data['max_users'] <= $total_users ) ? $directory_data['max_users'] : $total_users;

// number of profiles for mobile
$profiles_per_page = $directory_data['profiles_per_page'];
Expand Down Expand Up @@ -2292,7 +2292,7 @@ function ajax_get_members() {
*/
do_action( 'um_user_after_query', $this->query_args, $user_query );

$pagination_data = $this->calculate_pagination( $directory_data, $user_query );
$pagination_data = $this->calculate_pagination( $directory_data, $user_query->total_users );

$user_ids = ! empty( $user_query->results ) ? array_unique( $user_query->results ) : array();

Expand Down
2 changes: 1 addition & 1 deletion templates/members.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
$show_search = empty( $args['roles_can_search'] ) || ( ! empty( $priority_user_role ) && in_array( $priority_user_role, $args['roles_can_search'] ) );
$search_from_url = '';
if ( $search && $show_search ) {
$search_from_url = ! empty( $_GET[ 'search_' . $unique_hash ] ) ? $_GET[ 'search_' . $unique_hash ] : '';
$search_from_url = ! empty( $_GET[ 'search_' . $unique_hash ] ) ? stripslashes( $_GET[ 'search_' . $unique_hash ] ) : '';
}


Expand Down