From 05b6f412574854f78dc1d1a036392095358c4b4e Mon Sep 17 00:00:00 2001 From: Mykyta Synelnikov Date: Thu, 10 Aug 2023 16:14:31 +0300 Subject: [PATCH] - added hook to operate with core searching fields in member directory search; --- includes/core/class-member-directory.php | 34 +++++++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index 032cc862..dc37cee8 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -95,12 +95,38 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { /** * Member_Directory constructor. */ - function __construct() { + public function __construct() { add_filter( 'init', array( &$this, 'init_variables' ) ); add_action( 'template_redirect', array( &$this, 'access_members' ), 555 ); } + /** + * Get the WordPress core searching fields in wp_users query. + * @return array + */ + private function get_core_search_fields() { + /** + * Filters the WordPress core searching fields in wp_users query for UM Member directory query. + * + * @param {array} $core_search_fields Core search fields in wp_users query. + * + * @return {array} Core search fields in wp_users query. + * + * @since 2.6.10 + * @hook um_member_directory_core_search_fields + * + * @example Extends or remove wp_users core search fields. + * function my_um_member_directory_core_search_fields( $core_search_fields ) { + * $core_search_fields = array_flip( $core_search_fields ); + * unset( $core_search_fields['user_email'] ); + * $core_search_fields = array_flip( $core_search_fields ); + * return $core_search_fields; + * } + * add_filter( 'um_member_directory_core_search_fields', 'my_um_member_directory_core_search_fields' ); + */ + return apply_filters( 'um_member_directory_core_search_fields', $this->core_search_fields ); + } /** * @return bool @@ -587,8 +613,8 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $filter_from_url = ! empty( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) ? sanitize_text_field( $_GET[ 'filter_' . $filter . '_' . $unique_hash ] ) : $default_value; ?> + value="" class="um-form-field" + aria-label="" /> get_search_sql( $search, $this->core_search_fields, 'both' ); + $search_where = $context->get_search_sql( $search, $this->get_core_search_fields(), 'both' ); $search_where = preg_replace( '/ AND \((.*?)\)/im', "$1 OR", $search_where );