Last active
May 3, 2024 13:36
-
-
Save champsupertramp/fa0a6b620b0da00be58a6b5c404553ec to your computer and use it in GitHub Desktop.
Ultimate Member - Show all options in the Member Directory filter and Admin filter settings
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_action( 'wp_ajax_um_member_directory_default_filter_settings', 'um_04292024_show_ajax_member_directory', 1 ); | |
function um_04292024_show_ajax_member_directory() { | |
add_filter( 'um_member_directory_filter_select_options', 'um_04292024_show_all_select_options', 999999, 3 ); | |
} | |
function um_04292024_show_all_select_options( $options, $options_arr, $data ) { | |
$key = $data['metakey']; | |
$options = UM()->builtin()->get_a_field( $key )['options']; | |
$data['options'] = $options; | |
$has_parent_option = false; | |
if ( isset( $data['options'] ) && is_array( $data['options'] ) ) { | |
$options = $data['options']; | |
} | |
if ( ! empty( $data['parent_dropdown_relationship'] ) ) { | |
$has_parent_option = true; | |
} | |
// Child dropdown | |
if ( $has_parent_option ) { | |
if ( ! empty( $data['custom_dropdown_options_source'] ) && function_exists( $data['custom_dropdown_options_source'] ) ) { | |
if ( ! UM()->member_directory()->is_source_blacklisted( $data['custom_dropdown_options_source'] ) ) { | |
$options = call_user_func( $data['custom_dropdown_options_source'], $data['parent_dropdown_relationship'] ); | |
} | |
} | |
} | |
if ( ! $has_parent_option ) { | |
if ( isset( $options ) && 'builtin' === $options ) { | |
$options = UM()->builtin()->get( $data['filter'] ); | |
} | |
// 'country' | |
if ( 'country' === $key && empty( $options ) ) { | |
$options = UM()->builtin()->get( 'countries' ); | |
} elseif ( empty( $options ) && isset( $data['options'] ) ) { | |
$options = $data['options']; | |
} | |
/** | |
* Filters dropdown options. | |
* | |
* @since 2.0 | |
* @hook um_selectbox_options | |
* | |
* @param {array} $options Field options. | |
* @param {string} $key Field metakey. | |
* | |
* @return {array} Field options. | |
* | |
* @example <caption>Extend dropdown options.</caption> | |
* function my_um_selectbox_options( $options, $key ) { | |
* // your code here | |
* return $options; | |
* } | |
* add_filter( 'um_selectbox_options', 'my_um_selectbox_options', 10, 2 ); | |
*/ | |
$options = apply_filters( 'um_selectbox_options', $options, $key ); | |
if ( isset( $options ) ) { | |
/** | |
* Filters dropdown dynamic options. | |
* | |
* @since 1.3.x | |
* @hook um_select_dropdown_dynamic_options | |
* | |
* @param {array} $options Dynamic options. | |
* @param {array} $data Field Data. | |
* | |
* @return {array} Dynamic options. | |
* | |
* @example <caption>Extend dropdown dynamic options.</caption> | |
* function my_select_dropdown_dynamic_options( $options, $data ) { | |
* // your code here | |
* return $options; | |
* } | |
* add_filter( 'um_select_dropdown_dynamic_options', 'my_select_dropdown_dynamic_options', 10, 2 ); | |
*/ | |
$options = apply_filters( 'um_select_dropdown_dynamic_options', $options, $data ); | |
/** | |
* Filters dropdown dynamic options by field $key. | |
* | |
* @since 1.3.x | |
* @hook um_select_dropdown_dynamic_options_{$key} | |
* | |
* @param {array} $options Dynamic options. | |
* | |
* @return {array} Dynamic options. | |
* | |
* @example <caption>Extend dropdown dynamic options by field $key.</caption> | |
* function my_select_dropdown_dynamic_options( $options ) { | |
* // your code here | |
* return $options; | |
* } | |
* add_filter( 'um_select_dropdown_dynamic_options_{$key}', 'my_select_dropdown_dynamic_options', 10, 1 ); | |
*/ | |
$options = apply_filters( "um_select_dropdown_dynamic_options_{$key}", $options ); | |
} | |
} | |
if ( 'role' === $key ) { | |
$options = UM()->member_directory()->get_available_roles( $key, $options ); | |
} | |
return $options; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment