mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- reviewed #769;
- added `get_member_directory_id()` function for getting member directory ID based on page ID; - commented hooks 'um_prepare_user_results_array', 'um_prepare_user_results_array_meta' - added snippet fo hiding filters from member directory based on public or private visibility;
This commit is contained in:
@@ -877,25 +877,22 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
|
||||
$total_users = (int) $wpdb->get_var( 'SELECT FOUND_ROWS()' );
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* Filters the member directory query result when um_usermeta table is used.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_prepare_user_results_array_meta
|
||||
* @description Extend member directory query result
|
||||
* @input_vars
|
||||
* [{"var":"$result","type":"array","desc":"Members Query Result"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_prepare_user_results_array', 'function_name', 10, 2 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_prepare_user_results_array', 'my_prepare_user_results', 10, 2 );
|
||||
* function my_prepare_user_results( $user_ids, $query ) {
|
||||
* // your code here
|
||||
* @since 2.1.3
|
||||
* @hook um_prepare_user_results_array_meta
|
||||
*
|
||||
* @param {array} $user_ids Members Query Result.
|
||||
* @param {array} $query_args Query arguments.
|
||||
*
|
||||
* @return {array} Query result.
|
||||
*
|
||||
* @example <caption>Remove some users where ID equals 10 and 12 from query.</caption>
|
||||
* function my_custom_um_prepare_user_results_array_meta( $user_ids, $query_args ) {
|
||||
* $user_ids = array_diff( $user_ids, array( 10, 12 ) );
|
||||
* return $user_ids;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_prepare_user_results_array_meta', 'my_custom_um_prepare_user_results_array', 10, 2 );
|
||||
*/
|
||||
$user_ids = apply_filters( 'um_prepare_user_results_array_meta', $user_ids, $query );
|
||||
|
||||
|
||||
@@ -2717,29 +2717,25 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
$user_ids = ! empty( $user_query->results ) ? array_unique( $user_query->results ) : array();
|
||||
|
||||
/**
|
||||
* UM hook
|
||||
* Filters the member directory query result.
|
||||
*
|
||||
* @type filter
|
||||
* @title um_prepare_user_results_array
|
||||
* @description Extend member directory query result
|
||||
* @input_vars
|
||||
* [{"var":"$result","type":"array","desc":"Members Query Result"}]
|
||||
* @change_log
|
||||
* ["Since: 2.0"]
|
||||
* @usage
|
||||
* <?php add_filter( 'um_prepare_user_results_array', 'function_name', 10, 2 ); ?>
|
||||
* @example
|
||||
* <?php
|
||||
* add_filter( 'um_prepare_user_results_array', 'my_prepare_user_results', 10, 2 );
|
||||
* function my_prepare_user_results( $user_ids, $query ) {
|
||||
* // your code here
|
||||
* @since 2.0
|
||||
* @hook um_prepare_user_results_array
|
||||
*
|
||||
* @param {array} $user_ids Members Query Result.
|
||||
* @param {array} $query_args Query arguments.
|
||||
*
|
||||
* @return {array} Query result.
|
||||
*
|
||||
* @example <caption>Remove some users where ID equals 10 and 12 from query.</caption>
|
||||
* function my_custom_um_prepare_user_results_array( $user_ids, $query_args ) {
|
||||
* $user_ids = array_diff( $user_ids, array( 10, 12 ) );
|
||||
* return $user_ids;
|
||||
* }
|
||||
* ?>
|
||||
* add_filter( 'um_prepare_user_results_array', 'my_custom_um_prepare_user_results_array', 10, 2 );
|
||||
*/
|
||||
$user_ids = apply_filters( 'um_prepare_user_results_array', $user_ids, $this->query_args );
|
||||
|
||||
|
||||
$sizes = UM()->options()->get( 'cover_thumb_sizes' );
|
||||
|
||||
$this->cover_size = UM()->mobile()->isTablet() ? $sizes[1] : end( $sizes );
|
||||
@@ -2831,5 +2827,27 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
|
||||
wp_send_json_success( array( 'field_html' => $html ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get member directory id by page id.
|
||||
*
|
||||
* @param int $page_id Page ID.
|
||||
*
|
||||
* @return array Member directories ID.
|
||||
*/
|
||||
public function get_member_directory_id( $page_id ) {
|
||||
$members_page = get_post( $page_id );
|
||||
if ( ! empty( $members_page ) && ! is_wp_error( $members_page ) ) {
|
||||
if ( ! empty( $members_page->post_content ) ) {
|
||||
preg_match_all( '/\[ultimatemember[^\]]*?form_id\=[\'"]*?(\d+)[\'"]*?/i', $members_page->post_content, $matches );
|
||||
if ( ! empty( $matches[1] ) && is_array( $matches[1] ) ) {
|
||||
$member_directory_ids = array_map( 'absint', $matches[1] );
|
||||
return $member_directory_ids;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1260,7 +1260,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function ultimatemember_searchform( $args = array(), $content = "" ) {
|
||||
public function ultimatemember_searchform( $args = array(), $content = '' ) {
|
||||
if ( ! UM()->options()->get( 'members_page' ) ) {
|
||||
return '';
|
||||
}
|
||||
@@ -1269,15 +1269,7 @@ if ( ! class_exists( 'um\core\Shortcodes' ) ) {
|
||||
|
||||
$page_id = UM()->config()->permalinks['members'];
|
||||
if ( ! empty( $page_id ) ) {
|
||||
$members_page = get_post( $page_id );
|
||||
if ( ! empty( $members_page ) && ! is_wp_error( $members_page ) ) {
|
||||
if ( ! empty( $members_page->post_content ) ) {
|
||||
preg_match_all( '/\[ultimatemember[^\]]*?form_id\=[\'"]*?(\d+)[\'"]*?/i', $members_page->post_content, $matches );
|
||||
if ( ! empty( $matches[1] ) && is_array( $matches[1] ) ) {
|
||||
$member_directory_ids = array_map( 'absint', $matches[1] );
|
||||
}
|
||||
}
|
||||
}
|
||||
$member_directory_ids = UM()->member_directory()->get_member_directory_id( $page_id );
|
||||
}
|
||||
|
||||
if ( empty( $member_directory_ids ) ) {
|
||||
|
||||
@@ -1515,10 +1515,10 @@ function um_can_view_field( $data ) {
|
||||
UM()->fields()->set_mode = '';
|
||||
}
|
||||
|
||||
if ( isset( $data['public'] ) && UM()->fields()->set_mode != 'register' ) {
|
||||
if ( isset( $data['public'] ) && 'register' !== UM()->fields()->set_mode ) {
|
||||
|
||||
$can_edit = false;
|
||||
$current_user_roles = [];
|
||||
$can_edit = false;
|
||||
$current_user_roles = array();
|
||||
if ( is_user_logged_in() ) {
|
||||
|
||||
$can_edit = UM()->roles()->um_current_user_can( 'edit', um_user( 'ID' ) );
|
||||
@@ -1563,7 +1563,6 @@ function um_can_view_field( $data ) {
|
||||
$can_view = apply_filters( 'um_can_view_field_custom', $can_view, $data );
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return apply_filters( 'um_can_view_field', $can_view, $data );
|
||||
|
||||
@@ -139,6 +139,14 @@ if ( ! empty( $search_filters ) ) {
|
||||
$search_filters = array_values( $search_filters );
|
||||
}
|
||||
|
||||
// Hide filter fields based on the field visibility.
|
||||
foreach ( $search_filters as $key => $filter ) {
|
||||
$filter_data = UM()->fields()->get_field( $filter );
|
||||
if ( ! um_can_view_field( $filter_data ) ) {
|
||||
unset( $search_filters[ $key ] );
|
||||
}
|
||||
}
|
||||
|
||||
// Classes
|
||||
$classes = '';
|
||||
if ( $search && $show_search ) {
|
||||
|
||||
Reference in New Issue
Block a user